diff --git a/content/docs/anselm/compute-nodes.mdx b/content/docs/anselm/compute-nodes.mdx
deleted file mode 100644
index d5936e58b580dac1b15f78568ab23e4cf9bba8fc..0000000000000000000000000000000000000000
--- a/content/docs/anselm/compute-nodes.mdx
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: "Compute Nodes"
----
-## Node Configuration
-
-Anselm is a cluster of x86-64 Intel-based nodes built with the Bull Extreme Computing bullx technology. The cluster contains four types of compute nodes.
-
-### Compute Nodes Without Accelerators
-
-* 180 nodes
-* 2880 cores in total
-* two Intel Sandy Bridge E5-2665, 8-core, 2.4GHz processors per node
-* 64 GB of physical memory per node
-* one 500GB SATA 2,5” 7,2 krpm HDD per node
-* bullx B510 blade servers
-* cn[1-180]
-
-### Compute Nodes With a GPU Accelerator
-
-* 23 nodes
-* 368 cores in total
-* two Intel Sandy Bridge E5-2470, 8-core, 2.3GHz processors per node
-* 96 GB of physical memory per node
-* one 500GB SATA 2,5” 7,2 krpm HDD per node
-* GPU accelerator 1x NVIDIA Tesla Kepler K20m per node
-* bullx B515 blade servers
-* cn[181-203]
-
-### Compute Nodes With a MIC Accelerator
-
-* 4 nodes
-* 64 cores in total
-* two Intel Sandy Bridge E5-2470, 8-core, 2.3GHz processors per node
-* 96 GB of physical memory per node
-* one 500GB SATA 2,5” 7,2 krpm HDD per node
-* MIC accelerator 1x Intel Phi 5110P per node
-* bullx B515 blade servers
-* cn[204-207]
-
-### Fat Compute Nodes
-
-* 2 nodes
-* 32 cores in total
-* 2 Intel Sandy Bridge E5-2665, 8-core, 2.4GHz processors per node
-* 512 GB of physical memory per node
-* two 300GB SAS 3,5” 15krpm HDD (RAID1) per node
-* two 100GB SLC SSD per node
-* bullx R423-E3 servers
-* cn[208-209]
-
-![](/it4i/img/bullxB510.png)
-**Anselm bullx B510 servers**
-
-### Compute Node Summary
-
-| Node type                    | Count | Range       | Memory | Cores       | Queues                                    |
-| ---------------------------- | ----- | ----------- | ------ | ----------- | --------------------------------------    |
-| Nodes without an accelerator | 180   | cn[1-180]   | 64GB   | 16 @ 2.4GHz | qexp, qprod, qlong, qfree, qprace, qatlas |
-| Nodes with a GPU accelerator | 23    | cn[181-203] | 96GB   | 16 @ 2.3GHz | qnvidia, qexp                             |
-| Nodes with a MIC accelerator | 4     | cn[204-207] | 96GB   | 16 @ 2.3GHz | qmic, qexp                                |
-| Fat compute nodes            | 2     | cn[208-209] | 512GB  | 16 @ 2.4GHz | qfat, qexp                                |
-
-## Processor Architecture
-
-Anselm is equipped with Intel Sandy Bridge processors Intel Xeon E5-2665 (nodes without accelerators and fat nodes) and Intel Xeon E5-2470 (nodes with accelerators). The processors support Advanced Vector Extensions (AVX) 256-bit instruction set.
-
-### Intel Sandy Bridge E5-2665 Processor
-
-* eight-core
-* speed: 2.4 GHz, up to 3.1 GHz using Turbo Boost Technology
-* peak performance:  19.2 GFLOP/s per core
-* caches:
-  * L2: 256 KB per core
-  * L3: 20 MB per processor
-* memory bandwidth at the level of the processor: 51.2 GB/s
-
-### Intel Sandy Bridge E5-2470 Processor
-
-* eight-core
-* speed: 2.3 GHz, up to 3.1 GHz using Turbo Boost Technology
-* peak performance:  18.4 GFLOP/s per core
-* caches:
-  * L2: 256 KB per core
-  * L3: 20 MB per processor
-* memory bandwidth at the level of the processor: 38.4 GB/s
-
-Nodes equipped with Intel Xeon E5-2665 CPU have a set PBS resource attribute cpu_freq = 24, nodes equipped with Intel Xeon E5-2470 CPU have set PBS resource attribute cpu_freq = 23.
-
-```console
-$ qsub -A OPEN-0-0 -q qprod -l select=4:ncpus=16:cpu_freq=24 -I
-```
-
-In this example, we allocate 4 nodes, 16 cores at 2.4GHhz per node.
-
-Intel Turbo Boost Technology is used by default, you can disable it for all nodes of job by using the cpu_turbo_boost resource attribute.
-
-```console
-$ qsub -A OPEN-0-0 -q qprod -l select=4:ncpus=16 -l cpu_turbo_boost=0 -I
-```
-
-## Memmory Architecture
-
-The cluster contains three types of compute nodes.
-
-### Compute Nodes Without Accelerators
-
-* 2 sockets
-* Memory Controllers are integrated into processors.
-  * 8 DDR3 DIMMs per node
-  * 4 DDR3 DIMMs per CPU
-  * 1 DDR3 DIMMs per channel
-  * Data rate support: up to 1600MT/s
-* Populated memory: 8 x 8 GB DDR3 DIMM 1600 MHz
-
-### Compute Nodes With a GPU or MIC Accelerator
-
-* 2 sockets
-* Memory Controllers are integrated into processors.
-  * 6 DDR3 DIMMs per node
-  * 3 DDR3 DIMMs per CPU
-  * 1 DDR3 DIMMs per channel
-  * Data rate support: up to 1600MT/s
-* Populated memory: 6 x 16 GB DDR3 DIMM 1600 MHz
-
-### Fat Compute Nodes
-
-* 2 sockets
-* Memory Controllers are integrated into processors.
-  * 16 DDR3 DIMMs per node
-  * 8 DDR3 DIMMs per CPU
-  * 2 DDR3 DIMMs per channel
-  * Data rate support: up to 1600MT/s
-* Populated memory: 16 x 32 GB DDR3 DIMM 1600 MHz
diff --git a/content/docs/anselm/hardware-overview.mdx b/content/docs/anselm/hardware-overview.mdx
deleted file mode 100644
index ea4fc2f5a38eb33618fbdfeb7a2836436430a7dd..0000000000000000000000000000000000000000
--- a/content/docs/anselm/hardware-overview.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: "Hardware Overview"
----
-The Anselm cluster consists of 209 computational nodes named cn[1-209] of which 180 are regular compute nodes, 23 are GPU Kepler K20 accelerated nodes, 4 are MIC Xeon Phi 5110P accelerated nodes, and 2 are fat nodes. Each node is a powerful x86-64 computer, equipped with 16 cores (two eight-core Intel Sandy Bridge processors), at least 64 GB of RAM, and a local hard drive. User access to the Anselm cluster is provided by two login nodes login[1,2]. The nodes are interlinked through high speed InfiniBand and Ethernet networks. All nodes share a 320 TB /home disk for storage of user files. The 146 TB shared /scratch storage is available for scratch data.
-
-The Fat nodes are equipped with a large amount (512 GB) of memory. Virtualization infrastructure provides resources to run long-term servers and services in virtual mode. Fat nodes and virtual servers may access 45 TB of dedicated block storage. Accelerated nodes, fat nodes, and virtualization infrastructure are available [upon request][a] from a PI.
-
-Schematic representation of the Anselm cluster. Each box represents a node (computer) or storage capacity:
-
-![](/it4i/img/Anselm-Schematic-Representation.png)
-
-The cluster compute nodes cn[1-207] are organized within 13 chassis.
-
-There are four types of compute nodes:
-
-* 180 compute nodes without an accelerator
-* 23 compute nodes with a GPU accelerator - an NVIDIA Tesla Kepler K20m
-* 4 compute nodes with a MIC accelerator - an Intel Xeon Phi 5110P
-* 2 fat nodes - equipped with 512 GB of RAM and two 100 GB SSD drives
-
-[More about Compute nodes][1].
-
-GPU and accelerated nodes are available upon request, see the [Resources Allocation Policy][2].
-
-All of these nodes are interconnected through fast InfiniBand and Ethernet networks.  [More about the Network][3].
-Every chassis provides an InfiniBand switch, marked **isw**, connecting all nodes in the chassis, as well as connecting the chassis to the upper level switches.
-
-All of the nodes share a 360 TB /home disk for storage of user files. The 146 TB shared /scratch storage is available for scratch data. These file systems are provided by the Lustre parallel file system. There is also local disk storage available on all compute nodes in /lscratch.  [More about Storage][4].
-
-User access to the Anselm cluster is provided by two login nodes login1, login2, and data mover node dm1. [More about accessing the cluster][5].
-
-The parameters are summarized in the following tables:
-
-| **In general**                              |                                              |
-| ------------------------------------------- | -------------------------------------------- |
-| Primary purpose                             | High Performance Computing                   |
-| Architecture of compute nodes               | x86-64                                       |
-| Operating system                            | Linux (CentOS)                               |
-| [**Compute nodes**][1]                      |                                              |
-| Total                                       | 209                                          |
-| Processor cores                             | 16 (2 x 8 cores)                             |
-| RAM                                         | min. 64 GB, min. 4 GB per core               |
-| Local disk drive                            | yes - usually 500 GB                         |
-| Compute network                             | InfiniBand QDR, fully non-blocking, fat-tree |
-| w/o accelerator                             | 180, cn[1-180]                               |
-| GPU accelerated                             | 23, cn[181-203]                              |
-| MIC accelerated                             | 4, cn[204-207]                               |
-| Fat compute nodes                           | 2, cn[208-209]                               |
-| **In total**                                |                                              |
-| Total theoretical peak performance  (Rpeak) | 94 TFLOP/s                                   |
-| Total max. LINPACK performance  (Rmax)      | 73 TFLOP/s                                   |
-| Total amount of RAM                         | 15.136 TB                                    |
-
-| Node             | Processor                               | Memory | Accelerator          |
-| ---------------- | --------------------------------------- | ------ | -------------------- |
-| w/o accelerator  | 2 x Intel Sandy Bridge E5-2665, 2.4 GHz | 64 GB  | -                    |
-| GPU accelerated  | 2 x Intel Sandy Bridge E5-2470, 2.3 GHz | 96 GB  | NVIDIA Kepler K20m   |
-| MIC accelerated  | 2 x Intel Sandy Bridge E5-2470, 2.3 GHz | 96 GB  | Intel Xeon Phi 5110P |
-| Fat compute node | 2 x Intel Sandy Bridge E5-2665, 2.4 GHz | 512 GB | -                    |
-
-For more details, refer to [Compute nodes][1], [Storage][4], and [Network][3].
-
-[1]: compute-nodes.md
-[2]: ../general/resources-allocation-policy.md
-[3]: network.md
-[4]: storage.md
-[5]: ../general/shell-and-data-access.md
-
-[a]: https://support.it4i.cz/rt
diff --git a/content/docs/anselm/introduction.mdx b/content/docs/anselm/introduction.mdx
deleted file mode 100644
index 32d1a5235c16f8b281dcb8564b55cf39d4223621..0000000000000000000000000000000000000000
--- a/content/docs/anselm/introduction.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "Introduction"
----
-Welcome to the Anselm supercomputer cluster. The Anselm cluster consists of 209 compute nodes, totaling 3344 compute cores with 15 TB RAM, giving over 94 TFLOP/s theoretical peak performance. Each node is a powerful x86-64 computer, equipped with 16 cores, at least 64 GB of RAM, and a 500 GB hard disk drive. Nodes are interconnected through a fully non-blocking fat-tree InfiniBand network and are equipped with Intel Sandy Bridge processors. A few nodes are also equipped with NVIDIA Kepler GPU or Intel Xeon Phi MIC accelerators. Read more in [Hardware Overview][1].
-
-Anselm runs with an operating system compatible with the Red Hat [Linux family][a]. We have installed a wide range of software packages targeted at different scientific domains. These packages are accessible via the [modules environment][2].
-
-The user data shared file-system (HOME, 320 TB) and job data shared file-system (SCRATCH, 146 TB) are available to users.
-
-The PBS Professional workload manager provides [computing resources allocations and job execution][3].
-
-Read more on how to [apply for resources][4], [obtain login credentials][5] and [access the cluster][6].
-
-[1]: hardware-overview.md
-[2]: ../environment-and-modules.md
-[3]: ../general/resources-allocation-policy.md
-[4]: ../general/applying-for-resources.md
-[5]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-[6]: ../general/shell-and-data-access.md
-
-[a]: http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
diff --git a/content/docs/anselm/meta.json b/content/docs/anselm/meta.json
deleted file mode 100644
index 6c29436544951295c9df8afd502512da92758785..0000000000000000000000000000000000000000
--- a/content/docs/anselm/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Anselm",
-  "pages": [
-    "compute-nodes",
-    "hardware-overview",
-    "introduction",
-    "network",
-    "storage"
-  ]
-}
diff --git a/content/docs/anselm/network.mdx b/content/docs/anselm/network.mdx
deleted file mode 100644
index b4055bc80e125e738589a0c54cd1853513047c5f..0000000000000000000000000000000000000000
--- a/content/docs/anselm/network.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: "Network"
----
-All of the compute and login nodes of Anselm are interconnected through an [InfiniBand][a] QDR network and a Gigabit [Ethernet][b] network. Both networks may be used to transfer user data.
-
-## InfiniBand Network
-
-All of the compute and login nodes of Anselm are interconnected through a high-bandwidth, low-latency [InfiniBand][a] QDR network (IB 4 x QDR, 40 Gbps). The network topology is a fully non-blocking fat-tree.
-
-The compute nodes may be accessed via the InfiniBand network using the ib0 network interface, in address range 10.2.1.1-209. The MPI may be used to establish native InfiniBand connection among the nodes.
-
-<Callout>
-    The network provides **2170 MB/s** transfer rates via the TCP connection (single stream) and up to **3600 MB/s** via the native InfiniBand protocol.
-</Callout>
-
-The Fat tree topology ensures that peak transfer rates are achieved between any two nodes, independent of network traffic exchanged among other nodes concurrently.
-
-## Ethernet Network
-
-The compute nodes may be accessed via the regular Gigabit Ethernet network interface eth0, in the address range 10.1.1.1-209, or by using aliases cn1-cn209. The network provides **114 MB/s** transfer rates via the TCP connection.
-
-## Example
-
-In this example, we access the node cn110 through the InfiniBand network via the ib0 interface, then from cn110 to cn108 through the Ethernet network.
-
-```console
-$ qsub -q qexp -l select=4:ncpus=16 -N Name0 ./myjob
-$ qstat -n -u username
-                                                            Req'd Req'd   Elap
-Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time S Time
---------------- -------- --  |---|---| ------ --- --- ------ ----- - -----
-15209.srv11     username qexp     Name0        5530   4 64    --  01:00 R 00:00
-   cn17/0*16+cn108/0*16+cn109/0*16+cn110/0*16
-
-$ ssh 10.2.1.110
-$ ssh 10.1.1.108
-```
-
-[a]: http://en.wikipedia.org/wiki/InfiniBand
-[b]: http://en.wikipedia.org/wiki/Ethernet
diff --git a/content/docs/anselm/storage.mdx b/content/docs/anselm/storage.mdx
deleted file mode 100644
index c5781e577f6391d2cc004d4f965c5d3fb7e44fe5..0000000000000000000000000000000000000000
--- a/content/docs/anselm/storage.mdx
+++ /dev/null
@@ -1,444 +0,0 @@
----
-title: "Storage"
----
-There are two main shared file systems on Anselm cluster, the [HOME][1] and [SCRATCH][2]. All login and compute nodes may access same data on shared file systems. Compute nodes are also equipped with local (non-shared) scratch, RAM disk, and tmp file systems.
-
-## Archiving
-
-Do not use shared filesystems as a backup for large amount of data or long-term archiving mean. The academic staff and students of research institutions in the Czech Republic can use [CESNET storage service][3], which is available via SSHFS.
-
-## Shared Filesystems
-
-Anselm computer provides two main shared filesystems, the [HOME filesystem][1] and the [SCRATCH filesystem][2]. Both HOME and SCRATCH filesystems are realized as a parallel Lustre filesystem. Both shared file systems are accessible via the Infiniband network. Extended ACLs are provided on both Lustre filesystems for sharing data with other users using fine-grained control.
-
-### Understanding the Lustre Filesystems
-
-A user file on the [Lustre filesystem][a] can be divided into multiple chunks (stripes) and stored across a subset of the object storage targets (OSTs) (disks). The stripes are distributed among the OSTs in a round-robin fashion to ensure load balancing.
-
-When a client (a compute node from your job) needs to create or access a file, the client queries the metadata server (MDS) and the metadata target (MDT) for the layout and location of the [file's stripes][b]. Once the file is opened and the client obtains the striping information, the MDS is no longer involved in the file I/O process. The client interacts directly with the object storage servers (OSSes) and OSTs to perform I/O operations such as locking, disk allocation, storage, and retrieval.
-
-If multiple clients try to read and write the same part of a file at the same time, the Lustre distributed lock manager enforces coherency so that all clients see consistent results.
-
-There is a default stripe configuration for Anselm Lustre filesystems. However, users can set the following stripe parameters for their own directories or files to get optimum I/O performance:
-
-1. stripe_size: the size of the chunk in bytes; specify with k, m, or g to use units of KB, MB, or GB, respectively; the size must be an even multiple of 65,536 bytes; default is 1MB for all Anselm Lustre filesystems
-1. stripe_count the number of OSTs to stripe across; default is 1 for Anselm Lustre filesystems one can specify -1 to use all OSTs in the filesystem.
-1. stripe_offset The index of the OST where the first stripe is to be placed; default is -1 which results in random selection; using a non-default value is NOT recommended.
-
-<Callout>
-    Setting stripe size and stripe count correctly may significantly affect the I/O performance.
-</Callout>
-
-Use the lfs getstripe to get the stripe parameters. Use the lfs setstripe command to set the stripe parameters for optimal I/O performance. The correct stripe setting depends on your needs and file access patterns.
-
-```console
-$ lfs getstripe dir|filename
-$ lfs setstripe -s stripe_size -c stripe_count -o stripe_offset dir|filename
-```
-
-Example:
-
-```console
-$ lfs getstripe /scratch/username/
-/scratch/username/
-stripe_count:   1 stripe_size:    1048576 stripe_offset:  -1
-
-$ lfs setstripe -c -1 /scratch/username/
-$ lfs getstripe /scratch/username/
-/scratch/username/
-stripe_count:  10 stripe_size:    1048576 stripe_offset:  -1
-```
-
-In this example, we view the current stripe setting of the /scratch/username/ directory. The stripe count is changed to all OSTs and verified. All files written to this directory will be striped over 10 OSTs.
-
-Use lfs check OSTs to see the number and status of active OSTs for each filesystem on Anselm. Learn more by reading the man page:
-
-```console
-$ lfs check osts
-$ man lfs
-```
-
-### Hints on Lustre Stripping
-
-<Callout>
-    Increase the stripe_count for parallel I/O to the same file.
-</Callout>
-
-When multiple processes are writing blocks of data to the same file in parallel, the I/O performance for large files will improve when the stripe_count is set to a larger value. The stripe count sets the number of OSTs to which the file will be written. By default, the stripe count is set to 1. While this default setting provides for efficient access of metadata (for example to support the ls -l command), large files should use stripe counts of greater than 1. This will increase the aggregate I/O bandwidth by using multiple OSTs in parallel instead of just one. A rule of thumb is to use a stripe count approximately equal to the number of gigabytes in the file.
-
-Another good practice is to make the stripe count be an integral factor of the number of processes performing the write in parallel, so that you achieve load balance among the OSTs. For example, set the stripe count to 16 instead of 15 when you have 64 processes performing the writes.
-
-<Callout>
-    Using a large stripe size can improve performance when accessing very large files.
-</Callout>
-
-Large stripe size allows each client to have exclusive access to its own part of a file. However, it can be counterproductive in some cases if it does not match your I/O pattern. The choice of stripe size has no effect on a single-stripe file.
-
-Read more [here][c].
-
-### Lustre on Anselm
-
-The architecture of Lustre on Anselm is composed of two metadata servers (MDS) and four data/object storage servers (OSS). Two object storage servers are used for file system HOME and another two object storage servers are used for file system SCRATCH.
-
- Configuration of the storages
-
-* HOME Lustre object storage
-  * One disk array NetApp E5400
-  * 22 OSTs
-  * 227 2TB NL-SAS 7.2krpm disks
-  * 22 groups of 10 disks in RAID6 (8+2)
-  * 7 hot-spare disks
-* SCRATCH Lustre object storage
-  * Two disk arrays NetApp E5400
-  * 10 OSTs
-  * 106 2TB NL-SAS 7.2krpm disks
-  * 10 groups of 10 disks in RAID6 (8+2)
-  * 6 hot-spare disks
-* Lustre metadata storage
-  * One disk array NetApp E2600
-  * 12 300GB SAS 15krpm disks
-  * 2 groups of 5 disks in RAID5
-  * 2 hot-spare disks
-
-### HOME File System
-
-The HOME filesystem is mounted in directory /home. Users home directories /home/username reside on this filesystem. Accessible capacity is 320TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 250GB per user. If 250GB should prove as insufficient for particular user, contact [support][d], the quota may be lifted upon request.
-
-<Callout>
-    The HOME filesystem is intended for preparation, evaluation, processing and storage of data generated by active Projects.
-</Callout>
-
-The HOME filesystem should not be used to archive data of past Projects or other unrelated data.
-
-The files on HOME filesystem will not be deleted until the end of the [user's lifecycle][4].
-
-The filesystem is backed up, such that it can be restored in case of catastrophic failure resulting in significant data loss. This backup however is not intended to restore old versions of user data or to restore (accidentally) deleted files.
-
-The HOME filesystem is realized as Lustre parallel filesystem and is available on all login and computational nodes.
-Default stripe size is 1MB, stripe count is 1. There are 22 OSTs dedicated for the HOME filesystem.
-
-<Callout>
-    Setting stripe size and stripe count correctly for your needs may significantly affect the I/O performance.
-</Callout>
-
-| HOME filesystem      |        |
-| -------------------- | ------ |
-| Mountpoint           | /home  |
-| Capacity             | 320 TB |
-| Throughput           | 2 GB/s |
-| User space quota     | 250 GB |
-| User inodes quota    | 500 k  |
-| Default stripe size  | 1 MB   |
-| Default stripe count | 1      |
-| Number of OSTs       | 22     |
-
-### SCRATCH File System
-
-The SCRATCH filesystem is mounted in directory /scratch. Users may freely create subdirectories and files on the filesystem. Accessible capacity is 146TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 100TB per user. The purpose of this quota is to prevent runaway programs from filling the entire filesystem and deny service to other users. If 100TB should prove as insufficient for particular user, contact [support][d], the quota may be lifted upon request.
-
-<Callout>
-    The Scratch filesystem is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. All I/O intensive jobs must use the SCRATCH filesystem as their working directory.
-
-    Users are advised to save the necessary data from the SCRATCH filesystem to HOME filesystem after the calculations and clean up the scratch files.
-</Callout>
-
-<Callout type=warn>
-    Files on the SCRATCH filesystem that are **not accessed for more than 90 days** will be automatically **deleted**.
-</Callout>
-
-The SCRATCH filesystem is realized as Lustre parallel filesystem and is available from all login and computational nodes. Default stripe size is 1MB, stripe count is 1. There are 10 OSTs dedicated for the SCRATCH filesystem.
-
-<Callout>
-    Setting stripe size and stripe count correctly for your needs may significantly affect the I/O performance.
-</Callout>
-
-| SCRATCH filesystem   |          |
-| -------------------- | -------- |
-| Mountpoint           | /scratch |
-| Capacity             | 146 TB   |
-| Throughput           | 6 GB/s   |
-| User space quota     | 100 TB   |
-| User inodes quota    | 10 M     |
-| Default stripe size  | 1 MB     |
-| Default stripe count | 1        |
-| Number of OSTs       | 10       |
-
-### Disk Usage and Quota Commands
-
-Disk usage and user quotas can be checked and reviewed using the following command:
-
-```console
-$ it4i-disk-usage
-```
-
-Example:
-
-```console
-$ it4i-disk-usage -h
-# Using human-readable format
-# Using power of 1024 for space
-# Using power of 1000 for entries
-
-Filesystem:    /home
-Space used:    112GiB
-Space limit:   238GiB
-Entries:       15K
-Entries limit: 500K
-
-Filesystem:    /scratch
-Space used:    0
-Space limit:   93TiB
-Entries:       0
-Entries limit: 10M
-```
-
-In this example, we view current size limits and space occupied on the /home and /scratch filesystem, for a particular user executing the command.
-Note that limits are imposed also on number of objects (files, directories, links, etc...) that are allowed to create.
-
-To have a better understanding of where the space is exactly used, you can use following command to find out.
-
-```console
-$ du -hs dir
-```
-
-Example for your HOME directory:
-
-```console
-$ cd /home
-$ du -hs * .[a-zA-z0-9]* | grep -E "[0-9]*G|[0-9]*M" | sort -hr
-258M     cuda-samples
-15M      .cache
-13M      .mozilla
-5,5M     .eclipse
-2,7M     .idb_13.0_linux_intel64_app
-```
-
-This will list all directories that have MegaBytes or GigaBytes of consumed space in your actual (in this example HOME) directory. List is sorted in descending order from largest to smallest files/directories.
-
-To have a better understanding of previous commands, you can read man pages:
-
-```console
-$ man lfs
-```
-
-```console
-$ man du
-```
-
-### Extended ACLs
-
-Extended ACLs provide another security mechanism beside the standard POSIX ACLs that are defined by three entries (for owner/group/others). Extended ACLs have more than the three basic entries. In addition, they also contain a mask entry and may contain any number of named user and named group entries.
-
-ACLs on a Lustre file system work exactly like ACLs on any Linux file system. They are manipulated with the standard tools in the standard manner. Below, we create a directory and allow a specific user access.
-
-```console
-[vop999@login1.anselm ~]$ umask 027
-[vop999@login1.anselm ~]$ mkdir test
-[vop999@login1.anselm ~]$ ls -ld test
-drwxr-x--- 2 vop999 vop999 4096 Nov 5 14:17 test
-[vop999@login1.anselm ~]$ getfacl test
-# file: test
-# owner: vop999
-# group: vop999
-user::rwx
-group::r-x
-other::---
-
-[vop999@login1.anselm ~]$ setfacl -m user:johnsm:rwx test
-[vop999@login1.anselm ~]$ ls -ld test
-drwxrwx---+ 2 vop999 vop999 4096 Nov 5 14:17 test
-[vop999@login1.anselm ~]$ getfacl test
-# file: test
-# owner: vop999
-# group: vop999
-user::rwx
-user:johnsm:rwx
-group::r-x
-mask::rwx
-other::---
-```
-
-Default ACL mechanism can be used to replace setuid/setgid permissions on directories. Setting a default ACL on a directory (-d flag to setfacl) will cause the ACL permissions to be inherited by any newly created file or subdirectory within the directory. For more information, see [ACL in Linux][e].
-
-## Local Filesystems
-
-### Local Scratch
-
-<Callout>
-    Every computational node is equipped with 330GB local scratch disk.
-</Callout>
-
-Use local scratch in case you need to access large amount of small files during your calculation.
-
-The local scratch disk is mounted as /lscratch and is accessible to user at /lscratch/$PBS_JOBID directory.
-
-The local scratch filesystem is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. All I/O intensive jobs that access large number of small files within the calculation must use the local scratch filesystem as their working directory. This is required for performance reasons, as frequent access to number of small files may overload the metadata servers (MDS) of the Lustre filesystem.
-
-<Callout>
-    The local scratch directory /lscratch/$PBS_JOBID will be deleted immediately after the calculation end. Users should take care to save the output data from within the jobscript.
-</Callout>
-
-| local SCRATCH filesystem |                      |
-| ------------------------ | -------------------- |
-| Mountpoint               | /lscratch            |
-| Accesspoint              | /lscratch/$PBS_JOBID |
-| Capacity                 | 330 GB               |
-| Throughput               | 100 MB/s             |
-| User quota               | none                 |
-
-### RAM Disk
-
-Every computational node is equipped with filesystem realized in memory, so called RAM disk.
-
-<Callout>
-    Use RAM disk in case you need a fast access to your data of limited size during your calculation. Be very careful, use of RAM disk filesystem is at the expense of operational memory.
-</Callout>
-
-The local RAM disk is mounted as /ramdisk and is accessible to user at /ramdisk/$PBS_JOBID directory.
-
-The local RAM disk filesystem is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. Size of RAM disk filesystem is limited. Be very careful, use of RAM disk filesystem is at the expense of operational memory.  It is not recommended to allocate large amount of memory and use large amount of data in RAM disk filesystem at the same time.
-
-<Callout>
-    The local RAM disk directory /ramdisk/$PBS_JOBID will be deleted immediately after the calculation end. Users should take care to save the output data from within the jobscript.
-</Callout>
-
-| RAM disk    |                                                                                                          |
-| ----------- | -------------------------------------------------------------------------------------------------------- |
-| Mountpoint  | /ramdisk                                                                                                 |
-| Accesspoint | /ramdisk/$PBS_JOBID                                                                                      |
-| Capacity    | 60 GB at compute nodes without accelerator, 90 GB at compute nodes with accelerator, 500 GB at fat nodes |
-| Throughput  | over 1.5 GB/s write, over 5 GB/s read, single thread, over 10 GB/s write, over 50 GB/s read, 16 threads  |
-| User quota  | none                                                                                                     |
-
-### TMP
-
-Each node is equipped with local /tmp directory of few GB capacity. The /tmp directory should be used to work with small temporary files. Old files in /tmp directory are automatically purged.
-
-## Summary
-
-| Mountpoint | Usage                     | Protocol | Net Capacity   | Throughput | Space/Inodes quota       | Access                  | Services                    |        |
-| ---------- | ------------------------- | -------- | -------------- | ---------- | ------------------------ | ----------------------- | --------------------------- | ------ |
-| /home      | home directory            | Lustre   | 320 TiB        | 2 GB/s     | 250&nbsp;GB / 500&nbsp;k | Compute and login nodes | backed up                   |        |
-| /scratch   | cluster shared jobs' data | Lustre   | 146 TiB        | 6 GB/s     | 100&nbsp;TB / 10&nbsp;M  | Compute and login nodes | files older 90 days removed |        |
-| /lscratch  | node local jobs' data     | local    | 330 GB         | 100 MB/s   | none / none              | Compute nodes           | purged after job ends       |        |
-| /ramdisk   | node local jobs' data     | local    | 60, 90, 500 GB | 5-50 GB/s  | none / none              | Compute nodes           | purged after job ends       |        |
-| /tmp       | local temporary files     | local    | 9.5 GB         | 100 MB/s   | none / none              | Compute and login nodes | auto                        | purged |
-
-## CESNET Data Storage
-
-Do not use shared filesystems at IT4Innovations as a backup for large amount of data or long-term archiving purposes.
-
-<Callout>
-    The IT4Innovations does not provide storage capacity for data archiving. Academic staff and students of research institutions in the Czech Republic can use [CESNET Storage service][f].
-</Callout>
-
-The CESNET Storage service can be used for research purposes, mainly by academic staff and students of research institutions in the Czech Republic.
-
-User of data storage CESNET (DU) association can become organizations or an individual person who is in the current employment relationship (employees) or the current study relationship (students) to a legal entity (organization) that meets the “Principles for access to CESNET Large infrastructure (Access Policy)”.
-
-User may only use data storage CESNET for data transfer and storage associated with activities in science, research, development, spread of education, culture and prosperity. For details, see "Acceptable Use Policy CESNET Large Infrastructure (Acceptable Use Policy, AUP)".
-
-The service is documented [here][g]. For special requirements contact directly CESNET Storage Department via e-mail [du-support(at)cesnet.cz][h].
-
-The procedure to obtain the CESNET access is quick and trouble-free.
-
-## CESNET Storage Access
-
-### Understanding CESNET Storage
-
-<Callout>
-    It is very important to understand the CESNET storage before uploading data. [Read][i] first.
-</Callout>
-
-Once registered for CESNET Storage, you may [access the storage][j] in number of ways. We recommend the SSHFS and RSYNC methods.
-
-### SSHFS Access
-
-<Callout>
-    SSHFS: The storage will be mounted like a local hard drive
-</Callout>
-
-The SSHFS provides a very convenient way to access the CESNET Storage. The storage will be mounted onto a local directory, exposing the vast CESNET Storage as if it was a local removable hard drive. Files can be than copied in and out in a usual fashion.
-
-First, create the mount point
-
-```console
-$ mkdir cesnet
-```
-
-Mount the storage. Note that you can choose among the ssh.du1.cesnet.cz (Plzen), ssh.du2.cesnet.cz (Jihlava), ssh.du3.cesnet.cz (Brno) Mount tier1_home **(only 5120 MB!)**:
-
-```console
-$ sshfs username@ssh.du1.cesnet.cz:. cesnet/
-```
-
-For easy future access from Anselm, install your public key
-
-```console
-$ cp .ssh/id_rsa.pub cesnet/.ssh/authorized_keys
-```
-
-Mount tier1_cache_tape for the Storage VO:
-
-```console
-$ sshfs username@ssh.du1.cesnet.cz:/cache_tape/VO_storage/home/username cesnet/
-```
-
-View the archive, copy the files and directories in and out
-
-```console
-$ ls cesnet/
-$ cp -a mydir cesnet/.
-$ cp cesnet/myfile .
-```
-
-Once done, remember to unmount the storage
-
-```console
-$ fusermount -u cesnet
-```
-
-### RSYNC Access
-
-<Callout>
-    RSYNC provides delta transfer for best performance and can resume interrupted transfers.
-</Callout>
-
-RSYNC is a fast and extraordinarily versatile file copying tool. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination.  RSYNC is widely used for backups and mirroring and as an improved copy command for everyday use.
-
-RSYNC finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time.  Any changes in the other preserved attributes (as requested by options) are made on the destination file directly when the quick check indicates that the file's data does not need to be updated.
-
-[More about RSYNC][k].
-
-Transfer large files to/from CESNET storage, assuming membership in the Storage VO:
-
-```console
-$ rsync --progress datafile username@ssh.du1.cesnet.cz:VO_storage-cache_tape/.
-$ rsync --progress username@ssh.du1.cesnet.cz:VO_storage-cache_tape/datafile .
-```
-
-Transfer large directories to/from CESNET storage, assuming membership in the Storage VO:
-
-```console
-$ rsync --progress -av datafolder username@ssh.du1.cesnet.cz:VO_storage-cache_tape/.
-$ rsync --progress -av username@ssh.du1.cesnet.cz:VO_storage-cache_tape/datafolder .
-```
-
-Transfer rates of about 28 MB/s can be expected.
-
-[1]: #home
-[2]: #scratch
-[3]: #cesnet-data-storage
-[4]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-
-[a]: http://www.nas.nasa.gov
-[b]: http://www.nas.nasa.gov/hecc/support/kb/Lustre_Basics_224.html#striping
-[c]: http://doc.lustre.org/lustre_manual.xhtml#managingstripingfreespace
-[d]: https://support.it4i.cz/rt
-[e]: https://www.geeksforgeeks.org/access-control-listsacl-linux/
-[f]: https://du.cesnet.cz/
-[g]: https://du.cesnet.cz/en/start
-[h]: mailto:du-support@cesnet.cz
-[i]: https://du.cesnet.cz/en/navody/home-migrace-plzen/start
-[j]: https://du.cesnet.cz/en/navody/faq/start
-[k]: https://du.cesnet.cz/en/navody/rsync/start#pro_bezne_uzivatele
diff --git a/content/docs/apiv1.mdx b/content/docs/apiv1.mdx
deleted file mode 100644
index 36def4dc2b54ac3dfdb5f03e5692c3b6cf11fedb..0000000000000000000000000000000000000000
--- a/content/docs/apiv1.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "API Placeholder"
----
-This page is created automatically from the API source code.
diff --git a/content/docs/archive/archive-intro.mdx b/content/docs/archive/archive-intro.mdx
deleted file mode 100644
index 6fdaba9021cb86375b04f6eea7d9ad40a8d039dd..0000000000000000000000000000000000000000
--- a/content/docs/archive/archive-intro.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: "Introduction"
----
-This section contains documentation of decommissioned IT4Innovations' supercomputers and services.
-
-## Salomon
-
-The second supercomputer, built by SGI (now Hewlett Packard Enterprise), was launched in 2015. With a performance of 2 PFlop/s, it was immediately included in the TOP500 list, which ranks the world's most powerful supercomputers. It stayed there until November 2020, falling from the 40th place to 460th.
-
-Salomon was decommissioned after six years - at the end of 2021.
-
-### Interesting Facts
-
-| Salomon's facts              |                    |
-| ---------------------------- | ------------------ |
-| In operation                 | Q2 2015 - Q4 2021  |
-| Theoretical peak performance | 2 PFLOP/s          |
-| Number of nodes              | 1,008              |
-| HOME storage capacity        | 500 TB             |
-| SCRATCH storage capacity     | 1,638 TB           |
-| Projects computed            | 1,085              |
-| Computing jobs run           | ca. 8,700,000      |
-| Corehours used               | ca. 1,014,000,000  |
-
-## Anselm
-
-The first supercomputer, built by Atos, was launched in 2013. For the first 3 years, it was placed in makeshift containers on the campus of VSB – Technical University of Ostrava, and was subsequently moved to the data room of the newly constructed IT4Innovations building. Anselm's computational resources were available to Czech and foreign students and scientists in fields such as material sciences, computational chemistry, biosciences, and engineering.
-
-At the end of January 2021, after more than seven years, its operation permanently ceased. In the future, it will be a part of the [World of Civilization exhibition][a] in Lower Vitkovice.
-
-### Interesting Facts
-
-| Anselm's facts               |                    |
-| ---------------------------- | ------------------ |
-| Cost                         | 90,000,000 CZK     |
-| In operation                 | Q2 2013 - Q1 2021  |
-| Theoretical peak performance | 94 TFLOP/s         |
-| Number of nodes              | 209                |
-| HOME storage capacity        | 320 TB             |
-| SCRATCH storage capacity     | 146 TB             |
-| Projects computed            | 725                |
-| Computing jobs run           | 2,630,567          |
-| Corehours used               | 134,130,309        |
-| Power consumption            | 77 kW              |
-
-## PRACE
-
-Partnership for Advanced Computing in Europe aims to facilitate the access to a research infrastructure that enables high-impact scientific discovery and engineering research and development across all disciplines to enhance European competitiveness for the benefit of society. For more information, see the [official website][b].
-
-[a]: https://www.dolnivitkovice.cz/en/science-and-technology-centre/exhibitions/
-[b]: https://prace-ri.eu/
diff --git a/content/docs/archive/meta.json b/content/docs/archive/meta.json
deleted file mode 100644
index 6e4ae1ca36e0036edcf24eeec7d63a63480d9b42..0000000000000000000000000000000000000000
--- a/content/docs/archive/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Archive",
-  "pages": [
-    "archive-intro"
-  ]
-}
diff --git a/content/docs/barbora/compute-nodes.mdx b/content/docs/barbora/compute-nodes.mdx
deleted file mode 100644
index ea3c845f10671c99f984ed48aec26a0896ac7805..0000000000000000000000000000000000000000
--- a/content/docs/barbora/compute-nodes.mdx
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: "Compute Nodes"
----
-Barbora is a cluster of x86-64 Intel-based nodes built with the BullSequana Computing technology.
-The cluster contains three types of compute nodes.
-
-## Compute Nodes Without Accelerators
-
-* 192 nodes
-* 6912 cores in total
-* 2x Intel Cascade Lake 6240, 18-core, 2.6 GHz processors per node
-* 192 GB DDR4 2933 MT/s of physical memory per node (12x16 GB)
-* BullSequana X1120 blade servers
-* 2995.2 GFLOP/s per compute node
-* 1x 1 GB Ethernet
-* 1x HDR100 IB port
-* 3 compute nodes per X1120 blade server
-* cn[1-192]
-
-![](/it4i/barbora/img/BullSequanaX1120.png)
-
-## Compute Nodes With a GPU Accelerator
-
-* 8 nodes
-* 192 cores in total
-* two Intel Skylake Gold 6126, 12-core, 2.6 GHz processors per node
-* 192 GB DDR4 2933MT/s with ECC of physical memory per node (12x16 GB)
-* 4x GPU accelerator NVIDIA Tesla V100-SXM2 per node
-* Bullsequana X410-E5 NVLink-V blade servers
-* 1996.8 GFLOP/s per compute nodes
-* GPU-to-GPU All-to-All NVLINK 2.0, GPU-Direct
-* 1 GB Ethernet
-* 2x HDR100 IB ports
-* cn[193-200]
-
-![](/it4i/barbora/img/BullSequanaX410E5GPUNVLink.jpg)
-
-## Fat Compute Node
-
-* 1x BullSequana X808 server
-* 128 cores in total
-* 8 Intel Skylake 8153, 16-core, 2.0 GHz, 125 W
-* 6144 GiB DDR4 2667 MT/s of physical memory per node (92x64 GB)
-* 2x HDR100 IB port
-* 8192 GFLOP/s
-* cn[201]
-
-![](/it4i/barbora/img/BullSequanaX808.jpg)
-
-## Compute Node Summary
-
-| Node type                    | Count | Range       | Memory   | Cores         |
-| ---------------------------- | ----- | ----------- | -------- | ------------- |
-| Nodes without an accelerator | 192   | cn[1-192]   | 192 GB   | 36 @ 2.6 GHz  |
-| Nodes with a GPU accelerator | 8     | cn[193-200] | 192 GB   | 24 @ 2.6 GHz  |
-| Fat compute nodes            | 1     | cn[201]     | 6144 GiB | 128 @ 2.0 GHz |
-
-## Processor Architecture
-
-Barbora is equipped with Intel Cascade Lake processors Intel Xeon 6240 (nodes without accelerators),
-Intel Skylake Gold 6126 (nodes with accelerators) and Intel Skylake Platinum 8153.
-
-### Intel [Cascade Lake 6240][d]
-
-Cascade Lake core is largely identical to that of [Skylake's][a].
-For in-depth detail of the Skylake core/pipeline see [Skylake (client) § Pipeline][b].
-
-Xeon Gold 6240 is a 64-bit 18-core x86 multi-socket high performance server microprocessor set to be introduced by Intel in late 2018. This chip supports up to 4-way multiprocessing. The Gold 6240, which is based on the Cascade Lake microarchitecture and is manufactured on a 14 nm process, sports 2 AVX-512 FMA units as well as three Ultra Path Interconnect links. This microprocessor, which operates at 2.6 GHz with a TDP of 150 W and a turbo boost frequency of up to 3.9 GHz, supports up 1 TB of hexa-channel DDR4-2933 ECC memory.
-
-* **Family**: Xeon Gold
-* **Cores**: 18
-* **Threads**: 36
-* **L1I Cache**: 576 KiB, 18x32 KiB, 8-way set associative
-* **L1D Cache**: 576 KiB, 18x32 KiB, 8-way set associative, write-back
-* **L2 Cache**: 18 MiB, 18x1 MiB, 16-way set associative, write-back
-* **L3 Cache**: 24.75 MiB, 18x1.375 MiB, 11-way set associative, write-back
-* **Instructions**: x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA3, F16C, BMI, BMI2, VT-x, VT-d, TXT, TSX, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVE, SGX, MPX, AVX-512 (New instructions for [Vector Neural Network Instructions][c])
-* **Frequency**: 2.6 GHz
-* **Max turbo**: 3.9 GHz
-* **Process**: 14 nm
-* **TDP**: 140+ W
-
-### Intel [Skylake Gold 6126][e]
-
-Xeon Gold 6126 is a 64-bit dodeca-core x86 multi-socket high performance server microprocessor introduced by Intel in mid-2017. This chip supports up to 4-way multiprocessing. The Gold 6126, which is based on the server configuration of the Skylake microarchitecture and is manufactured on a 14 nm+ process, sports 2 AVX-512 FMA units as well as three Ultra Path Interconnect links. This microprocessor, which operates at 2.6 GHz with a TDP of 125 W and a turbo boost frequency of up to 3.7 GHz, supports up to 768 GiB of hexa-channel DDR4-2666 ECC memory.
-
-* **Family**: Xeon Gold
-* **Cores**: 12
-* **Threads**: 24
-* **L1I Cache**: 384 KiB, 12x32 KiB, 8-way set associative
-* **L1D Cache**: 384 KiB,	12x32 KiB, 8-way set associative, write-back
-* **L2 Cache**: 12 MiB, 12x1 MiB, 16-way set associative,	write-back
-* **L3 Cache**: 19.25 MiB, 14x1.375 MiB, 11-way set associative, write-back
-* **Instructions**: x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA3, F16C, BMI, BMI2, VT-x, VT-d, TXT, TSX, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVE, SGX, MPX, AVX-512
-* **Frequency**: 2.6 GHz
-* **Max turbo**: 3.7 GHz
-* **Process**: 14 nm
-* **TDP**: 125 W
-
-### Intel [Skylake Platinum 8153][f]
-
-Xeon Platinum 8153 is a 64-bit 16-core x86 multi-socket highest performance server microprocessor introduced by Intel in mid-2017. This chip supports up to 8-way multiprocessing. The Platinum 8153, which is based on the server configuration of the Skylake microarchitecture and is manufactured on a 14 nm+ process, sports 2 AVX-512 FMA units as well as three Ultra Path Interconnect links. This microprocessor, which operates at 2 GHz with a TDP of 125 W and a turbo boost frequency of up to 2.8 GHz, supports up to 768 GiB of hexa-channel DDR4-2666 ECC memory.
-
-* **Family**: Xeon Platinum
-* **Cores**: 16
-* **Threads**: 32
-* **L1I Cache**: 512 KiB, 16x32 KiB, 8-way set associative
-* **L1D Cache**: 512 KiB, 16x32 KiB, 8-way set associative, write-back
-* **L2 Cache**: 16 MiB, 16x1 MiB, 16-way set associative, write-back
-* **L3 Cache**: 22 MiB, 16x1.375 MiB, 11-way set associative, write-back
-* **Instructions**: x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA3, F16C, BMI, BMI2, VT-x, VT-d, TXT, TSX, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVE, SGX, MPX, AVX-512
-* **Frequency**: 2.0 GHz
-* **Max turbo**: 2.8 GHz
-* **Process**: 14 nm
-* **TDP**: 125 W
-
-## GPU Accelerator
-
-Barbora is equipped with an [NVIDIA Tesla V100-SXM2][g] accelerator.
-
-![](/it4i/barbora/img/gpu-v100.png)
-
-| NVIDIA Tesla V100-SXM2       |                                        |
-| ---------------------------- | -------------------------------------- |
-| GPU Architecture             | NVIDIA Volta                           |
-| NVIDIA Tensor Cores          | 640                                    |
-| NVIDIA CUDA® Cores           | 5120                                   |
-| Double-Precision Performance | 7.8 TFLOP/s                             |
-| Single-Precision Performance | 15.7 TFLOP/s                            |
-| Tensor Performance           | 125 TFLOP/s                             |
-| GPU Memory                   | 16 GB HBM2                              |
-| Memory Bandwidth             | 900 GB/sec                              |
-| ECC                          | Yes                                    |
-| Interconnect Bandwidth       | 300 GB/sec                              |
-| System Interface             | NVIDIA NVLink                          |
-| Form Factor                  | SXM2                                   |
-| Max Power Consumption        | 300 W                                   |
-| Thermal Solution             | Passive                                |
-| Compute APIs                 | CUDA, DirectCompute, OpenCLTM, OpenACC |
-
-[a]: https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(server)#Core
-[b]: https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client)#Pipeline
-[c]: https://en.wikichip.org/wiki/x86/avx512vnni
-[d]: https://en.wikichip.org/wiki/intel/xeon_gold/6240
-[e]: https://en.wikichip.org/wiki/intel/xeon_gold/6126
-[f]: https://en.wikichip.org/wiki/intel/xeon_platinum/8153
-[g]: https://images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet-letter-fnl-web.pdf
diff --git a/content/docs/barbora/hardware-overview.mdx b/content/docs/barbora/hardware-overview.mdx
deleted file mode 100644
index a1c4312e41b03a9cf3e260d1f18ecbcf08c85975..0000000000000000000000000000000000000000
--- a/content/docs/barbora/hardware-overview.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: "Hardware Overview"
----
-The Barbora cluster consists of 201 computational nodes named **cn[001-201]**
-of which 192 are regular compute nodes, 8 are GPU Tesla V100 accelerated nodes and 1 is a fat node.
-Each node is a powerful x86-64 computer, equipped with 36/24/128 cores
-(18-core Intel Cascade Lake 6240 / 12-core Intel Skylake Gold 6126 / 16-core Intel Skylake 8153), at least 192 GB of RAM.
-User access to the Barbora cluster is provided by two login nodes **login[1,2]**.
-The nodes are interlinked through high speed InfiniBand and Ethernet networks.
-
-The fat node is equipped with 6144 GB of memory.
-Virtualization infrastructure provides resources for running long-term servers and services in virtual mode.
-The Accelerated nodes, fat node, and virtualization infrastructure are available [upon request][a] from a PI.
-
-**There are three types of compute nodes:**
-
-* 192 compute nodes without an accelerator
-* 8 compute nodes with a GPU accelerator - 4x NVIDIA Tesla V100-SXM2
-* 1 fat node - equipped with 6144 GB of RAM
-
-[More about compute nodes][1].
-
-GPU and accelerated nodes are available upon request, see the [Resources Allocation Policy][2].
-
-All of these nodes are interconnected through fast InfiniBand and Ethernet networks.
-[More about the computing network][3].
-Every chassis provides an InfiniBand switch, marked **isw**, connecting all nodes in the chassis,
-as well as connecting the chassis to the upper level switches.
-
-User access to Barbora is provided by two login nodes: login1 and login2.
-[More about accessing the cluster][5].
-
-The parameters are summarized in the following tables:
-
-| **In general**                              |                                              |
-| ------------------------------------------- | -------------------------------------------- |
-| Primary purpose                             | High Performance Computing                   |
-| Architecture of compute nodes               | x86-64                                       |
-| Operating system                            | Linux                                        |
-| [**Compute nodes**][1]                      |                                              |
-| Total                                       | 201                                          |
-| Processor cores                             | 36/24/128 (2x18 cores/2x12 cores/8x16 cores) |
-| RAM                                         | min. 192 GB                                  |
-| Local disk drive                            | no                                           |
-| Compute network                             | InfiniBand HDR                               |
-| w/o accelerator                             | 192, cn[001-192]                             |
-| GPU accelerated                             | 8, cn[193-200]                               |
-| Fat compute nodes                           | 1, cn[201]                                   |
-| **In total**                               |                                             |
-| Total theoretical peak performance  (Rpeak) | 848.8448 TFLOP/s                             |
-| Total amount of RAM                         | 44.544 TB                                    |
-
-| Node             | Processor                               | Memory | Accelerator            |
-| ---------------- | --------------------------------------- | ------ | ---------------------- |
-| Regular node     | 2x Intel Cascade Lake 6240, 2.6 GHz     | 192GB  | -                      |
-| GPU accelerated  | 2x Intel Skylake Gold 6126, 2.6 GHz     | 192GB  | NVIDIA Tesla V100-SXM2 |
-| Fat compute node | 2x Intel Skylake Platinum 8153, 2.0 GHz | 6144GB | -                      |
-
-For more details refer to the sections [Compute Nodes][1], [Storage][4], [Visualization Servers][6], and [Network][3].
-
-[1]: compute-nodes.md
-[2]: ../general/resources-allocation-policy.md
-[3]: network.md
-[4]: storage.md
-[5]: ../general/shell-and-data-access.md
-[6]: visualization.md
-
-[a]: https://support.it4i.cz/rt
diff --git a/content/docs/barbora/introduction.mdx b/content/docs/barbora/introduction.mdx
deleted file mode 100644
index 74533dabbd2b4f76a7e4680fa5cf650896515eb8..0000000000000000000000000000000000000000
--- a/content/docs/barbora/introduction.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: "Introduction"
----
-Welcome to Barbora supercomputer cluster. The Barbora cluster consists of 201 compute nodes, totaling 7232 compute cores with 44544 GB RAM, giving over 848 TFLOP/s theoretical peak performance.
-
-Nodes are interconnected through a fully non-blocking fat-tree InfiniBand network, and are equipped with Intel Cascade Lake processors. A few nodes are also equipped with NVIDIA Tesla V100-SXM2. Read more in [Hardware Overview][1].
-
-The cluster runs with an operating system compatible with the Red Hat [Linux family][a]. We have installed a wide range of software packages targeted at different scientific domains. These packages are accessible via the [modules environment][2].
-
-The user data shared file system and job data shared file system are available to users.
-
-The [Slurm][b] workload manager provides [computing resources allocations and job execution][3].
-
-Read more on how to [apply for resources][4], [obtain login credentials][5] and [access the cluster][6].
-
-![](/it4i/barbora/img/BullSequanaX.png)
-
-[1]: hardware-overview.md
-[2]: ../environment-and-modules.md
-[3]: ../general/resources-allocation-policy.md
-[4]: ../general/applying-for-resources.md
-[5]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-[6]: ../general/shell-and-data-access.md
-
-[a]: http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
-[b]: https://slurm.schedmd.com/
diff --git a/content/docs/barbora/meta.json b/content/docs/barbora/meta.json
deleted file mode 100644
index a1d72e17e30337b99afde79d666f18d42e974574..0000000000000000000000000000000000000000
--- a/content/docs/barbora/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "title": "Barbora",
-  "pages": [
-    "compute-nodes",
-    "hardware-overview",
-    "introduction",
-    "network",
-    "storage",
-    "visualization"
-  ]
-}
diff --git a/content/docs/barbora/network.mdx b/content/docs/barbora/network.mdx
deleted file mode 100644
index e2cf0692f24bbac0ae21ee72da72ed6ced15dd65..0000000000000000000000000000000000000000
--- a/content/docs/barbora/network.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "Network"
----
-All of the compute and login nodes of Barbora are interconnected through a [InfiniBand][a] HDR 200 Gbps network and a Gigabit Ethernet network.
-
-Compute nodes and the service infrastructure is connected by the HDR100 technology
-that allows one 200 Gbps HDR port (aggregation 4x 50 Gbps) to be divided into two HDR100 ports with 100 Gbps (2x 50 Gbps) bandwidth.
-
-The cabling between the L1 and L2 layer is realized by HDR cabling,
-connecting the end devices is realized by so called Y or splitter cable (1x HRD200 - 2x HDR100).
-
-![](/it4i/barbora/img/hdr.jpg)
-
-**The computing network thus implemented fulfills the following parameters**
-
-* 100Gbps
-* Latencies less than 10 microseconds (0.6 ÎĽs end-to-end, <90ns switch hop)
-* Adaptive routing support
-* MPI communication support
-* IP protocol support (IPoIB)
-* Support for SCRATCH Data Storage and NVMe over Fabric Data Storage.
-
-## Mellanox QM8700 40-Ports Switch
-
-**Performance**
-
-* 40x HDR 200 Gb/s ports in a 1U switch
-* 80x HDR100 100 Gb/s ports in a 1U switch
-* 16 Tb/s aggregate switch throughput
-* Up to 15.8 billion messages-per-second
-* 90ns switch latency
-
-**Optimized Design**
-
-* 1+1 redundant & hot-swappable power
-* 80 gold+ and energy star certified power supplies
-* Dual-core x86 CPU
-
-**Advanced Design**
-
-* Adaptive routing
-* Collective offloads (Mellanox SHARP technology)
-* VL mapping (VL2VL)
-
-![](/it4i/barbora/img/QM8700.jpg)
-
-## BullSequana XH2000 HDRx WH40 MODULE
-
-* Mellanox QM8700 switch modified for direct liquid cooling (Atos Cold Plate), with form factor for installing the Bull Sequana XH2000 rack
-
-![](/it4i/barbora/img/XH2000.png)
-
-[a]: http://en.wikipedia.org/wiki/InfiniBand
diff --git a/content/docs/barbora/storage.mdx b/content/docs/barbora/storage.mdx
deleted file mode 100644
index 8fc87ad4fd455e36fe5514219d5b1d88cd65e2a2..0000000000000000000000000000000000000000
--- a/content/docs/barbora/storage.mdx
+++ /dev/null
@@ -1,232 +0,0 @@
----
-title: "Storage"
----
-There are three main shared file systems on the Barbora cluster: [HOME][1], [SCRATCH][2], and [PROJECT][5]. All login and compute nodes may access same data on shared file systems. Compute nodes are also equipped with local (non-shared) scratch, RAM disk, and tmp file systems.
-
-## Archiving
-
-Do not use shared filesystems as a backup for large amount of data or long-term archiving mean. The academic staff and students of research institutions in the Czech Republic can use [CESNET storage service][3], which is available via SSHFS.
-
-## Shared Filesystems
-
-Barbora computer provides three main shared filesystems, the [HOME filesystem][1], [SCRATCH filesystem][2], and the [PROJECT filesystems][5].
-
-All filesystems are accessible via the Infiniband network.
-
-The HOME and PROJECT filesystems are realized as NFS filesystem.
-
-The SCRATCH filesystem is realized as a parallel Lustre filesystem.
-
-Extended ACLs are provided on both Lustre filesystems for sharing data with other users using fine-grained control
-
-### Understanding the Lustre Filesystems
-
-A user file on the [Lustre filesystem][a] can be divided into multiple chunks (stripes) and stored across a subset of the object storage targets (OSTs) (disks). The stripes are distributed among the OSTs in a round-robin fashion to ensure load balancing.
-
-When a client (a compute node from your job) needs to create or access a file, the client queries the metadata server (MDS) and the metadata target (MDT) for the layout and location of the [file's stripes][b]. Once the file is opened and the client obtains the striping information, the MDS is no longer involved in the file I/O process. The client interacts directly with the object storage servers (OSSes) and OSTs to perform I/O operations such as locking, disk allocation, storage, and retrieval.
-
-If multiple clients try to read and write the same part of a file at the same time, the Lustre distributed lock manager enforces coherency, so that all clients see consistent results.
-
-There is default stripe configuration for Barbora Lustre filesystems. However, users can set the following stripe parameters for their own directories or files to get optimum I/O performance:
-
-1. `stripe_size` the size of the chunk in bytes; specify with k, m, or g to use units of KB, MB, or GB, respectively; the size must be an even multiple of 65,536 bytes; default is 1MB for all Barbora Lustre filesystems
-1. `stripe_count` the number of OSTs to stripe across; default is 1 for Barbora Lustre filesystems one can specify -1 to use all OSTs in the filesystem.
-1. `stripe_offset` the index of the OST where the first stripe is to be placed; default is -1 which results in random selection; using a non-default value is NOT recommended.
-
-<Callout>
-    Setting stripe size and stripe count correctly for your needs may significantly affect the I/O performance.
-</Callout>
-
-Use the `lfs getstripe` command for getting the stripe parameters. Use `lfs setstripe` for setting the stripe parameters to get optimal I/O performance. The correct stripe setting depends on your needs and file access patterns.
-
-```console
-$ lfs getstripe dir|filename
-$ lfs setstripe -s stripe_size -c stripe_count -o stripe_offset dir|filename
-```
-
-Example:
-
-```console
-$ lfs getstripe /scratch/projname
-$ lfs setstripe -c -1 /scratch/projname
-$ lfs getstripe /scratch/projname
-```
-
-In this example, we view the current stripe setting of the /scratch/projname/ directory. The stripe count is changed to all OSTs and verified. All files written to this directory will be striped over 5 OSTs
-
-Use `lfs check osts` to see the number and status of active OSTs for each filesystem on Barbora. Learn more by reading the man page:
-
-```console
-$ lfs check osts
-$ man lfs
-```
-
-### Hints on Lustre Stripping
-
-<Callout>
-    Increase the `stripe_count` for parallel I/O to the same file.
-</Callout>
-
-When multiple processes are writing blocks of data to the same file in parallel, the I/O performance for large files will improve when the `stripe_count` is set to a larger value. The stripe count sets the number of OSTs to which the file will be written. By default, the stripe count is set to 1. While this default setting provides for efficient access of metadata (for example to support the `ls -l` command), large files should use stripe counts of greater than 1. This will increase the aggregate I/O bandwidth by using multiple OSTs in parallel instead of just one. A rule of thumb is to use a stripe count approximately equal to the number of gigabytes in the file.
-
-Another good practice is to make the stripe count be an integral factor of the number of processes performing the write in parallel, so that you achieve load balance among the OSTs. For example, set the stripe count to 16 instead of 15 when you have 64 processes performing the writes.
-
-<Callout>
-    Using a large stripe size can improve performance when accessing very large files
-</Callout>
-
-Large stripe size allows each client to have exclusive access to its own part of a file. However, it can be counterproductive in some cases if it does not match your I/O pattern. The choice of stripe size has no effect on a single-stripe file.
-
-Read more [here][c].
-
-### Lustre on Barbora
-
-The architecture of Lustre on Barbora is composed of two metadata servers (MDS) and two data/object storage servers (OSS).
-
- Configuration of the SCRATCH storage
-
-* 2x Metadata server
-* 2x Object storage server
-* Lustre object storage
-  * One disk array NetApp E2800
-  * 54x 8TB 10kRPM 2,5” SAS HDD
-  * 5 x RAID6(8+2) OST Object storage target
-  * 4 hotspare
-* Lustre metadata storage
-  * One disk array NetApp E2600
-  * 12 300GB SAS 15krpm disks
-  * 2 groups of 5 disks in RAID5 Metadata target
-  * 2 hot-spare disks
-
-### HOME File System
-
-The HOME filesystem is mounted in directory /home. Users home directories /home/username reside on this filesystem. Accessible capacity is 28TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 25GB per user. Should 25GB prove insufficient, contact [support][d], the quota may be lifted upon request.
-
-<Callout>
-    The HOME filesystem is intended for preparation, evaluation, processing and storage of data generated by active Projects.
-</Callout>
-
-The HOME filesystem should not be used to archive data of past Projects or other unrelated data.
-
-The files on HOME filesystem will not be deleted until the end of the [user's lifecycle][4].
-
-The filesystem is backed up, so that it can be restored in case of a catastrophic failure resulting in significant data loss. However, this backup is not intended to restore old versions of user data or to restore (accidentally) deleted files.
-
-| HOME filesystem      |                 |
-| -------------------- | --------------- |
-| Accesspoint          | /home/username  |
-| Capacity             | 28TB           |
-| Throughput           | 1GB/s          |
-| User space quota     | 25GB           |
-| User inodes quota    | 500K           |
-| Protocol             | NFS             |
-
-### SCRATCH File System
-
-The SCRATCH is realized as Lustre parallel file system and is available from all login and computational nodes. There are 5 OSTs dedicated for the SCRATCH file system.
-
-The SCRATCH filesystem is mounted in the `/scratch/project/PROJECT_ID` directory created automatically with the `PROJECT_ID` project. Accessible capacity is 310TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 10TB per user. The purpose of this quota is to prevent runaway programs from filling the entire filesystem and deny service to other users. Should 10TB prove insufficient, contact [support][d], the quota may be lifted upon request.
-
-<Callout>
-    The Scratch filesystem is intended for temporary scratch data generated during the calculation as well as for high-performance access to input and output files. All I/O intensive jobs must use the SCRATCH filesystem as their working directory.
-
-    Users are advised to save the necessary data from the SCRATCH filesystem to HOME filesystem after the calculations and clean up the scratch files.
-</Callout>
-
-<Callout type=warn>
-    Files on the SCRATCH filesystem that are **not accessed for more than 90 days** will be automatically **deleted**.
-</Callout>
-
-The SCRATCH filesystem is realized as Lustre parallel filesystem and is available from all login and computational nodes. Default stripe size is 1MB, stripe count is 1. There are 5 OSTs dedicated for the SCRATCH filesystem.
-
-<Callout>
-    Setting stripe size and stripe count correctly for your needs may significantly affect the I/O performance.
-</Callout>
-
-| SCRATCH filesystem   |           |
-| -------------------- | --------- |
-| Mountpoint           | /scratch  |
-| Capacity             | 310TB     |
-| Throughput           | 5GB/s     |
-| Throughput [Burst]   | 38GB/s    |
-| User space quota     | 10TB      |
-| User inodes quota    | 10M       |
-| Default stripe size  | 1MB       |
-| Default stripe count | 1         |
-| Number of OSTs       | 5         |
-
-### PROJECT File System
-
-The PROJECT data storage is a central storage for projects'/users' data on IT4Innovations that is accessible from all clusters.
-For more information, see the [PROJECT storage][6] section.
-
-### Disk Usage and Quota Commands
-
-Disk usage and user quotas can be checked and reviewed using the `it4ifsusage` command. You can see an example output [here][9].
-
-To have a better understanding of where the space is exactly used, you can use following command:
-
-```console
-$ du -hs dir
-```
-
-Example for your HOME directory:
-
-```console
-$ cd /home
-$ du -hs * .[a-zA-z0-9]* | grep -E "[0-9]*G|[0-9]*M" | sort -hr
-258M     cuda-samples
-15M      .cache
-13M      .mozilla
-5,5M     .eclipse
-2,7M     .idb_13.0_linux_intel64_app
-```
-
-This will list all directories with MegaBytes or GigaBytes of consumed space in your actual (in this example HOME) directory. List is sorted in descending order from largest to smallest files/directories.
-
-### Extended ACLs
-
-Extended ACLs provide another security mechanism beside the standard POSIX ACLs, which are defined by three entries (for owner/group/others). Extended ACLs have more than the three basic entries. In addition, they also contain a mask entry and may contain any number of named user and named group entries.
-
-ACLs on a Lustre file system work exactly like ACLs on any Linux file system. They are manipulated with the standard tools in the standard manner.
-
-For more information, see the [Access Control List][7] section of the documentation.
-
-## Local Filesystems
-
-### TMP
-
-Each node is equipped with local /tmp RAMDISK directory. The /tmp directory should be used to work with  temporary files. Old files in /tmp directory are automatically purged.
-
-### SCRATCH and RAMDISK
-
-Each node is equipped with RAMDISK storage accessible at /tmp, /lscratch and /ramdisk. The RAMDISK capacity is 180GB. Data placed on RAMDISK occupies the node RAM memory of 192GB total. The RAMDISK directory should only be used to work with  temporary files, where very high throughput or I/O performance is required. Old files in RAMDISK directory are automatically purged with job's end.
-
-#### Global RAM Disk
-
-The Global RAM disk spans the local RAM disks of all the allocated nodes within a single job.
-For more information, see the [Job Features][8] section.
-
-## Summary
-
-| Mountpoint | Usage                     | Protocol | Net Capacity     | Throughput                     | Limitations | Access                   | Services                        |
-| ---------- | ------------------------- | -------- | --------------   | ------------------------------ | ----------- | -----------------------  | ------------------------------- |
-| /home      | home directory            | NFS      | 28TB             | 1GB/s                          | Quota 25GB  | Compute and login nodes  | backed up                       |
-| /scratch   | scratch temoporary        | Lustre   | 310TB            | 5GB/s, 30GB/s burst buffer     | Quota 10TB  | Compute and login nodes  |files older 90 days autoremoved |
-| /lscratch  | local scratch ramdisk     | tmpfs    | 180GB           | 130GB/s                         | none        | Node local               | auto purged after job end       |
-
-[1]: #home-file-system
-[2]: #scratch-file-system
-[3]: ../storage/cesnet-storage.md
-[4]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-[5]: #project-file-system
-[6]: ../storage/project-storage.md
-[7]: ../storage/standard-file-acl.md
-[8]: ../job-features.md#global-ram-disk
-[9]: ../storage/project-storage.md#project-quotas
-
-[a]: http://www.nas.nasa.gov
-[b]: http://www.nas.nasa.gov/hecc/support/kb/Lustre_Basics_224.html#striping
-[c]: http://doc.lustre.org/lustre_manual.xhtml#managingstripingfreespace
-[d]: https://support.it4i.cz/rt
-[e]: http://man7.org/linux/man-pages/man1/nfs4_setfacl.1.html
diff --git a/content/docs/barbora/visualization.mdx b/content/docs/barbora/visualization.mdx
deleted file mode 100644
index cb335d2263ffe6fd6a93749122edd6daea304580..0000000000000000000000000000000000000000
--- a/content/docs/barbora/visualization.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: "Visualization Servers"
----
-Remote visualization with [VirtualGL][3] is available on two nodes.
-
-* 2 nodes
-* 32 cores in total
-* 2x Intel Skylake Gold 6130 – 16-core@2,1 GHz processors per node
-* 192 GB DDR4 2667 MT/s of physical memory per node (12x 16 GB)
-* BullSequana X450-E5 blade servers
-* 2150.4 GFLOP/s per compute node
-* 1x 1 GB Ethernet and 2x 10 GB Ethernet
-* 1x HDR100 IB port
-* 2x SSD 240 GB
-
-![](/it4i/barbora/img/bullsequanaX450-E5.png)
-
-## NVIDIA Quadro P6000
-
-* GPU Memory: 24 GB GDDR5X
-* Memory Interface: 384-bit
-* Memory Bandwidth: Up to 432 GB/s
-* NVIDIA CUDA® Cores: 3840
-* System Interface: PCI Express 3.0 x16
-* Max Power Consumption: 250 W
-* Thermal Solution: Active
-* Form Factor: 4.4”H x 10.5” L, Dual Slot, Full Height
-* Display Connectors: 4x DP 1.4 + DVI-D DL
-* Max Simultaneous Displays: 4 direct, 4 DP1.4 Multi-Stream
-* Max DP 1.4 Resolution: 7680 x 4320 @ 30 Hz
-* Max DVI-D DL Resolution: 2560 x 1600 @ 60 Hz
-* Graphics APIs: Shader Model 5.1, OpenGL 4.5, DirectX 12.0, Vulkan 1.0,
-* Compute APIs: CUDA, DirectCompute, OpenCL™
-* Floating-Point Performance-Single Precision: 12.6 TFLOP/s, Peak
-
-![](/it4i/barbora/img/quadrop6000.jpg)
-
-## Resource Allocation Policy
-
-| queue | active project | project resources | nodes | min ncpus | priority | authorization | walltime |
-|-------|----------------|-------------------|-------|-----------|----------|---------------|----------|
-| qviz Visualization queue | yes | none required | 2 | 4 | 150 | no | 1h/8h |
-
-## References
-
-* [Graphical User Interface][1]
-* [VPN Access][2]
-
-[1]: ../general/shell-and-data-access.md#graphical-user-interface
-[2]: ../general/shell-and-data-access.md#vpn-access
-[3]: ../software/viz/vgl.md
diff --git a/content/docs/cloud/einfracz-cloud.mdx b/content/docs/cloud/einfracz-cloud.mdx
deleted file mode 100644
index 94dac82ef2400de30ed62765c4156628a0de3605..0000000000000000000000000000000000000000
--- a/content/docs/cloud/einfracz-cloud.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: "e-INFRA CZ Cloud Ostrava"
----
-Ostrava cloud consists of 22 nodes from the [Karolina][a] supercomputer.
-The cloud site is built on top of OpenStack,
-which is a free open standard cloud computing platform.
-
-## Access
-
-To acces the cloud you must:
-
-* have an [e-Infra CZ account][3],
-* be a member of an [active project][b].
-
-The dashboard is available at [https://ostrava.openstack.cloud.e-infra.cz/][6].
-
-You can specify resources/quotas for your project.
-For more information, see the [Quota Limits][5] section.
-
-## Creating First Instance
-
-To create your first VM instance, follow the [e-INFRA CZ guide][4].
-Note that the guide is similar for clouds in Brno and Ostrava,
-so make sure that you follow steps for Ostrava cloud where applicable.
-
-### Process Automatization
-
-You can automate the process using Terraform or Openstack.
-
-#### Terraform
-
-Prerequisites:
-
-* Linux/Mac/WSL terminal BASH shell
-* installed Terraform and sshuttle
-* downloaded [application credentials][9] from OpenStack Horizon dashboard and saved as a `project_openrc.sh.inc` text file
-
-Follow the guide: [https://code.it4i.cz/terraform][8]
-
-#### OpenStack
-
-Prerequisites:
-
-* Linux/Mac/WSL terminal BASH shell
-* installed [OpenStack client][7]
-
-Follow the guide: [https://code.it4i.cz/commandline][10]
-
-Run commands:
-
-```console
-source project_openrc.sh.inc
-```
-
-```console
-./cmdline-demo.sh basic-infrastructure-1
-```
-
-## Technical Reference
-
-For the list of deployed OpenStack services, see the [list of components][1].
-
-More information can be found on the [e-INFRA CZ website][2].
-
-[1]: https://docs.e-infra.cz/compute/openstack/technical-reference/ostrava-site/openstack-components/
-[2]: https://docs.e-infra.cz/compute/openstack/technical-reference/ostrava-site/
-[3]: https://docs.e-infra.cz/account/
-[4]: https://docs.e-infra.cz/compute/openstack/getting-started/creating-first-infrastructure/
-[5]: https://docs.e-infra.cz/compute/openstack/technical-reference/ostrava-g2-site/quota-limits/
-[6]: https://ostrava.openstack.cloud.e-infra.cz/
-[7]: https://docs.fuga.cloud/how-to-use-the-openstack-cli-tools-on-linux
-[8]: https://code.it4i.cz/dvo0012/infrastructure-by-script/-/tree/main/openstack-infrastructure-as-code-automation/clouds/g2/ostrava/general/terraform
-[9]: https://docs.e-infra.cz/compute/openstack/how-to-guides/obtaining-api-key/
-[10]: https://code.it4i.cz/dvo0012/infrastructure-by-script/-/tree/main/openstack-infrastructure-as-code-automation/clouds/g2/ostrava/general/commandline
-
-[a]: ../karolina/introduction.md
-[b]: ../general/access/project-access.md
diff --git a/content/docs/cloud/it4i-cloud.mdx b/content/docs/cloud/it4i-cloud.mdx
deleted file mode 100644
index 8d34f7eb7a0dd4e43ca74b7bd0476fe2a7365208..0000000000000000000000000000000000000000
--- a/content/docs/cloud/it4i-cloud.mdx
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: "IT4I Cloud"
----
-IT4I cloud consists of 14 nodes from the [Karolina][a] supercomputer.
-The cloud site is built on top of OpenStack,
-which is a free open standard cloud computing platform.
-
-<Callout>
-    The guide describes steps for personal projects.<br>
-    Some steps may differ for large projects.<br>
-    For large project, apply for resources to the [Allocation Committee][11].
-</Callout>
-
-## Access
-
-To access the cloud you must be a member of an active EUROHPC project,
-or fall into the **Access Category B**, i.e. [Access For Thematic HPC Resource Utilisation][11].
-
-A personal OpenStack project is required. Request one by contacting [IT4I Support][12].
-
-The dashboard is available at [https://cloud.it4i.cz][6].
-
-You can see quotas set for the IT4I Cloud in the [Quota Limits][f] section.
-
-## Creating First Instance
-
-To create your first VM instance, follow the steps below:
-
-### Log In
-
-Go to [https://cloud.it4i.cz][6], enter your LDAP username and password and choose the `IT4I_LDAP` domain. After you sign in, you will be redirected to the dashboard.
-
-![](/it4i/img/login.png)
-
-### Create Key Pair
-
-SSH key is required for remote access to your instance.
-
-1. Go to **Project > Compute > Key Pairs** and click the **Create Key Pair** button.
-
-    ![](/it4i/img/keypairs.png)
-
-1. In the Create Key Pair window, name your key pair, select `SSH Key` for key type and confirm by clicking Create Key Pair.
-
-    ![](/it4i/img/keypairs1.png)
-
-1. Download and manage the private key according to your operating system.
-
-### Update Security Group
-
-To be able to remotely access your VM instance, you have to allow access in the security group.
-
-1. Go to **Project > Network > Security Groups** and click on **Manage Rules**, for the default security group.
-
-    ![](/it4i/img/securityg.png)
-
-1. Click on **Add Rule**, choose **SSH**, and leave the remaining fields unchanged.
-
-    ![](/it4i/img/securityg1.png)
-
-### Create VM Instance
-
-1. In **Compute > Instances**, click **Launch Instance**.
-
-    ![](/it4i/img/instance.png)
-
-1. Choose Instance Name, Description, and number of instances. Click **Next**.
-
-    ![](/it4i/img/instance1.png)
-
-1. Choose an image from which to boot the instance. Choose to delete the volume after instance delete. Click **Next**.
-
-    ![](/it4i/img/instance2.png)
-
-1. Choose the hardware resources of the instance by selecting a flavor. Additional volumes for data can be attached later on. Click **Next**.
-
-    ![](/it4i/img/instance3.png)
-
-1. Select the network and continue to **Security Groups**.
-
-    ![](/it4i/img/instance4.png)
-
-1. Allocate the security group with SSH rule that you added in the [Update Security Group](it4i-cloud.md#update-security-group) step. Then click **Next** to go to the **Key Pair**.
-
-    ![](/it4i/img/securityg2.png)
-
-1. Select the key that you created in the [Create Key Pair][g] section and launch the instance.
-
-    ![](/it4i/img/instance5.png)
-
-### Associate Floating IP
-
-1. Click on the **Associate** button next to the floating IP.
-
-    ![](/it4i/img/floatingip.png)
-
-1. Select Port to be associated with the instance, then click the **Associate** button.
-
-Now you can join the VM using your preferred SSH client.
-
-## Process Automatization
-
-You can automate the process using Openstack.
-
-### OpenStack
-
-Prerequisites:
-
-* Linux/Mac/WSL terminal BASH shell
-* installed [OpenStack client][7]
-
-Follow the guide: [https://code.it4i.cz/commandline][10]
-
-Run commands:
-
-```console
-source project_openrc.sh.inc
-```
-
-```console
-./cmdline-demo.sh basic-infrastructure-1
-```
-
-[1]: https://docs.e-infra.cz/compute/openstack/technical-reference/ostrava-site/openstack-components/
-[2]: https://docs.e-infra.cz/compute/openstack/technical-reference/ostrava-site/
-[3]: https://docs.e-infra.cz/account/
-[4]: https://docs.e-infra.cz/compute/openstack/getting-started/creating-first-infrastructure/
-[5]: https://docs.e-infra.cz/compute/openstack/technical-reference/ostrava-g2-site/quota-limits/
-[6]: https://cloud.it4i.cz
-[7]: https://docs.fuga.cloud/how-to-use-the-openstack-cli-tools-on-linux
-[8]: https://code.it4i.cz/dvo0012/infrastructure-by-script/-/tree/main/openstack-infrastructure-as-code-automation/clouds/g2/ostrava/general/terraform
-[9]: https://docs.e-infra.cz/compute/openstack/how-to-guides/obtaining-api-key/
-[10]: https://code.it4i.cz/dvo0012/infrastructure-by-script/-/tree/main/openstack-infrastructure-as-code-automation/clouds/g2/ostrava/general/commandline
-[11]: https://www.it4i.cz/en/for-users/computing-resources-allocation
-[12]: mailto:support@it4i.cz @@
-
-[a]: ../karolina/introduction.md
-[b]: ../general/access/project-access.md
-[c]: einfracz-cloud.md
-[d]: ../general/accessing-the-clusters/vpn-access.md
-[e]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-[f]: it4i-quotas.md
-[g]: it4i-cloud.md#create-key-pair
-
-
diff --git a/content/docs/cloud/it4i-quotas.mdx b/content/docs/cloud/it4i-quotas.mdx
deleted file mode 100644
index 56558fe46eb90b7ffdbe61a8e5c45a1d41217654..0000000000000000000000000000000000000000
--- a/content/docs/cloud/it4i-quotas.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "IT4I Cloud Quotas"
----
-| Resource                              | Quota |
-|---------------------------------------|-------|
-| Instances                             |    10 |
-| VCPUs                                 |    20 |
-| RAM                                   |  32GB |
-| Volumes                               |    20 |
-| Volume Snapshots                      |    12 |
-| Volume Storage                        |   500 |
-| Floating-IPs                          |     1 |
-| Security Groups                       |    10 |
-| Security Group Rules                  |   100 |
-| Networks                              |     1 |
-| Ports                                 |    10 |
-| Routers                               |     1 |
-| Backups                               |    12 |
-| Groups                                |    10 |
-| rbac_policies                         |    10 |
-| Subnets                               |     1 |
-| Subnet_pools                          |    -1 |
-| Fixed-ips                             |    -1 |
-| Injected-file-size                    | 10240 |
-| Injected-path-size                    |   255 |
-| Injected-files                        |     5 |
-| Key-pairs                             |   100 |
-| Properties                            |   128 |
-| Server-groups                         |    10 |
-| Server-group-members                  |    10 |
-| Backup-gigabytes                      |  1002 |
-| Per-volume-gigabytes                  |    -1 |
diff --git a/content/docs/cloud/meta.json b/content/docs/cloud/meta.json
deleted file mode 100644
index 9808c48466c15abaa1c76d5116e95b83d27c90d3..0000000000000000000000000000000000000000
--- a/content/docs/cloud/meta.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "title": "Cloud",
-  "pages": [
-    "einfracz-cloud",
-    "it4i-cloud",
-    "it4i-quotas"
-  ]
-}
diff --git a/content/docs/cs/accessing.mdx b/content/docs/cs/accessing.mdx
deleted file mode 100644
index 9fffeed863c0be8bc7fbaf3e73c4a4b83718c45f..0000000000000000000000000000000000000000
--- a/content/docs/cs/accessing.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "Accessing Complementary Systems"
----
-Complementary systems can be accessed at `login.cs.it4i.cz`
-by any user with an active account assigned to an active project.
-
-**SSH is required** to access Complementary systems.
-
-## Data Storage
-
-### Home
-
-The `/home` file system is shared across all Complementary systems. Note that this file system is **not** shared with the file system on IT4I clusters.
-
-### Scratch
-
-There are local `/lscratch` storages on individual nodes.
-
-### PROJECT
-
-Complementary systems are connected to the [PROJECT storage][1].
-
-[1]: ../storage/project-storage.md
diff --git a/content/docs/cs/guides/amd.mdx b/content/docs/cs/guides/amd.mdx
deleted file mode 100644
index 11241b5a407bbb24afbb128ad44b9660d68351dd..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/amd.mdx
+++ /dev/null
@@ -1,560 +0,0 @@
----
-title: "Using AMD Partition"
----
-For testing your application on the AMD partition,
-you need to prepare a job script for that partition or use the interactive job:
-
-```console
-salloc -N 1 -c 64 -A PROJECT-ID -p p03-amd --gres=gpu:4 --time=08:00:00
-```
-
-where:
-
-- `-N 1` means allocating one server,
-- `-c 64` means allocating 64 cores,
-- `-A` is your project,
-- `-p p03-amd` is AMD partition,
-- `--gres=gpu:4` means allocating all 4 GPUs of the node,
-- `--time=08:00:00` means allocation for 8 hours.
-
-You have also an option to allocate subset of the resources only,
-by reducing the `-c` and `--gres=gpu` to smaller values.
-
-```console
-salloc -N 1 -c 48 -A PROJECT-ID -p p03-amd --gres=gpu:3 --time=08:00:00
-salloc -N 1 -c 32 -A PROJECT-ID -p p03-amd --gres=gpu:2 --time=08:00:00
-salloc -N 1 -c 16 -A PROJECT-ID -p p03-amd --gres=gpu:1 --time=08:00:00
-```
-
-<Callout>
-    p03-amd01 server has hyperthreading **enabled** therefore htop shows 128 cores.<br>
-    p03-amd02 server has hyperthreading **disabled** therefore htop shows 64 cores.
-</Callout>
-
-## Using AMD MI100 GPUs
-
-The AMD GPUs can be programmed using the [ROCm open-source platform](https://docs.amd.com/).
-
-ROCm and related libraries are installed directly in the system.
-You can find it here:
-
-```console
-/opt/rocm/
-```
-
-The actual version can be found here:
-
-```console
-[user@p03-amd02.cs]$ cat /opt/rocm/.info/version
-
-5.5.1-74
-```
-
-## Basic HIP Code
-
-The first way how to program AMD GPUs is to use HIP.
-
-The basic vector addition code in HIP looks like this.
-This a full code and you can copy and paste it into a file.
-For this example we use `vector_add.hip.cpp`.
-
-```console
-#include <cstdio>
-#include <hip/hip_runtime.h>
-
-
-
-__global__ void add_vectors(float * x, float * y, float alpha, int count)
-{
-    long long idx = blockIdx.x * blockDim.x + threadIdx.x;
-
-    if(idx < count)
-        y[idx] += alpha * x[idx];
-}
-
-int main()
-{
-    // number of elements in the vectors
-    long long count = 10;
-
-    // allocation and initialization of data on the host (CPU memory)
-    float * h_x = new float[count];
-    float * h_y = new float[count];
-    for(long long i = 0; i < count; i++)
-    {
-        h_x[i] = i;
-        h_y[i] = 10 * i;
-    }
-
-    // print the input data
-    printf("X:");
-    for(long long i = 0; i < count; i++)
-        printf(" %7.2f", h_x[i]);
-    printf("\n");
-    printf("Y:");
-    for(long long i = 0; i < count; i++)
-        printf(" %7.2f", h_y[i]);
-    printf("\n");
-
-    // allocation of memory on the GPU device
-    float * d_x;
-    float * d_y;
-    hipMalloc(&d_x, count * sizeof(float));
-    hipMalloc(&d_y, count * sizeof(float));
-
-    // copy the data from host memory to the device
-    hipMemcpy(d_x, h_x, count * sizeof(float), hipMemcpyHostToDevice);
-    hipMemcpy(d_y, h_y, count * sizeof(float), hipMemcpyHostToDevice);
-
-    int tpb = 256;
-    int bpg = (count - 1) / tpb + 1;
-    // launch the kernel on the GPU
-    add_vectors<<< bpg, tpb >>>(d_x, d_y, 100, count);
-    // hipLaunchKernelGGL(add_vectors, bpg, tpb, 0, 0, d_x, d_y, 100, count);
-
-    // copy the result back to CPU memory
-    hipMemcpy(h_y, d_y, count * sizeof(float), hipMemcpyDeviceToHost);
-
-    // print the results
-    printf("Y:");
-    for(long long i = 0; i < count; i++)
-        printf(" %7.2f", h_y[i]);
-    printf("\n");
-
-    // free the allocated memory
-    hipFree(d_x);
-    hipFree(d_y);
-    delete[] h_x;
-    delete[] h_y;
-
-    return 0;
-}
-```
-
-To compile the code we use `hipcc` compiler.
-For compiler information, use `hipcc --version`:
-
-```console
-[user@p03-amd02.cs ~]$ hipcc --version
-
-HIP version: 5.5.30202-eaf00c0b
-AMD clang version 16.0.0 (https://github.com/RadeonOpenCompute/llvm-project roc-5.5.1 23194 69ef12a7c3cc5b0ccf820bc007bd87e8b3ac3037)
-Target: x86_64-unknown-linux-gnu
-Thread model: posix
-InstalledDir: /opt/rocm-5.5.1/llvm/bin
-```
-
-The code is compiled a follows:
-
-```console
-hipcc vector_add.hip.cpp -o vector_add.x
-```
-
-The correct output of the code is:
-
-```console
-[user@p03-amd02.cs ~]$ ./vector_add.x
-X:    0.00    1.00    2.00    3.00    4.00    5.00    6.00    7.00    8.00    9.00
-Y:    0.00   10.00   20.00   30.00   40.00   50.00   60.00   70.00   80.00   90.00
-Y:    0.00  110.00  220.00  330.00  440.00  550.00  660.00  770.00  880.00  990.00
-```
-
-More details on HIP programming is in the [HIP Programming Guide](https://docs.amd.com/bundle/HIP-Programming-Guide-v5.5/page/Introduction_to_HIP_Programming_Guide.html)
-
-## HIP and ROCm Libraries
-
-The list of official AMD libraries can be found [here](https://docs.amd.com/category/libraries).
-
-The libraries are installed in the same directory is ROCm
-
-```console
-/opt/rocm/
-```
-
-Following libraries are installed:
-
-```console
-drwxr-xr-x  4 root root   44 Jun  7 14:09 hipblas
-drwxr-xr-x  3 root root   17 Jun  7 14:09 hipblas-clients
-drwxr-xr-x  3 root root   29 Jun  7 14:09 hipcub
-drwxr-xr-x  4 root root   44 Jun  7 14:09 hipfft
-drwxr-xr-x  3 root root   25 Jun  7 14:09 hipfort
-drwxr-xr-x  4 root root   32 Jun  7 14:09 hiprand
-drwxr-xr-x  4 root root   44 Jun  7 14:09 hipsolver
-drwxr-xr-x  4 root root   44 Jun  7 14:09 hipsparse
-```
-
-and
-
-```console
-drwxr-xr-x  4 root root   32 Jun  7 14:09 rocalution
-drwxr-xr-x  4 root root   44 Jun  7 14:09 rocblas
-drwxr-xr-x  4 root root   44 Jun  7 14:09 rocfft
-drwxr-xr-x  4 root root   32 Jun  7 14:09 rocprim
-drwxr-xr-x  4 root root   32 Jun  7 14:09 rocrand
-drwxr-xr-x  4 root root   44 Jun  7 14:09 rocsolver
-drwxr-xr-x  4 root root   44 Jun  7 14:09 rocsparse
-drwxr-xr-x  3 root root   29 Jun  7 14:09 rocthrust
-```
-
-## Using HipBlas Library
-
-The basic code in HIP that uses hipBlas looks like this.
-This a full code and you can copy and paste it into a file.
-For this example we use `hipblas.hip.cpp`.
-
-```console
-#include <cstdio>
-#include <vector>
-#include <cstdlib>
-#include <hip/hip_runtime.h>
-#include <hipblas/hipblas.h>
-
-
-int main()
-{
-    srand(9600);
-
-    int width = 10;
-    int height = 7;
-    int elem_count = width * height;
-
-
-    // initialization of data in CPU memory
-
-    float * h_A;
-    hipHostMalloc(&h_A, elem_count * sizeof(*h_A));
-    for(int i = 0; i < elem_count; i++)
-        h_A[i] = (100.0f * rand()) / (float)RAND_MAX;
-    printf("Matrix A:\n");
-    for(int r = 0; r < height; r++)
-    {
-        for(int c = 0; c < width; c++)
-            printf("%6.3f  ", h_A[r + height * c]);
-        printf("\n");
-    }
-
-    float * h_x;
-    hipHostMalloc(&h_x, width * sizeof(*h_x));
-    for(int i = 0; i < width; i++)
-        h_x[i] = (100.0f * rand()) / (float)RAND_MAX;
-    printf("vector x:\n");
-    for(int i = 0; i < width; i++)
-        printf("%6.3f  ", h_x[i]);
-    printf("\n");
-
-    float * h_y;
-    hipHostMalloc(&h_y, height * sizeof(*h_y));
-    for(int i = 0; i < height; i++)
-        h_x[i] = 100.0f + i;
-    printf("vector y:\n");
-    for(int i = 0; i < height; i++)
-        printf("%6.3f  ", h_x[i]);
-    printf("\n");
-
-
-    // initialization of data in GPU memory
-
-    float * d_A;
-    size_t pitch_A;
-    hipMallocPitch((void**)&d_A, &pitch_A, height * sizeof(*d_A), width);
-    hipMemcpy2D(d_A, pitch_A, h_A, height * sizeof(*d_A), height * sizeof(*d_A), width, hipMemcpyHostToDevice);
-    int lda = pitch_A / sizeof(float);
-
-    float * d_x;
-    hipMalloc(&d_x, width * sizeof(*d_x));
-    hipMemcpy(d_x, h_x, width * sizeof(*d_x), hipMemcpyHostToDevice);
-
-    float * d_y;
-    hipMalloc(&d_y, height * sizeof(*d_y));
-    hipMemcpy(d_y, h_y, height * sizeof(*d_y), hipMemcpyHostToDevice);
-
-
-    // basic calculation of the result on the CPU
-
-    float alpha=2.0f, beta=10.0f;
-
-    for(int i = 0; i < height; i++)
-        h_y[i] *= beta;
-    for(int r = 0; r < height; r++)
-        for(int c = 0; c < width; c++)
-            h_y[r] += alpha * h_x[c] * h_A[r + height * c];
-    printf("result y CPU:\n");
-    for(int i = 0; i < height; i++)
-        printf("%6.3f  ", h_y[i]);
-    printf("\n");
-
-
-    // calculation of the result on the GPU using the hipBLAS library
-
-    hipblasHandle_t blas_handle;
-    hipblasCreate(&blas_handle);
-
-    hipblasSgemv(blas_handle, HIPBLAS_OP_N, height, width, &alpha, d_A, lda, d_x, 1, &beta, d_y, 1);
-    hipDeviceSynchronize();
-
-    hipblasDestroy(blas_handle);
-
-
-    // copy the GPU result to CPU memory and print it
-    hipMemcpy(h_y, d_y, height * sizeof(*d_y), hipMemcpyDeviceToHost);
-    printf("result y BLAS:\n");
-    for(int i = 0; i < height; i++)
-        printf("%6.3f  ", h_y[i]);
-    printf("\n");
-
-
-    // free all the allocated memory
-    hipFree(d_A);
-    hipFree(d_x);
-    hipFree(d_y);
-    hipHostFree(h_A);
-    hipHostFree(h_x);
-    hipHostFree(h_y);
-
-    return 0;
-}
-```
-
-The code compilation can be done as follows:
-
-```console
-hipcc hipblas.hip.cpp -o hipblas.x -lhipblas
-```
-
-## Using HipSolver Library
-
-The basic code in HIP that uses hipSolver looks like this.
-This a full code and you can copy and paste it into a file.
-For this example we use `hipsolver.hip.cpp`.
-
-```console
-#include <cstdio>
-#include <vector>
-#include <cstdlib>
-#include <algorithm>
-#include <hipsolver/hipsolver.h>
-#include <hipblas/hipblas.h>
-
-int main()
-{
-    srand(63456);
-
-    int size = 10;
-
-
-    // allocation and initialization of data on host. this time we use std::vector
-
-    int h_A_ld = size;
-    int h_A_pitch = h_A_ld * sizeof(float);
-    std::vector<float> h_A(size * h_A_ld);
-    for(int r = 0; r < size; r++)
-        for(int c = 0; c < size; c++)
-            h_A[r * h_A_ld + c] = (10.0 * rand()) / RAND_MAX;
-    printf("System matrix A:\n");
-    for(int r = 0; r < size; r++)
-    {
-        for(int c = 0; c < size; c++)
-            printf("%6.3f  ", h_A[r * h_A_ld + c]);
-        printf("\n");
-    }
-
-    std::vector<float> h_b(size);
-    for(int i = 0; i < size; i++)
-        h_b[i] = (10.0 * rand()) / RAND_MAX;
-    printf("RHS vector b:\n");
-    for(int i = 0; i < size; i++)
-        printf("%6.3f  ", h_b[i]);
-    printf("\n");
-
-    std::vector<float> h_x(size);
-
-
-    // memory allocation on the device and initialization
-
-    float * d_A;
-    size_t d_A_pitch;
-    hipMallocPitch((void**)&d_A, &d_A_pitch, size, size);
-    int d_A_ld = d_A_pitch / sizeof(float);
-
-    float * d_b;
-    hipMalloc(&d_b, size * sizeof(float));
-
-    float * d_x;
-    hipMalloc(&d_x, size * sizeof(float));
-
-    int * d_piv;
-    hipMalloc(&d_piv, size * sizeof(int));
-
-    int * info;
-    hipMallocManaged(&info, sizeof(int));
-
-    hipMemcpy2D(d_A, d_A_pitch, h_A.data(), h_A_pitch, size * sizeof(float), size, hipMemcpyHostToDevice);
-    hipMemcpy(d_b, h_b.data(), size * sizeof(float), hipMemcpyHostToDevice);
-
-
-    // solving the system using hipSOLVER
-
-    hipsolverHandle_t solverHandle;
-    hipsolverCreate(&solverHandle);
-
-    int wss_trf, wss_trs; // wss = WorkSpace Size
-    hipsolverSgetrf_bufferSize(solverHandle, size, size, d_A, d_A_ld, &wss_trf);
-    hipsolverSgetrs_bufferSize(solverHandle, HIPSOLVER_OP_N, size, 1, d_A, d_A_ld, d_piv, d_b, size, &wss_trs);
-    float * workspace;
-    int wss = std::max(wss_trf, wss_trs);
-    hipMalloc(&workspace, wss * sizeof(float));
-
-    hipsolverSgetrf(solverHandle, size, size, d_A, d_A_ld, workspace, wss, d_piv, info);
-    hipsolverSgetrs(solverHandle, HIPSOLVER_OP_N, size, 1, d_A, d_A_ld, d_piv, d_b, size, workspace, wss, info);
-
-    hipMemcpy(d_x, d_b, size * sizeof(float), hipMemcpyDeviceToDevice);
-    hipMemcpy(h_x.data(), d_x, size * sizeof(float), hipMemcpyDeviceToHost);
-    printf("Solution vector x:\n");
-    for(int i = 0; i < size; i++)
-        printf("%6.3f  ", h_x[i]);
-    printf("\n");
-
-    hipFree(workspace);
-
-    hipsolverDestroy(solverHandle);
-
-
-    // perform matrix-vector multiplication A*x using hipBLAS to check if the solution is correct
-
-    hipblasHandle_t blasHandle;
-    hipblasCreate(&blasHandle);
-
-    float alpha = 1;
-    float beta = 0;
-    hipMemcpy2D(d_A, d_A_pitch, h_A.data(), h_A_pitch, size * sizeof(float), size, hipMemcpyHostToDevice);
-    hipblasSgemv(blasHandle, HIPBLAS_OP_N, size, size, &alpha, d_A, d_A_ld, d_x, 1, &beta, d_b, 1);
-    hipDeviceSynchronize();
-
-    hipblasDestroy(blasHandle);
-
-    for(int i = 0; i < size; i++)
-        h_b[i] = 0;
-    hipMemcpy(h_b.data(), d_b, size * sizeof(float), hipMemcpyDeviceToHost);
-    printf("Check multiplication vector Ax:\n");
-    for(int i = 0; i < size; i++)
-        printf("%6.3f  ", h_b[i]);
-    printf("\n");
-
-
-    // free all the allocated memory
-
-    hipFree(info);
-    hipFree(d_piv);
-    hipFree(d_x);
-    hipFree(d_b);
-    hipFree(d_A);
-
-    return 0;
-}
-```
-
-The code compilation can be done as follows:
-
-```console
-hipcc hipsolver.hip.cpp -o hipsolver.x -lhipblas -lhipsolver
-```
-
-## Using OpenMP Offload to Program AMD GPUs
-
-The ROCm™ installation includes an LLVM-based implementation that fully supports the OpenMP 4.5 standard
-and a subset of the OpenMP 5.0 standard.
-Fortran, C/C++ compilers, and corresponding runtime libraries are included.
-
-The OpenMP toolchain is automatically installed as part of the standard ROCm installation
-and is available under `/opt/rocm/llvm`. The sub-directories are:
-
-- `bin` : Compilers (flang and clang) and other binaries.
-- `examples` : The usage section below shows how to compile and run these programs.
-- `include` : Header files.
-- `lib` : Libraries including those required for target offload.
-- `lib-debug` : Debug versions of the above libraries.
-
-More information can be found in the [AMD OpenMP Support Guide](https://docs.amd.com/bundle/OpenMP-Support-Guide-v5.5/page/Introduction_to_OpenMP_Support_Guide.html).
-
-## Compilation of OpenMP Code
-
-Basic example that uses OpenMP offload is here.
-Again, code is complete and can be copied and pasted into a file.
-Here we use `vadd.cpp`.
-
-```console
-#include <cstdio>
-#include <cstdlib>
-
-int main(int argc, char ** argv)
-{
-    long long count = 1 << 20;
-    if(argc > 1)
-        count = atoll(argv[1]);
-    long long print_count = 16;
-    if(argc > 2)
-        print_count = atoll(argv[2]);
-
-    long long * a = new long long[count];
-    long long * b = new long long[count];
-    long long * c = new long long[count];
-
-#pragma omp parallel for
-    for(long long i = 0; i < count; i++)
-    {
-        a[i] = i;
-        b[i] = 10 * i;
-    }
-
-    printf("A: ");
-    for(long long i = 0; i < print_count; i++)
-        printf("%3lld ", a[i]);
-    printf("\n");
-
-    printf("B: ");
-    for(long long i = 0; i < print_count; i++)
-        printf("%3lld ", b[i]);
-    printf("\n");
-
-#pragma omp target map(to: a[0:count],b[0:count]) map(from: c[0:count])
-#pragma omp teams distribute parallel for
-    for(long long i = 0; i < count; i++)
-    {
-        c[i] = a[i] + b[i];
-    }
-
-    printf("C: ");
-    for(long long i = 0; i < print_count; i++)
-        printf("%3lld ", c[i]);
-    printf("\n");
-
-    delete[] a;
-    delete[] b;
-    delete[] c;
-
-    return 0;
-}
-```
-
-This code can be compiled like this:
-
-```console
-/opt/rocm/llvm/bin/clang++ -O3 -target x86_64-pc-linux-gnu -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx908 vadd.cpp -o vadd.x
-```
-
-These options are required for target offload from an OpenMP program:
-
-- `-target x86_64-pc-linux-gnu`
-- `-fopenmp`
-- `-fopenmp-targets=amdgcn-amd-amdhsa`
-- `-Xopenmp-target=amdgcn-amd-amdhsa`
-
-This flag specifies the GPU architecture of targeted GPU.
-You need to chage this when moving for instance to LUMI with MI250X GPU.
-The MI100 GPUs presented in CS have code `gfx908`:
-
-- `-march=gfx908`
-
-Note: You also have to include the `O0`, `O2`, `O3` or `O3` flag.
-Without this flag the execution of the compiled code fails.
diff --git a/content/docs/cs/guides/arm.mdx b/content/docs/cs/guides/arm.mdx
deleted file mode 100644
index 73bb7d785531adfffc3c76db64ab58b69e2e3196..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/arm.mdx
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: "Using ARM Partition"
----
-For testing your application on the ARM partition,
-you need to prepare a job script for that partition or use the interactive job:
-
-```
-salloc -A PROJECT-ID -p p01-arm
-```
-
-On the partition, you should reload the list of modules:
-
-```
-ml architecture/aarch64
-```
-
-For compilation, `gcc` and `OpenMPI` compilers are available.
-Hence, the compilation process should be the same as on the `x64` architecture.
-
-Let's have the following `hello world` example:
-
-```
-#include "mpi.h"
-#include "omp.h"
-
-int main(int argc, char **argv)
-{
-        int rank;
-        MPI_Init(&argc, &argv);
-        MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-        #pragma omp parallel
-        {
-                printf("Hello on rank %d, thread %d\n", rank, omp_get_thread_num());
-        }
-        MPI_Finalize();
-}
-```
-
-You can compile and run the example:
-
-```
-ml OpenMPI/4.1.4-GCC-11.3.0
-mpic++ -fopenmp hello.cpp -o hello
-mpirun -n 4 ./hello
-```
-
-Please see [gcc options](https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html) for more advanced compilation settings.
-No complications are expected as long as the application does not use any intrinsic for `x64` architecture.
-If you want to use intrinsic,
-[SVE](https://developer.arm.com/documentation/102699/0100/Optimizing-with-intrinsics) instruction set is available.
diff --git a/content/docs/cs/guides/grace.mdx b/content/docs/cs/guides/grace.mdx
deleted file mode 100644
index 05c90528b009cde9fd28fc4456808e503cd3c2ad..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/grace.mdx
+++ /dev/null
@@ -1,308 +0,0 @@
----
-title: "Using NVIDIA Grace Partition"
----
-For testing your application on the NVIDIA Grace Partition,
-you need to prepare a job script for that partition or use the interactive job:
-
-```console
-salloc -N 1 -c 144 -A PROJECT-ID -p p11-grace --time=08:00:00
-```
-
-where:
-
-- `-N 1` means allocation single node,
-- `-c 144` means allocation 144 cores,
-- `-p p11-grace` is NVIDIA Grace partition,
-- `--time=08:00:00` means allocation for 8 hours.
-
-## Available Toolchains
-
-The platform offers three toolchains:
-
-- Standard GCC (as a module `ml GCC`)
-- [NVHPC](https://developer.nvidia.com/hpc-sdk) (as a module `ml NVHPC`)
-- [Clang for NVIDIA Grace](https://developer.nvidia.com/grace/clang) (installed in `/opt/nvidia/clang`)
-
-<Callout>
-    The NVHPC toolchain showed strong results with minimal amount of tuning necessary in our initial evaluation.
-</Callout>
-
-### GCC Toolchain
-
-The GCC compiler seems to struggle with vectorization of short (constant length) loops, which tend to get completely unrolled/eliminated instead of being vectorized. For example simple nested loop such as
-
-```cpp
-for(int i = 0; i < 1000000; ++i) {
-    // Iterations dependent in "i"
-    // ...
-    for(int j = 0; j < 8; ++j) {
-        // but independent in "j"
-        // ...
-    }
-}
-```
-
-may emit scalar code for the inner loop leading to no vectorization being used at all.
-
-### Clang (For Grace) Toolchain
-
-The Clang/LLVM tends to behave similarly, but can be guided to properly vectorize the inner loop with either flags `-O3 -ffast-math -march=native -fno-unroll-loops -mllvm -force-vector-width=8` or pragmas such as `#pragma clang loop vectorize_width(8)` and `#pragma clang loop unroll(disable)`.
-
-```cpp
-for(int i = 0; i < 1000000; ++i) {
-    // Iterations dependent in "i"
-    // ...
-    #pragma clang loop unroll(disable) vectorize_width(8)
-    for(int j = 0; j < 8; ++j) {
-        // but independent in "j"
-        // ...
-    }
-}
-```
-
-<Callout>
-    Our basic experiments show that fixed width vectorization (NEON) tends to perform better in the case of short (register-length) loops than SVE. In cases (like above), where specified `vectorize_width` is larger than availiable vector unit width, Clang will emit multiple NEON instructions (eg. 4 instructions will be emitted to process 8 64-bit operations in 128-bit units of Grace).
-</Callout>
-
-### NVHPC Toolchain
-
-The NVHPC toolchain handled aforementioned case without any additional tuning. Simple `-O3 -march=native -fast` should be therefore sufficient.
-
-## Basic Math Libraries
-
-The basic libraries (BLAS and LAPACK) are included in NVHPC toolchain and can be used simply as `-lblas` and `-llapack` for BLAS and LAPACK respectively (`lp64` and `ilp64` versions are also included).
-
-<Callout>
-    The Grace platform doesn't include CUDA-capable GPU, therefore `nvcc` will fail with an error. This means that `nvc`, `nvc++` and `nvfortran` should be used instead.
-</Callout>
-
-### NVIDIA Performance Libraries
-
-The [NVPL](https://developer.nvidia.com/nvpl) package includes more extensive set of libraries in both sequential and multi-threaded versions:
-
-- BLACS: `-lnvpl_blacs_{lp64,ilp64}_{mpich,openmpi3,openmpi4,openmpi5}`
-- BLAS: `-lnvpl_blas_{lp64,ilp64}_{seq,gomp}`
-- FFTW: `-lnvpl_fftw`
-- LAPACK: `-lnvpl_lapack_{lp64,ilp64}_{seq,gomp}`
-- ScaLAPACK: `-lnvpl_scalapack_{lp64,ilp64}`
-- RAND: `-lnvpl_rand` or `-lnvpl_rand_mt`
-- SPARSE: `-lnvpl_sparse`
-
-This package should be compatible with all availiable toolchains and includes CMake module files for easy integration into CMake-based projects. For further documentation see also [NVPL](https://docs.nvidia.com/nvpl).
-
-### Recommended BLAS Library
-
-We recommend to use the multi-threaded BLAS library from the NVPL package.
-
-<Callout>
-    It is important to pin the processes using **OMP_PROC_BIND=spread**
-</Callout>
-
-Example:
-
-```console
-$ ml NVHPC
-$ nvc -O3 -march=native myprog.c -o myprog -lnvpl_blas_lp64_gomp
-$ OMP_PROC_BIND=spread ./myprog
-```
-
-## Basic Communication Libraries
-
-The OpenMPI 4 implementation is included with NVHPC toolchain and is exposed as a module (`ml OpenMPI`). The following example
-
-```cpp
-#include <mpi.h>
-#include <sched.h>
-#include <omp.h>
-
-int main(int argc, char **argv)
-{
-        int rank;
-        MPI_Init(&argc, &argv);
-        MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-        #pragma omp parallel
-        {
-                printf("Hello on rank %d, thread %d on CPU %d\n", rank, omp_get_thread_num(), sched_getcpu());
-        }
-        MPI_Finalize();
-}
-```
-
-can be compiled and run as follows
-
-```console
-ml OpenMPI
-mpic++ -fast -fopenmp hello.cpp -o hello
-OMP_PROC_BIND=close OMP_NUM_THREADS=4 mpirun -np 4 --map-by slot:pe=36 ./hello
-```
-
-In this configuration we run 4 ranks bound to one quarter of cores each with 4 OpenMP threads.
-
-## Simple BLAS Application
-
-The `hello world` example application (written in `C++` and `Fortran`) uses simple stationary probability vector estimation to illustrate use of GEMM (BLAS 3 routine).
-
-Stationary probability vector estimation in `C++`:
-
-```cpp
-#include <iostream>
-#include <vector>
-#include <chrono>
-#include "cblas.h"
-
-const size_t ITERATIONS  = 32;
-const size_t MATRIX_SIZE = 1024;
-
-int main(int argc, char *argv[])
-{
-    const size_t matrixElements = MATRIX_SIZE*MATRIX_SIZE;
-
-    std::vector<float> a(matrixElements, 1.0f / float(MATRIX_SIZE));
-
-    for(size_t i = 0; i < MATRIX_SIZE; ++i)
-        a[i] = 0.5f / (float(MATRIX_SIZE) - 1.0f);
-    a[0] = 0.5f;
-
-    std::vector<float> w1(matrixElements, 0.0f);
-    std::vector<float> w2(matrixElements, 0.0f);
-
-    std::copy(a.begin(), a.end(), w1.begin());
-
-    std::vector<float> *t1, *t2;
-    t1 = &w1;
-    t2 = &w2;
-
-    auto c1 = std::chrono::steady_clock::now();
-
-    for(size_t i = 0; i < ITERATIONS; ++i)
-    {
-        std::fill(t2->begin(), t2->end(), 0.0f);
-
-        cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, MATRIX_SIZE, MATRIX_SIZE, MATRIX_SIZE,
-                    1.0f, t1->data(), MATRIX_SIZE,
-                    a.data(), MATRIX_SIZE,
-                    1.0f, t2->data(), MATRIX_SIZE);
-
-        std::swap(t1, t2);
-    }
-
-    auto c2 = std::chrono::steady_clock::now();
-
-    for(size_t i = 0; i < MATRIX_SIZE; ++i)
-    {
-        std::cout << (*t1)[i*MATRIX_SIZE + i] << " ";
-    }
-
-    std::cout << std::endl;
-
-    std::cout << "Elapsed Time: " << std::chrono::duration<double>(c2 - c1).count() << std::endl;
-
-    return 0;
-}
-```
-
-Stationary probability vector estimation in `Fortran`:
-
-```fortran
-program main
-    implicit none
-
-    integer :: matrix_size, iterations
-    integer :: i
-    real, allocatable, target :: a(:,:), w1(:,:), w2(:,:)
-    real, dimension(:,:), contiguous, pointer :: t1, t2, tmp
-    real, pointer :: out_data(:), out_diag(:)
-    integer :: cr, cm, c1, c2
-
-    iterations  = 32
-    matrix_size = 1024
-
-    call system_clock(count_rate=cr)
-    call system_clock(count_max=cm)
-
-    allocate(a(matrix_size, matrix_size))
-    allocate(w1(matrix_size, matrix_size))
-    allocate(w2(matrix_size, matrix_size))
-
-    a(:,:) = 1.0 / real(matrix_size)
-    a(:,1) = 0.5 / real(matrix_size - 1)
-    a(1,1) = 0.5
-
-    w1 = a
-    w2(:,:) = 0.0
-
-    t1 => w1
-    t2 => w2
-
-    call system_clock(c1)
-
-    do i = 0, iterations
-        t2(:,:) = 0.0
-
-        call sgemm('N', 'N', matrix_size, matrix_size, matrix_size, 1.0, t1, matrix_size, a, matrix_size, 1.0, t2, matrix_size)
-
-        tmp => t1
-        t1  => t2
-        t2  => tmp
-    end do
-
-    call system_clock(c2)
-
-    out_data(1:size(t1)) => t1
-    out_diag => out_data(1::matrix_size+1)
-
-    print *, out_diag
-    print *, "Elapsed Time: ", (c2 - c1) / real(cr)
-
-    deallocate(a)
-    deallocate(w1)
-    deallocate(w2)
-end program main
-```
-
-### Using NVHPC Toolchain
-
-The C++ version of the example can be compiled with NVHPC and ran as follows
-
-```console
-ml NVHPC
-nvc++ -O3 -march=native -fast -I$NVHPC/Linux_aarch64/$EBVERSIONNVHPC/compilers/include/lp64 -lblas main.cpp -o main
-OMP_NUM_THREADS=144 OMP_PROC_BIND=spread ./main
-```
-
-The Fortran version is just as simple:
-
-```console
-ml NVHPC
-nvfortran -O3 -march=native -fast -lblas main.f90 -o main.x
-OMP_NUM_THREADS=144 OMP_PROC_BIND=spread ./main
-```
-
-<Callout>
-    It may be advantageous to use NVPL libraries instead NVHPC ones. For example DGEMM BLAS 3 routine from NVPL is almost 30% faster than NVHPC one.
-</Callout>
-
-### Using Clang (For Grace) Toolchain
-
-Similarly Clang for Grace toolchain with NVPL BLAS can be used to compile C++ version of the example.
-
-```console
-ml NVHPC
-/opt/nvidia/clang/17.23.11/bin/clang++ -O3 -march=native -ffast-math -I$NVHPC/Linux_aarch64/$EBVERSIONNVHPC/compilers/include/lp64 -lnvpl_blas_lp64_gomp main.cpp -o main
-```
-
-<Callout>
-    NVHPC module is used just for the `cblas.h` include in this case. This can be avoided by changing the code to use `nvpl_blas.h` instead.
-</Callout>
-
-## Additional Resources
-
-- [https://www.nvidia.com/en-us/data-center/grace-cpu-superchip/][1]
-- [https://developer.nvidia.com/hpc-sdk][2]
-- [https://developer.nvidia.com/grace/clang][3]
-- [https://docs.nvidia.com/nvpl][4]
-
-[1]: https://www.nvidia.com/en-us/data-center/grace-cpu-superchip/
-[2]: https://developer.nvidia.com/hpc-sdk
-[3]: https://developer.nvidia.com/grace/clang
-[4]: https://docs.nvidia.com/nvpl
diff --git a/content/docs/cs/guides/hm_management.mdx b/content/docs/cs/guides/hm_management.mdx
deleted file mode 100644
index 074578df438f17ec5738fe724fc07b9cfacf2d82..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/hm_management.mdx
+++ /dev/null
@@ -1,281 +0,0 @@
----
-title: "Heterogeneous Memory Management on Intel Platforms"
----
-Partition `p10-intel` offser heterogeneous memory directly exposed to the user. This allows to manually pick appropriate kind of memory to be used at process or even single allocation granularity. Both kinds of memory are exposed as memory-only NUMA nodes. This allows both coarse (process level) and fine (allocation level) grained control over memory type used.
-
-## Overview
-
-At the process level the `numactl` facilities can be utilized, while Intel provided `memkind` library allows for finer control. Both `memkind` library and `numactl` can be accessed by loading `memkind` module or `OpenMPI` module (only `numactl`).
-
-```bash
-ml memkind
-```
-
-### Process Level (NUMACTL)
-
-The `numactl` allows to either restrict memory pool of the process to specific set of memory NUMA nodes
-
-```bash
-numactl --membind <node_ids_set>
-```
-
-or select single preffered node
-
-```bash
-numactl --preffered <node_id>
-```
-
-where `<node_ids_set>` is comma separated list (eg. `0,2,5,...`) in combination with ranges (such as `0-5`). The `membind` option kills the process if it requests more memory than can be satisfied from specified nodes. The `preffered` option just reverts to using other nodes according to their NUMA distance in the same situation.
-
-Convenient way to check `numactl` configuration is
-
-```bash
-numactl -s
-```
-
-which prints configuration in its execution environment eg.
-
-```bash
-numactl --membind 8-15 numactl -s
-policy: bind
-preferred node: 0
-physcpubind: 0 1 2 ... 189 190 191
-cpubind: 0 1 2 3 4 5 6 7
-nodebind: 0 1 2 3 4 5 6 7
-membind: 8 9 10 11 12 13 14 15
-```
-
-The last row shows allocations memory are restricted to NUMA nodes `8-15`.
-
-### Allocation Level (MEMKIND)
-
-The `memkind` library (in its simplest use case) offers new variant of `malloc/free` function pair, which allows to specify kind of memory to be used for given allocation. Moving specific allocation from default to HBM memory pool then can be achieved by replacing:
-
-```cpp
-void *pData = malloc(<SIZE>);
-/* ... */
-free(pData);
-```
-
-with
-
-```cpp
-#include <memkind.h>
-
-void *pData = memkind_malloc(MEMKIND_HBW, <SIZE>);
-/* ... */
-memkind_free(NULL, pData); // "kind" parameter is deduced from the address
-```
-
-Similarly other memory types can be chosen.
-
-<Callout>
-    The allocation will return `NULL` pointer when memory of specified kind is not available.
-</Callout>
-
-## High Bandwidth Memory (HBM)
-
-Intel Sapphire Rapids (partition `p10-intel`) consists of two sockets each with `128GB` of DDR and `64GB` on-package HBM memory. The machine is configured in FLAT mode and therefore exposes HBM memory as memory-only NUMA nodes (`16GB` per 12-core tile). The configuration can be verified by running
-
-```bash
-numactl -H
-```
-
-which should show 16 NUMA nodes (`0-7` should contain 12 cores and `32GB` of DDR DRAM, while `8-15` should have no cores and `16GB` of HBM each).
-
-![](/it4i/img/cs/guides/p10_numa_sc4_flat.png)
-
-### Process Level
-
-With this we can easily restrict application to DDR DRAM or HBM memory:
-
-```bash
-# Only DDR DRAM
-numactl --membind 0-7 ./stream
-# ...
-Function    Best Rate MB/s  Avg time     Min time     Max time
-Copy:          369745.8     0.043355     0.043273     0.043588
-Scale:         366989.8     0.043869     0.043598     0.045355
-Add:           378054.0     0.063652     0.063483     0.063899
-Triad:         377852.5     0.063621     0.063517     0.063884
-
-# Only HBM
-numactl --membind 8-15 ./stream
-# ...
-Function    Best Rate MB/s  Avg time     Min time     Max time
-Copy:         1128430.1     0.015214     0.014179     0.015615
-Scale:        1045065.2     0.015814     0.015310     0.016309
-Add:          1096992.2     0.022619     0.021878     0.024182
-Triad:        1065152.4     0.023449     0.022532     0.024559
-```
-
-The DDR DRAM achieves bandwidth of around 400GB/s, while the HBM clears 1TB/s bar.
-
-Some further improvements can be achieved by entirely isolating a process to a single tile. This can be useful for MPI jobs, where `$OMPI_COMM_WORLD_RANK` can be used to bind each process individually. The simple wrapper script to do this may look like
-
-```bash
-#!/bin/bash
-numactl --membind $((8 + $OMPI_COMM_WORLD_RANK)) $@
-```
-
-and can be used as
-
-```bash
-mpirun -np 8 --map-by slot:pe=12 membind_wrapper.sh ./stream_mpi
-```
-
-(8 tiles with 12 cores each). However, this approach assumes `16GB` of HBM memory local to the tile is sufficient for each process (memory cannot spill between tiles). This approach may be significantly more useful in combination with `--preferred` instead of `--membind` to force preference of local HBM with spill to DDR DRAM. Otherwise
-
-```bash
-mpirun -n 8 --map-by slot:pe=12 numactl --membind 8-15 ./stream_mpi
-```
-
-is most likely preferable even for MPI workloads. Applying above approach to MPI Stream with 8 ranks and 1-24 threads per rank we can expect these results:
-![](/it4i/img/cs/guides/p10_stream_dram.png)
-![](/it4i/img/cs/guides/p10_stream_hbm.png)
-
-### Allocation Level
-
-Allocation level memory kind selection using `memkind` library can be illustrated using modified stream benchmark. The stream benchmark uses three working arrays (A, B and C), whose allocation can be changed to `memkind_malloc` as follows
-
-```cpp
-#include <memkind.h>
-// ...
-STREAM_TYPE *a = (STREAM_TYPE *)memkind_malloc(MEMKIND_HBW_ALL, STREAM_ARRAY_SIZE * sizeof(STREAM_TYPE));
-STREAM_TYPE *b = (STREAM_TYPE *)memkind_malloc(MEMKIND_REGULAR, STREAM_ARRAY_SIZE * sizeof(STREAM_TYPE));
-STREAM_TYPE *c = (STREAM_TYPE *)memkind_malloc(MEMKIND_HBW_ALL, STREAM_ARRAY_SIZE * sizeof(STREAM_TYPE));
-// ...
-memkind_free(NULL, a);
-memkind_free(NULL, b);
-memkind_free(NULL, c);
-```
-
-Arrays A and C are allocated from HBM (`MEMKIND_HBW_ALL`), while DDR DRAM (`MEMKIND_REGULAR`) is used for B.
-The code then has to be linked with `memkind` library
-
-```bash
-gcc -march=native -O3 -fopenmp -lmemkind memkind_stream.c -o memkind_stream
-```
-
-and can be run as
-
-```bash
-export MEMKIND_HBW_NODES=8,9,10,11,12,13,14,15
-OMP_NUM_THREADS=$((N*12)) OMP_PROC_BIND=spread ./memkind_stream
-```
-
-While the `memkind` library should be able to detect HBM memory on its own (through `HMAT` and `hwloc`) this is not supported on `p10-intel`. This means that NUMA nodes representing HBM have to be specified manually using `MEMKIND_HBW_NODES` environment variable.
-
-![](/it4i/img/cs/guides/p10_stream_memkind.png)
-
-With this setup we can see that simple copy operation (C[i] = A[i]) achieves bandwidth comparable to the application bound entirely to HBM memory. On the other hand the scale operation (B[i] = s*C[i]) is mostly limited by DDR DRAM bandwidth. Its also worth noting that operations combining all three arrays are performing close to HBM-only configuration.
-
-## Simple Application
-
-One of applications that can greatly benefit from availability of large slower and faster smaller memory is computing histogram with many bins over large dataset.
-
-```cpp
-#include <iostream>
-#include <vector>
-#include <chrono>
-#include <cmath>
-#include <cstring>
-#include <omp.h>
-#include <memkind.h>
-
-const size_t N_DATA_SIZE  = 2 * 1024 * 1024 * 1024ull;
-const size_t N_BINS_COUNT = 1 * 1024 * 1024ull;
-const size_t N_ITERS      = 10;
-
-#if defined(HBM)
-    #define DATA_MEMKIND MEMKIND_REGULAR
-    #define BINS_MEMKIND MEMKIND_HBW_ALL
-#else
-    #define DATA_MEMKIND MEMKIND_REGULAR
-    #define BINS_MEMKIND MEMKIND_REGULAR
-#endif
-
-int main(int argc, char *argv[])
-{
-    const double binWidth = 1.0 / double(N_BINS_COUNT + 1);
-
-    double *pData = (double *)memkind_malloc(DATA_MEMKIND, N_DATA_SIZE * sizeof(double));
-    size_t *pBins = (size_t *)memkind_malloc(BINS_MEMKIND, N_BINS_COUNT * omp_get_max_threads() * sizeof(double));
-
-    #pragma omp parallel
-    {
-        drand48_data state;
-        srand48_r(omp_get_thread_num(), &state);
-
-        #pragma omp for
-        for(size_t i = 0; i < N_DATA_SIZE; ++i)
-            drand48_r(&state, &pData[i]);
-    }
-
-    auto c1 = std::chrono::steady_clock::now();
-
-    for(size_t it = 0; it < N_ITERS; ++it)
-    {
-        #pragma omp parallel
-        {
-            for(size_t i = 0; i < N_BINS_COUNT; ++i)
-                pBins[omp_get_thread_num()*N_BINS_COUNT + i] = size_t(0);
-
-            #pragma omp for
-            for(size_t i = 0; i < N_DATA_SIZE; ++i)
-            {
-                const size_t idx = size_t(pData[i] / binWidth) % N_BINS_COUNT;
-                pBins[omp_get_thread_num()*N_BINS_COUNT + idx]++;
-            }
-        }
-    }
-
-    auto c2 = std::chrono::steady_clock::now();
-
-    #pragma omp parallel for
-    for(size_t i = 0; i < N_BINS_COUNT; ++i)
-    {
-        for(size_t j = 1; j < omp_get_max_threads(); ++j)
-            pBins[i] += pBins[j*N_BINS_COUNT + i];
-    }
-
-    std::cout << "Elapsed Time [s]: " << std::chrono::duration<double>(c2 - c1).count() << std::endl;
-
-    size_t total = 0;
-    #pragma omp parallel for reduction(+:total)
-    for(size_t i = 0; i < N_BINS_COUNT; ++i)
-        total += pBins[i];
-
-    std::cout << "Total Items: " << total << std::endl;
-
-    memkind_free(NULL, pData);
-    memkind_free(NULL, pBins);
-
-    return 0;
-}
-```
-
-### Using HBM Memory (P10-Intel)
-
-Following commands can be used to compile and run example application above
-
-```bash
-ml GCC memkind
-export MEMKIND_HBW_NODES=8,9,10,11,12,13,14,15
-g++ -O3 -fopenmp -lmemkind histogram.cpp -o histogram_dram
-g++ -O3 -fopenmp -lmemkind -DHBM histogram.cpp -o histogram_hbm
-OMP_PROC_BIND=spread GOMP_CPU_AFFINITY=0-95 OMP_NUM_THREADS=96 ./histogram_dram
-OMP_PROC_BIND=spread GOMP_CPU_AFFINITY=0-95 OMP_NUM_THREADS=96 ./histogram_hbm
-```
-
-Moving histogram bins data into HBM memory should speedup the algorithm more than twice. It should be noted that moving also `pData` array into HBM memory worsens this result (presumably because the algorithm can saturate both memory interfaces).
-
-## Additional Resources
-
-- [https://linux.die.net/man/8/numactl][1]
-- [http://memkind.github.io/memkind/man_pages/memkind.html][2]
-- [https://lenovopress.lenovo.com/lp1738-implementing-intel-high-bandwidth-memory][3]
-
-[1]: https://linux.die.net/man/8/numactl
-[2]: http://memkind.github.io/memkind/man_pages/memkind.html
-[3]: https://lenovopress.lenovo.com/lp1738-implementing-intel-high-bandwidth-memory
diff --git a/content/docs/cs/guides/horizon.mdx b/content/docs/cs/guides/horizon.mdx
deleted file mode 100644
index e90a14c7e78e3299ee874e86d093adbb739160b3..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/horizon.mdx
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: "Using VMware Horizon"
----
-VMware Horizon is a virtual desktop infrastructure (VDI) solution
-that enables users to access virtual desktops and applications from any device and any location.
-It provides a comprehensive end-to-end solution for managing and delivering virtual desktops and applications,
-including features such as session management, user authentication, and virtual desktop provisioning.
-
-![](/it4i/img/horizon.png)
-
-## How to Access VMware Horizon
-
-<Callout type=warn>
-    Access to VMware Horizon requires IT4I VPN.
-</Callout>
-
-1. Contact [IT4I support][a] with a request for an access and VM allocation.
-1. [Download][1] and install the VMware Horizon Client for Windows.
-1. Add a new server `https://vdi-cs01.msad.it4i.cz/` in the Horizon client.
-1. Connect to the server using your IT4I username and password.
-   Username is in the `domain\username` format and the domain is `msad.it4i.cz`.
-   For example: `msad.it4i.cz\user123`
-
-## Example
-
-Below is an example of how to mount a remote folder and check the conection on Windows OS:
-
-### Prerequsities
-
-3D applications
-
-* [Blender][3]
-
-SSHFS for remote access
-
-* [sshfs-win][4]
-* [winfsp][5]
-* [shfs-win-manager][6]
-* ssh keys for access to clusters
-
-### Steps
-
-1. Start the VPN and connect to the server via VMware Horizon Client.
-
-    ![](/it4i/img/vmware.png)
-
-1. Mount a remote folder.
-    * Run sshfs-win-manager.
-
-    ![](/it4i/img/sshfs.png)
-
-    * Add a new connection.
-
-    ![](/it4i/img/sshfs1.png)
-
-    * Click on **Connect**.
-
-    ![](/it4i/img/sshfs2.png)
-
-1. Check that the folder is mounted.
-
-    ![](/it4i/img/mount.png)
-
-1. Check the GPU resources.
-
-    ![](/it4i/img/gpu.png)
-
-### Blender
-
-Now if you run, for example, Blender, you can check the available GPU resources in Blender Preferences.
-
-  ![](/it4i/img/blender.png)
-
-[a]: mailto:support@it4i.cz
-
-[1]: https://vdi-cs01.msad.it4i.cz/
-[2]: https://www.paraview.org/download/
-[3]: https://www.blender.org/download/
-[4]: https://github.com/winfsp/sshfs-win/releases
-[5]: https://github.com/winfsp/winfsp/releases/
-[6]: https://github.com/evsar3/sshfs-win-manager/releases
diff --git a/content/docs/cs/guides/meta.json b/content/docs/cs/guides/meta.json
deleted file mode 100644
index 9368e761bbb69f48a3aeda784f466df3b50edb85..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/meta.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "title": "Guides",
-  "pages": [
-    "amd",
-    "arm",
-    "grace",
-    "hm_management",
-    "horizon",
-    "power10",
-    "xilinx"
-  ]
-}
diff --git a/content/docs/cs/guides/power10.mdx b/content/docs/cs/guides/power10.mdx
deleted file mode 100644
index 43e7ec3ddd2f27ca32e0dd3845c2c913ca599095..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/power10.mdx
+++ /dev/null
@@ -1,229 +0,0 @@
----
-title: "Using IBM Power Partition"
----
-For testing your application on the IBM Power partition,
-you need to prepare a job script for that partition or use the interactive job:
-
-```console
-scalloc -N 1 -c 192 -A PROJECT-ID -p p07-power --time=08:00:00
-```
-
-where:
-
-- `-N 1` means allocation single node,
-- `-c 192` means allocation 192 cores (threads),
-- `-p p07-power` is IBM Power partition,
-- `--time=08:00:00` means allocation for 8 hours.
-
-On the partition, you should reload the list of modules:
-
-```
-ml architecture/ppc64le
-```
-
-The platform offers both `GNU` based and proprietary IBM toolchains for building applications. IBM also provides optimized BLAS routines library ([ESSL](https://www.ibm.com/docs/en/essl/6.1)), which can be used by both toolchain.
-
-## Building Applications
-
-Our sample application depends on `BLAS`, therefore we start by loading following modules (regardless of which toolchain we want to use):
-
-```
-ml GCC OpenBLAS
-```
-
-### GCC Toolchain
-
-In the case of GCC toolchain we can go ahead and compile the application as usual using either `g++`
-
-```
-g++ -lopenblas hello.cpp -o hello
-```
-
-or `gfortran`
-
-```
-gfortran -lopenblas hello.f90 -o hello
-```
-
-as usual.
-
-### IBM Toolchain
-
-The IBM toolchain requires additional environment setup as it is installed in `/opt/ibm` and is not exposed as a module
-
-```
-IBM_ROOT=/opt/ibm
-OPENXLC_ROOT=$IBM_ROOT/openxlC/17.1.1
-OPENXLF_ROOT=$IBM_ROOT/openxlf/17.1.1
-
-export PATH=$OPENXLC_ROOT/bin:$PATH
-export LD_LIBRARY_PATH=$OPENXLC_ROOT/lib:$LD_LIBRARY_PATH
-
-export PATH=$OPENXLF_ROOT/bin:$PATH
-export LD_LIBRARY_PATH=$OPENXLF_ROOT/lib:$LD_LIBRARY_PATH
-```
-
-from there we can use either `ibm-clang++`
-
-```
-ibm-clang++ -lopenblas hello.cpp -o hello
-```
-
-or `xlf`
-
-```
-xlf -lopenblas hello.f90 -o hello
-```
-
-to build the application as usual.
-
-<Callout>
-    Combination of `xlf` and `openblas` seems to cause severe performance degradation. Therefore `ESSL` library should be preferred (see below).
-</Callout>
-
-### Using ESSL Library
-
-The [ESSL](https://www.ibm.com/docs/en/essl/6.1) library is installed in `/opt/ibm/math/essl/7.1` so we define additional environment variables
-
-```
-IBM_ROOT=/opt/ibm
-ESSL_ROOT=${IBM_ROOT}math/essl/7.1
-export LD_LIBRARY_PATH=$ESSL_ROOT/lib64:$LD_LIBRARY_PATH
-```
-
-The simplest way to utilize `ESSL` in application, which already uses `BLAS` or `CBLAS` routines is to link with the provided `libessl.so`. This can be done by replacing `-lopenblas` with `-lessl` or `-lessl -lopenblas` (in case `ESSL` does not provide all required `BLAS` routines).
-In practice this can look like
-
-```
-g++ -L${ESSL_ROOT}/lib64 -lessl -lopenblas hello.cpp -o hello
-```
-
-or
-
-```
-gfortran -L${ESSL_ROOT}/lib64 -lessl -lopenblas hello.f90 -o hello
-```
-
-and similarly for IBM compilers (`ibm-clang++` and `xlf`).
-
-## Hello World Applications
-
-The `hello world` example application (written in `C++` and `Fortran`) uses simple stationary probability vector estimation to illustrate use of GEMM (BLAS 3 routine).
-
-Stationary probability vector estimation in `C++`:
-
-```c++
-#include <iostream>
-#include <vector>
-#include <chrono>
-#include "cblas.h"
-
-const size_t ITERATIONS  = 32;
-const size_t MATRIX_SIZE = 1024;
-
-int main(int argc, char *argv[])
-{
-    const size_t matrixElements = MATRIX_SIZE*MATRIX_SIZE;
-
-    std::vector<float> a(matrixElements, 1.0f / float(MATRIX_SIZE));
-
-    for(size_t i = 0; i < MATRIX_SIZE; ++i)
-        a[i] = 0.5f / (float(MATRIX_SIZE) - 1.0f);
-    a[0] = 0.5f;
-
-    std::vector<float> w1(matrixElements, 0.0f);
-    std::vector<float> w2(matrixElements, 0.0f);
-
-    std::copy(a.begin(), a.end(), w1.begin());
-
-    std::vector<float> *t1, *t2;
-    t1 = &w1;
-    t2 = &w2;
-
-    auto c1 = std::chrono::steady_clock::now();
-
-    for(size_t i = 0; i < ITERATIONS; ++i)
-    {
-        std::fill(t2->begin(), t2->end(), 0.0f);
-
-        cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, MATRIX_SIZE, MATRIX_SIZE, MATRIX_SIZE,
-                    1.0f, t1->data(), MATRIX_SIZE,
-                    a.data(), MATRIX_SIZE,
-                    1.0f, t2->data(), MATRIX_SIZE);
-
-        std::swap(t1, t2);
-    }
-
-    auto c2 = std::chrono::steady_clock::now();
-
-    for(size_t i = 0; i < MATRIX_SIZE; ++i)
-    {
-        std::cout << (*t1)[i*MATRIX_SIZE + i] << " ";
-    }
-
-    std::cout << std::endl;
-
-    std::cout << "Elapsed Time: " << std::chrono::duration<double>(c2 - c1).count() << std::endl;
-
-    return 0;
-}
-```
-
-Stationary probability vector estimation in `Fortran`:
-
-```fortran
-program main
-    implicit none
-
-    integer :: matrix_size, iterations
-    integer :: i
-    real, allocatable, target :: a(:,:), w1(:,:), w2(:,:)
-    real, dimension(:,:), contiguous, pointer :: t1, t2, tmp
-    real, pointer :: out_data(:), out_diag(:)
-    integer :: cr, cm, c1, c2
-
-    iterations  = 32
-    matrix_size = 1024
-
-    call system_clock(count_rate=cr)
-    call system_clock(count_max=cm)
-
-    allocate(a(matrix_size, matrix_size))
-    allocate(w1(matrix_size, matrix_size))
-    allocate(w2(matrix_size, matrix_size))
-
-    a(:,:) = 1.0 / real(matrix_size)
-    a(:,1) = 0.5 / real(matrix_size - 1)
-    a(1,1) = 0.5
-
-    w1 = a
-    w2(:,:) = 0.0
-
-    t1 => w1
-    t2 => w2
-
-    call system_clock(c1)
-
-    do i = 0, iterations
-        t2(:,:) = 0.0
-
-        call sgemm('N', 'N', matrix_size, matrix_size, matrix_size, 1.0, t1, matrix_size, a, matrix_size, 1.0, t2, matrix_size)
-
-        tmp => t1
-        t1  => t2
-        t2  => tmp
-    end do
-
-    call system_clock(c2)
-
-    out_data(1:size(t1)) => t1
-    out_diag => out_data(1::matrix_size+1)
-
-    print *, out_diag
-    print *, "Elapsed Time: ", (c2 - c1) / real(cr)
-
-    deallocate(a)
-    deallocate(w1)
-    deallocate(w2)
-end program main
-```
diff --git a/content/docs/cs/guides/xilinx.mdx b/content/docs/cs/guides/xilinx.mdx
deleted file mode 100644
index 4195b9222704d576e210ed634e4a399bf971ea20..0000000000000000000000000000000000000000
--- a/content/docs/cs/guides/xilinx.mdx
+++ /dev/null
@@ -1,878 +0,0 @@
----
-title: "Using Xilinx Accelerator Platform"
----
-The first step to use Xilinx accelerators is to initialize Vitis (compiler) and XRT (runtime) environments.
-
-```console
-$ . /tools/Xilinx/Vitis/2023.1/settings64.sh
-$ . /opt/xilinx/xrt/setup.sh
-```
-
-## Platform Level Accelerator Management
-
-This should allow to examine current platform using `xbutil examine`,
-which should output user-level information about XRT platform and list available devices
-
-```
-$ xbutil examine
-System Configuration
-  OS Name              : Linux
-  Release              : 4.18.0-477.27.1.el8_8.x86_64
-  Version              : #1 SMP Thu Aug 31 10:29:22 EDT 2023
-  Machine              : x86_64
-  CPU Cores            : 64
-  Memory               : 257145 MB
-  Distribution         : Red Hat Enterprise Linux 8.8 (Ootpa)
-  GLIBC                : 2.28
-  Model                : ProLiant XL675d Gen10 Plus
-
-XRT
-  Version              : 2.16.0
-  Branch               : master
-  Hash                 : f2524a2fcbbabd969db19abf4d835c24379e390d
-  Hash Date            : 2023-10-11 14:01:19
-  XOCL                 : 2.16.0, f2524a2fcbbabd969db19abf4d835c24379e390d
-  XCLMGMT              : 2.16.0, f2524a2fcbbabd969db19abf4d835c24379e390d
-
-Devices present
-BDF             :  Shell                            Logic UUID                            Device ID       Device Ready*
--------------------------------------------------------------------------------------------------------------------------
-[0000:88:00.1]  :  xilinx_u280_gen3x16_xdma_base_1  283BAB8F-654D-8674-968F-4DA57F7FA5D7  user(inst=132)  Yes
-[0000:8c:00.1]  :  xilinx_u280_gen3x16_xdma_base_1  283BAB8F-654D-8674-968F-4DA57F7FA5D7  user(inst=133)  Yes
-
-
-* Devices that are not ready will have reduced functionality when using XRT tools
-```
-
-Here two Xilinx Alveo u280 accelerators (`0000:88:00.1` and `0000:8c:00.1`) are available.
-The `xbutil` can be also used to query additional information about specific device using its BDF address
-
-```console
-$ xbutil examine -d "0000:88:00.1"
-
--------------------------------------------------
-[0000:88:00.1] : xilinx_u280_gen3x16_xdma_base_1
--------------------------------------------------
-Platform
-  XSA Name               : xilinx_u280_gen3x16_xdma_base_1
-  Logic UUID             : 283BAB8F-654D-8674-968F-4DA57F7FA5D7
-  FPGA Name              :
-  JTAG ID Code           : 0x14b7d093
-  DDR Size               : 0 Bytes
-  DDR Count              : 0
-  Mig Calibrated         : true
-  P2P Status             : disabled
-  Performance Mode       : not supported
-  P2P IO space required  : 64 GB
-
-Clocks
-  DATA_CLK (Data)        : 300 MHz
-  KERNEL_CLK (Kernel)    : 500 MHz
-  hbm_aclk (System)      : 450 MHz
-
-Mac Addresses            : 00:0A:35:0E:20:B0
-                         : 00:0A:35:0E:20:B1
-
-  Device Status: HEALTHY
-  Hardware Context ID: 0
-    Xclbin UUID: 6306D6AE-1D66-AEA7-B15D-446D4ECC53BD
-    PL Compute Units
-      Index  Name         Base Address  Usage  Status
-      -------------------------------------------------
-      0      vadd:vadd_1  0x800000      1      (IDLE)
-```
-
-Basic functionality of the device can be checked using `xbutil validate -d <BDF>` as
-
-```console
-$ xbutil validate -d "0000:88:00.1"
-Validate Device           : [0000:88:00.1]
-    Platform              : xilinx_u280_gen3x16_xdma_base_1
-    SC Version            : 4.3.27
-    Platform ID           : 283BAB8F-654D-8674-968F-4DA57F7FA5D7
--------------------------------------------------------------------------------
-Test 1 [0000:88:00.1]     : aux-connection
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 2 [0000:88:00.1]     : pcie-link
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 3 [0000:88:00.1]     : sc-version
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 4 [0000:88:00.1]     : verify
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 5 [0000:88:00.1]     : dma
-    Details               : Buffer size - '16 MB' Memory Tag - 'HBM[0]'
-                            Host -> PCIe -> FPGA write bandwidth = 11988.9 MB/s
-                            Host <- PCIe <- FPGA read bandwidth = 12571.2 MB/s
-                            ...
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 6 [0000:88:00.1]     : iops
-    Details               : IOPS: 387240(verify)
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 7 [0000:88:00.1]     : mem-bw
-    Details               : Throughput (Type: DDR) (Bank count: 2) : 33932.9MB/s
-                            Throughput of Memory Tag: DDR[0] is 16974.1MB/s
-                            Throughput of Memory Tag: DDR[1] is 16974.2MB/s
-                            Throughput (Type: HBM) (Bank count: 1) : 12383.7MB/s
-    Test Status           : [PASSED]
--------------------------------------------------------------------------------
-Test 8 [0000:88:00.1]     : p2p
-Test 9 [0000:88:00.1]     : vcu
-Test 10 [0000:88:00.1]    : aie
-Test 11 [0000:88:00.1]    : ps-aie
-Test 12 [0000:88:00.1]    : ps-pl-verify
-Test 13 [0000:88:00.1]    : ps-verify
-Test 14 [0000:88:00.1]    : ps-iops
-```
-
-Finally, the device can be reinitialized using `xbutil reset -d <BDF>` as
-
-```console
-$ xbutil reset -d "0000:88:00.1"
-Performing 'HOT Reset' on '0000:88:00.1'
-Are you sure you wish to proceed? [Y/n]: Y
-Successfully reset Device[0000:88:00.1]
-```
-
-This can be useful to recover the device from states such as `HANGING`, reported by `xbutil examine -d <BDF>`.
-
-## OpenCL Platform Level
-
-The `clinfo` utility can be used to verify that the accelerator is visible to OpenCL
-
-```console
-$ clinfo
-Number of platforms:                             2
-  Platform Profile:                              FULL_PROFILE
-  Platform Version:                              OpenCL 2.1 AMD-APP (3590.0)
-  Platform Name:                                 AMD Accelerated Parallel Processing
-  Platform Vendor:                               Advanced Micro Devices, Inc.
-  Platform Extensions:                           cl_khr_icd cl_amd_event_callback
-  Platform Profile:                              EMBEDDED_PROFILE
-  Platform Version:                              OpenCL 1.0
-  Platform Name:                                 Xilinx
-  Platform Vendor:                               Xilinx
-  Platform Extensions:                           cl_khr_icd
-<...>
-  Platform Name:                                 Xilinx
-Number of devices:                               2
-  Device Type:                                   CL_DEVICE_TYPE_ACCRLERATOR
-  Vendor ID:                                     0h
-  Max compute units:                             0
-  Max work items dimensions:                     3
-    Max work items[0]:                           4294967295
-    Max work items[1]:                           4294967295
-    Max work items[2]:                           4294967295
-  Max work group size:                           4294967295
-  Preferred vector width char:                   1
-  Preferred vector width short:                  1
-  Preferred vector width int:                    1
-  Preferred vector width long:                   1
-  Preferred vector width float:                  1
-  Preferred vector width double:                 0
-  Max clock frequency:                           0Mhz
-  Address bits:                                  64
-  Max memory allocation:                         4294967296
-  Image support:                                 Yes
-  Max number of images read arguments:           128
-  Max number of images write arguments:          8
-  Max image 2D width:                            8192
-  Max image 2D height:                           8192
-  Max image 3D width:                            2048
-  Max image 3D height:                           2048
-  Max image 3D depth:                            2048
-  Max samplers within kernel:                    0
-  Max size of kernel argument:                   2048
-  Alignment (bits) of base address:              32768
-  Minimum alignment (bytes) for any datatype:    128
-  Single precision floating point capability
-    Denorms:                                     No
-    Quiet NaNs:                                  Yes
-    Round to nearest even:                       Yes
-    Round to zero:                               No
-    Round to +ve and infinity:                   No
-    IEEE754-2008 fused multiply-add:             No
-  Cache type:                                    None
-  Cache line size:                               64
-  Cache size:                                    0
-  Global memory size:                            0
-  Constant buffer size:                          4194304
-  Max number of constant args:                   8
-  Local memory type:                             Scratchpad
-  Local memory size:                             16384
-  Error correction support:                      1
-  Profiling timer resolution:                    1
-  Device endianess:                              Little
-  Available:                                     No
-  Compiler available:                            No
-  Execution capabilities:
-    Execute OpenCL kernels:                      Yes
-    Execute native function:                     No
-  Queue on Host properties:
-    Out-of-Order:                                Yes
-    Profiling:                                   Yes
-  Platform ID:                                   0x16fbae8
-  Name:                                          xilinx_u280_gen3x16_xdma_base_1
-  Vendor:                                        Xilinx
-  Driver version:                                1.0
-  Profile:                                       EMBEDDED_PROFILE
-  Version:                                       OpenCL 1.0
-<...>
-```
-
-which shows that both `Xilinx` platform and accelerator devices are present.
-
-## Building Applications
-
-To simplify the build process we define two environment variables `IT4I_PLATFORM` and `IT4I_BUILD_MODE`.
-The first `IT4I_PLATFORM` denotes specific accelerator hardware such as `Alveo u250` or `Alveo u280`
-and its configuration stored in (`*.xpfm` files).
-The list of available platforms can be obtained using `platforminfo` utility:
-
-```console
-$ platforminfo -l
-{
-    "platforms": [
-        {
-            "baseName": "xilinx_u280_gen3x16_xdma_1_202211_1",
-            "version": "202211.1",
-            "type": "sdaccel",
-            "dataCenter": "true",
-            "embedded": "false",
-            "externalHost": "true",
-            "serverManaged": "true",
-            "platformState": "impl",
-            "usesPR": "true",
-            "platformFile": "\/opt\/xilinx\/platforms\/xilinx_u280_gen3x16_xdma_1_202211_1\/xilinx_u280_gen3x16_xdma_1_202211_1.xpfm"
-        },
-        {
-            "baseName": "xilinx_u250_gen3x16_xdma_4_1_202210_1",
-            "version": "202210.1",
-            "type": "sdaccel",
-            "dataCenter": "true",
-            "embedded": "false",
-            "externalHost": "true",
-            "serverManaged": "true",
-            "platformState": "impl",
-            "usesPR": "true",
-            "platformFile": "\/opt\/xilinx\/platforms\/xilinx_u250_gen3x16_xdma_4_1_202210_1\/xilinx_u250_gen3x16_xdma_4_1_202210_1.xpfm"
-        }
-    ]
-}
-```
-
-Here, `baseName` and potentially `platformFile` are of interest and either can be specified as value of `IT4I_PLATFORM`.
-In this case we have platform files `xilinx_u280_gen3x16_xdma_1_202211_1` (Alveo u280) and `xilinx_u250_gen3x16_xdma_4_1_202210_1` (Alveo u250).
-
-The `IT4I_BUILD_MODE` is used to specify build type (`hw`, `hw_emu` and `sw_emu`):
-
-- `hw` performs full synthesis for the accelerator
-- `hw_emu` allows to run both synthesis and emulation for debugging
-- `sw_emu` compiles kernels only for emulation (doesn't require accelerator and allows much faster build)
-
-For example to configure build for `Alveo u280` we set:
-
-```console
-$ export IT4I_PLATFORM=xilinx_u280_gen3x16_xdma_1_202211_1
-```
-
-### Software Emulation Mode
-
-The software emulation mode is preferable for development as HLS synthesis is very time consuming. To build following applications in this mode we set:
-
-```console
-$ export IT4I_BUILD_MODE=sw_emu
-```
-
-and run each application with `XCL_EMULATION_MODE` set to `sw_emu`:
-
-```
-$ XCL_EMULATION_MODE=sw_emu <application>
-```
-
-### Hardware Synthesis Mode
-
-<Callout>
-    The HLS of these simple applications **can take up to 2 hours** to finish.
-</Callout>
-
-To allow the application to utilize real hardware we have to synthetize FPGA design for the accelerator. This can be done by repeating same steps used to build kernels in emulation mode, but with `IT4I_BUILD_MODE` set to `hw` like so:
-
-```console
-$ export IT4I_BUILD_MODE=hw
-```
-
-the host application binary can be reused, but it has to be run without `XCL_EMULATION_MODE`:
-
-```console
-$ <application>
-```
-
-## Sample Applications
-
-The first two samples illustrate two main approaches to building FPGA accelerated applications using Xilinx platform - **XRT** and **OpenCL**.
-The final example combines **HIP** with **XRT** to show basics necessary to build application, which utilizes both GPU and FPGA accelerators.
-
-### Using HLS and XRT
-
-The applications are typically separated into host and accelerator/kernel side.
-The following host-side code should be saved as `host.cpp`
-
-```c++
-/*
-# Copyright (C) 2023, Advanced Micro Devices, Inc. All rights reserved.
-# SPDX-License-Identifier: X11
-*/
-#include <iostream>
-#include <cstring>
-
-// XRT includes
-#include "xrt/xrt_bo.h"
-#include <experimental/xrt_xclbin.h>
-#include "xrt/xrt_device.h"
-#include "xrt/xrt_kernel.h"
-
-#define DATA_SIZE 4096
-
-int main(int argc, char** argv)
-{
-    if(argc != 2)
-    {
-        std::cout << "Usage: " << argv[0] << " <XCLBIN File>" << std::endl;
-        return EXIT_FAILURE;
-    }
-
-    // Read settings
-    std::string binaryFile = argv[1];
-    int device_index = 0;
-
-    std::cout << "Open the device" << device_index << std::endl;
-    auto device = xrt::device(device_index);
-    std::cout << "Load the xclbin " << binaryFile << std::endl;
-    auto uuid = device.load_xclbin("./vadd.xclbin");
-
-    size_t vector_size_bytes = sizeof(int) * DATA_SIZE;
-
-    //auto krnl = xrt::kernel(device, uuid, "vadd");
-    auto krnl = xrt::kernel(device, uuid, "vadd", xrt::kernel::cu_access_mode::exclusive);
-
-    std::cout << "Allocate Buffer in Global Memory\n";
-    auto boIn1 = xrt::bo(device, vector_size_bytes, krnl.group_id(0)); //Match kernel arguments to RTL kernel
-    auto boIn2 = xrt::bo(device, vector_size_bytes, krnl.group_id(1));
-    auto boOut = xrt::bo(device, vector_size_bytes, krnl.group_id(2));
-
-    // Map the contents of the buffer object into host memory
-    auto bo0_map = boIn1.map<int*>();
-    auto bo1_map = boIn2.map<int*>();
-    auto bo2_map = boOut.map<int*>();
-    std::fill(bo0_map, bo0_map + DATA_SIZE, 0);
-    std::fill(bo1_map, bo1_map + DATA_SIZE, 0);
-    std::fill(bo2_map, bo2_map + DATA_SIZE, 0);
-
-    // Create the test data
-    int bufReference[DATA_SIZE];
-    for (int i = 0; i < DATA_SIZE; ++i)
-    {
-        bo0_map[i] = i;
-        bo1_map[i] = i;
-        bufReference[i] = bo0_map[i] + bo1_map[i]; //Generate check data for validation
-    }
-
-    // Synchronize buffer content with device side
-    std::cout << "synchronize input buffer data to device global memory\n";
-    boIn1.sync(XCL_BO_SYNC_BO_TO_DEVICE);
-    boIn2.sync(XCL_BO_SYNC_BO_TO_DEVICE);
-
-    std::cout << "Execution of the kernel\n";
-    auto run = krnl(boIn1, boIn2, boOut, DATA_SIZE); //DATA_SIZE=size
-    run.wait();
-
-    // Get the output;
-    std::cout << "Get the output data from the device" << std::endl;
-    boOut.sync(XCL_BO_SYNC_BO_FROM_DEVICE);
-
-    // Validate results
-    if (std::memcmp(bo2_map, bufReference, vector_size_bytes))
-        throw std::runtime_error("Value read back does not match reference");
-
-    std::cout << "TEST PASSED\n";
-    return 0;
-}
-```
-
-The host-side code can now be compiled using GCC toolchain as:
-
-```console
-$ g++ host.cpp -I$XILINX_XRT/include -I$XILINX_VIVADO/include -L$XILINX_XRT/lib -lxrt_coreutil -o host
-```
-
-The accelerator side (simple vector-add kernel) should be saved as `vadd.cpp`.
-
-```c++
-/*
-# Copyright (C) 2023, Advanced Micro Devices, Inc. All rights reserved.
-# SPDX-License-Identifier: X11
-*/
-
-extern "C" {
-	void vadd(
-	        const unsigned int *in1, // Read-Only Vector 1
-	        const unsigned int *in2, // Read-Only Vector 2
-	        unsigned int *out,       // Output Result
-	        int size                 // Size in integer
-	        )
-	{
-#pragma HLS INTERFACE m_axi port=in1 bundle=aximm1
-#pragma HLS INTERFACE m_axi port=in2 bundle=aximm2
-#pragma HLS INTERFACE m_axi port=out bundle=aximm1
-
-	    for(int i = 0; i < size; ++i)
-	    {
-	        out[i] = in1[i] + in2[i];
-	    }
-	}
-}
-```
-
-The accelerator-side code is build using Vitis `v++`.
-This is two-step process, which either builds emulation binary or performs full HLS (depending on the value of `-t` argument).
-The platform (specific accelerator) has to be also specified at this step (both for emulation and full HLS).
-
-```console
-$ v++ -c -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM -k vadd vadd.cpp -o vadd.xo
-$ v++ -l -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM vadd.xo -o vadd.xclbin
-```
-
-This process should result in `vadd.xclbin`, which can be loaded by host-side application.
-
-### Running the Application
-
-With both host application and kernel binary at hand the application (in emulation mode) can be launched as
-
-```console
-$ XCL_EMULATION_MODE=sw_emu ./host vadd.xclbin
-```
-
-or with real hardware (having compiled kernels with `IT4I_BUILD_MODE=hw`)
-
-```console
-./host vadd.xclbin
-```
-
-## Using HLS and OpenCL
-
-The host-side application code should be saved as `host.cpp`.
-This application attempts to find `Xilinx` OpenCL platform in the system and selects first device in that platform.
-The device is then configured with provided kernel binary.
-Other than that the only difference to typical vector-add in OpenCL is use of `enqueueTask(...)` to launch the kernel
-(compared to typical `enqueueNDRangeKernel`).
-
-```c++
-#include <iostream>
-#include <fstream>
-#include <iterator>
-#include <vector>
-
-#define CL_HPP_TARGET_OPENCL_VERSION 120
-#define CL_HPP_MINIMUM_OPENCL_VERSION 120
-#define CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY 1
-#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
-
-#include <CL/cl2.hpp>
-#include <CL/cl_ext_xilinx.h>
-
-std::vector<unsigned char> read_binary_file(const std::string &filename)
-{
-    std::cout << "INFO: Reading " << filename << std::endl;
-    std::ifstream file(filename, std::ios::binary);
-    file.unsetf(std::ios::skipws);
-
-    std::streampos file_size;
-    file.seekg(0, std::ios::end);
-    file_size = file.tellg();
-    file.seekg(0, std::ios::beg);
-
-    std::vector<unsigned char> data;
-    data.reserve(file_size);
-    data.insert(data.begin(),
-        std::istream_iterator<unsigned char>(file),
-        std::istream_iterator<unsigned char>());
-
-    return data;
-}
-
-cl::Device select_device()
-{
-    std::vector<cl::Platform> platforms;
-    cl::Platform::get(&platforms);
-    cl::Platform platform;
-
-    for(cl::Platform &p: platforms)
-    {
-        const std::string name = p.getInfo<CL_PLATFORM_NAME>();
-        std::cout << "PLATFORM: " << name << std::endl;
-        if(name == "Xilinx")
-        {
-            platform = p;
-            break;
-        }
-    }
-
-    if(platform == cl::Platform())
-    {
-        std::cout << "Xilinx platform not found!" << std::endl;
-        exit(EXIT_FAILURE);
-    }
-
-    std::vector<cl::Device> devices;
-    platform.getDevices(CL_DEVICE_TYPE_ACCELERATOR, &devices);
-    return devices[0];
-}
-
-static const int DATA_SIZE = 1024;
-
-int main(int argc, char *argv[])
-{
-    if(argc != 2)
-    {
-        std::cout << "Usage: " << argv[0] << " <XCLBIN File>" << std::endl;
-        return EXIT_FAILURE;
-    }
-
-    std::string binary_file = argv[1];
-
-    std::vector<int> source_a(DATA_SIZE, 10);
-    std::vector<int> source_b(DATA_SIZE, 32);
-
-    auto program_binary = read_binary_file(binary_file);
-    cl::Program::Binaries bins{{program_binary.data(), program_binary.size()}};
-
-    cl::Device device = select_device();
-    cl::Context context(device, nullptr, nullptr, nullptr);
-    cl::CommandQueue q(context, device, CL_QUEUE_PROFILING_ENABLE);
-
-    cl::Program program(context, {device}, bins, nullptr);
-
-    cl::Kernel vadd_kernel = cl::Kernel(program, "vector_add");
-
-    cl::Buffer buffer_a(context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, source_a.size() * sizeof(int), source_a.data());
-    cl::Buffer buffer_b(context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, source_b.size() * sizeof(int), source_b.data());
-    cl::Buffer buffer_res(context, CL_MEM_READ_WRITE, source_a.size() * sizeof(int));
-
-    int narg = 0;
-    vadd_kernel.setArg(narg++, buffer_res);
-    vadd_kernel.setArg(narg++, buffer_a);
-    vadd_kernel.setArg(narg++, buffer_b);
-    vadd_kernel.setArg(narg++, DATA_SIZE);
-
-    q.enqueueTask(vadd_kernel);
-
-    std::vector<int> result(DATA_SIZE, 0);
-    q.enqueueReadBuffer(buffer_res, CL_TRUE, 0, result.size() * sizeof(int), result.data());
-
-    int mismatch_count = 0;
-    for(size_t i = 0; i < DATA_SIZE; ++i)
-    {
-        int host_result = source_a[i] + source_b[i];
-        if(result[i] != host_result)
-        {
-            mismatch_count++;
-            std::cout << "ERROR: " << result[i] << " != " << host_result << std::endl;
-            break;
-        }
-    }
-
-    std::cout << "RESULT: " << (mismatch_count == 0 ? "PASSED" : "FAILED") << std::endl;
-
-    return 0;
-}
-```
-
-The host-side code can now be compiled using GCC toolchain as:
-
-```console
-$ g++ host.cpp -I$XILINX_XRT/include -I$XILINX_VIVADO/include -lOpenCL -o host
-```
-
-The accelerator side (simple vector-add kernel) should be saved as `vadd.cl`.
-
-```c++
-#define BUFFER_SIZE 256
-#define DATA_SIZE 1024
-
-// TRIPCOUNT indentifier
-__constant uint c_len = DATA_SIZE / BUFFER_SIZE;
-__constant uint c_size = BUFFER_SIZE;
-
-__attribute__((reqd_work_group_size(1, 1, 1)))
-__kernel void vector_add(__global int* c,
-    __global const int* a,
-    __global const int* b,
-    const int n_elements)
-{
-    int arrayA[BUFFER_SIZE];
-    int arrayB[BUFFER_SIZE];
-
-    __attribute__((xcl_loop_tripcount(c_len, c_len)))
-    for (int i = 0; i < n_elements; i += BUFFER_SIZE)
-    {
-        int size = BUFFER_SIZE;
-
-        if(i + size > n_elements)
-            size = n_elements - i;
-
-        __attribute__((xcl_loop_tripcount(c_size, c_size)))
-        __attribute__((xcl_pipeline_loop(1))) readA:
-        for(int j = 0; j < size; j++)
-            arrayA[j] = a[i + j];
-
-        __attribute__((xcl_loop_tripcount(c_size, c_size)))
-        __attribute__((xcl_pipeline_loop(1))) readB:
-        for(int j = 0; j < size; j++)
-            arrayB[j] = b[i + j];
-
-        __attribute__((xcl_loop_tripcount(c_size, c_size)))
-        __attribute__((xcl_pipeline_loop(1))) vadd_writeC:
-        for(int j = 0; j < size; j++)
-            c[i + j] = arrayA[j] + arrayB[j];
-    }
-}
-```
-
-The accelerator-side code is build using Vitis `v++`.
-This is three-step process, which either builds emulation binary or performs full HLS (depending on the value of `-t` argument).
-The platform (specific accelerator) has to be also specified at this step (both for emulation and full HLS).
-
-```console
-$ v++ -c -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM -k vector_add -o vadd.xo vadd.cl
-$ v++ -l -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM -o vadd.link.xclbin vadd.xo
-$ v++ -p vadd.link.xclbin -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM -o vadd.xclbin
-```
-
-This process should result in `vadd.xclbin`, which can be loaded by host-side application.
-
-### Running the Application
-
-With both host application and kernel binary at hand the application (in emulation mode) can be launched as
-
-```console
-$ XCL_EMULATION_MODE=sw_emu ./host vadd.xclbin
-```
-
-or with real hardware (having compiled kernels with `IT4I_BUILD_MODE=hw`)
-
-```console
-./host vadd.xclbin
-```
-
-## Hybrid GPU and FPGA Application (HIP+XRT)
-
-This simple 8-bit quantized dot product (`R = sum(X[i]*Y[i])`) example illustrates basic approach to utilize both GPU and FPGA accelerators in a single application.
-The application takes the simplest approach, where both synchronization and data transfers are handled explicitly by the host.
-The HIP toolchain is used to compile the single source host/GPU code as usual, but it is also linked with XRT runtime, which allows host to control the FPGA accelerator.
-The FPGA kernels are built separately as in previous examples.
-
-The host/GPU HIP code should be saved as `main.hip`
-
-```c++
-#include <iostream>
-#include <vector>
-
-#include "xrt/xrt_bo.h"
-#include "experimental/xrt_xclbin.h"
-#include "xrt/xrt_device.h"
-#include "xrt/xrt_kernel.h"
-#include "hip/hip_runtime.h"
-
-const size_t DATA_SIZE = 1024;
-
-float compute_reference(const float *srcX, const float *srcY, size_t count);
-
-__global__ void quantize(int8_t *out, const float *in, size_t count)
-{
-    size_t idx = blockIdx.x * blockDim.x + threadIdx.x;
-
-    for(size_t i = idx; i < count; i += blockDim.x * gridDim.x)
-        out[i] = int8_t(in[i] * 127);
-}
-
-__global__ void dequantize(float *out, const int16_t *in, size_t count)
-{
-    size_t idx = blockIdx.x * blockDim.x + threadIdx.x;
-
-    for(size_t i = idx; i < count; i += blockDim.x * gridDim.x)
-        out[i] = float(in[i] / float(127*127));
-}
-
-int main(int argc, char *argv[])
-{
-    if(argc != 2)
-    {
-        std::cout << "Usage: " << argv[0] << " <XCLBIN File>" << std::endl;
-        return EXIT_FAILURE;
-    }
-
-    // Prepare experiment data
-    std::vector<float> srcX(DATA_SIZE);
-    std::vector<float> srcY(DATA_SIZE);
-    float outR = 0.0f;
-
-    for(size_t i = 0; i < DATA_SIZE; ++i)
-    {
-        srcX[i] = float(rand()) / float(RAND_MAX);
-        srcY[i] = float(rand()) / float(RAND_MAX);
-        outR += srcX[i] * srcY[i];
-    }
-
-    float outR_quant = compute_reference(srcX.data(), srcY.data(), DATA_SIZE);
-
-    std::cout << "REFERENCE: " << outR_quant << " (" << outR << ")" << std::endl;
-
-    // Initialize XRT (FPGA device), load kernels binary and create kernel object
-    xrt::device device(0);
-    std::cout << "Loading xclbin file " << argv[1] << std::endl;
-    xrt::uuid xclbinId = device.load_xclbin(argv[1]);
-    xrt::kernel mulKernel(device, xclbinId, "multiply", xrt::kernel::cu_access_mode::exclusive);
-
-    // Allocate GPU buffers
-    float   *srcX_gpu, *srcY_gpu, *res_gpu;
-    int8_t  *srcX_gpu_quant, *srcY_gpu_quant;
-    int16_t *res_gpu_quant;
-    hipMalloc(&srcX_gpu, DATA_SIZE * sizeof(float));
-    hipMalloc(&srcY_gpu, DATA_SIZE * sizeof(float));
-    hipMalloc(&res_gpu,  DATA_SIZE * sizeof(float));
-    hipMalloc(&srcX_gpu_quant, DATA_SIZE * sizeof(int8_t));
-    hipMalloc(&srcY_gpu_quant, DATA_SIZE * sizeof(int8_t));
-    hipMalloc(&res_gpu_quant,  DATA_SIZE * sizeof(int16_t));
-
-    // Allocate FPGA buffers
-    xrt::bo srcX_fpga_quant(device, DATA_SIZE * sizeof(int8_t), mulKernel.group_id(0));
-    xrt::bo srcY_fpga_quant(device, DATA_SIZE * sizeof(int8_t), mulKernel.group_id(1));
-    xrt::bo res_fpga_quant(device, DATA_SIZE * sizeof(int16_t), mulKernel.group_id(2));
-
-    // Copy experiment data from HOST to GPU
-    hipMemcpy(srcX_gpu, srcX.data(), DATA_SIZE * sizeof(float), hipMemcpyHostToDevice);
-    hipMemcpy(srcY_gpu, srcY.data(), DATA_SIZE * sizeof(float), hipMemcpyHostToDevice);
-
-    // Execute quantization kernels on both input vectors
-    quantize<<<16, 256>>>(srcX_gpu_quant, srcX_gpu, DATA_SIZE);
-    quantize<<<16, 256>>>(srcY_gpu_quant, srcY_gpu, DATA_SIZE);
-
-    // Map FPGA buffers into HOST memory, copy data from GPU to these mapped buffers and synchronize them into FPGA memory
-    hipMemcpy(srcX_fpga_quant.map<int8_t *>(), srcX_gpu_quant, DATA_SIZE * sizeof(int8_t), hipMemcpyDeviceToHost);
-    srcX_fpga_quant.sync(XCL_BO_SYNC_BO_TO_DEVICE);
-    hipMemcpy(srcY_fpga_quant.map<int8_t *>(), srcY_gpu_quant, DATA_SIZE * sizeof(int8_t), hipMemcpyDeviceToHost);
-    srcY_fpga_quant.sync(XCL_BO_SYNC_BO_TO_DEVICE);
-
-    // Execute FPGA kernel (8-bit integer multiplication)
-    auto kernelRun = mulKernel(res_fpga_quant, srcX_fpga_quant, srcY_fpga_quant, DATA_SIZE);
-    kernelRun.wait();
-
-    // Synchronize output FPGA buffer back to HOST and copy its contents to GPU buffer for dequantization
-    res_fpga_quant.sync(XCL_BO_SYNC_BO_FROM_DEVICE);
-    hipMemcpy(res_gpu_quant, res_fpga_quant.map<int16_t *>(), DATA_SIZE * sizeof(int16_t), hipMemcpyDeviceToHost);
-
-    // Dequantize multiplication result on GPU
-    dequantize<<<16, 256>>>(res_gpu, res_gpu_quant, DATA_SIZE);
-
-    // Copy dequantized results from GPU to HOST
-    std::vector<float> res(DATA_SIZE);
-    hipMemcpy(res.data(), res_gpu, DATA_SIZE * sizeof(float), hipMemcpyDeviceToHost);
-
-    // Perform simple sum on CPU
-    float out = 0.0;
-    for(size_t i = 0; i < DATA_SIZE; ++i)
-        out += res[i];
-
-    std::cout << "RESULT: " << out << std::endl;
-
-    hipFree(srcX_gpu);
-    hipFree(srcY_gpu);
-    hipFree(res_gpu);
-    hipFree(srcX_gpu_quant);
-    hipFree(srcY_gpu_quant);
-    hipFree(res_gpu_quant);
-
-    return 0;
-}
-
-float compute_reference(const float *srcX, const float *srcY, size_t count)
-{
-    float out = 0.0f;
-
-    for(size_t i = 0; i < count; ++i)
-    {
-        int16_t quantX(srcX[i] * 127);
-        int16_t quantY(srcY[i] * 127);
-
-        out += float(int16_t(quantX * quantY) / float(127*127));
-    }
-
-    return out;
-}
-```
-
-The host/GPU application can be built using HIPCC as:
-
-```console
-$ hipcc -I$XILINX_XRT/include -I$XILINX_VIVADO/include -L$XILINX_XRT/lib -lxrt_coreutil main.hip -o host
-```
-
-The accelerator side (simple vector-multiply kernel) should be saved as `kernels.cpp`.
-
-```c++
-extern "C" {
-    void multiply(
-        short *out,
-        const char *inX,
-        const char *inY,
-        int size)
-    {
-#pragma HLS INTERFACE m_axi port=inX bundle=aximm1
-#pragma HLS INTERFACE m_axi port=inY bundle=aximm2
-#pragma HLS INTERFACE m_axi port=out bundle=aximm1
-        for(int i = 0; i < size; ++i)
-            out[i] = short(inX[i]) * short(inY[i]);
-    }
-}
-```
-
-Once again the HLS kernel is build using Vitis `v++` in two steps:
-
-```console
-v++ -c -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM -k multiply kernels.cpp -o kernels.xo
-v++ -l -t $IT4I_BUILD_MODE --platform $IT4I_PLATFORM kernels.xo -o kernels.xclbin
-```
-
-### Running the Application
-
-In emulation mode (FPGA emulation, GPU HW is required) the application can be launched as:
-
-```console
-$ XCL_EMULATION_MODE=sw_emu ./host kernels.xclbin
-REFERENCE: 256.554 (260.714)
-Loading xclbin file ./kernels.xclbin
-RESULT: 256.554
-```
-
-or, having compiled kernels with `IT4I_BUILD_MODE=hw` set, using real hardware (both FPGA and GPU HW is required)
-
-```console
-$ ./host kernels.xclbin
-REFERENCE: 256.554 (260.714)
-Loading xclbin file ./kernels.xclbin
-RESULT: 256.554
-```
-
-## Additional Resources
-
-- [https://xilinx.github.io/Vitis-Tutorials/][1]
-- [http://xilinx.github.io/Vitis_Accel_Examples/][2]
-
-[1]: https://xilinx.github.io/Vitis-Tutorials/
-[2]: http://xilinx.github.io/Vitis_Accel_Examples/
diff --git a/content/docs/cs/introduction.mdx b/content/docs/cs/introduction.mdx
deleted file mode 100644
index 7ca54e561f9baf2b1fd3a3562e3f7eb3a96a65a1..0000000000000000000000000000000000000000
--- a/content/docs/cs/introduction.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: "Complementary Systems"
----
-Complementary systems offer development environment for users
-that need to port and optimize their code and applications
-for various hardware architectures and software technologies
-that are not available on standard clusters.
-
-## Complementary Systems 1
-
-First stage of complementary systems implementation comprises of these partitions:
-
-- compute partition 0 – based on ARM technology - legacy
-- compute partition 1 – based on ARM technology - A64FX
-- compute partition 2 – based on Intel technologies - Ice Lake, NVDIMMs + Bitware FPGAs
-- compute partition 3 – based on AMD technologies - Milan, MI100 GPUs + Xilinx FPGAs
-- compute partition 4 – reflecting Edge type of servers
-- partition 5 – FPGA synthesis server
-
-![](/it4i/img/cs1_1.png)
-
-## Complementary Systems 2
-
-Second stage of complementary systems implementation comprises of these partitions:
-
-- compute partition 6 - based on ARM technology + CUDA programmable GPGPU accelerators on ampere architecture + DPU network processing units
-- compute partition 7 - based on IBM Power10 architecture
-- compute partition 8 - modern CPU with a very high L3 cache capacity (over 750MB)
-- compute partition 9 - virtual GPU accelerated workstations
-- compute partition 10 - Sapphire Rapids-HBM server
-- compute partition 11 - NVIDIA Grace CPU Superchip
-
-![](/it4i/img/cs2_2.png)
-
-## Modules and Architecture Availability
-
-Complementary systems list available modules automatically based on the detected architecture.
-
-However, you can load one of the three modules -- `aarch64`, `avx2`, and `avx512` --
-to reload the list of modules available for the respective architecture:
-
-```console
-[user@login.cs ~]$ ml architecture/aarch64
-
-  aarch64 modules + all modules
-
-[user@login.cs ~]$ ml architecture/avx2
-
-  avx2 modules + all modules
-
-[user@login.cs ~]$ ml architecture/avx512
-
-  avx512 modules + all modules
-```
diff --git a/content/docs/cs/job-scheduling.mdx b/content/docs/cs/job-scheduling.mdx
deleted file mode 100644
index b32c32fee14b4a81b6fda1d2141c5bb0333e3cad..0000000000000000000000000000000000000000
--- a/content/docs/cs/job-scheduling.mdx
+++ /dev/null
@@ -1,441 +0,0 @@
----
-title: "Complementary System Job Scheduling"
----
-## Introduction
-
-[Slurm][1] workload manager is used to allocate and access Complementary systems resources.
-
-## Getting Partition Information
-
-Display partitions/queues
-
-```console
-$ sinfo -s
-PARTITION AVAIL  TIMELIMIT   NODES(A/I/O/T) NODELIST
-p00-arm      up 1-00:00:00          0/1/0/1 p00-arm01
-p01-arm*     up 1-00:00:00          0/8/0/8 p01-arm[01-08]
-p02-intel    up 1-00:00:00          0/2/0/2 p02-intel[01-02]
-p03-amd      up 1-00:00:00          0/2/0/2 p03-amd[01-02]
-p04-edge     up 1-00:00:00          0/1/0/1 p04-edge01
-p05-synt     up 1-00:00:00          0/1/0/1 p05-synt01
-p06-arm      up 1-00:00:00          0/2/0/2 p06-arm[01-02]
-p07-power    up 1-00:00:00          0/1/0/1 p07-power01
-p08-amd      up 1-00:00:00          0/1/0/1 p08-amd01
-p10-intel    up 1-00:00:00          0/1/0/1 p10-intel01
-```
-
-## Getting Job Information
-
-Show jobs
-
-```console
-$ squeue --me
-             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
-               104   p01-arm interact    user   R       1:48      2 p01-arm[01-02]
-```
-
-Show job details for specific job
-
-```console
-$ scontrol -d show job JOBID
-```
-
-Show job details for executing job from job session
-
-```console
-$ scontrol -d show job $SLURM_JOBID
-```
-
-## Running Interactive Jobs
-
-Run interactive job
-
-```console
- $ salloc -A PROJECT-ID -p p01-arm
-```
-
-Run interactive job, with X11 forwarding
-
-```console
- $ salloc -A PROJECT-ID -p p01-arm --x11
-```
-
-<Callout type=warn>
-    Do not use `srun` for initiating interactive jobs, subsequent `srun`, `mpirun` invocations would block forever.
-</Callout>
-
-## Running Batch Jobs
-
-Run batch job
-
-```console
- $ sbatch -A PROJECT-ID -p p01-arm ./script.sh
-```
-
-Useful command options (salloc, sbatch, srun)
-
-* -n, --ntasks
-* -c, --cpus-per-task
-* -N, --nodes
-
-## Slurm Job Environment Variables
-
-Slurm provides useful information to the job via environment variables. Environment variables are available on all nodes allocated to job when accessed via Slurm supported means (srun, compatible mpirun).
-
-See all Slurm variables
-
-```
-set | grep ^SLURM
-```
-
-### Useful Variables
-
-| variable name | description | example |
-| ------ | ------ | ------ |
-| SLURM_JOB_ID | job id of the executing job| 593 |
-| SLURM_JOB_NODELIST | nodes allocated to the job | p03-amd[01-02] |
-| SLURM_JOB_NUM_NODES | number of nodes allocated to the job | 2 |
-| SLURM_STEP_NODELIST | nodes allocated to the job step | p03-amd01 |
-| SLURM_STEP_NUM_NODES | number of nodes allocated to the job step | 1 |
-| SLURM_JOB_PARTITION | name of the partition | p03-amd |
-| SLURM_SUBMIT_DIR | submit directory | /scratch/project/open-xx-yy/work |
-
-See [Slurm srun documentation][2] for details.
-
-Get job nodelist
-
-```
-$ echo $SLURM_JOB_NODELIST
-p03-amd[01-02]
-```
-
-Expand nodelist to list of nodes.
-
-```
-$ scontrol show hostnames $SLURM_JOB_NODELIST
-p03-amd01
-p03-amd02
-```
-
-## Modifying Jobs
-
-```
-$ scontrol update JobId=JOBID ATTR=VALUE
-```
-
-for example
-
-```
-$ scontrol update JobId=JOBID Comment='The best job ever'
-```
-
-## Deleting Jobs
-
-```
-$ scancel JOBID
-```
-
-## Partitions
-
-| PARTITION | nodes | whole node | cores per node | features |
-| --------- | ----- | ---------- | -------------- | -------- |
-| p00-arm   | 1     | yes        | 64             | aarch64,cortex-a72 |
-| p01-arm   | 8     | yes        | 48             | aarch64,a64fx,ib |
-| p02-intel | 2     | no         | 64             | x86_64,intel,icelake,ib,fpga,bitware,nvdimm |
-| p03-amd   | 2     | no         | 64             | x86_64,amd,milan,ib,gpu,mi100,fpga,xilinx |
-| p04-edge  | 1     | yes        | 16             | 86_64,intel,broadwell,ib |
-| p05-synt  | 1     | yes        | 8              | x86_64,amd,milan,ib,ht |
-| p06-arm   | 2     | yes        | 80             | aarch64,ib |
-| p07-power | 1     | yes        | 192            | ppc64le,ib |
-| p08-amd   | 1     | yes        | 128            | x86_64,amd,milan-x,ib,ht |
-| p10-intel | 1     | yes        | 96             | x86_64,intel,sapphire_rapids,ht|
-
-Use `-t`, `--time` option to specify job run time limit. Default job time limit is 2 hours, maximum job time limit is 24 hours.
-
-FIFO scheduling with backfilling is employed.
-
-## Partition 00 - ARM (Cortex-A72)
-
-Whole node allocation.
-
-One node:
-
-```console
-salloc -A PROJECT-ID -p p00-arm
-```
-
-## Partition 01 - ARM (A64FX)
-
-Whole node allocation.
-
-One node:
-
-```console
-salloc -A PROJECT-ID -p p01-arm
-```
-
-```console
-salloc -A PROJECT-ID -p p01-arm -N=1
-```
-
-Multiple nodes:
-
-```console
-salloc -A PROJECT-ID -p p01-arm -N=8
-```
-
-## Partition 02 - Intel (Ice Lake, NVDIMMs + Bitware FPGAs)
-
-FPGAs are treated as resources. See below for more details about resources.
-
-Partial allocation - per FPGA, resource separation is not enforced.
-Use only FPGAs allocated to the job!
-
-One FPGA:
-
-```console
-salloc -A PROJECT-ID -p p02-intel --gres=fpga
-```
-
-Two FPGAs on the same node:
-
-```console
-salloc -A PROJECT-ID -p p02-intel --gres=fpga:2
-```
-
-All FPGAs:
-
-```console
-salloc -A PROJECT-ID -p p02-intel -N 2 --gres=fpga:2
-```
-
-## Partition 03 - AMD (Milan, MI100 GPUs + Xilinx FPGAs)
-
-GPUs and FPGAs are treated as resources. See below for more details about resources.
-
-Partial allocation - per GPU and per FPGA, resource separation is not enforced.
-Use only GPUs and FPGAs allocated to the job!
-
-One GPU:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=gpu
-```
-
-Two GPUs on the same node:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=gpu:2
-```
-
-Four GPUs on the same node:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=gpu:4
-```
-
-All GPUs:
-
-```console
-salloc -A PROJECT-ID -p p03-amd -N 2 --gres=gpu:4
-```
-
-One FPGA:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=fpga
-```
-
-Two FPGAs:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=fpga:2
-```
-
-All FPGAs:
-
-```console
-salloc -A PROJECT-ID -p p03-amd -N 2--gres=fpga:2
-```
-
-One GPU and one FPGA on the same node:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=gpu,fpga
-```
-
-Four GPUs and two FPGAs on the same node:
-
-```console
-salloc -A PROJECT-ID -p p03-amd --gres=gpu:4,fpga:2
-```
-
-All GPUs and FPGAs:
-
-```console
-salloc -A PROJECT-ID -p p03-amd -N 2 --gres=gpu:4,fpga:2
-```
-
-## Partition 04 - Edge Server
-
-Whole node allocation:
-
-```console
-salloc -A PROJECT-ID -p p04-edge
-```
-
-## Partition 05 - FPGA Synthesis Server
-
-Whole node allocation:
-
-```console
-salloc -A PROJECT-ID -p p05-synt
-```
-
-## Partition 06 - ARM
-
-Whole node allocation:
-
-```console
-salloc -A PROJECT-ID -p p06-arm
-```
-
-## Partition 07 - IBM Power
-
-Whole node allocation:
-
-```console
-salloc -A PROJECT-ID -p p07-power
-```
-
-## Partition 08 - AMD Milan-X
-
-Whole node allocation:
-
-```console
-salloc -A PROJECT-ID -p p08-amd
-```
-
-## Partition 10 - Intel Sapphire Rapids
-
-Whole node allocation:
-
-```console
-salloc -A PROJECT-ID -p p10-intel
-```
-
-## Features
-
-Nodes have feature tags assigned to them.
-Users can select nodes based on the feature tags using --constraint option.
-
-| Feature | Description |
-| ------ | ------ |
-| aarch64 | platform |
-| x86_64 | platform |
-| ppc64le | platform |
-| amd | manufacturer |
-| intel | manufacturer |
-| icelake | processor family |
-| broadwell | processor family |
-| sapphire_rapids | processor family |
-| milan | processor family |
-| milan-x | processor family |
-| ib | Infiniband |
-| gpu | equipped with GPU |
-| fpga | equipped with FPGA |
-| nvdimm | equipped with NVDIMMs |
-| ht | Hyperthreading enabled |
-| noht | Hyperthreading disabled |
-
-```
-$ sinfo -o '%16N %f'
-NODELIST         AVAIL_FEATURES
-p00-arm01        aarch64,cortex-a72
-p01-arm[01-08]   aarch64,a64fx,ib
-p02-intel01      x86_64,intel,icelake,ib,fpga,bitware,nvdimm,ht
-p02-intel02      x86_64,intel,icelake,ib,fpga,bitware,nvdimm,noht
-p03-amd02        x86_64,amd,milan,ib,gpu,mi100,fpga,xilinx,noht
-p03-amd01        x86_64,amd,milan,ib,gpu,mi100,fpga,xilinx,ht
-p04-edge01       x86_64,intel,broadwell,ib,ht
-p05-synt01       x86_64,amd,milan,ib,ht
-p06-arm[01-02]   aarch64,ib
-p07-power01      ppc64le,ib
-p08-amd01        x86_64,amd,milan-x,ib,ht
-p10-intel01      x86_64,intel,sapphire_rapids,ht
-```
-
-```
-$ salloc -A PROJECT-ID -p p02-intel --constraint noht
-```
-
-```
-$ scontrol -d show node p02-intel02 | grep ActiveFeatures
-   ActiveFeatures=x86_64,intel,icelake,ib,fpga,bitware,nvdimm,noht
-```
-
-## Resources, GRES
-
-Slurm supports the ability to define and schedule arbitrary resources - Generic RESources (GRES) in Slurm's terminology. We use GRES for scheduling/allocating GPUs and FPGAs.
-
-<Callout type=warn>
-    Use only allocated GPUs and FPGAs. Resource separation is not enforced. If you use non-allocated resources, you can observe strange behavior and get into troubles.
-</Callout>
-
-### Node Resources
-
-Get information about GRES on node.
-
-```
-$ scontrol -d show node p02-intel01 | grep Gres=
-   Gres=fpga:bitware_520n_mx:2
-$ scontrol -d show node p02-intel02 | grep Gres=
-   Gres=fpga:bitware_520n_mx:2
-$ scontrol -d show node p03-amd01 | grep Gres=
-   Gres=gpu:amd_mi100:4,fpga:xilinx_alveo_u250:2
-$ scontrol -d show node p03-amd02 | grep Gres=
-   Gres=gpu:amd_mi100:4,fpga:xilinx_alveo_u280:2
-```
-
-### Request Resources
-
-To allocate required resources (GPUs or FPGAs) use the `--gres salloc/srun` option.
-
-Example: Allocate one FPGA
-
-```
-$ salloc -A PROJECT-ID -p p03-amd --gres fpga:1
-```
-
-### Find Out Allocated Resources
-
-Information about allocated resources is available in Slurm job details, attributes `JOB_GRES` and `GRES`.
-
-```
-$ scontrol -d show job $SLURM_JOBID |grep GRES=
-   JOB_GRES=fpga:xilinx_alveo_u250:1
-     Nodes=p03-amd01 CPU_IDs=0-1 Mem=0 GRES=fpga:xilinx_alveo_u250:1(IDX:0)
-```
-
-IDX in the GRES attribute specifies index/indexes of FPGA(s) (or GPUs) allocated to the job on the node. In the given example - allocated resources are `fpga:xilinx_alveo_u250:1(IDX:0)`, we should use FPGA with index/number 0 on node p03-amd01.
-
-### Request Specific Resources
-
-It is possible to allocate specific resources. It is useful for partition p03-amd equipped with FPGAs of different types.
-
-GRES entry is using format "name[[:type]:count", in the following example name is fpga, type is xilinx_alveo_u280, and count is count 2.
-
-```
-$ salloc -A PROJECT-ID -p p03-amd --gres=fpga:xilinx_alveo_u280:2
-salloc: Granted job allocation XXX
-salloc: Waiting for resource configuration
-salloc: Nodes p03-amd02 are ready for job
-
-$ scontrol -d show job $SLURM_JOBID | grep -i gres
-   JOB_GRES=fpga:xilinx_alveo_u280:2
-     Nodes=p03-amd02 CPU_IDs=0 Mem=0 GRES=fpga:xilinx_alveo_u280(IDX:0-1)
-   TresPerNode=gres:fpga:xilinx_alveo_u280:2
-```
-
-[1]: https://slurm.schedmd.com/
-[2]: https://slurm.schedmd.com/srun.html#SECTION_OUTPUT-ENVIRONMENT-VARIABLES
diff --git a/content/docs/cs/meta.json b/content/docs/cs/meta.json
deleted file mode 100644
index 09114c3efcdc0dab87374f9acd981be587a25617..0000000000000000000000000000000000000000
--- a/content/docs/cs/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Cs",
-  "pages": [
-    "accessing",
-    "guides",
-    "introduction",
-    "job-scheduling",
-    "specifications"
-  ]
-}
diff --git a/content/docs/cs/specifications.mdx b/content/docs/cs/specifications.mdx
deleted file mode 100644
index ef2f43d2f53a145860334632d9ce4aeaeef9996d..0000000000000000000000000000000000000000
--- a/content/docs/cs/specifications.mdx
+++ /dev/null
@@ -1,237 +0,0 @@
----
-title: "Complementary Systems Specifications"
----
-Below are the technical specifications of individual Complementary systems.
-
-## Partition 0 - ARM (Cortex-A72)
-
-The partition is based on the [ARMv8-A 64-bit][4] nebo architecture.
-
-- Cortex-A72
-  - ARMv8-A 64-bit
-  - 2x 32 cores @ 2 GHz
-  - 255 GB memory
-- disk capacity 3,7 TB
-- 1x Infiniband FDR 56 Gb/s
-
-## Partition 1 - ARM (A64FX)
-
-The partition is based on the Armv8.2-A architecture
-with SVE extension of instruction set and
-consists of 8 compute nodes with the following per-node parameters:
-
-- 1x Fujitsu A64FX CPU
-  - Arm v8.2-A ISA CPU with Scalable Vector Extension (SVE) extension
-  - 48 cores at 2.0 GHz
-  - 32 GB of HBM2 memory
-- 400 GB SSD (m.2 form factor) – mixed used type
-- 1x Infiniband HDR100 interface
-  - connected via 16x PCI-e Gen3 slot to the CPU
-
-## Partition 2 - Intel (Ice Lake, NVDIMMs) <!--- + Bitware FPGAs) -->
-
-The partition is based on the Intel Ice Lake x86 architecture.
-It contains two servers with Intel NVDIMM memories.
- <!--- The key technologies installed are Intel NVDIMM memories. and Intel FPGA accelerators.
-The partition contains two servers each with two FPGA accelerators. -->
-
-Each server has the following parameters:
-
-- 2x 3rd Gen Xeon Scalable Processors Intel Xeon Gold 6338 CPU
-  - 32-cores @ 2.00GHz
-- 16x 16GB RAM with ECC
-  - DDR4-3200
-- 1x Infiniband HDR100 interface
-  - connected to CPU 8x PCI-e Gen4 interface
-- 3.2 TB NVMe local storage – mixed use type
-
-<!---
-2x FPGA accelerators
-Bitware [520N-MX][1]
--->
-
-In addition, the servers has the following parameters:
-
-- Intel server 1 – low NVDIMM memory server with 2304 GB NVDIMM memory
-  - 16x 128GB NVDIMM persistent memory modules
-- Intel server 2 – high NVDIMM memory server with 8448 GB NVDIMM memory
-  - 16x 512GB NVDIMM persistent memory modules
-
-Software installed on the partition:
-
-FPGA boards support application development using following design flows:
-
-- OpenCL
-- High-Level Synthesis (C/C++) including support for OneAPI
-- Verilog and VHDL
-
-## Partition 3 - AMD (Milan, MI100 GPUs + Xilinx FPGAs)
-
-The partition is based on two servers equipped with AMD Milan x86 CPUs,
-AMD GPUs and Xilinx FPGAs architectures and represents an alternative
-to the Intel-based partition's ecosystem.
-
-Each server has the following parameters:
-
-- 2x AMD Milan 7513 CPU
-  - 32 cores @ 2.6 GHz
-- 16x 16GB RAM with ECC
-  - DDR4-3200
-- 4x AMD GPU accelerators MI 100
-  - Interconnected with AMD Infinity Fabric™ Link for fast GPU to GPU communication
-- 1x 100 GBps Infiniband HDR100
-  - connected to CPU via 8x PCI-e Gen4 interface
-- 3.2 TB NVMe local storage – mixed use
-
-In addition:
-
-- AMD server 1 has 2x FPGA [Xilinx Alveo U250 Data Center Accelerator Card][2]
-- AMD server 2 has 2x FPGA [Xilinx Alveo U280 Data Center Accelerator Card][3]
-
-Software installed on the partition:
-
-FPGA boards support application development using following design flows:
-
-- OpenCL
-- High-Level Synthesis (C/C++)
-- Verilog and VHDL
-- developer tools and libraries for AMD GPUs.
-
-## Partition 4 - Edge Server
-
-The partition provides overview of the so-called edge computing class of resources
-with solutions powerful enough to provide data analytic capabilities (both CPU and GPU)
-in a form factor which cannot require a data center to operate.
-
-The partition consists of one edge computing server with following parameters:
-
-- 1x x86_64 CPU Intel Xeon D-1587
-  - TDP 65 W,
-  - 16 cores,
-  - 435 GFlop/s theoretical max performance in double precision
-- 1x CUDA programmable GPU NVIDIA Tesla T4
-  - TDP 70W
-  - theoretical performance 8.1 TFlop/s in FP32
-- 128 GB RAM
-- 1.92TB SSD storage
-- connectivity:
-  - 2x 10 Gbps Ethernet,
-  - WiFi 802.11 ac,
-  - LTE connectivity
-
-## Partition 5 - FPGA Synthesis Server
-
-FPGAs design tools usually run for several hours to one day to generate a final bitstream (logic design) of large FPGA chips. These tools are usually sequential, therefore part of the system is a dedicated server for this task.
-
-This server is used by development tools needed for FPGA boards installed in both Compute partition 2 and 3.
-
-- AMD EPYC 72F3, 8 cores @ 3.7 GHz nominal frequency
-  - 8 memory channels with ECC
-- 128 GB of DDR4-3200 memory with ECC
-  - memory is fully populated to maximize memory subsystem performance
-- 1x 10Gb Ethernet port used for connection to LAN
-- NVMe local storage
-  - 2x NVMe disks 3.2TB, configured RAID 1
-
-## Partition 6 - ARM + CUDA GPGU (Ampere) + DPU
-
-This partition is based on ARM architecture and is equipped with CUDA programmable GPGPU accelerators
-based on Ampere architecture and DPU network processing units.
-The partition consists of two nodes with the following per-node parameters:
-
-- Server Gigabyte G242-P36, Ampere Altra Q80-30 (80c, 3.0GHz)
-- 512GB DIMM DDR4, 3200MHz, ECC, CL22
-- 2x Micron 7400 PRO 1920GB NVMe M.2 Non-SED Enterprise SSD
-- 2x NVIDIA A30 GPU Accelerator
-- 2x NVIDIA BlueField-2 E-Series DPU 25GbE Dual-Port SFP56, PCIe Gen4 x16, 16GB DDR + 64, 200Gb Ethernet
-- Mellanox ConnectX-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8
-- Mellanox ConnectX-6 VPI adapter card, 100Gb/s (HDR100, EDR IB and 100GbE), single-port QSFP56
-
-## Partition 7 - IBM
-
-The IBM Power10 server is a single-node partition with the following parameters:
-
-- Server IBM POWER S1022
-- 2x Power10 12-CORE TYPICAL 2.90 TO 4.0 GHZ (MAX) PO
-- 512GB DDIMMS, 3200 MHZ, 8GBIT DDR4
-- 2x ENTERPRISE 1.6 TB SSD PCIE4 NVME U.2 MOD
-- 2x ENTERPRISE 6.4 TB SSD PCIE4 NVME U.2 MOD
-- PCIE3 LP 2-PORT 25/10GB NIC&ROCE SR/CU A
-
-## Partition 8 - HPE Proliant
-
-This partition provides a modern CPU with a very large L3 cache.
-The goal is to enable users to develop algorithms and libraries
-that will efficiently utilize this technology.
-The processor is very efficient, for example, for linear algebra on relatively small matrices.
-This is a single-node partition with the following parameters:
-
-- Server HPE Proliant DL 385 Gen10 Plus v2 CTO
-- 2x AMD EPYC 7773X Milan-X, 64 cores, 2.2GHz, 768 MB L3 cache
-- 16x HPE 16GB (1x+16GB) x4 DDR4-3200 Registered Smart Memory Kit
-- 2x 3.84TB NVMe RI SFF BC U.3ST MV SSD
-- BCM 57412 10GbE 2p SFP+ OCP3 Adptr
-- HPE IB HDR100/EN 100Gb 1p QSFP56 Adptr1
-- HPE Cray Programming Environment for x86 Systems 2 Seats
-
-## Partition 9 - Virtual GPU Accelerated Workstation
-
-This partition provides users with a remote/virtual workstation running MS Windows OS.
-It offers rich graphical environment with a focus on 3D OpenGL
-or RayTracing-based applications with the smallest possible degradation of user experience.
-The partition consists of two nodes with the following per-node parameters:
-
-- Server HPE Proliant DL 385 Gen10 Plus v2 CTO
-- 2x AMD EPYC 7413, 24 cores, 2.55GHz
-- 16x HPE 32GB 2Rx4 PC4-3200AA-R Smart Kit
-- 2x 3.84TB NVMe RI SFF BC U.3ST MV SSD
-- BCM 57412 10GbE 2p SFP+ OCP3 Adptr
-- 2x NVIDIA A40 48GB GPU Accelerator
-
-### Available Software
-
-The following is the list of software available on partiton 09:
-
-- Academic VMware Horizon 8 Enterprise Term Edition: 10 Concurrent User Pack for 4 year term license; includes SnS
-- 8x NVIDIA RTX Virtual Workstation, per concurrent user, EDU, perpetual license
-- 32x NVIDIA RTX Virtual Workstation, per concurrent user, EDU SUMS per year
-- 7x Windows Server 2022 Standard - 16 Core License Pack
-- 10x Windows Server 2022 - 1 User CAL
-- 40x Windows 10/11 Enterprise E3 VDA (Microsoft) per year
-- Hardware VMware Horizon management
-
-## Partition 10 - Sapphire Rapids-HBM Server
-
-The primary purpose of this server is to evaluate the impact of the HBM memory on the x86 processor
-on the performance of the user applications.
-This is a new feature previously available only on the GPGPU accelerators
-and provided a significant boost to the memory-bound applications.
-Users can also compare the impact of the HBM memory with the impact of the large L3 cache
-available on the AMD Milan-X processor also available on the complementary systems.
-The server is also equipped with DDR5 memory and enables the comparative studies with reference to DDR4 based systems.
-
-- 2x Intel® Xeon® CPU Max 9468 48 cores base 2.1GHz, max 3.5Ghz
-- 16x 16GB DDR5 4800Mhz
-- 2x Intel D3 S4520 960GB SATA 6Gb/s
-- 1x Supermicro Standard LP 2-port 10GbE RJ45, Broadcom BCM57416
-
-## Partition 11 - NVIDIA Grace CPU Superchip
-
-The [NVIDIA Grace CPU Superchip][6] uses the [NVIDIA® NVLink®-C2C][5] technology to deliver 144 Arm® Neoverse V2 cores and 1TB/s of memory bandwidth.
-Runs all NVIDIA software stacks and platforms, including NVIDIA RTX™, NVIDIA HPC SDK, NVIDIA AI, and NVIDIA Omniverse™.
-
-- Superchip design with up to 144 Arm Neoverse V2 CPU cores with Scalable Vector Extensions (SVE2)
-- World’s first LPDDR5X with error-correcting code (ECC) memory, 1TB/s total bandwidth
-- 900GB/s coherent interface, 7X faster than PCIe Gen 5
-- NVIDIA Scalable Coherency Fabric with 3.2TB/s of aggregate bisectional bandwidth
-- 2X the packaging density of DIMM-based solutions
-- 2X the performance per watt of today’s leading CPU
-- FP64 Peak of 7.1TFLOPS
-
-[1]: https://www.bittware.com/fpga/520n-mx/
-[2]: https://www.xilinx.com/products/boards-and-kits/alveo/u250.html#overview
-[3]: https://www.xilinx.com/products/boards-and-kits/alveo/u280.html#overview
-[4]: https://developer.arm.com/documentation/100095/0003/
-[5]: https://www.nvidia.com/en-us/data-center/nvlink-c2c/
-[6]: https://www.nvidia.com/en-us/data-center/grace-cpu-superchip/
-
diff --git a/content/docs/dgx2/accessing.mdx b/content/docs/dgx2/accessing.mdx
deleted file mode 100644
index 2fde5b38ab7a958d6130937fdb1ea1df8035ee9d..0000000000000000000000000000000000000000
--- a/content/docs/dgx2/accessing.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "Accessing the DGX-2"
----
-## Before You Access
-
-<Callout type= warn>
-    GPUs are single-user devices. GPU memory is not purged between job runs and it can be read (but not written) by any user. Consider the confidentiality of your running jobs.
-</Callout>
-
-## How to Access
-
-The DGX-2 machine is integrated into [Barbora cluster][3].
-The DGX-2 machine can be accessed from Barbora login nodes `barbora.it4i.cz` through the Barbora scheduler queue qdgx as a compute node cn202.
-
-## Storage
-
-There are three shared file systems on the DGX-2 system: HOME, SCRATCH (LSCRATCH), and PROJECT.
-
-### HOME
-
-The HOME filesystem is realized as an NFS filesystem. This is a shared home from the [Barbora cluster][1].
-
-### SCRATCH
-
-The SCRATCH is realized on an NVME storage. The SCRATCH filesystem is mounted in the `/scratch` directory.
-Accessible capacity is 22TB, shared among all users.
-
-<Callout type=warn>
-    Files on the SCRATCH filesystem that are not accessed for more than 60 days will be automatically deleted.
-</Callout>
-
-### PROJECT
-
-The PROJECT data storage is IT4Innovations' central data storage accessible from all clusters.
-For more information on accessing PROJECT, its quotas, etc., see the [PROJECT Data Storage][2] section.
-
-[1]: ../../barbora/storage/#home-file-system
-[2]: ../../storage/project-storage
-[3]: ../../barbora/introduction
diff --git a/content/docs/dgx2/introduction.mdx b/content/docs/dgx2/introduction.mdx
deleted file mode 100644
index f30520d013d60c19875340046f43fccad4ed35c5..0000000000000000000000000000000000000000
--- a/content/docs/dgx2/introduction.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: "NVIDIA DGX-2"
----
-The DGX-2 is a very powerful computational node, featuring high end x86_64 processors and 16 NVIDIA V100-SXM3 GPUs.
-
-| NVIDIA DGX-2  | |
-| --- | --- |
-| CPUs | 2 x Intel Xeon Platinum |
-| GPUs | 16 x NVIDIA Tesla V100 32GB HBM2 |
-| System Memory | Up to 1.5 TB DDR4 |
-| GPU Memory | 512 GB HBM2 (16 x 32 GB)	|
-| Storage | 30 TB NVMe, Up to 60 TB |
-| Networking | 8 x Infiniband or 8 x 100 GbE |
-| Power | 10 kW	|
-| Size | 350 lbs |
-| GPU Throughput | Tensor: 1920 TFLOPs, FP16: 520 TFLOPs, FP32: 260 TFLOPs, FP64: 130 TFLOPs |
-
-The [DGX-2][a] introduces NVIDIA’s new NVSwitch, enabling 300 GB/s chip-to-chip communication at 12 times the speed of PCIe.
-
-With NVLink2, it enables 16x NVIDIA V100-SXM3 GPUs in a single system, for a total bandwidth going beyond 14 TB/s.
-Featuring pair of Xeon 8168 CPUs, 1.5 TB of memory, and 30 TB of NVMe storage,
-we get a system that consumes 10 kW, weighs 163.29 kg, but offers double precision performance in excess of 130TF.
-
-The DGX-2 is designed to be a powerful server in its own right.
-On the storage side, the DGX-2 comes with 30TB of NVMe-based solid state storage.
-For clustering or further inter-system communications, it also offers InfiniBand and 100GigE connectivity, up to eight of them.
-
-Further, the [DGX-2][b] offers  a total of ~2 PFLOPs of half precision performance in a single system, when using the tensor cores.
-
-![](/it4i/img/dgx1.png)
-
-With DGX-2, AlexNET, the network that 'started' the latest machine learning revolution, now takes 18 minutes.
-
-The DGX-2 is able to complete the training process
-for FAIRSEQ – a neural network model for language translation – 10x faster than a DGX-1 system,
-bringing it down to less than two days total rather than 15 days.
-
-The new NVSwitches means that the PCIe lanes of the CPUs can be redirected elsewhere, most notably towards storage and networking connectivity.
-The topology of the DGX-2 means that all 16 GPUs are able to pool their memory into a unified memory space,
-though with the usual tradeoffs involved if going off-chip.
-
-![](/it4i/img/dgx2-nvlink.png)
-
-[a]: https://www.nvidia.com/content/dam/en-zz/es_em/Solutions/Data-Center/dgx-2/nvidia-dgx-2-datasheet.pdf
-[b]: https://www.youtube.com/embed/OTOGw0BRqK0
diff --git a/content/docs/dgx2/job_execution.mdx b/content/docs/dgx2/job_execution.mdx
deleted file mode 100644
index 8168fa07766242ffef23adc9b381eb445edcc22c..0000000000000000000000000000000000000000
--- a/content/docs/dgx2/job_execution.mdx
+++ /dev/null
@@ -1,170 +0,0 @@
----
-title: "Resource Allocation and Job Execution"
----
-To run a job, computational resources of DGX-2 must be allocated.
-
-The DGX-2 machine is integrated to and accessible through Barbora cluster, the queue for the DGX-2 machine is called **qdgx**.
-
-When allocating computational resources for the job, specify:
-
-1. your Project ID
-1. a queue for your job - **qdgx**;
-1. the maximum time allocated to your calculation (default is **4 hour**, maximum is **48 hour**);
-1. a jobscript if batch processing is intended.
-
-Submit the job using the `sbatch` (for batch processing) or `salloc` (for interactive session) command:
-
-**Example**
-
-```console
-[kru0052@login2.barbora ~]$ salloc -A PROJECT-ID -p qdgx --time=02:00:00
-salloc: Granted job allocation 36631
-salloc: Waiting for resource configuration
-salloc: Nodes cn202 are ready for job
-
-kru0052@cn202:~$ nvidia-smi
-Wed Jun 16 07:46:32 2021
-+-----------------------------------------------------------------------------+
-|  NVIDIA-SMI 465.19.01    Driver Version: 465.19.01    CUDA Version: 11.3    |
-|-------------------------------+----------------------+----------------------+
-| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
-| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
-|===============================+======================+======================|
-|   0  Tesla V100-SXM3...  On   | 00000000:34:00.0 Off |                    0 |
-| N/A   32C    P0    51W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   1  Tesla V100-SXM3...  On   | 00000000:36:00.0 Off |                    0 |
-| N/A   31C    P0    48W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   2  Tesla V100-SXM3...  On   | 00000000:39:00.0 Off |                    0 |
-| N/A   35C    P0    53W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   3  Tesla V100-SXM3...  On   | 00000000:3B:00.0 Off |                    0 |
-| N/A   36C    P0    53W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   4  Tesla V100-SXM3...  On   | 00000000:57:00.0 Off |                    0 |
-| N/A   29C    P0    50W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   5  Tesla V100-SXM3...  On   | 00000000:59:00.0 Off |                    0 |
-| N/A   35C    P0    51W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   6  Tesla V100-SXM3...  On   | 00000000:5C:00.0 Off |                    0 |
-| N/A   30C    P0    50W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   7  Tesla V100-SXM3...  On   | 00000000:5E:00.0 Off |                    0 |
-| N/A   35C    P0    53W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   8  Tesla V100-SXM3...  On   | 00000000:B7:00.0 Off |                    0 |
-| N/A   30C    P0    50W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|   9  Tesla V100-SXM3...  On   | 00000000:B9:00.0 Off |                    0 |
-| N/A   30C    P0    51W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|  10  Tesla V100-SXM3...  On   | 00000000:BC:00.0 Off |                    0 |
-| N/A   35C    P0    51W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|  11  Tesla V100-SXM3...  On   | 00000000:BE:00.0 Off |                    0 |
-| N/A   35C    P0    50W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|  12  Tesla V100-SXM3...  On   | 00000000:E0:00.0 Off |                    0 |
-| N/A   31C    P0    50W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|  13  Tesla V100-SXM3...  On   | 00000000:E2:00.0 Off |                    0 |
-| N/A   29C    P0    51W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|  14  Tesla V100-SXM3...  On   | 00000000:E5:00.0 Off |                    0 |
-| N/A   34C    P0    51W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-|  15  Tesla V100-SXM3...  On   | 00000000:E7:00.0 Off |                    0 |
-| N/A   34C    P0    50W / 350W |      0MiB / 32480MiB |      0%      Default |
-+-------------------------------+----------------------+----------------------+
-kru0052@cn202:~$ exit
-```
-
-<Callout>
-    Submit the interactive job using the `salloc` command.
-</Callout>
-
-## Job Execution
-
-The DGX-2 machine runs only a bare-bone, minimal operating system. Users are expected to run
-**[Apptainer/Singularity][1]** containers in order to enrich the environment according to the needs.
-
-Containers (Docker images) optimized for DGX-2 may be downloaded from
-[NVIDIA Gpu Cloud][2]. Select the code of interest and
-copy the docker nvcr.io link from the Pull Command section. This link may be directly used
-to download the container via Apptainer/Singularity, see the example below:
-
-### Example - Apptainer/Singularity Run Tensorflow
-
-```console
-[kru0052@login2.barbora ~] $ salloc -A PROJECT-ID -p qdgx --time=02:00:00
-salloc: Granted job allocation 36633
-salloc: Waiting for resource configuration
-salloc: Nodes cn202 are ready for job
-
-kru0052@cn202:~$ singularity shell docker://nvcr.io/nvidia/tensorflow:19.02-py3
-Singularity tensorflow_19.02-py3.sif:~>
-Singularity tensorflow_19.02-py3.sif:~> mpiexec --bind-to socket -np 16 python /opt/tensorflow/nvidia-examples/cnn/resnet.py --layers=18 --precision=fp16 --batch_size=512
-PY 3.5.2 (default, Nov 12 2018, 13:43:14)
-[GCC 5.4.0 20160609]
-TF 1.13.0-rc0
-PY 3.5.2 (default, Nov 12 2018, 13:43:14)
-[GCC 5.4.0 20160609]
-TF 1.13.0-rc0
-PY 3.5.2 (default, Nov 12 2018, 13:43:14)
-[GCC 5.4.0 20160609]
-TF 1.13.0-rc0
-PY 3.5.2 (default, Nov 12 2018, 13:43:14)
-[GCC 5.4.0 20160609]
-TF 1.13.0-rc0
-PY 3.5.2 (default, Nov 12 2018, 13:43:14)
-[GCC 5.4.0 20160609]
-TF 1.13.0-rc0
-PY 3.5.2 (default, Nov 12 2018, 13:43:14)
-[GCC 5.4.0 20160609]
-...
-...
-...
-2019-03-11 08:30:12.263822: I tensorflow/stream_executor/dso_loader.cc:152] successfully opened CUDA library libcublas.so.10.0 locally
-     1   1.0   338.2  6.999  7.291 2.00000
-    10  10.0  3658.6  5.658  5.950 1.62000
-    20  20.0 25628.6  2.957  3.258 1.24469
-    30  30.0 30815.1  0.177  0.494 0.91877
-    40  40.0 30826.3  0.004  0.330 0.64222
-    50  50.0 30884.3  0.002  0.327 0.41506
-    60  60.0 30888.7  0.001  0.325 0.23728
-    70  70.0 30763.2  0.001  0.324 0.10889
-    80  80.0 30845.5  0.001  0.324 0.02988
-    90  90.0 26350.9  0.001  0.324 0.00025
-kru0052@cn202:~$ exit
-```
-
-**GPU stat**
-
-The GPU load can be determined by the `gpustat` utility.
-
-```console
-Every 2,0s: gpustat --color
-
-dgx  Mon Mar 11 09:31:00 2019
-[0] Tesla V100-SXM3-32GB | 47'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[1] Tesla V100-SXM3-32GB | 48'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[2] Tesla V100-SXM3-32GB | 56'C,  97 % | 23660 / 32480 MB | kru0052(23645M)
-[3] Tesla V100-SXM3-32GB | 57'C,  97 % | 23660 / 32480 MB | kru0052(23645M)
-[4] Tesla V100-SXM3-32GB | 46'C,  97 % | 23660 / 32480 MB | kru0052(23645M)
-[5] Tesla V100-SXM3-32GB | 55'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[6] Tesla V100-SXM3-32GB | 45'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[7] Tesla V100-SXM3-32GB | 54'C,  97 % | 23660 / 32480 MB | kru0052(23645M)
-[8] Tesla V100-SXM3-32GB | 45'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[9] Tesla V100-SXM3-32GB | 46'C,  95 % | 23660 / 32480 MB | kru0052(23645M)
-[10] Tesla V100-SXM3-32GB | 55'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[11] Tesla V100-SXM3-32GB | 56'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[12] Tesla V100-SXM3-32GB | 47'C,  95 % | 23660 / 32480 MB | kru0052(23645M)
-[13] Tesla V100-SXM3-32GB | 45'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[14] Tesla V100-SXM3-32GB | 55'C,  96 % | 23660 / 32480 MB | kru0052(23645M)
-[15] Tesla V100-SXM3-32GB | 58'C,  95 % | 23660 / 32480 MB | kru0052(23645M)
-```
-
-[1]: https://docs.it4i.cz/software/tools/singularity/
-[2]: https://ngc.nvidia.com/
diff --git a/content/docs/dgx2/meta.json b/content/docs/dgx2/meta.json
deleted file mode 100644
index e477317ca986327f7fada59baec3be7e83abfb6e..0000000000000000000000000000000000000000
--- a/content/docs/dgx2/meta.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "title": "Dgx2",
-  "pages": [
-    "accessing",
-    "introduction",
-    "job_execution",
-    "software"
-  ]
-}
diff --git a/content/docs/dgx2/software.mdx b/content/docs/dgx2/software.mdx
deleted file mode 100644
index 779c45c154b1004c0af6f3c6e1fd03aeb50c1d15..0000000000000000000000000000000000000000
--- a/content/docs/dgx2/software.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "Software Deployment"
----
-Software deployment on DGX-2 is based on containers. NVIDIA provides a wide range of prepared Docker containers with a variety of different software. Users can easily download these containers and use them directly on the DGX-2.
-
-The catalog of all container images can be found on [NVIDIA site][a]. Supported software includes:
-
-* TensorFlow
-* MATLAB
-* GROMACS
-* Theano
-* Caffe2
-* LAMMPS
-* ParaView
-* ...
-
-## Running Containers on DGX-2
-
-NVIDIA expects usage of Docker as a containerization tool, but Docker is not a suitable solution in a multiuser environment. For this reason, the [Apptainer/Singularity container][b] solution is used.
-
-Singularity can be used similarly to Docker, just change the image URL address. For example, original command for Docker `docker run -it nvcr.io/nvidia/theano:18.08` should be changed to `singularity shell docker://nvcr.io/nvidia/theano:18.08`. More about Apptainer/Singularity [here][1].
-
-For fast container deployment, all images are cached after first use in the *lscratch* directory. This behavior can be changed by the *SINGULARITY_CACHEDIR* environment variable, but the start time of the container will increase significantly.
-
-```console
-$ ml av Singularity
-
----------------------------- /apps/modules/tools ----------------------------
-   Singularity/3.3.0
-```
-
-## MPI Modules
-
-```console
-$ ml av MPI
-
----------------------------- /apps/modules/mpi ----------------------------
-   OpenMPI/2.1.5-GCC-6.3.0-2.27    OpenMPI/3.1.4-GCC-6.3.0-2.27    OpenMPI/4.0.0-GCC-6.3.0-2.27 (D)    impi/2017.4.239-iccifort-2017.7.259-GCC-6.3.0-2.27
-```
-
-## Compiler Modules
-
-```console
-$ ml av gcc
-
----------------------------- /apps/modules/compiler ----------------------------
-   GCC/6.3.0-2.27    GCCcore/6.3.0    icc/2017.7.259-GCC-6.3.0-2.27    ifort/2017.7.259-GCC-6.3.0-2.27
-
-```
-
-[1]: ../software/tools/singularity.md
-[a]: https://ngc.nvidia.com/catalog/landing
-[b]: https://www.sylabs.io/
diff --git a/content/docs/dice.mdx b/content/docs/dice.mdx
deleted file mode 100644
index 7bca3f201a56dded9cbb3e3dcb13571016cbbbb6..0000000000000000000000000000000000000000
--- a/content/docs/dice.mdx
+++ /dev/null
@@ -1,426 +0,0 @@
----
-title: "What Is DICE Project?"
----
-DICE (Data Infrastructure Capacity for EOSC) is an international project funded by the European Union
-that provides cutting-edge data management services and a significant amount of storage resources for the EOSC.
-The EOSC (European Open Science Cloud) project provides European researchers, innovators, companies,
-and citizens with a federated and open multi-disciplinary environment
-where they can publish, find, and re-use data, tools, and services for research, innovation and educational purposes.
-
-For more information, see the official [DICE project][b] and [EOSC project][q] pages.
-
-**IT4Innovations participates in DICE. DICE uses the iRODS software**
-
-The integrated Rule-Oriented Data System (iRODS) is an open source data management software
-used by research organizations and government agencies worldwide.
-iRODS is released as a production-level distribution aimed at deployment in mission critical environments.
-It virtualizes data storage resources, so users can take control of their data,
-regardless of where and on what device the data is stored.
-As data volumes grow and data services become more complex,
-iRODS is serving an increasingly important role in data management.
-For more information, see [the official iRODS page][c].
-
-## How to Put Your Data to Our Server
-
-**Prerequisities:**
-
-First, we need to verify your identity, this is done through the following steps:
-
-1. Sign in with your organization [B2ACCESS][d]; the page requests a valid personal certificate (e.g. GEANT).
-  Accounts with "Low" level of assurance are not granted access to IT4I zone.
-
-1. Confirm your certificate in the browser:
-
-    ![](/it4i/img/B2ACCESS_chrome_eng.jpg)
-
-1. Confirm your certificate in the OS (Windows):
-
-    ![](/it4i/img/crypto_v2.jpg)
-
-1. Sign to EUDAT/B2ACCESS:
-
-    ![](/it4i/img/eudat_v2.jpg)
-
-1. After successful login to B2Access:
-
-    1. **For Non IT4I Users**
-
-         Sign in to our [AAI][f] through your B2Access account.
-         You have to set a new password for iRODS access.
-
-    1. **For IT4I Users**
-
-         Sign in to our [AAI][f] through your B2Access account and link your B2ACCESS identity with your existing account.
-         The iRODS password will be the same as your IT4I LDAP password (i.e. code.it4i.cz password).
-
-    ![](/it4i/img/aai.jpg)
-    ![](/it4i/img/aai2.jpg)
-    ![](/it4i/img/aai3-passwd.jpg)
-    ![](/it4i/img/irods_linking_link.jpg)
-
-1. Contact [support@it4i.cz][a], so we can create your account at our iRODS server.
-
-1. **Fill this request on [EOSC-MARKETPLACE][h] (recommended)** or at [EUDAT][l], please specify the requested capacity.
-
-   ![](/it4i/img/eosc-marketplace-active.jpg)
-   ![](/it4i/img/eosc-providers.jpg)
-   ![](/it4i/img/eudat_request.jpg)
-
-## Access to iRODS Collection From Karolina
-
-Access to iRODS Collection requires access to the Karolina cluster (i.e. [IT4I account][4]),
-since iRODS clients are provided as a module on Karolina (Barbora is in progress).
-The `irodsfs` module loads config file for irodsfs and icommands, too.
-
-Note that you can change password to iRODS at [aai.it4i.cz][m].
-
-### Mounting Your Collection
-
-```console
-ssh some_user@karolina.it4i.cz
-ml irodsfs
-```
-
-Now you can choose between the Fuse client or iCommands:
-
-#### Fuse
-
-```console
-ssh some_user@karolina.it4i.cz
-[some_use@login4.karolina ~]$ ml irodsfs
-
-irodsfs configuration file has been created at /home/dvo0012/.irods/config.yml
-iRODS environment file has been created at /home/dvo0012/.irods/irods_environment.json
-
-to start irodsfs, run:          irodsfs -config ~/.irods/config.yml ~/IRODS
-to start iCommands, run:        iinit
-
-For more information, see https://docs.it4i.cz/dice/
-```
-
-To mount your iRODS collection to ~/IRODS, run
-
-```console
-[some_user@login4.karolina ~]$ irodsfs -config ~/.irods/config.yml ~/IRODS
-time="2022-08-04 08:54:13.222836" level=info msg="Logging to /tmp/irodsfs_cblmq5ab1lsaj31vrv20.log" function=processArguments package=main
-Password:
-time="2022-08-04 08:54:18.698811" level=info msg="Found FUSE Device. Starting iRODS FUSE Lite." function=parentMain package=main
-time="2022-08-04 08:54:18.699080" level=info msg="Running the process in the background mode" function=parentRun package=main
-time="2022-08-04 08:54:18.699544" level=info msg="Process id = 27145" function=parentRun package=main
-time="2022-08-04 08:54:18.699572" level=info msg="Sending configuration data" function=parentRun package=main
-time="2022-08-04 08:54:18.699730" level=info msg="Successfully sent configuration data to background process" function=parentRun package=main
-time="2022-08-04 08:54:18.922490" level=info msg="Successfully started background process" function=parentRun package=main
-```
-
-To unmount it, run
-
-```console
-fusermount -u ~/IRODS
-```
-
-You can work with Fuse as an ordinary directory  (`ls`, `cd`, `cp`, `mv`, etc.).
-
-#### iCommands
-
-```console
-ssh some_user@karolina.it4i.cz
-[some_use@login4.karolina ~]$ ml irodsfs
-irodsfs configuration file has been created at /home/dvo0012/.irods/config.yml.
-      to start irods fs run: irodsfs -config ~/.irods/config.yml ~/IRODS
-
-iCommands environment file has been created at /home/$USER/.irods/irods_environment.json.
-      to start iCommands run: iinit
-
-[some_user@login4.karolina ~]$ iinit
-Enter your current PAM password:
-```
-
-```console
-[some_use@login4.karolina ~]$ ils
-/IT4I/home/some_user:
-  test.1
-  test.2
-  test.3
-  test.4
-```
-
-Use the command `iput` for upload, `iget` for download, or `ihelp` for help.
-
-## Access to iRODS Collection From Other Resource
-
-<Callout>
-    This guide assumes you are uploading your data from your local PC/VM.
-</Callout>
-
-Use the password from [AAI][f].
-
-### You Need a Client to Connect to iRODS Server
-
-There are many iRODS clients, but we recommend the following:
-
-- Cyberduck - Windows/Mac, GUI
-- Fuse (irodsfs lite) - Linux, CLI
-- iCommands - Linux, CLI.
-
-For access, set PAM passwords at [AAI][f].
-
-### Cyberduck
-
-1. Download [Cyberduck][i].
-2. Download [connection profile][1] for IT4I iRods server.
-3. Left double-click this file to open connection.
-
-![](/it4i/img/irods-cyberduck.jpg)
-
-### Fuse
-
-<Callout>
-    This is a Linux client only, basic knowledge of the command line is necessary.
-</Callout>
-
-Fuse allows you to work with your iRODS collection like an ordinary directory.
-
-```console
-cd ~
-wget https://github.com/cyverse/irodsfs/releases/download/v0.7.6/irodsfs_amd64_linux_v0.7.6.tar
-tar -xvf ~/irodsfs_amd64_linux_v0.7.6.tar
-mkdir ~/IRODS ~/.irods/ && cd "$_" && wget https://docs.it4i.cz/config.yml
-wget https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem -P ~/.irods/
-```
-
-Edit `~/.irods/config.yml` with username from [AAI][f].
-
-#### Mounting Your Collection
-
-```console
-[some_user@local_pc ~]$ ./irodsfs -config ~/.irods/config.yml ~/IRODS
-time="2022-07-29 09:51:11.720831" level=info msg="Logging to /tmp/irodsfs_cbhp2rucso0ef0s7dtl0.log" function=processArguments package=main
-Password:
-
-time="2022-07-29 09:51:17.691988" level=info msg="Found FUSE Device. Starting iRODS FUSE Lite." function=parentMain package=main
-time="2022-07-29 09:51:17.692683" level=info msg="Running the process in the background mode" function=parentRun package=main
-time="2022-07-29 09:51:17.693381" level=info msg="Process id = 74772" function=parentRun package=main
-time="2022-07-29 09:51:17.693421" level=info msg="Sending configuration data" function=parentRun package=main
-time="2022-07-29 09:51:17.693772" level=info msg="Successfully sent configuration data to background process" function=parentRun package=main
-time="2022-07-29 09:51:18.008166" level=info msg="Successfully started background process" function=parentRun package=main
-```
-
-#### Putting Your Data to iRODS
-
-```console
-[some_use@local_pc ~]$ cp test1G.txt ~/IRODS
-```
-
-It works as ordinary file system
-
-```console
-[some_user@local_pc ~]$ ls -la ~/IRODS
-total 0
--rwx------ 1 some_user some_user 1073741824 Nov  4  2021 test1G.txt
-```
-
-#### Unmounting Your Collection
-
-To stop/unmount your collection, use:
-
-```console
-[some_user@local_pc ~]$ fusermount -u ~/IRODS
-```
-
-### iCommands
-
-<Callout>
-    This is a Linux client only, basic knowledge of the command line is necessary.
-</Callout>
-
-We recommend Centos7, Ubuntu 20 is optional.
-
-#### Steps for Ubuntu 20
-
-```console
-LSB_RELEASE="bionic"
-wget -qO - https://packages.irods.org/irods-signing-key.asc | sudo apt-key add -
-echo "deb [arch=amd64] https://packages.irods.org/apt/ ${LSB_RELEASE}  main" \
->   | sudo tee /etc/apt/sources.list.d/renci-irods.list
-deb [arch=amd64] https://packages.irods.org/apt/ bionic  main
-
-sudo apt-get update
-apt-cache search irods
-wget -c \
-  http://security.ubuntu.com/ubuntu/pool/main/p/python-urllib3/python-urllib3_1.22-1ubuntu0.18.04.2_all.deb \
-  http://security.ubuntu.com/ubuntu/pool/main/r/requests/python-requests_2.18.4-2ubuntu0.1_all.deb \
-  http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.10_amd64.deb
-sudo apt install \
-  ./python-urllib3_1.22-1ubuntu0.18.04.2_all.deb \
-  ./python-requests_2.18.4-2ubuntu0.1_all.deb \
-  ./libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
-sudo rm -rf \
-  ./python-urllib3_1.22-1ubuntu0.18.04.2_all.deb \
-  ./python-requests_2.18.4-2ubuntu0.1_all.deb \
-  ./libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
-sudo apt install -y irods-icommands
-mkdir ~/.irods/ && cd "$_" && wget https://docs.it4i.cz/irods_environment.json
-wget https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem -P ~/.irods
-sed -i 's,~,'"$HOME"',g' ~/.irods/irods_environment.json
-```
-
-#### Steps for Centos
-
-```console
-sudo rpm --import https://packages.irods.org/irods-signing-key.asc
-sudo wget -qO - https://packages.irods.org/renci-irods.yum.repo | sudo tee /etc/yum.repos.d/renci-irods.yum.repo
-sudo yum install epel-release -y
-sudo yum install python-psutil python-jsonschema
-sudo yum install irods-icommands
-mkdir ~/.irods/ && cd "$_" && wget https://docs.it4i.cz/irods_environment.json
-wget https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem -P ~/.irods
-sed -i 's,~,'"$HOME"',g' ~/.irods/irods_environment.json
-```
-
-Edit ***irods_user_name*** in `~/.irods/irods_environment.json` with the username from [AAI][f].
-
-```console
-[some_user@local_pc ~]$ pwd
-/some_user/.irods
-
-[some_user@local_pc ~]$  ls -la
-total 16
-drwx------. 2 some_user some_user 136 Sep 29 08:53 .
-dr-xr-x---. 6 some_user some_user 206 Sep 29 08:53 ..
--rw-r--r--. 1 some_user some_user 253 Sep 29 08:14 irods_environment.json
-```
-
-**How to Start:**
-
-**step 1:**
-
-```console
-[some_user@local_pc ~]$ iinit
-Enter your current PAM password:
-
-[some_user@local_pc ~]$ ils
-/IT4I/home/some_user:
-  file.jpg
-```
-
-**How to put your data to iRODS**
-
-```console
-[some_user@local_pc ~]$ iput cesnet.crt
-```
-
-```console
-[some_user@local_pc ~]$ ils
-/IT4I/home/some_user:
-  cesnet.crt
-```
-
-**How to download data**
-
-```console
-[some_user@local_pc ~]$ iget cesnet.crt
-ls -la ~
--rw-r--r--. 1 some_user some_user 1464 Jul 20 13:44 cesnet.crt
-```
-
-For more commands, use the `ihelp` command.
-
-## PID Services
-
-You, as user, may want to index your datasets and allocate some PIDs - Persistent Identifiers for them. We host pid system by hdl-surfsara ([https://it4i-handle.it4i.cz][o]), wich is conected to [https://hdl.handle.net][p], and you are able to create your own PID by calling some of irule.
-
-### How to Create PID
-
-Pids are created by calling `irule`, you have to create at your `$HOME` or everewhere you want,
-but you have to specify the path correctly.
-Rules for pid operations have always `.r suffix`.
-It can by done only through `iCommands`.
-
-Example of a rule for PID creating only:
-
-```console
-user in ~ λ pwd
-/home/user
-
-user in ~ λ ils
-/IT4I/home/user:
-  C- /IT4I/home/dvo0012/Collection_A
-
-user in ~ λ ls -l | grep pid
--rw-r--r--  1 user user      249 Sep 30 10:55 create_pid.r
-
-user in ~ λ cat create_pid.r
-PID_DO_reg {
-      EUDATCreatePID(*parent_pid, *source, *ror, *fio, *fixed, *newPID);
-      writeLine("stdout","PID: *newPID");
-}
-INPUT *source="/IT4I/home/user/Collection_A",*parent_pid="None",*ror="None",*fio="None",*fixed="true"
-OUTPUT ruleExecOut
-
-user in ~ λ irule -F create_pid.r
-PID: 21.12149/f3b9b1a5-7b4d-4fff-bfb7-826676f6fe14
-```
-
-After creation, your PID is searchable worldwide:
-
-![](/it4i/img/hdl_net.jpg)
-![](/it4i/img/hdl_pid.jpg)
-
-**More info at [www.eudat.eu][n]**
-
-### Metadata
-
-For adding metadata to you collection/dataset, you can use imeta from iCommands.
-
-This is after PID creation:
-
-```console
-user in ~ λ imeta ls -C /IT4I/home/user/Collection_A
-AVUs defined for collection /IT4I/home/user/Collection_A:
-attribute: EUDAT/FIXED_CONTENT
-value: True
-units:
-----
-attribute: PID
-value: 21.12149/f3b9b1a5-7b4d-4fff-bfb7-826676f6fe14
-units:
-```
-
-For adding any other metadata you can use:
-
-```console
-user in ~ λ imeta add -C /IT4I/home/user/Collection_A EUDAT_B2SHARE_TITLE Some_Title
-
-user in ~ λ imeta ls -C /IT4I/home/user/Collection_A
-AVUs defined for collection /IT4I/home/user/Collection_A:
-attribute: EUDAT/FIXED_CONTENT
-value: True
-units:
-----
-attribute: PID
-value: 21.12149/f3b9b1a5-7b4d-4fff-bfb7-826676f6fe14
-units:
-----
-attribute: EUDAT_B2SHARE_TITLE
-value: Some_Title
-units:
-```
-
-[1]: irods.cyberduckprofile
-[2]: irods_environment.json
-[3]: config.yml
-[4]: general/access/account-introduction.md
-
-[a]: mailto:support@it4i.cz
-[b]: https://www.dice-eosc.eu/
-[c]: https://irods.org/
-[d]: https://b2access.eudat.eu/
-[f]: https://aai.it4i.cz/realms/IT4i_IRODS/account/#/
-[h]: https://marketplace.eosc-portal.eu/services/b2safe/offers
-[i]: https://cyberduck.io/download/
-[l]: https://www.eudat.eu/contact-support-request?Service=B2SAFE
-[m]: https://aai.it4i.cz/
-[n]: https://www.eudat.eu/catalogue/b2handle
-[o]: https://it4i-handle.it4i.cz
-[p]: https://hdl.handle.net
-[q]: https://eosc-portal.eu/
diff --git a/content/docs/einfracz-migration.mdx b/content/docs/einfracz-migration.mdx
deleted file mode 100644
index a65d20eceacb4fae279609b973595a369fa937e1..0000000000000000000000000000000000000000
--- a/content/docs/einfracz-migration.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: "Migration to e-INFRA CZ"
----
-## Introduction
-
-IT4Innovations is a part of [e-INFRA CZ][1] - strategic research infrastructure of the Czech Republic, which provides capacities and resources for the transmission, storage, and processing of scientific and research data. In January 2022, IT4I has begun the process of integration of its services.
-
-As a part of the process, a joint e-INFRA CZ user base has been established. This included a migration of eligible IT4I accounts.
-
-## Who Has Been Affected
-
-The migration affects all accounts of users affiliated with an academic organizations in the Czech Republic who also have an OPEN-XX-XX project. Affected users have received an email with information about changes in personal data processing.
-
-## Who Has Not Been Affected
-
-Commercial users, training accounts, suppliers, and service accounts were **not** affected by the migration.
-
-## Process
-
-During the process, additional steps have been required for successful migration.
-
-This may have included:
-
-1. e-INFRA CZ registration, if one does not already exist.
-2. e-INFRA CZ password reset, if one does not already exist.
-
-## Steps After Migration
-
-After the migration, you must use your **e-INFRA CZ credentials** to access all IT4I services as well as [e-INFRA CZ services][5].
-
-Successfully migrated accounts tied to e-INFRA CZ can be self-managed at [e-INFRA CZ User profile][4].
-
-<Callout>
-    We recommend [verifying your SSH keys][6] for cluster access.
-</Callout>
-
-## Troubleshooting
-
-If you have a problem with your account migrated to e-INFRA CZ user base, contact the [CESNET support][7].
-
-If you have questions or a problem with IT4I account (i.e. account not eligible for migration), contact the [IT4I support][2].
-
-[1]: https://www.e-infra.cz/en
-[2]: mailto:support@it4i.cz
-[3]: https://www.cesnet.cz/?lang=en
-[4]: https://profile.e-infra.cz/
-[5]: https://www.e-infra.cz/en/services
-[6]: https://profile.e-infra.cz/profile/settings/sshKeys
-[7]: mailto:support@cesnet.cz
diff --git a/content/docs/environment-and-modules.mdx b/content/docs/environment-and-modules.mdx
deleted file mode 100644
index 486fb516f64aad0ddc03044f3a4bc1010fead535..0000000000000000000000000000000000000000
--- a/content/docs/environment-and-modules.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: "Environment and Modules"
----
-## Shells on Clusters
-
-The table shows which shells are available on the IT4Innovations clusters.
-
-Note that bash is the only supported shell.
-
-| Cluster Name    | bash | tcsh | zsh | ksh | dash |
-| --------------- | ---- | ---- | --- | --- | ---- |
-| Karolina        | yes  | yes  | yes | yes | yes  |
-| Barbora         | yes  | yes  | yes | yes | no   |
-| DGX-2           | yes  | no   | no  | no  | no   |
-
-<Callout>
-    Bash is the default shell. Should you need a different shell, contact [support\[at\]it4i.cz][3].
-</Callout>
-
-## Environment Customization
-
-After logging in, you may want to configure the environment. Write your preferred path definitions, aliases, functions, and module loads in the .bashrc file
-
-```console
-# ./bashrc
-
-# users compilation path
-export MODULEPATH=${MODULEPATH}:/home/$USER/.local/easybuild/modules/all
-
-# User specific aliases and functions
-alias sq='squeue --me'
-
-# load default intel compilator !!! is not recommended !!!
-ml intel
-
-# Display information to standard output - only in interactive ssh session
-if [ -n "$SSH_TTY" ]
-then
- ml # Display loaded modules
-fi
-```
-
-<Callout>
-    Do not run commands outputting to standard output (echo, module list, etc.) in .bashrc for non-interactive SSH sessions. It breaks the fundamental functionality (SCP) of your account. Take care for SSH session interactivity for such commands as stated in the previous example.
-</Callout>
-
-### Application Modules
-
-In order to configure your shell for running a particular application on clusters, we use a module package interface.
-
-Application modules on clusters are built using [EasyBuild][1]. The modules are divided into the following groups:
-
-```
- base: Default module class
- bio: Bioinformatics, biology and biomedical
- cae: Computer Aided Engineering (incl. CFD)
- chem: Chemistry, Computational Chemistry and Quantum Chemistry
- compiler: Compilers
- data: Data management & processing tools
- debugger: Debuggers
- devel: Development tools
- geo: Earth Sciences
- ide: Integrated Development Environments (e.g. editors)
- lang: Languages and programming aids
- lib: General purpose libraries
- math: High-level mathematical software
- mpi: MPI stacks
- numlib: Numerical Libraries
- perf: Performance tools
- phys: Physics and physical systems simulations
- system: System utilities (e.g. highly depending on system OS and hardware)
- toolchain: EasyBuild toolchains
- tools: General purpose tools
- vis: Visualization, plotting, documentation and typesetting
- OS: singularity image
- python: python packages
-```
-
-<Callout>
-    The modules set up the application paths, library paths and environment variables for running a particular application.
-</Callout>
-
-The modules may be loaded, unloaded, and switched according to momentary needs. For details, see [lmod][2].
-
-[1]: software/tools/easybuild.md
-[2]: software/modules/lmod.md
-[3]: mailto:support@it4i.cz
diff --git a/content/docs/general/access/account-introduction.mdx b/content/docs/general/access/account-introduction.mdx
deleted file mode 100644
index 0564f4dcce18a774f1732ecb85894f5c47fdaf5f..0000000000000000000000000000000000000000
--- a/content/docs/general/access/account-introduction.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Introduction"
----
-This section provides basic information on how to gain access to IT4Innovations Information systems and project membership.
-
-## Account Types
-
-There are two types of accounts at IT4Innovations:
-
-* [**e-INFRA CZ Account**][1]
-    intended for all persons affiliated with an academic institution from the Czech Republic ([eduID.cz][a]).
-
-* [**IT4I Account**][2]
-    intended for all persons who are not eligible for an e-INFRA CZ account.
-
-Once you create an account, you can use it only for communication with IT4I support and accessing the SCS information system.
-If you want to access IT4I clusters, your account must also be **assigned to a project**.
-
-For more information, see the section:
-
-* [**Get Project Membership**][3]
-    if you want to become a collaborator on a project, or
-
-* [**Get Project**][4]
-    if you want to become a project owner.
-
-[1]: ./einfracz-account.md
-[2]: ../obtaining-login-credentials/obtaining-login-credentials.md
-[3]: ../access/project-access.md
-[4]: ../applying-for-resources.md
-
-[a]: https://www.eduid.cz/
diff --git a/content/docs/general/access/einfracz-account.mdx b/content/docs/general/access/einfracz-account.mdx
deleted file mode 100644
index 9888312a769944ad228871f48de1e6e39d7702fc..0000000000000000000000000000000000000000
--- a/content/docs/general/access/einfracz-account.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "e-INFRA CZ Account"
----
-[e-INFRA CZ][1] is a unique research and development e-infrastructure in the Czech Republic,
-which provides capacities and resources for the transmission, storage and processing of scientific and research data.
-IT4Innovations has become a member of e-INFRA CZ on January 2022.
-
-<Callout type=warn>
-    Only persons affiliated with an academic institution from the Czech Republic ([eduID.cz][6]) are eligible for an e-INFRA CZ account.
-</Callout>
-
-## Request e-INFRA CZ Account
-
-1. Request an account:
-    1. Go to [https://signup.e-infra.cz/fed/registrar/?vo=IT4Innovations][2]
-    1. Select a member academic institution you are affiliated with.
-    1. Fill out the e-INFRA CZ Account information (username, password and ssh key(s)).
-
-    Your account should be created in a few minutes after submitting the request.
-    Once your e-INFRA CZ account is created, it is propagated into IT4I systems
-    and can be used to access [SCS portal][3] and [Request Tracker][4].
-
-1. Provide additional information via [IT4I support][a] or email [support\[at\]it4i.cz][b] (**required**, note that without this information, you cannot use IT4I resources):
-    1. **Full name**
-    1. **Gender**
-    1. **Citizenship**
-    1. **Country of residence**
-    1. **Organization/affiliation**
-    1. **Organization/affiliation country**
-    1. **Organization/affiliation type** (university, company, R&D institution, private/public sector (hospital, police), academy of sciences, etc.)
-    1. **Job title**  (student, PhD student, researcher, research assistant, employee, etc.)
-
-Continue to apply for a project or project membership to access clusters through the [SCS portal][3].
-
-## Logging Into IT4I Services
-
-The table below shows how different IT4I services are accessed:
-
-| Services | Access  |
-| -------- | ------- |
-| Clusters | SSH key |
-| IS, RT, web, VPN | e-INFRA CZ login |
-| Profile<br>Change&nbsp;password<br>Change&nbsp;SSH&nbsp;key | Academic institution's credentials<br>e-INFRA CZ / eduID |
-
-You can change you profile settings at any time.
-
-[1]: https://www.e-infra.cz/en
-[2]: https://signup.e-infra.cz/fed/registrar/?vo=IT4Innovations
-[3]: https://scs.it4i.cz/
-[4]: https://support.it4i.cz/
-[5]: ../../management/einfracz-profile.md
-[6]: https://www.eduid.cz/
-
-[a]: https://support.it4i.cz/rt/
-[b]: mailto:support@it4i.cz
diff --git a/content/docs/general/access/meta.json b/content/docs/general/access/meta.json
deleted file mode 100644
index 5244d6e881651a24d19254b398a6bf93d410c354..0000000000000000000000000000000000000000
--- a/content/docs/general/access/meta.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "title": "Access",
-  "pages": [
-    "account-introduction",
-    "einfracz-account",
-    "project-access"
-  ]
-}
diff --git a/content/docs/general/access/project-access.mdx b/content/docs/general/access/project-access.mdx
deleted file mode 100644
index 1adca13aedd0b8aaa27a9a5483ecb8e680ff0910..0000000000000000000000000000000000000000
--- a/content/docs/general/access/project-access.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Get Project Membership"
----
-<Callout>
-    You need to be named as a collaborator by a Primary Investigator (PI) in order to access and use the clusters.
-</Callout>
-
-## Authorization by Web
-
-This is a preferred method if you have an IT4I or e-INFRA CZ account.
-
-Log in to the [IT4I SCS portal][a] and go to the **Authorization Requests** section. Here you can submit your requests for becoming a project member. You will have to wait until the project PI authorizes your request.
-
-## Authorization by Email
-
-An alternative way to become a project member is on request sent via [email by the project PI][1].
-
-[1]: ../../applying-for-resources/#authorization-by-email-an-alternative-approach
-
-[a]: https://scs.it4i.cz/
diff --git a/content/docs/general/accessing-the-clusters/graphical-user-interface/meta.json b/content/docs/general/accessing-the-clusters/graphical-user-interface/meta.json
deleted file mode 100644
index 57f649ec5f2de51f1c8d052afc4edd9659605d87..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/graphical-user-interface/meta.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "title": "Graphical-user-interface",
-  "pages": [
-    "ood",
-    "vnc",
-    "x-window-system",
-    "xorg"
-  ]
-}
diff --git a/content/docs/general/accessing-the-clusters/graphical-user-interface/ood.mdx b/content/docs/general/accessing-the-clusters/graphical-user-interface/ood.mdx
deleted file mode 100644
index 1eb3a3c789496bedc56f0d82886d7cd7b6d9adde..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/graphical-user-interface/ood.mdx
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: "Open OnDemand"
----
-[Open OnDemand][1] is an intuitive, innovative, and interactive interface to remote computing resources.
-It allows users to access our services from any device and web browser,
-resulting in faster and more efficient use of supercomputing resources.
-
-For more information, see the Open OnDemand [documentation][2].
-
-## Access Open OnDemand
-
-To access the OOD service, you must be connected to [IT4I VPN][a].
-Then go to [https://ood-karolina.it4i.cz/][3] for Karolina
-or [https://ood-barbora.it4i.cz/][4] for Barbora and enter your e-INFRA CZ or IT4I credentials.
-
-From the top menu bar, you can manage your files and jobs, access the cluster's shell
-and launch interactive apps on login nodes.
-
-## OOD Apps on IT4I Clusters
-
-<Callout>
-    Barbora OOD offers Mate and XFCE Desktops on login node only. Other applications listed below are exclusive to Karolina OOD.
-</Callout>
-
-* Desktops
-    * Karolina Login Mate
-    * Karolina Login XFCE
-    * Gnome Desktop
-* GUIs
-    * Ansys
-    * Blender
-    * ParaView
-    * TorchStudio
-* Servers
-    * Code Server
-    * Jupyter (+IJulia)
-    * MATLAB
-    * TensorBoard
-* Simulation
-    * Code Aster
-
-Depending on a selected application, you can set up various properties;
-e.g. partition, number of nodes, tasks per node reservation, etc.
-
-For `qgpu` partitions, you can select the number of GPUs.
-
-![Ansys app in OOD GUI](/it4i/img/ood-ansys.png)
-
-## Job Composer Tutorial
-
-Under *Jobs > Job Composer*, you can create jobs from several sources.
-A simple tutorial will guide you through the process.
-To restart the tutorial, click *Help* in the upper right corner.
-
-[1]: https://openondemand.org/
-[2]: https://osc.github.io/ood-documentation/latest/
-[3]: https://ood-karolina.it4i.cz/
-[4]: https://ood-barbora.it4i.cz/
-
-[a]: ../vpn-access.md
diff --git a/content/docs/general/accessing-the-clusters/graphical-user-interface/vnc.mdx b/content/docs/general/accessing-the-clusters/graphical-user-interface/vnc.mdx
deleted file mode 100644
index 34577b5b998da5cd89c7c79b28a5f89664090bef..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/graphical-user-interface/vnc.mdx
+++ /dev/null
@@ -1,284 +0,0 @@
----
-title: "VNC"
----
-Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network.
-
-VNC-based connections are usually faster (require less network bandwidth) than [X11][1] applications forwarded directly through SSH.
-
-The recommended clients are [TightVNC][b] or [TigerVNC][c] (free, open source, available for almost any platform).
-
-## Create VNC Server Password
-
-<Callout>
-    VNC server password should be set before the first login. Use a strong password.
-</Callout>
-
-```console
-$ vncpasswd
-Password:
-Verify:
-```
-
-## Start VNC Server
-
-<Callout>
-    To access VNC, a remote VNC Server must be started first and a tunnel using SSH port forwarding must be established.
-</Callout>
-
-[See below][2] the details on SSH tunnels.
-
-Start by **choosing your display number**.
-To choose a free one, you should check currently occupied display numbers - list them using the command:
-
-```console
-$ ps aux | grep Xvnc | sed -rn 's/(\s) .*Xvnc (\:[0-9]+) .*/\1 \2/p'
-username :79
-username :60
-.....
-```
-
-As you can see above, displays ":79" and ":60" are already occupied.
-Generally, you can choose display number freely, *except these occupied numbers*.
-Also remember that display number should be lower than or equal to 99.
-Based on this requirement, we have chosen the display number 61, as seen in the examples below.
-
-<Callout>
-    Your situation may be different so the choice of your number may differ, as well. **Choose and use your own display number accordingly!**
-</Callout>
-
-Start your remote VNC server on the chosen display number (61):
-
-```console
-$ vncserver :61 -geometry 1600x900 -depth 16
-
-New 'login2:1 (username)' desktop is login2:1
-
-Starting applications specified in /home/username/.vnc/xstartup
-Log file is /home/username/.vnc/login2:1.log
-```
-
-Check whether the VNC server is running on the chosen display number (61):
-
-```console
-$ vncserver -list
-
-TigerVNC server sessions:
-
-X DISPLAY #     PROCESS ID
-:61              18437
-```
-
-Another way to check it:
-
-```console
-$  ps aux | grep Xvnc | sed -rn 's/(\s) .*Xvnc (\:[0-9]+) .*/\1 \2/p'
-
-username :61
-username :102
-```
-
-<Callout>
-    The VNC server runs on port 59xx, where xx is the display number. To get your port number, simply add 5900 + display number, in our example 5900 + 61 = 5961. Another example for display number 102 is calculation of TCP port 5900 + 102 = 6002, but note that TCP ports above 6000 are often used by X11. **Calculate your own port number and use it instead of 5961 from examples below**.
-</Callout>
-
-To access the remote VNC server you have to create a tunnel between the login node using TCP port 5961 and your local  machine using a free TCP port (for simplicity the very same) in next step. See examples for [Linux/Mac OS][2] and [Windows][3].
-
-<Callout>
-    The tunnel must point to the same login node where you launched the VNC server, e.g. login2. If you use just cluster-name.it4i.cz, the tunnel might point to a different node due to DNS round robin.
-</Callout>
-
-## Linux/Mac OS Example of Creating a Tunnel
-
-On your local machine, create the tunnel:
-
-```console
-$ ssh -TN -f username@login2.cluster-name.it4i.cz -L 5961:localhost:5961
-```
-
-Issue the following command to check the tunnel is established (note the PID 2022 in the last column, it is required for closing the tunnel):
-
-```console
-$ netstat -natp | grep 5961
-(Not all processes could be identified, non-owned process info
- will not be shown, you would have to be root to see it all.)
-tcp        0      0 127.0.0.1:5961          0.0.0.0:*               LISTEN      2022/ssh
-tcp6       0      0 ::1:5961                :::*                    LISTEN      2022/ssh
-```
-
-Or on Mac OS use this command:
-
-```console
-$ lsof -n -i4TCP:5961 | grep LISTEN
-ssh 75890 sta545 7u IPv4 0xfb062b5c15a56a3b 0t0 TCP 127.0.0.1:5961 (LISTEN)
-```
-
-Connect with the VNC client:
-
-```console
-$ vncviewer 127.0.0.1:5961
-```
-
-In this example, we connect to remote VNC server on port 5961, via the SSH tunnel. The connection is encrypted and secured. The VNC server listening on port 5961 provides screen of 1600x900 pixels.
-
-You have to close the SSH tunnel which is still running in the background after you finish the work. Use the following command (PID 2022 in this case, see the netstat command above):
-
-```console
-kill 2022
-```
-
-<Callout>
-    You can watch the instruction video on how to make a VNC connection between a local Ubuntu desktop and the IT4I cluster [here][e].
-</Callout>
-
-## Windows Example of Creating a Tunnel
-
-Start the VNC server using the `vncserver` command described above.
-
-Search for the localhost and port number (in this case 127.0.0.1:5961):
-
-```console
-$ netstat -tanp | grep Xvnc
-(Not all processes could be identified, non-owned process info
- will not be shown, you would have to be root to see it all.)
-tcp        0      0 127.0.0.1:5961              0.0.0.0:*                   LISTEN      24031/Xvnc
-```
-
-### PuTTY
-
-On the PuTTY Configuration screen, go to _Connection -> SSH -> Tunnels_ to set up the tunnel.
-
-Fill the _Source port_ and _Destination_ fields. **Do not forget to click the _Add_ button**.
-
-![](/it4i/img/putty-tunnel.png)
-
-### WSL (Bash on Windows)
-
-[Windows Subsystem for Linux][d] is another way to run Linux software in a Windows environment.
-
-At your machine, create the tunnel:
-
-```console
-$ ssh username@login2.cluster-name.it4i.cz -L 5961:localhost:5961
-```
-
-## Example of Starting VNC Client
-
-Run the VNC client of your choice, select the VNC server 127.0.0.1, port 5961 and connect using the VNC password.
-
-### TigerVNC Viewer
-
-![](/it4i/img/vncviewer.png)
-
-In this example, we connect to remote the VNC server on port 5961, via the SSH tunnel, using the TigerVNC viewer. The connection is encrypted and secured. The VNC server listening on port 5961 provides a screen of 1600x900 pixels.
-
-### TightVNC Viewer
-
-Use your VNC password to log using the TightVNC Viewer and start a Gnome Session on the login node.
-
-![](/it4i/img/TightVNC_login.png)
-
-## Gnome Session
-
-After the successful login, you should see the following screen:
-
-![](/it4i/img/gnome_screen.png)
-
-### Disable Your Gnome Session Screensaver
-
-Open the Screensaver preferences dialog:
-
-![](/it4i/img/gdmscreensaver.png)
-
-Uncheck both options below the slider:
-
-![](/it4i/img/gdmdisablescreensaver.png)
-
-### Kill Screensaver if Locked Screen
-
-If the screen gets locked, you have to kill the screensaver. Do not forget to disable the screensaver then.
-
-```console
-$ ps aux | grep screen
-username     1503 0.0 0.0 103244   892 pts/4    S+   14:37   0:00 grep screen
-username     24316 0.0 0.0 270564 3528 ?        Ss   14:12   0:00 gnome-screensaver
-
-[username@login2 .vnc]$ kill 24316
-```
-
-## Kill VNC Server After Finished Work
-
-You should kill your VNC server using the command:
-
-```console
-$ vncserver -kill :61
-Killing Xvnc process ID 7074
-Xvnc process ID 7074 already killed
-```
-
-or:
-
-```console
-$ pkill vnc
-```
-
-<Callout>
-    Also, do not forget to terminate the SSH tunnel, if it was used. For details, see the end of [this section][2].
-</Callout>
-
-## GUI Applications on Compute Nodes Over VNC
-
-The very same methods as described above may be used to run the GUI applications on compute nodes. However, for maximum performance, follow these steps:
-
-Open a Terminal (_Applications -> System Tools -> Terminal_). Run all the following commands in the terminal.
-
-![](/it4i/img/gnome-terminal.png)
-
-Allow incoming X11 graphics from the compute nodes at the login node:
-
-Get an interactive session on a compute node (for more detailed info [look here][4]). Forward X11 system using `--x11` option:
-
-```console
-$ salloc -A PROJECT_ID -p qcpu --x11
-```
-
-Test that the DISPLAY redirection into your VNC session works, by running an X11 application (e.g. XTerm, Intel Advisor, etc.) on the assigned compute node:
-
-```console
-$ xterm
-```
-
-The example described above:
-
-![](/it4i/img/node_gui_xwindow.png)
-
-### GUI Over VNC and SSH
-
-For a [better performance][1] an SSH connection can be used.
-
-Open two Terminals (_Applications -> System Tools -> Terminal_) as described before.
-
-Get an interactive session on a compute node (for more detailed info [look here][4]). Forward X11 system using `--x11` option:
-
-```console
-$ salloc -A PROJECT_ID -p qcpu --x11
-```
-
-In the second terminal connect to the assigned node and run the X11 application
-
-```console
-$ ssh -X node_name.barbora.it4i.cz
-$ xterm
-```
-
-The example described above:
-![](/it4i/img/node_gui_sshx.png)
-
-[b]: http://www.tightvnc.com
-[c]: http://sourceforge.net/apps/mediawiki/tigervnc/index.php?title=Main_Page
-[d]: http://docs.microsoft.com/en-us/windows/wsl
-[e]: https://www.youtube.com/watch?v=b9Ez9UN2uL0
-
-[1]: x-window-system.md
-[2]: #linuxmac-os-example-of-creating-a-tunnel
-[3]: #windows-example-of-creating-a-tunnel
-[4]: ../../job-submission-and-execution.md
diff --git a/content/docs/general/accessing-the-clusters/graphical-user-interface/x-window-system.mdx b/content/docs/general/accessing-the-clusters/graphical-user-interface/x-window-system.mdx
deleted file mode 100644
index 92c6e805b8bc38569375d9aaa360bebf9346177f..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/graphical-user-interface/x-window-system.mdx
+++ /dev/null
@@ -1,177 +0,0 @@
----
-title: "X Window System"
----
-The X Window system is a principal way to get GUI access to the clusters. The **X Window System** (commonly known as **X11**, based on its current major version being 11, or shortened to simply **X**, and sometimes informally **X-Windows**) is a computer software system and network protocol that provides a basis for graphical user interfaces (GUIs) and rich input device capability for networked computers.
-
-<Callout>
-    The X display forwarding must be activated and the X server running on client side
-</Callout>
-
-## X Display
-
-### Linux Example
-
-In order to display the GUI of various software tools, you need to enable the X display forwarding. On Linux and Mac, log in using the `-X` option in the SSH client:
-
-```console
- local $ ssh -X username@cluster-name.it4i.cz
-```
-
-### PuTTY on Windows
-
-On Windows, use the PuTTY client to enable X11 forwarding. In PuTTY menu, go to _Connection > SSH > X11_ and check the _Enable X11 forwarding_ checkbox before logging in. Then log in as usual.
-
-![](/it4i/img/cygwinX11forwarding.png)
-
-### WSL (Bash on Windows)
-
-To enable the X display forwarding, log in using the `-X` option in the SSH client:
-
-```console
- local $ ssh -X username@cluster-name.it4i.cz
-```
-
-<Callout>
-    If you are getting the "cannot open display" error message, try to export the DISPLAY variable, before attempting to log in:
-</Callout>
-
-```console
- local $ export DISPLAY=localhost:0.0
-```
-
-## X Server
-
-In order to display the GUI of various software tools, you need a running X server on your desktop computer. For Linux users, no action is required as the X server is the default GUI environment on most Linux distributions. Mac and Windows users need to install and run the X server on their workstations.
-
-### X Server on OS X
-
-Mac OS users need to install [XQuartz server][d].
-
-### WSL (Bash on Windows)
-
-To run Linux GuI on WSL, download, for example, [VcXsrv][a].
-
-1. After installation, run XLaunch and during the initial setup, check the `Disable access control`.
-
-    <Callout>
-        Save the configuration and launch VcXsrv using the `config.xlaunch` file, so you won't have to check the option on every run.
-    </Callout>
-
-1. Allow VcXsrv in your firewall to communicate on private and public networks.
-
-1. Set the `DISPLAY` environment variable, using the following command:
-
-    ```console
-        export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
-    ```
-
-    <Callout>
-        Include the command at the end of the `/etc/bash.bashrc`, so you don't have to run it every time you run WSL.
-    </Callout>
-
-1. Test the configuration by running `echo $DISPLAY`:
-
-    ```code
-     user@nb-user:/$ echo $DISPLAY
-     172.26.240.1:0
-    ```
-
-### X Server on Windows
-
-There is a variety of X servers available for the Windows environment. The commercial Xwin32 is very stable and feature-rich. The Cygwin environment provides fully featured open-source XWin X server. For simplicity, we recommend the open-source X server by the [Xming project][e]. For stability and full features, we recommend the [XWin][f] X server by Cygwin
-
-| How to use Xwin | How to use Xming |
-|--- | --- |
-| [Install Cygwin][g]. Find and execute XWin.exe to start the X server on Windows desktop computer. | Use Xlaunch to configure Xming. Run Xming to start the X server on a Windows desktop computer. |
-
-## Running GUI Enabled Applications
-
-<Callout>
-    Make sure that X forwarding is activated and the X server is running.
-</Callout>
-
-Then launch the application as usual. Use the `&` to run the application in background:
-
-```console
-$ ml intel (idb and gvim not installed yet)
-$ gvim &
-```
-
-```console
-$ xterm
-```
-
-In this example, we activate the Intel programing environment tools and then start the graphical gvim editor.
-
-## GUI Applications on Compute Nodes
-
-Allocate the compute nodes using the `--x11` option on the `salloc` command:
-
-```console
-$ salloc -A PROJECT-ID -q qcpu_exp --x11
-```
-
-In this example, we allocate one node via qcpu_exp queue, interactively. We request X11 forwarding with the `--x11` option. It will be possible to run the GUI enabled applications directly on the first compute node.
-
-For **better performance**, log on the allocated compute node via SSH, using the `-X` option.
-
-```console
-$ ssh -X cn245
-```
-
-In this example, we log on the cn245 compute node, with the X11 forwarding enabled.
-
-## Gnome GUI Environment
-
-The Gnome 2.28 GUI environment is available on the clusters. We recommend using a separate X server window for displaying the Gnome environment.
-
-### Gnome on Linux and OS X
-
-To run the remote Gnome session in a window on a Linux/OS X computer, you need to install Xephyr. Ubuntu package is
-xserver-xephyr, on OS X it is part of [XQuartz][i]. First, launch Xephyr on local machine:
-
-```console
-local $ Xephyr -ac -screen 1024x768 -br -reset -terminate :1 &
-```
-
-This will open a new X window of size 1024x768 at DISPLAY :1. Next, connect via SSH to the cluster with the `DISPLAY` environment variable set and launch a gnome-session:
-
-```console
-local $ DISPLAY=:1.0 ssh -XC yourname@cluster-name.it4i.cz -i ~/.ssh/path_to_your_key
-... cluster-name MOTD...
-yourname@login1.cluster-namen.it4i.cz $ gnome-session &
-```
-
-On older systems where Xephyr is not available, you may also try Xnest instead of Xephyr. Another option is to launch a new X server in a separate console via:
-
-```console
-xinit /usr/bin/ssh -XT -i .ssh/path_to_your_key yourname@cluster-namen.it4i.cz gnome-session -- :1 vt12
-```
-
-However, this method does not seem to work with recent Linux distributions and you will need to manually source
-/etc/profile to properly set environment variables for Slurm.
-
-### Gnome on Windows
-
-Use XLaunch to start the Xming server or run the XWin.exe. Select the "One window" mode.
-
-Log in to the cluster using [PuTTY][2] or [Bash on Windows][3]. On the cluster, run the gnome-session command.
-
-```console
-$ gnome-session &
-```
-
-This way, we run a remote gnome session on the cluster, displaying it in the local X server.
-
-Use System-Log Out to close the gnome-session.
-
-[1]: #if-no-able-to-forward-x11-using-putty-to-cygwinx
-[2]: #putty-on-windows
-[3]: #wsl-bash-on-windows
-
-[a]: https://sourceforge.net/projects/vcxsrv/
-[d]: https://www.xquartz.org
-[e]: http://sourceforge.net/projects/xming/
-[f]: http://x.cygwin.com/
-[g]: http://x.cygwin.com/
-[i]: http://xquartz.macosforge.org/landing/
diff --git a/content/docs/general/accessing-the-clusters/graphical-user-interface/xorg.mdx b/content/docs/general/accessing-the-clusters/graphical-user-interface/xorg.mdx
deleted file mode 100644
index 6ac7129891fa14e2532ca558ce7bb1e84f745f6a..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/graphical-user-interface/xorg.mdx
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: "Xorg"
----
-## Introduction
-
-<Callout>
-    Available only for Karolina accelerated nodes acn[01-72] and vizualization servers viz[1-2]
-</Callout>
-
-Some applications (e.g. Paraview, Ensight, Blender, Ovito) require not only visualization but also computational resources such as multiple cores or multiple graphics accelerators. For the processing of demanding tasks, more operating memory and more memory on the graphics card are also required. These requirements are met by all accelerated nodes on the Karolina cluster, which are equipped with eight graphics cards with 40GB GPU memory and 1TB CPU memory. To run properly, it is required to have the Xorg server running and the VirtualGL environment installed.
-
-## Xorg
-
-[Xorg][a] is a free and open source implementation of the X Window System imaging server maintained by the X.Org Foundation. Client-side implementations of the protocol are available, for example, in the form of Xlib and XCB. While Xorg usually supports 2D hardware acceleration, 3D hardware acceleration is often missing. With hardware 3D acceleration, 3D rendering uses the graphics processor on the graphics card instead of taking up valuable CPU resources when rendering 3D images. It is also referred to as hardware acceleration instead of software acceleration because without this 3D acceleration, the processor is forced to draw everything itself using the [Mesa][c] software rendering libraries, which takes up quite a bit of computing power. There is a VirtualGL package that solves these problems.
-
-## VirtualGL
-
-[VirtualGL][b] is an open source software package that redirects 3D rendering commands from Linux OpenGL applications to 3D accelerator hardware in a dedicated server and sends the rendered output to a client located elsewhere on the network. On the server side, VirtualGL consists of a library that handles the redirection and a wrapper that instructs applications to use the library. Clients can connect to the server either using a remote X11 connection or using an X11 proxy such as a VNC server. In the case of an X11 connection, some VirtualGL software is also required on the client side to receive the rendered graphical output separately from the X11 stream. In the case of VNC connections, no specific client-side software is needed other than the VNC client itself. VirtualGL works seamlessly with [headless][d] NVIDIA GPUs (Ampere, Tesla).
-
-## Running Paraview With GUI and Interactive Job on Karolina
-
-1. Run [VNC environment][1]
-
-1. Run terminal in VNC session:
-
-    ```console
-    [loginX.karolina]$ gnome-terminal
-    ```
-
-1. Run interactive job in gnome terminal
-
-    ```console
-    [loginX.karolina]$ salloc --A PROJECT-ID -q qgpu --x11 --comment use:xorg=true
-    ```
-
-1. Run Xorg server
-
-    ```console
-    [acnX.karolina]$ Xorg :0 &
-    ```
-
-1. Load VirtualGL:
-
-    ```console
-    [acnX.karolina]$ ml VirtualGL
-    ```
-
-1. Find number of DISPLAY:
-
-    ```console
-    [acnX.karolina]$ echo $DISPLAY
-    localhost:XX.0 (for ex. localhost:50.0)
-    ```
-
-1. Load ParaView:
-
-    ```console
-    [acnX.karolina]$ ml ParaView
-    ```
-
-1. Run ParaView:
-
-    ```console
-    [acnX.karolina]$ DISPLAY=:XX vglrun paraview
-    ```
-
-<Callout>
-    It is not necessary to run Xorg from the command line on the visualization servers viz[1-2]. Xorg runs without interruption and is started when the visualization server boots.<br> Another option is to use [vglclient][2] for visualization server.
-</Callout>
-
-## Running Blender (Eevee) on the Background Without GUI and Without Interactive Job on Karolina
-
-1. Download and extract Blender and Eevee scene:
-
-    ```console
-    [loginX.karolina]$ wget https://ftp.nluug.nl/pub/graphics/blender/release/Blender2.93/blender-2.93.6-linux-x64.tar.xz ; tar -xvf blender-2.93.6-linux-x64.tar.xz ; wget https://download.blender.org/demo/eevee/mr_elephant/mr_elephant.blend
-    ```
-
-1. Create a running script:
-
-    ```console
-    [loginX.karolina]$ echo 'Xorg :0 &' > run_eevee.sh ; echo 'cd' $PWD  >> run_eevee.sh  ; echo 'DISPLAY=:0  ./blender-2.93.6-linux-x64/blender --factory-startup --enable-autoexec -noaudio --background ./mr_elephant.blend --render-output ./#### --render-frame 0' >> run_eevee.sh ; chmod +x run_eevee.sh
-    ```
-
-1. Run job from terminal:
-
-    ```console
-    [loginX.karolina]$ sbatch -A PROJECT-ID -q qcpu --comment use:xorg=true ./run_eevee.sh
-    ```
-
-[1]: ./vnc.md
-[2]: ../../../software/viz/vgl.md
-
-[a]: https://www.x.org/wiki/
-[b]: https://en.wikipedia.org/wiki/VirtualGL
-[c]: https://docs.mesa3d.org/index.html
-[d]: https://virtualgl.org/Documentation/HeadlessNV
diff --git a/content/docs/general/accessing-the-clusters/meta.json b/content/docs/general/accessing-the-clusters/meta.json
deleted file mode 100644
index f80d79ff0617531be54a564225fe1293a0fcc308..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/meta.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "title": "Accessing-the-clusters",
-  "pages": [
-    "graphical-user-interface",
-    "shell-access-and-data-transfer",
-    "tmux",
-    "vpn-access"
-  ]
-}
diff --git a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/meta.json b/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/meta.json
deleted file mode 100644
index 1af06ec3aa327cc10f2671a1dcf7e7cb461414f9..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/meta.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "title": "Shell-access-and-data-transfer",
-  "pages": [
-    "putty",
-    "ssh-key-management",
-    "ssh-keys"
-  ]
-}
diff --git a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/putty.mdx b/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/putty.mdx
deleted file mode 100644
index eb580c90c5efe6fb333702c1995a9348cd3f39d8..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/putty.mdx
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: "PuTTY (Windows)"
----
-## Windows PuTTY Installer
-
-We recommend you to download "**A Windows installer for everything except PuTTYtel**" with **Pageant** (SSH authentication agent) and **PuTTYgen** (PuTTY key generator) which is available [here][a].
-
-<Callout>
-    "Pageant" is optional.
-
-    "Change Password for Existing Private Key" is optional.
-</Callout>
-
-## PuTTY - How to Connect to the IT4Innovations Cluster
-
-* Run PuTTY
-* Enter Host name and Save session fields with login address and browse Connection -  SSH - Auth menu. The _Host Name_ input may be in the format **"username@clustername.it4i.cz"** so you do not have to type your login each time. In this example, replace the word `cluster` in the `cluster.it4i.cz` address with the name of the cluster to which you want to connect.
-
-![](/it4i/img/PuTTY_host_cluster.png)
-
-* Category - Connection -  SSH - Auth:
-      Select Attempt authentication using Pageant.
-      Select Allow agent forwarding.
-      Browse and select your private key file.
-
-![](/it4i/img/PuTTY_keyV.png)
-
-* Return to Session page and Save selected configuration with _Save_ button.
-
-![](/it4i/img/PuTTY_save_cluster.png)
-
-* Now you can log in using _Open_ button.
-
-![](/it4i/img/PuTTY_open_cluster.png)
-
-* Enter your username if the _Host Name_ input is not in the format "username@cluster.it4i.cz".
-* Enter passphrase for selected private key file if Pageant **SSH authentication agent is not used.**
-
-## Another PuTTY Settings
-
-* Category - Windows - Translation - Remote character set and select **UTF-8**.
-* Category - Terminal - Features and select **Disable application keypad mode** (enable numpad)
-* Save your configuration in the Session - Basic options for your PuTTY section with the _Save_ button.
-
-## Pageant SSH Agent
-
-Pageant holds your private key in memory without needing to retype a passphrase on every login.
-
-* Run Pageant.
-* On Pageant Key List press _Add key_ and select your private key (id_rsa.ppk).
-* Enter your passphrase.
-* Now you have your private key in memory without needing to retype a passphrase on every login.
-
-![](/it4i/img/PageantV.png)
-
-## PuTTY Key Generator
-
-PuTTYgen is the PuTTY key generator. You can load in an existing private key and change your passphrase or generate a new public/private key pair.
-
-### Change Password for Existing Private Key
-
-You can change the password of your SSH key with "PuTTY Key Generator". Make sure to back up the key.
-
-* Load your private key file with _Load_ button.
-* Enter your current passphrase.
-* Change key passphrase.
-* Confirm key passphrase.
-* Save your private key with the _Save private key_ button.
-
-![](/it4i/img/PuttyKeygeneratorV.png)
-
-### Generate a New Public/Private Key
-
-You can generate an additional public/private key pair and insert public key into authorized_keys file for authentication with your own private key.
-
-* Start with _Generate_ button.
-
-![](/it4i/img/PuttyKeygenerator_001V.png)
-
-* Generate some randomness.
-
-![](/it4i/img/PuttyKeygenerator_002V.png)
-
-* Wait.
-
-![](/it4i/img/PuttyKeygenerator_003V.png)
-
-* Enter a comment for your key using the 'username@organization.example.com' format.
-      Enter a key passphrase, confirm it and save your new private key in the _ppk_ format.
-
-![](/it4i/img/PuttyKeygenerator_004V.png)
-
-* Save the public key with the _Save public key_ button.
-      You can copy public key out of the ‘Public key for pasting into the authorized_keys file’ box.
-
-![](/it4i/img/PuttyKeygenerator_005V.png)
-
-* Export the private key in the OpenSSH format "id_rsa" using Conversion - Export OpenSSH key
-
-![](/it4i/img/PuttyKeygenerator_006V.png)
-
-## Managing Your SSH Key
-
-To manage your SSH key for authentication to clusters, see the [SSH Key Management][3] section.
-
-[1]: ./ssh-key-management.md
-
-[1]: #putty
-[2]: ssh-keys.md#how-to-add-your-own-key
-[3]: ./ssh-key-management.md
-
-[a]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
diff --git a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/ssh-key-management.mdx b/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/ssh-key-management.mdx
deleted file mode 100644
index 259d319802fa70b0a6448f4a005eb2dd893c8340..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/ssh-key-management.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: "SSH"
----
-Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network.
-SSH uses public-private key pair for authentication, allowing users to log in without having to specify a password. The public key is placed on all computers that must allow access to the owner of the matching private key (the private key must be kept **secret**).
-
-## Private Key
-
-<Callout>
-    The path to a private key is usually /home/username/.ssh/
-</Callout>
-
-A private key file in the `id_rsa` or `*.ppk` format is present locally on local side and used for example in the Pageant SSH agent (for Windows users). The private key should always be kept in a safe place.
-
-### Example of RSA Private Key Format
-
-```console
-    -----BEGIN RSA PRIVATE KEY-----
-    MIIEpAIBAAKCAQEAqbo7jokygnBpG2wYa5NB45ns6+UKTNLMLHF0BO3zmRtKEElE
-    aGqXfbYwvXlcuRb2d9/Y5dVpCZHV0kbY3NhtVOcEIe+1ROaiU9BEsUAhMNEvgiLV
-    gSql4QvRO4BWPlM8+WAWXDp3oeoBh8glXyuh9teb8yq98fv1r1peYGRrW3/s4V+q
-    O1SQ0XY2T7rWCYRLIP6rTMXArTI35v3WU513mn7nm1fJ7oN0QgVH5b0W9V1Kyc4l
-    9vILHeMXxvz+i/5jTEfLOJpiRGYZYcaYrE4dIiHPl3IlbV7hlkK23Xb1US8QJr5G
-    ADxp1VTkHjY+mKagEfxl1hQIb42JLHhKMEGqNQIDAQABAoIBAQCkypPuxZjL+vai
-    UGa5dAWiRZ46P2yrwHPKpvEdpCdDPbLAc1K/CtdBkHZsUPxNHVV6eFWweW99giIY
-    Av+mFWC58X8asBHQ7xkmxW0cqAZRzpkRAl9IBS9/fKjO28Fgy/p+suOi8oWbKIgJ
-    3LMkX0nnT9oz1AkOfTNC6Tv+3SE7eTj1RPcMjur4W1Cd1N3EljLszdVk4tLxlXBS
-    yl9NzVnJJbJR4t01l45VfFECgYEAno1WJSB/SwdZvS9GkfhvmZd3r4vyV9Bmo3dn
-    XZAh8HRW13imOnpklDR4FRe98D9A7V3yh9h60Co4oAUd6N+Oc68/qnv/8O9efA+M
-    /neI9ANYFo8F0+yFCp4Duj7zPV3aWlN/pd8TNzLqecqh10uZNMy8rAjCxybeZjWd
-    DyhgywXhAoGBAN3BCazNefYpLbpBQzwes+f2oStvwOYKDqySWsYVXeVgUI+OWTVZ
-    eZ26Y86E8MQO+q0TIxpwou+TEaUgOSqCX40Q37rGSl9K+rjnboJBYNCmwVp9bfyj
-    kCLL/3g57nTSqhgHNa1xwemePvgNdn6FZteA8sXiCg5ZzaISqWAffek5AoGBAMPw
-    V/vwQ96C8E3l1cH5cUbmBCCcfXM2GLv74bb1V3SvCiAKgOrZ8gEgUiQ0+TfcbAbe
-    7MM20vRNQjaLTBpai/BTbmqM1Q+r1KNjq8k5bfTdAoGANgzlNM9omM10rd9WagL5
-    yuJcal/03p048mtB4OI4Xr5ZJISHze8fK4jQ5veUT9Vu2Fy/w6QMsuRf+qWeCXR5
-    RPC2H0JzkS+2uZp8BOHk1iDPqbxWXJE9I57CxBV9C/tfzo2IhtOOcuJ4LY+sw+y/
-    ocKpJbdLTWrTLdqLHwicdn8OxeWot1mOukyK2l0UeDkY6H5pYPtHTpAZvRBd7ETL
-    Zs2RP3KFFvho6aIDGrY0wee740/jWotx7fbxxKwPyDRsbH3+1Wx/eX2RND4OGdkH
-    gejJEzpk/7y/P/hCad7bSDdHZwO+Z03HIRC0E8yQz+JYatrqckaRCtd7cXryTmTR
-    FbvLJmECgYBDpfno2CzcFJCTdNBZFi34oJRiDb+HdESXepk58PcNcgK3R8PXf+au
-    OqDBtZIuFv9U1WAg0gzGwt/0Y9u2c8m0nXziUS6AePxy5sBHs7g9C9WeZRz/nCWK
-    +cHIm7XOwBEzDKz5f9eBqRGipm0skDZNKl8X/5QMTT5K3Eci2n+lTw==
-    -----END RSA PRIVATE KEY-----
-```
-
-### Example of Ed25519 Private Key Format
-
-```console
-PuTTY-User-Key-File-3: ssh-ed25519
-Encryption: aes256-cbc
-Comment: eddsa-key-20240910
-Public-Lines: 2
-AAAAC3NzaC1lZDI1NTE5AAAAIBKNwqaWU260wueN00nBGRwIqeOedRedtS0T7QVn
-h0i2
-Key-Derivation: Argon2id
-Argon2-Memory: 8192
-Argon2-Passes: 21
-Argon2-Parallelism: 1
-Argon2-Salt: bb64fc32b368aa16d6e8159c8d921f63
-Private-Lines: 1
-+7StvvEmCMchEy1tUyIMLfGTZBk7dgGUpJEJzNl82qmNZD1TmQOqNmCRiK84P/TL
-Private-MAC: dc3f83cef42026a2038f28e96f87367d762e72265621d82e2fe124634ec3c905
-```
-
-## Public Key
-
-A public key file in the `*.pub` format is present on the remote side and allows an access to the owner of the matching private key.
-
-### Example of RSA Public Key Format
-
-```console
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpujuOiTKCcGkbbBhrk0Hjmezr5QpM0swscXQE7fOZG0oQSURoapd9tjC9eVy5FvZ339jl1WkJkdXSRtjc2G1U5wQh77VE5qJT0ESxQCEw0S+CItWBKqXhC9E7gFY+UyP5YBZcOneh6gGHyCVfK6H215vzKr3x+/WvWl5gZGtbf+zhX6o4RJDRdjZPutYJhEsg/qtMxcCtMjfm/dZTnXeafuebV8nug3RCBUflvRb1XUrJuiX28gsd4xfG/P6L/mNMR8s4kmJEZhlhxpj8Th0iIc+XciVtXuGWQrbddcVRLxAmvkYAPGnVVOQeNj69pqAR/GXaFAhvjYkseEowQao1 username@organization.example.com
-```
-
-### Example of Ed25519 Public Key Format
-
-```console
----- BEGIN SSH2 PUBLIC KEY ----
-Comment: "eddsa-key-20240910"
-AAAAC3NzaC1lZDI1NTE5AAAAIBKNwqaWU260wueN00nBGRwIqeOedRedtS0T7QVn
-h0i2
----- END SSH2 PUBLIC KEY ----
-```
-
-## SSH Key Management
-
-You can manage your own SSH key for authentication to clusters:
-
-* [e-INFRA CZ account][3]
-* [IT4I account][4]
-
-[1]: ./ssh-keys.md
-[2]: ./putty.md
-[3]: ../../management/einfracz-profile.md
-[4]: ../../management/it4i-profile.md
diff --git a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/ssh-keys.mdx b/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/ssh-keys.mdx
deleted file mode 100644
index 98b6d533b41612617f04f877f0627ca69151c79d..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/shell-access-and-data-transfer/ssh-keys.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: "OpenSSH Keys (UNIX)"
----
-## Creating Your Own Key
-
-To generate a new keypair of your public and private key, use the `ssh-keygen` tool:
-
-```console
-local $ ssh-keygen -t ed25519 -C username@organization.example.com' -f additional_key
-```
-
-<Callout>
-    Enter a **strong** **passphrase** for securing your private key.
-</Callout>
-
-By default, your private key is saved to the `id_rsa` file in the `.ssh` directory
-and your public key is saved to the `id_rsa.pub` file.
-
-## Adding SSH Key to Linux System SSH Agent
-
-1. Check if SSH Agent is running:
-
-    ```
-    eval "$(ssh-agent -s)"
-    ```
-
-1. Add the key to SSH Agent:
-
-    ```
-    ssh-add ~/.ssh/name_of_your_ssh_key_file
-    ```
-
-1. Verify the key Added to SSH Agent:
-
-    ```
-    ssh-add -l
-    ```
-
-## Managing Your SSH Key
-
-To manage your SSH key for authentication to clusters, see the [SSH Key Management][1] section.
-
-[1]: ./ssh-key-management.md
diff --git a/content/docs/general/accessing-the-clusters/tmux.mdx b/content/docs/general/accessing-the-clusters/tmux.mdx
deleted file mode 100644
index 70918da9d5b174e0d051fb4a757ff2294103d6e7..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/tmux.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Tmux"
----
-[Tmux][1] is an open-source terminal multiplexer which allows multiple terminal sessions to be accessed simultaneously in a single window. Tmux allows you to switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.
-
-Note that [GNU Screen][2] is not supported, but if you prefer it, you can install it in your `/home` folder:
-
-```console
-wget https://ftp.gnu.org/gnu/screen/screen-4.9.0.tar.gz
-tar xf screen-4.9.0.tar.gz && rm screen-4.9.0.tar.gz
-cd screen-4.9.0
-
-./autogen.sh
-./configure --prefix=$HOME/.local/screen
-make
-make install
-
-mkdir $HOME/.local/screen/etc
-cp etc/etcscreenrc $HOME/.local/screen/etc/screenrc
-
-echo "export PATH=\$HOME/.local/screen/bin:\$PATH" >> $HOME/.bashrc
-
-cd ../ && rm -rf screen-4.9.0
-```
-
-[1]: https://github.com/tmux/tmux/wiki
-[2]: https://www.gnu.org/software/screen/
diff --git a/content/docs/general/accessing-the-clusters/vpn-access.mdx b/content/docs/general/accessing-the-clusters/vpn-access.mdx
deleted file mode 100644
index bb0c30b7540469d56843ab13356d0239aaf8a1b0..0000000000000000000000000000000000000000
--- a/content/docs/general/accessing-the-clusters/vpn-access.mdx
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: "VPN Access"
----
-## Accessing IT4Innovations Internal Resources via VPN
-
-To access IT4Innovations' resources and licenses, it is necessary to connect to its local network via VPN. IT4Innovations uses the FortiClient VPN software. For the list of supported operating systems, see the [FortiClient Administration Guide][a].
-
-## VPN Client Download
-
-* Windows: Download the FortiClient app from the [official page][g] (Microsoft Store app is not recommended).
-* Mac: Download the FortiClient VPN app from the [Apple Store][d].
-* Linux: Download the [FortiClient][e] or [OpenFortiVPN][f] app.
-
-## Working With Windows/Mac VPN Client
-
-Before the first login, you must configure the VPN. In the New VPN Connection section, provide the name of your VPN connection and the following settings:
-
-Name                | Value
-:-------------------|:------------------
-VPN                 | SSL-VPN
-Remote Gateway      | reconnect.it4i.cz
-Port                | 443
-Client Certificate  | None
-
-Optionally, you can describe the VPN connection and select Save Login under Authentication.
-
-<Callout>
-    If you are member of a partner organization, we may ask you to use so called realm in your VPN connection. In the Remote Gateway field, include the realm path after the IP address or hostname. For example, for a realm `excellent`, the field would read as follows `reconnect.it4i.cz:443/excellent`.
-</Callout>
-
-![](/it4i/img/fc_vpn_web_login_2_1.png)
-
-Save the settings, enter your login credentials and click Connect.
-
-![](/it4i/img/fc_vpn_web_login_3_1.png)
-
-## Linux Client
-
-Connection will work with following settings:
-
-Name         | Value
-:------------|:----------------------
-VPN-Server   | reconnect.it4i.cz
-VPN-Port     | 443
-Set-Routes   | Enabled
-Set-DNS      | Enabled
-DNS Servers  | 10.5.8.11, 10.5.8.22
-
-Linux VPN clients need to run under root.
-OpenFortiGUI uses sudo by default; be sure that your user is allowed to use sudo.
-
-[1]: ../../general/obtaining-login-credentials/obtaining-login-credentials.md#login-credentials
-[2]: ../../general/access/einfracz-account.md
-
-[a]: http://docs.fortinet.com/document/forticlient/latest/administration-guide/646779/installation-requirements
-[c]: https://github.com/theinvisible/openfortigui
-[d]: https://apps.apple.com/cz/app/forticlient-vpn/id1475674905?l=cs
-[e]: https://www.fortinet.com/support/product-downloads/linux
-[f]: https://github.com/adrienverge/openfortivpn
-[g]: https://www.fortinet.com/support/product-downloads#vpn
diff --git a/content/docs/general/applying-for-resources.mdx b/content/docs/general/applying-for-resources.mdx
deleted file mode 100644
index a5f5c9ba01514ae97190e9004c2f614b6eb8f83e..0000000000000000000000000000000000000000
--- a/content/docs/general/applying-for-resources.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: "Get Project"
----
-The computational resources of IT4I are allocated by the Allocation Committee via several [allocation mechanisms][a] to a project investigated by a Primary Investigator. By allocating the computational resources, the Allocation Committee is authorizing the PI to access and use the clusters. The PI may decide to authorize a number of their collaborators to access and use the clusters to consume the resources allocated to their Project. These collaborators will be associated to the Project. The Figure below is depicting the authorization chain:
-
-![](/it4i/img/Authorization_chain.png)
-
-**Allocation Mechanisms:**
-
-* Academic researchers may apply via Open Access Competitions.
-* Commercial and non-commercial institutions may also apply via the Directors Discretion.
-
-In all cases, IT4Innovations’ access mechanisms are aimed at distributing computational resources while taking into account the development and application of supercomputing methods and their benefits and usefulness for society. The applicants are expected to submit a proposal. In the proposal, the applicants **apply for a particular amount of core-hours** of computational resources. The requested core-hours should be substantiated by scientific excellence of the proposal, its computational maturity and expected impacts. The allocation decision is based on the scientific, technical, and economic evaluation of the proposal.
-
-## Becoming Primary Investigator
-
-Once you create an account, log in to the [IT4I SCS portal][e] and apply for a project.
-You will be informed by IT4I about the Allocation Committee decision.
-Once approved by the Allocation Committee, you become the Primary Investigator (PI) for the project
-and are authorized to use the clusters and any allocated resources as well as authorize collaborators for your project.
-
-### Authorize Collaborators for Your Project
-
-As a PI, you can approve or deny users' requests to join your project. There are two methods of authorizing collaborators:
-
-#### Authorization by Web
-
-This is a preferred method if you have an IT4I or e-INFRA CZ account.
-
-Log in to the [IT4I SCS portal][e] using your credentials and go to the **Authorization Requests** section.
-Here you can authorize collaborators for your project.
-
-#### Authorization by Email (An Alternative Approach)
-
-In order to authorize a Collaborator to utilize the allocated resources, the PI should contact the [IT4I support][f] (email: [support\[at\]it4i.cz][g]) and provide the following information:
-
-1. Identify their project by project ID.
-1. Provide a list of people, including themself, who are authorized to use the resources allocated to the project. The list must include the full name, email and affiliation. If collaborators' login access already exists in the IT4I systems, provide their usernames as well.
-1. Include "Authorization to IT4Innovations" into the subject line.
-
-<Callout type=warn>
-    Should the above information be provided by email, the email **must be** digitally signed. Read more on [digital signatures][2].
-</Callout>
-
-Example (except the subject line which must be in English, you may use Czech or Slovak language for communication with us):
-
-```console
-Subject: Authorization to IT4Innovations
-
-Dear support,
-
-Please include my collaborators to project OPEN-0-0.
-
-John Smith, john.smith@myemail.com, Department of Chemistry, MIT, US
-Jonas Johansson, jjohansson@otheremail.se, Department of Physics, RIT, Sweden
-Luisa Fibonacci, lf@emailitalia.it, Department of Mathematics, National Research Council, Italy
-
-Thank you,
-PI
-(Digitally signed)
-```
-
-<Callout>
-    Web-based email interfaces cannot be used for secure communication; external application, such as Thunderbird or Outlook must be used. This way, your new credentials will be visible only in applications that have access to your certificate.
-</Callout>
-
-[1]: obtaining-login-credentials/obtaining-login-credentials.md
-[2]: https://docs.it4i.cz/general/obtaining-login-credentials/obtaining-login-credentials/#certificates-for-digital-signatures
-
-[a]: https://www.it4i.cz/en/for-users/computing-resources-allocation
-[b]: http://www.it4i.cz/open-access-competition/?lang=en&lang=en
-[c]: http://www.it4i.cz/obtaining-computational-resources-through-directors-discretion/?lang=en&lang=en
-[d]: https://prace-ri.eu/hpc-access/deci-access/deci-access-information-for-applicants/
-[e]: https://scs.it4i.cz
-[f]: https://support.it4i.cz/rt/
-[g]: mailto:support@it4i.cz
diff --git a/content/docs/general/aup.mdx b/content/docs/general/aup.mdx
deleted file mode 100644
index 40f4da8473e80a12f8aa4e33b7ebe75134b682be..0000000000000000000000000000000000000000
--- a/content/docs/general/aup.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: "Acceptable Use Policy"
----
-![PDF presentation on Slurm Batch Jobs Examples](/it4i/general/AUP-final.pdf){ type=application/pdf style="min-height:100vh;width:100%" }
-
diff --git a/content/docs/general/barbora-partitions.mdx b/content/docs/general/barbora-partitions.mdx
deleted file mode 100644
index fb5093af57120e7e18ccd333b3468a5a8d647b79..0000000000000000000000000000000000000000
--- a/content/docs/general/barbora-partitions.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Barbora Partitions"
----
-<Callout type=warn>
-    Active [project membership][1] is required to run jobs.
-</Callout>
-
-Below is the list of partitions available on the Barbora cluster:
-
-| Partition        | Project resources    | Nodes                      | Min ncpus | Priority | Authorization | Walltime (def/max) |
-| ---------------- | -------------------- | -------------------------- | --------- | -------- | ------------- | ------------------ |
-| **qcpu**         | > 0                  | 190                        | 36        | 2        | no            | 24 / 48h           |
-| **qcpu_biz**     | > 0                  | 190                        | 36        | 3        | no            | 24 / 48h           |
-| **qcpu_exp**     | < 150% of allocation | 16                         | 36        | 4        | no            | 1 / 1h             |
-| **qcpu_free**    | < 150% of allocation | 124<br>max 4 per job       | 36        | 1        | no            | 12 / 18h           |
-| **qcpu_long**    | > 0                  | 60<br>max 20 per job       | 36        | 2        | no            | 72 / 144h          |
-| **qcpu_preempt** | active Barbora<br>CPU alloc. | 190<br>max 4 per job       | 36        | 0        | no            | 12 / 12h           |
-| **qgpu**         | > 0                  | 8                          | 24        | 2        | yes           | 24 / 48h           |
-| **qgpu_biz**     | > 0                  | 8                          | 24        | 3        | yes           | 24 / 48h           |
-| **qgpu_exp**     | < 150% of allocation | 4<br>max 1 per job         | 24        | 4        | no            | 1 / 1h             |
-| **qgpu_free**    | < 150% of allocation | 5<br>max 2 per job         | 24        | 1        | no            | 12 / 18h           |
-| **qgpu_preempt** | active Barbora<br>GPU alloc. | 4<br>max 2 per job         | 24        | 0        | no            | 12 / 12h           |
-| **qdgx**         | > 0                  | cn202                      | 96        | 2        | yes           | 4 / 48h            |
-| **qviz**         | > 0                  | 2 with NVIDIA Quadro P6000 | 4         | 2        | no            | 1 / 8h             |
-| **qfat**         | > 0                  | 1 fat node                 | 128       | 2        | yes           | 24 / 48h           |
-
-[1]: access/project-access.md
diff --git a/content/docs/general/capacity-computing.mdx b/content/docs/general/capacity-computing.mdx
deleted file mode 100644
index a4666065a06514a62c9ff34e291587011e97217f..0000000000000000000000000000000000000000
--- a/content/docs/general/capacity-computing.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "Capacity Computing"
----
-## Introduction
-
-In many cases, it is useful to submit a huge (>100) number of computational jobs into the Slurm queue system.
-A huge number of (small) jobs is one of the most effective ways to execute embarrassingly parallel calculations,
-achieving the best runtime, throughput, and computer utilization.
-
-However, executing a huge number of jobs via the Slurm queue may strain the system. This strain may
-result in slow response to commands, inefficient scheduling, and overall degradation of performance
-and user experience for all users.
-
-[//]: # (For this reason, the number of jobs is **limited to 100 jobs per user, 4,000 jobs and subjobs per user, 1,500 subjobs per job array**.)
-
-<Callout>
-    Follow one of the procedures below, in case you wish to schedule more than 100 jobs at a time.
-</Callout>
-
-You can use [HyperQueue][1] when running a huge number of jobs. HyperQueue can help efficiently
-load balance a large number of jobs amongst available computing nodes.
-
-[1]: hyperqueue.md
diff --git a/content/docs/general/energy.mdx b/content/docs/general/energy.mdx
deleted file mode 100644
index ac8f9bf93c800d8d2a5d96d93f59f3e01e1180c9..0000000000000000000000000000000000000000
--- a/content/docs/general/energy.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: "Energy Saving"
----
-IT4Innovations has implemented a set of energy saving measures on the supercomputing clusters. The measures are selected to minimize the performance impact and achieve significant cost, energy, and carbon footprint reduction effect.
-
-The energy saving measures are effective as of **1.2.2023**.
-
-## Karolina
-
-### Measures
-
-The CPU core and GPU streaming multiprocessors frequency limit is implemented for the Karolina supercomputer:
-
-|Measure                                                  | Value   |
-|---------------------------------------------------------|---------|
-|Compute nodes **cn[001-720]**<br> CPU core frequency limit | 2.100 GHz |
-|Accelerated compute nodes **acn[001-72]**<br> CPU core frequency limit | 2.600 GHz  |
-|Accelerated compute nodes **acn[001-72]**<br> GPU SMs frequency limit | 1.290 GHz |
-
-### Performance Impact
-
-The performance impact depends on the [arithmetic intensity][1] of the executed workload.
-The [arithmetic intensity][2] is a measure of floating-point operations (FLOPs) performed by a given code (or code section) relative to the amount of memory accesses (Bytes) that are required to support those operations. It is defined as a FLOP per Byte ratio (F/B).Arithmetic intensity is a characteristic of the computational algorithm.
-
-In general, the processor frequency [capping][3] has low performance impact for memory bound computations (arithmetic intensity below the [ridge point][2]). For processor bound computations (arithmetic intensity above the [ridge point][2]), the impact is proportional to the frequency reduction.
-
-On Karolina, runtime increase **up to 16%** is [observed][4] for arithmeticaly intensive CPU workloads and **up to 10%** for intensive GPU workloads. **No slowdown** is [observed][4] for memory bound workloads.
-
-### Energy Efficiency
-
-The energy efficiency in floating point operations per energy unit is increased by **up to 30%** for both the CPU and GPU workloads. The efficiency depends on the arithmetic intensity, however energy savings are always achieved.
-
-## Barbora
-
-None implemented yet.
-
-## NVIDIA DGX-2
-
-None implemented yet.
-
-## Complementary Systems
-
-None implemented yet.
-
-[1]: https://en.wikipedia.org/wiki/Roofline_model
-[2]: https://dl.acm.org/doi/10.1145/1498765.1498785
-[3]: https://slovnik.seznam.cz/preklad/anglicky_cesky/capping
-[4]: Energy_saving_Karolina.pdf
diff --git a/content/docs/general/feedback.mdx b/content/docs/general/feedback.mdx
deleted file mode 100644
index db358edfe71e4ddcf6f995f6cc20e78c34033e91..0000000000000000000000000000000000000000
--- a/content/docs/general/feedback.mdx
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: "Satisfaction and Feedback"
----
-IT4Innovations National Supercomputing Center is interested in [user satisfaction and feedback][1]. It allows us to prioritize and focus on the most pressing issues. With the help of user feedback, we strive to provide smooth and productive environment, where computational tasks may be solved without distraction or annoyance.
-
-## Feedback Form
-
-Please provide us with feedback regarding your satisfaction with our services using [the online form][1]. Set the values and comment on the individual aspects of our services.
-
-We prefer you enter [**new inputs 3 times a year**][1].
-
-You may view your [feedback history][2] any time.
-You are welcome to modify your most recent input.
-
-The form inquires about:
-
-- Resource allocation and access
-- Computing environment
-- Added value services
-
-You may set the satisfaction score on a **scale of 1 to 5** as well as leave **text comments**.
-The score is interpreted as follows:
-
-|Value    | Interpretation |
-|-----|---|
-| 1-2 | Values below 3 indicate a level of dissatisfaction; improvements or other actions are desirable. The values are interpreted as a measure of how deep the dissatisfaction is.|
-| 3   | Value 3 indicates a degree of satisfaction. Users are reasonably happy with the environment and services and do not require changes, although there still might be room for improvements. |
-| 4-5 | Values above 3 indicate a level of exceptional appreciation and satisfaction; the values are interpreted as a measure of how rewarding the experience is. |
-
-## Feedback Automation
-
-In order to obtain ample feedback data without forcing our users
-to spend efforts in filling out the feedback form, we implement automatic data collection.
-
-The automation works as follows:
-If the last feedback entry is older than 4 months, a new feedback entry is created as a copy of the last entry.
-The new entry is modified in this way:
-
-- score values greater than 3 are decremented by one;
-- score values lower than 3 are incremented by one;
-- score values equal to 3 are preserved;
-- text fields are set blank.
-
-Once a new feedback is created, users are notified by email and invited to [modify the feedback entry][2] as they see fit.
-
-**Rationale:** Feedback automation takes away some effort from a group of moderately satisfied users,
-while prompting the users to express satisfaction/dissatisfaction.
-We assume that  moderately satisfied users (satisfaction value 3) do not require changes to the environment
-and tend to remain moderately satisfied in time.
-Further, we assume that satisfied users (values 4-5) develop in time towards moderately satisfied (value 3)
-by getting accustomed to the provided standards.
-The dissatisfied users (values 1-2) also develop towards moderately satisfied due to
-gradual improvements implemented by the IT4I.
-
-## Request Tracker Feedback
-
-Please use the [user satisfaction and feedback][1] form to provide your overall view.
-For acute, pressing issues and immediate contact, reach out for support via the [Request tracker portal][3] or [support\[at\]it4i.cz][4] email.
-
-Express your satisfaction with the solution of an individual [Request tracker][3] ticket by selecting **Feedback** menu on the ticket form.
-
-## Evaluation
-
-The user feedback is evaluated 4 times a year, in the end of March, June, September, and December.
-We consider the text comments, as well as evaluate the score average, distribution and trends.
-This is done in summary as well as per individual category.
-
-[1]: https://scs.it4i.cz/feedbacks/new
-[2]: https://scs.it4i.cz/feedbacks/
-[3]: https://support.it4i.cz/rt
-[4]: mailto:support@it4i.cz
diff --git a/content/docs/general/hyperqueue.mdx b/content/docs/general/hyperqueue.mdx
deleted file mode 100644
index 95841cfa31a880cacafd1f514883df77bead5281..0000000000000000000000000000000000000000
--- a/content/docs/general/hyperqueue.mdx
+++ /dev/null
@@ -1,134 +0,0 @@
----
-title: "HyperQueue"
----
-HyperQueue lets you build a computation plan consisting of a large amount of tasks and then execute it transparently over a system like SLURM/PBS.
-It dynamically groups tasks into Slurm jobs and distributes them to fully utilize allocated nodes.
-You thus do not have to manually aggregate your tasks into Slurm jobs.
-
-Find more about HyperQueue in its [documentation][a].
-
-![](/it4i/img/hq-idea-s.png)
-
-## Features
-
-* **Transparent task execution on top of a Slurm/PBS cluster**
-
-  * Automatic task distribution amongst jobs, nodes, and cores
-  * Automatic submission of PBS/Slurm jobs
-
-* **Dynamic load balancing across jobs**
-
-  * Work-stealing scheduler
-  * NUMA-aware, core planning, task priorities, task arrays
-  * Nodes and tasks may be added/removed on the fly
-
-* **Scalable**
-
-  * Low overhead per task (~100ÎĽs)
-  * Handles hundreds of nodes and millions of tasks
-  * Output streaming avoids creating many files on network filesystems
-
-* **Easy deployment**
-
-  * Single binary, no installation, depends only on *libc*
-  * No elevated privileges required
-
-## Installation
-
-* On Barbora and Karolina, you can simply load the HyperQueue module:
-
-    ```console
-    $ ml HyperQueue
-    ```
-
-* If you want to install/compile HyperQueue manually, follow the steps on the [official webpage][b].
-
-## Usage
-
-### Starting the Server
-
-To use HyperQueue, you first have to start the HyperQueue server. It is a long-lived process that
-is supposed to be running on a login node. You can start it with the following command:
-
-```console
-$ hq server start
-```
-
-### Submitting Computation
-
-Once the HyperQueue server is running, you can submit jobs into it. Here are a few examples of job submissions.
-You can find more information in the [documentation][1].
-
-* Submit a simple job (command `echo 'Hello world'` in this case)
-
-    ```console
-    $ hq submit echo 'Hello world'
-    ```
-
-* Submit a job with 10000 tasks
-
-    ```console
-    $ hq submit --array 1-10000 my-script.sh
-    ```
-
-Once you start some jobs, you can observe their status using the following commands:
-
-```console
-# Display status of a single job
-$ hq job <job-id>
-
-# Display status of all jobs
-$ hq jobs
-```
-
-<Callout type=warn>
-    Before the jobs can start executing, you have to provide HyperQueue with some computational resources.
-</Callout>
-
-### Providing Computational Resources
-
-Before HyperQueue can execute your jobs, it needs to have access to some computational resources.
-You can provide these by starting HyperQueue *workers* which connect to the server and execute your jobs.
-The workers should run on computing nodes, therefore they should be started inside Slurm jobs.
-
-There are two ways of providing computational resources.
-
-* **Allocate Slurm jobs automatically**
-
-    HyperQueue can automatically submit Slurm jobs with workers on your behalf. This system is called
-    [automatic allocation][c]. After the server is started, you can add a new automatic allocation
-    queue using the `hq alloc add` command:
-
-    ```console
-    $ hq alloc add slurm -- -A<PROJECT-ID> -p qcpu_exp
-    ```
-
-    After you run this command, HQ will automatically start submitting Slurm jobs on your behalf
-    once some HQ jobs are submitted.
-
-* **Manually start Slurm jobs with HQ workers**
-
-    With the following command, you can submit a Slurm job that will start a single HQ worker which
-    will connect to a running HQ server.
-
-    ```console
-    $ salloc <salloc-params> -- /bin/bash -l -c "$(which hq) worker start"
-    ```
-
-<Callout>
-    For debugging purposes, you can also start the worker e.g. on a login node, simply by running
-    `$ hq worker start`. Do not use such worker for any long-running computations though!
-</Callout>
-
-## Architecture
-
-Here you can see the architecture of HyperQueue.
-The user submits jobs into the server which schedules them onto a set of workers running on compute nodes.
-
-![](/it4i/img/hq-architecture.png)
-
-[1]: https://it4innovations.github.io/hyperqueue/stable/jobs/jobs/
-
-[a]: https://it4innovations.github.io/hyperqueue/stable/
-[b]: https://it4innovations.github.io/hyperqueue/stable/installation/
-[c]: https://it4innovations.github.io/hyperqueue/stable/deployment/allocation/
diff --git a/content/docs/general/job-arrays.mdx b/content/docs/general/job-arrays.mdx
deleted file mode 100644
index ae79310231ebd615ce222f6accae340bfc166b4d..0000000000000000000000000000000000000000
--- a/content/docs/general/job-arrays.mdx
+++ /dev/null
@@ -1,146 +0,0 @@
----
-title: "Job Arrays"
----
-<Callout type=warn>
-    This page has not been updated yet. The page does not reflect the transition from PBS to Slurm.
-A job array is a compact representation of many jobs called subjobs. Subjobs share the same job script, and have the same values for all attributes and resources, with the following exceptions:
-
-* each subjob has a unique index, $PBS_ARRAY_INDEX
-* job Identifiers of subjobs only differ by their indices
-* the state of subjobs can differ (R, Q, etc.)
-</Callout>
-
-All subjobs within a job array have the same scheduling priority and schedule as independent jobs. An entire job array is submitted through a single `qsub` command and may be managed by `qdel`, `qalter`, `qhold`, `qrls`, and `qsig` commands as a single job.
-
-## Shared Jobscript
-
-All subjobs in a job array use the very same single jobscript. Each subjob runs its own instance of the jobscript. The instances execute different work controlled by the `$PBS_ARRAY_INDEX` variable.
-
-Example:
-
-Assume we have 900 input files with the name of each beginning with "file" (e.g. file001, ..., file900). Assume we would like to use each of these input files with myprog.x program executable, each as a separate job.
-
-First, we create a tasklist file (or subjobs list), listing all tasks (subjobs) - all input files in our example:
-
-```console
-$ find . -name 'file*' > tasklist
-```
-
-Then we create a jobscript:
-
-```bash
-#!/bin/bash
-#PBS -A OPEN-00-00
-#PBS -q qprod
-#PBS -l select=1,walltime=02:00:00
-
-# change to scratch directory
-SCRDIR=/scratch/project/${PBS_ACCOUNT,,}/${USER}/${PBS_JOBID}
-mkdir -p $SCRDIR
-cd $SCRDIR || exit
-
-# get individual tasks from tasklist with index from PBS JOB ARRAY
-TASK=$(sed -n "${PBS_ARRAY_INDEX}p" $PBS_O_WORKDIR/tasklist)
-
-# copy input file and executable to scratch
-cp $PBS_O_WORKDIR/$TASK input
-cp $PBS_O_WORKDIR/myprog.x .
-
-# execute the calculation
-./myprog.x < input > output
-
-# copy output file to submit directory
-cp output $PBS_O_WORKDIR/$TASK.out
-```
-
-In this example, the submit directory contains the 900 input files, the myprog.x executable, and the jobscript file. As an input for each run, we take the filename of the input file from the created tasklist file. We copy the input file to the local scratch memory `/lscratch/$PBS_JOBID`, execute the myprog.x and copy the output file back to the submit directory, under the `$TASK.out` name. The myprog.x executable runs on one node only and must use threads to run in parallel. Be aware, that if the myprog.x **is not multithreaded**, then all the **jobs are run as single-thread programs in a sequential manner**. Due to the allocation of the whole node, the accounted time is equal to the usage of the whole node, while using only 1/16 of the node.
-
-If running a huge number of parallel multicore (in means of multinode multithread, e.g. MPI enabled) jobs is needed, then a job array approach should be used. The main difference, as compared to the previous examples using one node, is that the local scratch memory should not be used (as it is not shared between nodes) and MPI or other techniques for parallel multinode processing has to be used properly.
-
-## Submiting Job Array
-
-To submit the job array, use the `qsub -J` command. The 900 jobs of the [example above][3] may be submitted like this:
-
-```console
-$ qsub -N JOBNAME -J 1-900 jobscript
-506493[].isrv5
-```
-
-In this example, we submit a job array of 900 subjobs. Each subjob will run on one full node and is assumed to take less than 2 hours (note the #PBS directives in the beginning of the jobscript file, do not forget to set your valid PROJECT_ID and desired queue).
-
-Sometimes for testing purposes, you may need to submit a one-element only array. This is not allowed by PBSPro, but there is a workaround:
-
-```console
-$ qsub -N JOBNAME -J 9-10:2 jobscript
-```
-
-This will only choose the lower index (9 in this example) for submitting/running your job.
-
-## Managing Job Array
-
-Check status of the job array using the `qstat` command.
-
-```console
-$ qstat -a 12345[].dm2
-
-dm2:
-                                                            Req'd Req'd   Elap
-Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time S Time
---------------- -------- --  |---|---| ------ --- --- ------ ----- - -----
-12345[].dm2     user2    qprod    xx          13516   1 16    --  00:50 B 00:02
-```
-
-When the status is B, it means that some subjobs are already running.
-Check the status of the first 100 subjobs using the `qstat` command.
-
-```console
-$ qstat -a 12345[1-100].dm2
-
-dm2:
-                                                            Req'd Req'd   Elap
-Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time S Time
---------------- -------- --  |---|---| ------ --- --- ------ ----- - -----
-12345[1].dm2    user2    qprod    xx          13516   1 16    --  00:50 R 00:02
-12345[2].dm2    user2    qprod    xx          13516   1 16    --  00:50 R 00:02
-12345[3].dm2    user2    qprod    xx          13516   1 16    --  00:50 R 00:01
-12345[4].dm2    user2    qprod    xx          13516   1 16    --  00:50 Q   --
-     .             .        .      .             .    .   .     .    .   .    .
-     ,             .        .      .             .    .   .     .    .   .    .
-12345[100].dm2 user2    qprod    xx          13516   1 16    --  00:50 Q   --
-```
-
-Delete the entire job array. Running subjobs will be killed, queueing subjobs will be deleted.
-
-```console
-$ qdel 12345[].dm2
-```
-
-Deleting large job arrays may take a while.
-Display status information for all user's jobs, job arrays, and subjobs.
-
-```console
-$ qstat -u $USER -t
-```
-
-Display status information for all user's subjobs.
-
-```console
-$ qstat -u $USER -tJ
-```
-
-For more information on job arrays, see the [PBSPro Users guide][1].
-
-## Examples
-
-Download the examples in [capacity.zip][2], illustrating the above listed ways to run a huge number of jobs. We recommend trying out the examples before using this for running production jobs.
-
-Unzip the archive in an empty directory on cluster and follow the instructions in the README file-
-
-```console
-$ unzip capacity.zip
-$ cat README
-```
-
-[1]: ../pbspro.md
-[2]: capacity.zip
-[3]: #shared-jobscript
diff --git a/content/docs/general/job-priority.mdx b/content/docs/general/job-priority.mdx
deleted file mode 100644
index a6f12cfc5369e170504582f9709a503d56e6f153..0000000000000000000000000000000000000000
--- a/content/docs/general/job-priority.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: "Job Scheduling"
----
-## Job Priority
-
-The scheduler gives each job a priority and then uses this job priority to select which job(s) to run.
-
-Job priority is determined by these job properties (in order of importance):
-
-1. queue priority
-1. fair-share priority
-1. job age/eligible time
-
-### Queue Priority
-
-Queue priority is the priority of the queue in which the job is waiting prior to execution.
-
-Queue priority has the biggest impact on job priority. The priority of jobs in higher priority queues is always greater than the priority of jobs in lower priority queues. Other properties of jobs used for determining the job priority (fair-share priority, eligible time) cannot compete with queue priority.
-
-Queue priorities can be seen [here][a].
-
-### Fair-Share Priority
-
-Fair-share priority is calculated based on recent usage of resources. Fair-share priority is calculated per project, i.e. all members of a project share the same fair-share priority. Projects with higher recent usage have a lower fair-share priority than projects with lower or no recent usage.
-
-Fair-share priority is used for ranking jobs with equal queue priority.
-
-Usage decays, halving at intervals of 7 days.
-
-### Job Age/Eligible Time
-
-The job age factor represents the length of time a job has been sitting in the queue and eligible to run.
-
-Job age has the least impact on priority.
-
-### Formula
-
-Job priority is calculated as:
-
----8<--- "job_sort_formula.md"
-
-### Job Backfilling
-
-The scheduler uses job backfilling.
-
-Backfilling means fitting smaller jobs around the higher-priority jobs that the scheduler is going to run next, in such a way that the higher-priority jobs are not delayed. Backfilling allows us to keep resources from becoming idle when the top job (the job with the highest priority) cannot run.
-
-The scheduler makes a list of jobs to run in order of priority. The scheduler looks for smaller jobs that can fit into the usage gaps around the highest-priority jobs in the list. The scheduler looks in the prioritized list of jobs and chooses the highest-priority smaller jobs that fit. Filler jobs are run only if they will not delay the start time of top jobs.
-
-This means that jobs with lower priority can be run before jobs with higher priority.
-
-<Callout>
-    It is **very beneficial to specify the timelimit** when submitting jobs.
-<Callout>
-
-Specifying more accurate timelimit enables better scheduling, better times, and better resource usage. Jobs with suitable (small) timelimit can be backfilled - and overtake job(s) with a higher priority.
-
----8<--- "mathjax.md"
-
-## Technical Details
-
-Priorities are set using Slurm's [Multifactor Priority Plugin][1]. Current settings are as follows:
-
-```
-$ grep ^Priority /etc/slurm/slurm.conf
-PriorityFlags=DEPTH_OBLIVIOUS
-PriorityType=priority/multifactor
-PriorityDecayHalfLife=7-0
-PriorityMaxAge=14-0
-PriorityWeightAge=100000
-PriorityWeightFairshare=10000000
-PriorityWeightPartition=1000000000
-```
-
-## Inspecting Job Priority
-
-One can inspect job priority using `sprio` command. Job priority is in the field PRIORITY and it is comprised of PARTITION, FAIRSHARE and AGE priorities.
-
-```
-$ sprio -l -j 894782
-          JOBID PARTITION     USER  ACCOUNT   PRIORITY       SITE        AGE      ASSOC  FAIRSHARE    JOBSIZE  PARTITION    QOSNAME        QOS        NICE                 TRES
-         894782 qgpu         user1  service  300026688          0         17          0      26671          0  300000000     normal          0           0
-```
-
-[1]: https://slurm.schedmd.com/priority_multifactor.html
-
-[a]: https://extranet.it4i.cz/rsweb/karolina/queues
diff --git a/content/docs/general/job-submission-and-execution.mdx b/content/docs/general/job-submission-and-execution.mdx
deleted file mode 100644
index 0b2ece24a5fd4ed81ac4cf351af5729392cab585..0000000000000000000000000000000000000000
--- a/content/docs/general/job-submission-and-execution.mdx
+++ /dev/null
@@ -1,364 +0,0 @@
----
-title: "Job Submission and Execution"
----
-<Callout type=warn>
-    Don't use the `#SBATCH --exclusive` parameter as it is already included in the SLURM configuration.<br><br>
-    Use the `#SBATCH --mem=` parameter **on `qfat` only**. On `cpu_` queues, whole nodes are allocated.
-    Accelerated nodes (`gpu_` queues) are divided each into eight parts with corresponding memory.
-</Callout>
-
-## Introduction
-
-[Slurm][1] workload manager is used to allocate and access Karolina's, Barbora's and Complementary systems' resources.
-
-A `man` page exists for all Slurm commands, as well as the `--help` command option,
-which provides a brief summary of options.
-Slurm [documentation][c] and [man pages][d] are also available online.
-
-## Getting Partition Information
-
-Display partitions/queues on system:
-
-```console
-$ sinfo -s
-PARTITION    AVAIL  TIMELIMIT   NODES(A/I/O/T) NODELIST
-qcpu*           up 2-00:00:00      1/191/0/192 cn[1-192]
-qcpu_biz        up 2-00:00:00      1/191/0/192 cn[1-192]
-qcpu_exp        up    1:00:00      1/191/0/192 cn[1-192]
-qcpu_free       up   18:00:00      1/191/0/192 cn[1-192]
-qcpu_long       up 6-00:00:00      1/191/0/192 cn[1-192]
-qcpu_preempt    up   12:00:00      1/191/0/192 cn[1-192]
-qgpu            up 2-00:00:00          0/8/0/8 cn[193-200]
-qgpu_biz        up 2-00:00:00          0/8/0/8 cn[193-200]
-qgpu_exp        up    1:00:00          0/8/0/8 cn[193-200]
-qgpu_free       up   18:00:00          0/8/0/8 cn[193-200]
-qgpu_preempt    up   12:00:00          0/8/0/8 cn[193-200]
-qfat            up 2-00:00:00          0/1/0/1 cn201
-qdgx            up 2-00:00:00          0/1/0/1 cn202
-qviz            up    8:00:00          0/2/0/2 vizserv[1-2]
-```
-
-`NODES(A/I/O/T)` column summarizes node count per state, where the `A/I/O/T` stands for `allocated/idle/other/total`.
-Example output is from Barbora cluster.
-
-Graphical representation of clusters' usage, partitions, nodes, and jobs could be found
-
-* for Karolina at [https://extranet.it4i.cz/rsweb/karolina][5]
-* for Barbora at [https://extranet.it4i.cz/rsweb/barbora][4]
-* for Complementary Systems at [https://extranet.it4i.cz/rsweb/compsys][6]
-
-On Karolina cluster
-
-* all cpu queues/partitions provide full node allocation, whole nodes are allocated to job
-* other queues/partitions (gpu, fat, viz) provide partial node allocation
-
-See [Karolina Slurm Specifics][7] for details.
-
-On Barbora cluster, all queues/partitions provide full node allocation, whole nodes are allocated to job.
-
-On Complementary systems, only some queues/partitions provide full node allocation,
-see [Complementary systems documentation][2] for details.
-
-## Running Interactive Jobs
-
-Sometimes you may want to run your job interactively, for example for debugging,
-running your commands one by one from the command line.
-
-Run interactive job - queue `qcpu_exp`, one node by default, one task by default:
-
-```console
-$ salloc -A PROJECT-ID -p qcpu_exp
-```
-
-Run interactive job on four nodes, 128 tasks per node (Karolina cluster, CPU partition recommended value based on node core count),
-two hours time limit:
-
-```console
-$ salloc -A PROJECT-ID -p qcpu -N 4 --ntasks-per-node 128 -t 2:00:00
-```
-
-Run interactive job, with X11 forwarding:
-
-```console
-$ salloc -A PROJECT-ID -p qcpu_exp --x11
-```
-
-To finish the interactive job, use the Ctrl+D (`^D`) control sequence.
-
-<Callout type=warn>
-    Do not use `srun` for initiating interactive jobs, subsequent `srun`, `mpirun` invocations would block forever.
-</Callout>
-
-## Running Batch Jobs
-
-Batch jobs is the standard way of running jobs and utilizing HPC clusters.
-
-### Job Script
-
-Create example job script called script.sh with the following content:
-
-```shell
-#!/usr/bin/bash
-#SBATCH --job-name MyJobName
-#SBATCH --account PROJECT-ID
-#SBATCH --partition qcpu
-#SBATCH --nodes 4
-#SBATCH --ntasks-per-node 128
-#SBATCH --time 12:00:00
-
-ml purge
-ml OpenMPI/4.1.4-GCC-11.3.0
-
-srun hostname | sort | uniq -c
-```
-
-Script will:
-
-* use bash shell interpreter
-* use `MyJobName` as job name
-* use project `PROJECT-ID` for job access and accounting
-* use partition/queue `qcpu`
-* use `4` nodes
-* use `128` tasks per node - value used by MPI
-* set job time limit to `12` hours
-
-* load appropriate module
-* run command, `srun` serves as Slurm's native way of executing MPI-enabled applications, `hostname` is used in the example just for sake of simplicity
-
-<Callout>
-    Use `#SBATCH --exclude=<node_name_list>` directive to exclude specific nodes from your job, e.g.: `#SBATCH --exclude=cn001,cn002,cn003`.
-</Callout>
-
-Submit directory will be used as working directory for submitted job,
-so there is no need to change directory in the job script.
-Alternatively you can specify job working directory using the sbatch `--chdir` (or shortly `-D`) option.
-
-### Srun Over mpirun
-
-While `mpirun` can be used to run parallel jobs on our Slurm-managed clusters, we recommend using `srun` for better integration with Slurm's scheduling and resource management. `srun` ensures more efficient job execution and resource control by leveraging Slurm’s features directly, and it simplifies the process by reducing the need for additional configurations often required with `mpirun`.
-
-### Job Submit
-
-Submit batch job:
-
-```console
-$ cd my_work_dir
-$ sbatch script.sh
-```
-
-A path to `script.sh` (relative or absolute) should be given
-if the job script is in a different location than the job working directory.
-
-By default, job output is stored in a file called `slurm-JOBID.out` and contains both job standard output and error output.
-This can be changed using the sbatch options `--output` (shortly `-o`) and `--error` (shortly `-e`).
-
-Example output of the job:
-
-```shell
-     128 cn017.karolina.it4i.cz
-     128 cn018.karolina.it4i.cz
-     128 cn019.karolina.it4i.cz
-     128 cn020.karolina.it4i.cz
-```
-
-### Job Environment Variables
-
-Slurm provides useful information to the job via environment variables.
-Environment variables are available on all nodes allocated to job when accessed via Slurm supported means (`srun`, compatible `mpirun`).
-
-See all Slurm variables
-
-```
-$ set | grep ^SLURM
-```
-
-Commonly used variables are:
-
-| variable name | description | example |
-| ------ | ------ | ------ |
-| SLURM_JOB_ID | job id of the executing job| 593 |
-| SLURM_JOB_NODELIST | nodes allocated to the job | cn[101-102] |
-| SLURM_JOB_NUM_NODES | number of nodes allocated to the job | 2 |
-| SLURM_STEP_NODELIST | nodes allocated to the job step | cn101 |
-| SLURM_STEP_NUM_NODES | number of nodes allocated to the job step | 1 |
-| SLURM_JOB_PARTITION | name of the partition | qcpu |
-| SLURM_SUBMIT_DIR | submit directory | /scratch/project/open-xx-yy/work |
-
-See relevant [Slurm documentation][3] for details.
-
-Get job nodelist:
-
-```
-$ echo $SLURM_JOB_NODELIST
-cn[101-102]
-```
-
-Expand nodelist to list of nodes:
-
-```
-$ scontrol show hostnames
-cn101
-cn102
-```
-
-## Job Management
-
-### Getting Job Information
-
-Show all jobs on system:
-
-```console
-$ squeue
-```
-
-Show my jobs:
-
-```console
-$ squeue --me
-             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
-               104   qcpu    interact    user   R       1:48      2 cn[101-102]
-```
-
-Show job details for a specific job:
-
-```console
-$ scontrol show job JOBID
-```
-
-Show job details for executing job from job session:
-
-```console
-$ scontrol show job $SLURM_JOBID
-```
-
-Show my jobs using a long output format which includes time limit:
-
-```console
-$ squeue --me -l
-```
-
-Show my jobs in running state:
-
-```console
-$ squeue --me -t running
-```
-
-Show my jobs in pending state:
-
-```console
-$ squeue --me -t pending
-```
-
-Show jobs for a given project:
-
-```console
-$ squeue -A PROJECT-ID
-```
-
-### Job States
-
-The most common job states are (in alphabetical order):
-
-| Code | Job State     | Explanation                                                                                                    |
-| :--: | :------------ | :------------------------------------------------------------------------------------------------------------- |
-| CA   | CANCELLED     | Job was explicitly cancelled by the user or system administrator.  The job may or may not have been initiated. |
-| CD   | COMPLETED     | Job has terminated all processes on all nodes with an exit code of zero.                                       |
-| CG   | COMPLETING    | Job is in the process of completing. Some processes on some nodes may still be active.                         |
-| F    | FAILED        | Job terminated with non-zero exit code or other failure condition.                                             |
-| NF   | NODE_FAIL     | Job terminated due to failure of one or more allocated nodes.                                                  |
-| OOM  | OUT_OF_MEMORY | Job experienced out of memory error.                                                                           |
-| PD   | PENDING       | Job is awaiting resource allocation.                                                                           |
-| PR   | PREEMPTED     | Job terminated due to preemption.                                                                              |
-| R    | RUNNING       | Job currently has an allocation.                                                                               |
-| RQ   | REQUEUED      | Completing job is being requeued.                                                                              |
-| SI   | SIGNALING     | Job is being signaled.                                                                                         |
-| TO   | TIMEOUT       | Job terminated upon reaching its time limit.                                                                   |
-
-### Modifying Jobs
-
-In general:
-
-```
-$ scontrol update JobId=JOBID ATTR=VALUE
-```
-
-Modify job's time limit:
-
-```
-$ scontrol update JobId=JOBID timelimit=4:00:00
-```
-
-Set/modify job's comment:
-
-```
-$ scontrol update JobId=JOBID Comment='The best job ever'
-```
-
-### Deleting Jobs
-
-Delete a job by job ID:
-
-```
-$ scancel JOBID
-```
-
-Delete all my jobs:
-
-```
-$ scancel --me
-```
-
-Delete all my jobs in interactive mode, confirming every action:
-
-```
-$ scancel --me -i
-```
-
-Delete all my running jobs:
-
-```
-$ scancel --me -t running
-```
-
-Delete all my pending jobs:
-
-```
-$ scancel --me -t pending
-```
-
-Delete all my pending jobs for a project PROJECT-ID:
-
-```
-$ scancel --me -t pending -A PROJECT-ID
-```
-
-## Troubleshooting
-
-### Invalid Account
-
-`sbatch: error: Batch job submission failed: Invalid account or account/partition combination specified`
-
-Possible causes:
-
-* Invalid account (i.e. project) was specified in job submission.
-* User does not have access to given account/project.
-* Given account/project does not have access to given partition.
-* Access to given partition was retracted due to the project's allocation exhaustion.
-
-[1]: https://slurm.schedmd.com/
-[2]: /cs/job-scheduling/#partitions
-[3]: https://slurm.schedmd.com/srun.html#SECTION_OUTPUT-ENVIRONMENT-VARIABLES
-[4]: https://extranet.it4i.cz/rsweb/barbora
-[5]: https://extranet.it4i.cz/rsweb/karolina
-[6]: https://extranet.it4i.cz/rsweb/compsys
-[7]: /general/karolina-slurm
-
-[a]: https://slurm.schedmd.com/
-[b]: http://slurmlearning.deic.dk/
-[c]: https://slurm.schedmd.com/documentation.html
-[d]: https://slurm.schedmd.com/man_index.html
-[e]: https://slurm.schedmd.com/sinfo.html
-[f]: https://slurm.schedmd.com/squeue.html
-[g]: https://slurm.schedmd.com/scancel.html
-[h]: https://slurm.schedmd.com/scontrol.html
-[i]: https://slurm.schedmd.com/job_array.html
diff --git a/content/docs/general/karolina-mpi.mdx b/content/docs/general/karolina-mpi.mdx
deleted file mode 100644
index bb10541ebf5a89d0b8c37c276a29d67b13f0978b..0000000000000000000000000000000000000000
--- a/content/docs/general/karolina-mpi.mdx
+++ /dev/null
@@ -1,434 +0,0 @@
----
-title: "Parallel Runs Setting on Karolina"
----
-<Callout type=warn>
-    This page has not been updated yet. The page does not reflect the transition from PBS to Slurm.
-Important aspect of each parallel application is correct placement of MPI processes
-or threads to available hardware resources.
-Since incorrect settings can cause significant degradation of performance,
-all users should be familiar with basic principles explained below.
-</Callout>
-
-At the beginning, a basic [hardware overview][1] is provided,
-since it influences settings of `mpirun` command.
-Then placement is explained for major MPI implementations [Intel MPI][2] and [OpenMPI][3].
-The last section describes an appropriate placement for [memory bound][4] and [compute bound][5] applications.
-
-## Hardware Overview
-
-[Karolina][6] contains several types of nodes.
-This documentation contains description of basic hardware structure of universal and accelerated nodes.
-More technical details can be found in [this presentation][a].
-
-### Universal Nodes
-
-- 720 x 2 x AMD 7H12, 64 cores, 2,6 GHz
-
-<table>
-  <tr>
-    <td rowspan="8">universal<br/>node</td>
-    <td rowspan="4">socket 0<br/> AMD 7H12</td>
-    <td>NUMA 0</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td>NUMA 1</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td>NUMA 2</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td>NUMA 3</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td rowspan="4">socket 1<br/> AMD 7H12</td>
-    <td>NUMA 4</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td>NUMA 5</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td>NUMA 6</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-  <tr>
-    <td>NUMA 7</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>4 x 16MB L3</td>
-    <td>16 cores (4 cores / L3)</td>
-  </tr>
-</table>
-
-### Accelerated Nodes
-
-- 72 x 2 x AMD 7763, 64 cores, 2,45 GHz
-- 72 x 8 x NVIDIA A100 GPU
-
-<table>
-  <tr>
-    <td rowspan="8">accelerated<br/>node</td>
-    <td rowspan="4">socket 0<br/> AMD 7763</td>
-    <td>NUMA 0</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>NUMA 1</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td>2 x A100 </td>
-  </tr>
-  <tr>
-    <td>NUMA 2</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>NUMA 3</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td>2 x A100 </td>
-  </tr>
-  <tr>
-    <td rowspan="4">socket 1<br/> AMD 7763</td>
-    <td>NUMA 4</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>NUMA 5</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td>2 x A100 </td>
-  </tr>
-  <tr>
-    <td>NUMA 6</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>NUMA 7</td>
-    <td>2 x ch DDR4-3200</td>
-    <td>2 x 32MB L3</td>
-    <td>16 cores (8 cores / L3)</td>
-    <td>2 x A100 </td>
-  </tr>
-</table>
-
-## Assigning Processes / Threads to Particular Hardware
-
-When an application is started, the operating system maps MPI processes and threads to particular cores.
-This mapping is not fixed as the system is allowed to move your application to other cores.
-Inappropriate mapping or frequent moving can lead to significant degradation
-of performance of your application.
-Hence, a user should:
-
-- set **mapping** according to their application needs;
-- **pin** the application to particular hardware resources.
-
-Settings can be described by environment variables that are briefly described on [HPC wiki][b].
-However, the mapping and pining is highly non-portable.
-It is dependent on a particular system and used MPI library.
-The following sections describe settings for the Karolina cluster.
-
-The number of MPI processes per node should be set by PBS via the [`qsub`][7] command.
-Mapping and pinning are set for [Intel MPI](#intel-mpi) and [Open MPI](#open-mpi) differently.
-
-## Open MPI
-
-In the case of Open MPI, mapping can be set by the parameter `--map-by`.
-Pinning can be set by the parameter `--bind-to`.
-The list of all available options can be found [here](https://www-lb.open-mpi.org/doc/v4.1/man1/mpirun.1.php#sect6).
-
-The most relevant options are:
-
-- bind-to: core, l3cache, numa, socket
-- map-by: core, l3cache, numa, socket, slot
-
-Mapping and pinning to, for example, L3 cache can be set by the `mpirun` command in the following way:
-
-```
-mpirun -n 32 --map-by l3cache --bind-to l3cache ./app
-```
-
-Both parameters can be also set by environment variables:
-
-```
-export OMPI_MCA_rmaps_base_mapping_policy=l3cache
-export OMPI_MCA_hwloc_base_binding_policy=l3cache
-mpirun -n 32 ./app
-```
-
-## Intel MPI
-
-In the case of Intel MPI, mapping and pinning can be set by environment variables
-that are described [on Intel's Developer Reference][c].
-The most important variable is `I_MPI_PIN_DOMAIN`.
-It denotes the number of cores allocated for each MPI process
-and specifies both mapping and pinning.
-
-Default setting is `I_MPI_PIN_DOMAIN=auto:compact`.
-It computes the number of cores allocated to each MPI process
-from the number of available cores and requested number of MPI processes
-(total cores / requested MPI processes).
-It is usually the optimal settings and majority applications can be run
-with the simple `mpirun -n N ./app` command, where `N` denotes the number of MPI processes.
-
-### Examples of Placement to Different Hardware
-
-Let us have a job allocated by the following `qsub`:
-
-```console
-qsub -lselect=2,nprocs=128,mpiprocs=4,ompthreads=4
-```
-
-Then the following table shows placement of `app` started
-with 8 MPI processes on the universal node for various mapping and pining:
-
-<table style="text-align: center">
-  <tr>
-    <th style="text-align: center" colspan="2">Open MPI</th>
-    <th style="text-align: center">Intel MPI</th>
-    <th style="text-align: center">node</th>
-    <th style="text-align: center" colspan="4">0</th>
-    <th style="text-align: center" colspan="4">1</th>
-  </tr>
-  <tr>
-    <th style="text-align: center">map-by</th>
-    <th style="text-align: center">bind-to</th>
-    <th style="text-align: center">I_MPI_PIN_DOMAIN</th>
-    <th style="text-align: center">rank</th>
-    <th style="text-align: center">0</th>
-    <th style="text-align: center">1</th>
-    <th style="text-align: center">2</th>
-    <th style="text-align: center">3</th>
-    <th style="text-align: center">4</th>
-    <th style="text-align: center">5</th>
-    <th style="text-align: center">6</th>
-    <th style="text-align: center">7</th>
-  </tr>
-  <tr>
-    <td rowspan="3">socket</td>
-    <td rowspan="3">socket</td>
-    <td rowspan="3">socket</td>
-    <td>socket</td>
-    <td>0</td>
-    <td>1</td>
-    <td>0</td>
-    <td>1</td>
-    <td>0</td>
-    <td>1</td>
-    <td>0</td>
-    <td>1</td>
-  </tr>
-  <tr>
-    <td>numa</td>
-    <td>0-3</td>
-    <td>4-7</td>
-    <td>0-3</td>
-    <td>4-7</td>
-    <td>0-3</td>
-    <td>4-7</td>
-    <td>0-3</td>
-    <td>4-7</td>
-  </tr>
-  <tr>
-    <td>cores</td>
-    <td>0-63</td>
-    <td>64-127</td>
-    <td>0-63</td>
-    <td>64-127</td>
-    <td>0-63</td>
-    <td>64-127</td>
-    <td>0-63</td>
-    <td>64-127</td>
-  </tr>
-  <tr>
-    <td rowspan="3">numa</td>
-    <td rowspan="3">numa</td>
-    <td rowspan="3">numa</td>
-    <td>socket</td>
-    <td colspan="4">0</td>
-    <td colspan="4">0</td>
-  </tr>
-  <tr>
-    <td>numa</td>
-    <td>0</td>
-    <td>1</td>
-    <td>2</td>
-    <td>3</td>
-    <td>0</td>
-    <td>1</td>
-    <td>2</td>
-    <td>3</td>
-  </tr>
-  <tr>
-    <td>cores</td>
-    <td>0-15</td>
-    <td>16-31</td>
-    <td>32-47</td>
-    <td>48-63</td>
-    <td>0-15</td>
-    <td>16-31</td>
-    <td>32-47</td>
-    <td>48-63</td>
-  </tr>
-  <tr>
-    <td rowspan="3">l3cache</td>
-    <td rowspan="3">l3cache</td>
-    <td rowspan="3"><s>cache3</s></td>
-    <td>socket</td>
-    <td colspan="4">0</td>
-    <td colspan="4">0</td>
-  </tr>
-  <tr>
-    <td>numa</td>
-    <td colspan="4">0</td>
-    <td colspan="4">0</td>
-  </tr>
-  <tr>
-    <td>cores</td>
-    <td>0-3</td>
-    <td>4-7</td>
-    <td>8-11</td>
-    <td>12-15</td>
-    <td>0-3</td>
-    <td>4-7</td>
-    <td>8-11</td>
-    <td>12-15</td>
-  </tr>
-  <tr>
-    <td rowspan="3">slot:pe=32</td>
-    <td rowspan="3">core</td>
-    <td rowspan="3">32</td>
-    <td>socket</td>
-    <td colspan="2">0</td>
-    <td colspan="2">1</td>
-    <td colspan="2">0</td>
-    <td colspan="2">1</td>
-  </tr>
-  <tr>
-    <td>numa</td>
-    <td>0-1</td>
-    <td>2-3</td>
-    <td>4-5</td>
-    <td>6-7</td>
-    <td>0-1</td>
-    <td>2-3</td>
-    <td>4-5</td>
-    <td>6-7</td>
-  </tr>
-  <tr>
-    <td>cores</td>
-    <td>0-31</td>
-    <td>32-63</td>
-    <td>64-95</td>
-    <td>96-127</td>
-    <td>0-31</td>
-    <td>32-63</td>
-    <td>64-95</td>
-    <td>96-127</td>
-  </tr>
-</table>
-
-We can see from the above table that mapping starts from the first node.
-When the first node is fully occupied
-(according to the number of MPI processes per node specified by `qsub`),
-mapping continues to the second node, etc.
-
-We note that in the case of `--map-by numa` and `--map-by l3cache`,
-the application is not spawned across whole node.
-For utilization of a whole node, more MPI processes per node should be used.
-In addition, `I_MPI_PIN_DOMAIN=cache3` maps processes incorrectly.
-
-The last mapping (`--map-by slot:pe=32` or `I_MPI_PIN_DOMAIN=32`) is the most general one.
-In this way, a user can directly specify the number of cores for each MPI process
-independently to a hardware specification.
-
-## Memory Bound Applications
-
-The performance of memory bound applications is dependent on throughput to the memory.
-Hence, it is optimal to use the number of cores equal to the number of memory channels;
-i.e., 16 cores per node (see the tables with the hardware description at the top of this document).
-Running your memory bound application on more than 16 cores can cause lower performance.
-
-Two MPI processes to each NUMA domain must be assigned in order to fully utilize bandwidth to the memory.
-It can be achieved by the following commands (for a single node):
-
-- Intel MPI: `mpirun -n 16 ./app`
-- Open MPI: `mpirun -n 16 --map-by slot:pe=8 ./app`
-
-Intel MPI automatically puts MPI processes to each 8th core.
-In the case of Open MPI, parameter `--map-by` must be used.
-Required mapping can be achieved, for example by `--map-by slot:pe=8`
-that maps MPI processes to each 8-th core (in the same way as Intel MPI).
-This mapping also assures that each MPI process will be assigned to different L3 cache.
-
-## Compute Bound Applications
-
-For compute bound applications it is optimal to use as much cores as possible; i.e. 128 cores per node.
-The following command can be used:
-
-- Intel MPI: `mpirun -n 128 ./app`
-- Open MPI: `mpirun -n 128 --map-by core --bind-to core ./app`
-
-Pinning assures that operating system does not migrate MPI processes among cores.
-
-## Finding Optimal Setting for Your Application
-
-Sometimes it is not clear what the best settings for your application is.
-In that case, you should test your application with a different number of MPI processes.
-A good practice is to test your application with 16-128 MPI per node
-and measure the time required to finish the computation.
-
-With Intel MPI, it is enough to start your application with a required number of MPI processes.
-For Open MPI, you can specify mapping in the following way:
-
-```
-mpirun -n  16 --map-by slot:pe=8 --bind-to core ./app
-mpirun -n  32 --map-by slot:pe=4 --bind-to core ./app
-mpirun -n  64 --map-by slot:pe=2 --bind-to core ./app
-mpirun -n 128 --map-by core      --bind-to core ./app
-```
-
-[1]: #hardware-overview
-[2]: #intel-mpi
-[3]: #open-mpi
-[4]: #memory-bound-applications
-[5]: #compute-bound-applications
-[6]: ../karolina/introduction.md
-[7]: job-submission-and-execution.md
-
-[a]: https://events.it4i.cz/event/123/attachments/417/1578/Technical%20features%20and%20the%20use%20of%20Karolina%20GPU%20accelerated%20partition.pdf
-[b]: https://hpc-wiki.info/hpc/Binding/Pinning
-[c]: https://www.intel.com/content/www/us/en/develop/documentation/mpi-developer-reference-linux/top/environment-variable-reference.html
diff --git a/content/docs/general/karolina-partitions.mdx b/content/docs/general/karolina-partitions.mdx
deleted file mode 100644
index 69549b89314433121bac3c92fe7170cc8715140e..0000000000000000000000000000000000000000
--- a/content/docs/general/karolina-partitions.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Karolina Partitions"
----
-<Callout type=warn>
-    Active [project membership][1] is required to run jobs.
-<Callout>
-
-Below is the list of partitions available on the Karolina cluster:
-
-| Partition        | Project resources    | Nodes                                                     | Min ncpus   | Priority | Authorization | Walltime (def/max) |
-| ---------------- | -------------------- | --------------------------------------------------------- | ----------- | -------- | ------------- | ------------------ |
-| **qcpu**         | > 0                  | 720                                                       | 128         | 2        | no            | 24 / 48h           |
-| **qcpu_biz**     | > 0                  | 720                                                       | 128         | 3        | no            | 24 / 48h           |
-| **qcpu_exp**     | < 150% of allocation | 720<br>max 2 per user                                     | 128         | 4        | no            | 1 / 1h             |
-| **qcpu_free**    | < 150% of allocation | 720<br>max 4 per job                                      | 128         | 1        | no            | 12 / 18h           |
-| **qcpu_long**    | > 0                  | 200<br>max 20 per job, only non-accelerated nodes allowed | 128         | 2        | no            | 72 / 144h          |
-| **qcpu_preempt** | active Karolina<br> CPU alloc. | 720<br>max 4 per job                                      | 128         | 0        | no            | 12 / 12h           |
-| **qgpu**         | > 0                  | 72<br>max 16 per job                                      | 16<br>1 gpu | 3        | yes           | 24 / 48h           |
-| **qgpu_big**     | > 0                  | 72<br>max 64 per job                                      | 128         | 2        | yes           | 12 / 12h           |
-| **qgpu_biz**     | > 0                  | 72<br>max 16 per job                                      | 128         | 4        | yes           | 24 / 48h           |
-| **qgpu_exp**     | < 150% of allocation | 4<br>max 1 per job                                        | 16<br>1 gpu | 5        | no            | 1 / 1h             |
-| **qgpu_free**    | < 150% of allocation | 46<br>max 2 per job                                       | 16<br>1 gpu | 1        | no            | 12 / 18h           |
-| **qgpu_preempt** | active Karolina<br> GPU alloc. | 72<br>max 2 per job                                       | 16<br>1 gpu | 0        | no            | 12 / 12h           |
-| **qviz**         | > 0                  | 2 with NVIDIA® Quadro RTX™ 6000                           | 8           | 2        | no            | 1 / 8h             |
-| **qfat**         | > 0                  | 1 (sdf1)                                                  | 24          | 2        | yes           | 24 / 48h           |
-
-[1]: access/project-access.md
diff --git a/content/docs/general/karolina-slurm.mdx b/content/docs/general/karolina-slurm.mdx
deleted file mode 100644
index 31558b3deb32d5f858a44f59b51f416ec8067a7c..0000000000000000000000000000000000000000
--- a/content/docs/general/karolina-slurm.mdx
+++ /dev/null
@@ -1,178 +0,0 @@
----
-title: "Karolina - Job Submission and Execution"
----
-## Introduction
-
-[Slurm][1] workload manager is used to allocate and access Karolina cluster's resources.
-This page describes Karolina cluster's specific Slurm settings and usage.
-General information about Slurm usage at IT4Innovations can be found at [Slurm Job Submission and Execution][2].
-
-## Partition Information
-
-Partitions/queues on the system:
-
-```console
-$ sinfo -s
-PARTITION    AVAIL  TIMELIMIT   NODES(A/I/O/T) NODELIST
-qcpu*           up 2-00:00:00      1/717/0/718 cn[001-718]
-qcpu_biz        up 2-00:00:00      1/717/0/718 cn[001-718]
-qcpu_exp        up    1:00:00      1/719/0/720 cn[001-720]
-qcpu_free       up   18:00:00      1/717/0/718 cn[001-718]
-qcpu_long       up 6-00:00:00      1/717/0/718 cn[001-718]
-qcpu_preempt    up   12:00:00      1/717/0/718 cn[001-718]
-qgpu            up 2-00:00:00        0/70/0/70 acn[01-70]
-qgpu_big        up   12:00:00        71/1/0/72 acn[01-72]
-qgpu_biz        up 2-00:00:00        0/70/0/70 acn[01-70]
-qgpu_exp        up    1:00:00        0/72/0/72 acn[01-72]
-qgpu_free       up   18:00:00        0/70/0/70 acn[01-70]
-qgpu_preempt    up   12:00:00        0/70/0/70 acn[01-70]
-qfat            up 2-00:00:00          0/1/0/1 sdf1
-qviz            up    8:00:00          0/2/0/2 viz[1-2]
-```
-
-For more information about Karolina's queues, see [this page][8].
-
-Graphical representation of cluster usage, partitions, nodes, and jobs could be found
-at [https://extranet.it4i.cz/rsweb/karolina][3]
-
-On Karolina cluster
-
-* all CPU queues/partitions provide full node allocation, whole nodes (all node resources) are allocated to a job.
-* other queues/partitions (gpu, fat, viz) provide partial node allocation. Jobs' resources (cpu, mem) are separated and dedicated for job.
-
-<Callout>
-    Division of nodes means that if two users allocate a portion of the same node, they can see each other's running processes.
-    If this solution is inconvenient for you, consider allocating a whole node.
-</Callout>
-
-## Using CPU Queues
-
-Access [standard compute nodes][4].
-Whole nodes are allocated. Use the `--nodes` option to specify the number of requested nodes.
-There is no need to specify the number of cores and memory size.
-
-```console
-#!/usr/bin/bash
-#SBATCH --job-name MyJobName
-#SBATCH --account PROJECT-ID
-#SBATCH --partition qcpu
-#SBATCH --time 12:00:00
-#SBATCH --nodes 8
-...
-```
-
-## Using GPU Queues
-
-<Callout type=warn>
-    Because we are still in the process of fine-tuning and setting optimal parameters for SLURM,
-    we have temporarily limited the maximum number of nodes per job on `qgpu` and `qgpu_biz` to **16**.
-</Callout>
-
-Access [GPU accelerated nodes][5].
-Every GPU accelerated node is divided into eight parts, each part contains one GPU, 16 CPU cores and corresponding memory.
-By default, only one part, i.e. 1/8 of the node - one GPU and corresponding CPU cores and memory, is allocated.
-There is no need to specify the number of cores and memory size, on the contrary, it is undesirable.
-There are employed some restrictions which aim to provide fair division and efficient use of node resources.
-
-```console
-#!/usr/bin/bash
-#SBATCH --job-name MyJobName
-#SBATCH --account PROJECT-ID
-#SBATCH --partition qgpu
-#SBATCH --time 12:00:00
-...
-```
-
-To allocate more GPUs use `--gpus` option.
-The default behavior is to allocate enough nodes to satisfy the requested resources as expressed by `--gpus` option and without delaying the initiation of the job.
-
-The following code requests four GPUs; scheduler can allocate from one up to four nodes depending on the actual cluster state (i.e. GPU availability) to fulfil the request.
-
-```console
-#SBATCH --gpus 4
-```
-
-The following code requests 16 GPUs; scheduler can allocate from two up to sixteen nodes depending on the actual cluster state (i.e. GPU availability) to fulfil the request.
-
-```console
-#SBATCH --gpus 16
-```
-
-To allocate GPUs within one node you have to specify the `--nodes` option.
-
-The following code requests four GPUs on exactly one node
-
-```console
-#SBATCH --gpus 4
-#SBATCH --nodes 1
-```
-
-The following code requests 16 GPUs on exactly two nodes.
-
-```console
-#SBATCH --gpus 16
-#SBATCH --nodes 2
-```
-
-Alternatively, you can use the `--gpus-per-node` option.
-Only value 8 is allowed for multi-node allocation to prevent fragmenting nodes.
-
-The following code requests 16 GPUs on exactly two nodes.
-
-```console
-#SBATCH --gpus-per-node 8
-#SBATCH --nodes 2
-```
-
-## Using Fat Queue
-
-Access [data analytics aka fat node][6].
-Fat node is divided into 32 parts, each part contains one socket/processor (24 cores) and corresponding memory.
-By default, only one part, i.e. 1/32 of the node - one processor and corresponding memory, is allocated.
-
-To allocate requested memory use the `--mem` option.
-Corresponding CPUs will be allocated.
-Fat node has about 22.5TB of memory available for jobs.
-
-```console
-#!/usr/bin/bash
-#SBATCH --job-name MyJobName
-#SBATCH --account PROJECT-ID
-#SBATCH --partition qfat
-#SBATCH --time 2:00:00
-#SBATCH --mem 6TB
-...
-```
-
-You can also specify CPU-oriented options (like `--cpus-per-task`), then appropriate memory will be allocated to the job.
-
-To allocate a whole fat node, use the `--exclusive` option
-
-```console
-#SBATCH --exclusive
-```
-
-## Using Viz Queue
-
-Access [visualization nodes][7].
-Every visualization node is divided into eight parts.
-By default, only one part, i.e. 1/8 of the node, is allocated.
-
-```console
-$ salloc -A PROJECT-ID -p qviz
-```
-
-To allocate a whole visualisation node, use the `--exclusive` option
-
-```console
-$ salloc -A PROJECT-ID -p qviz --exclusive
-```
-
-[1]: https://slurm.schedmd.com/
-[2]: /general/slurm-job-submission-and-execution
-[3]: https://extranet.it4i.cz/rsweb/karolina
-[4]: /karolina/compute-nodes/#compute-nodes-without-accelerators
-[5]: /karolina/compute-nodes/#compute-nodes-with-a-gpu-accelerator
-[6]: /karolina/compute-nodes/#data-analytics-compute-node
-[7]: /karolina/visualization/
-[8]: ./karolina-partitions.md
diff --git a/content/docs/general/management/einfracz-profile.mdx b/content/docs/general/management/einfracz-profile.mdx
deleted file mode 100644
index d858e12068d637b87ab2569907bc9ec4fd9fbc21..0000000000000000000000000000000000000000
--- a/content/docs/general/management/einfracz-profile.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: "Change e-INFRA CZ Profile Settings"
----
-To change the settings of your e-INFRA CZ profile go to:<br>[https://profile.e-infra.cz/][1]
-
-## Change Password
-
-To change your e-INFRA CZ account password, go to:<br>[https://profile.e-infra.cz/profile/settings/passwordReset][2]
-
-## Change SSH Key
-
-To change SSH key(s) associated with your e-INFRA CZ account, go to:<br>[https://profile.e-infra.cz/profile/settings/sshKeys][3]
-
-[1]: https://profile.e-infra.cz/profile
-[2]: https://profile.e-infra.cz/profile/settings/passwordReset
-[3]: https://profile.e-infra.cz/profile/settings/sshKeys
diff --git a/content/docs/general/management/it4i-profile.mdx b/content/docs/general/management/it4i-profile.mdx
deleted file mode 100644
index 9b3f33fd125c5e86a475a7412250f89cec9d9d6b..0000000000000000000000000000000000000000
--- a/content/docs/general/management/it4i-profile.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Change IT4I Account Settings"
----
-## Change Password
-
-To change your IT4I account password, go to:<br>[https://extranet.it4i.cz/ssp/][2]
-
-## Change SSH Key
-
-To change SSH key(s) associated with your IT4I account, go to:<br>[https://extranet.it4i.cz/ssp/?action=changesshkey][3]
-
-[1]: https://scs.it4i.cz/
-[2]: https://extranet.it4i.cz/ssp/
-[3]: https://extranet.it4i.cz/ssp/?action=changesshkey
diff --git a/content/docs/general/management/meta.json b/content/docs/general/management/meta.json
deleted file mode 100644
index af7f90ded4b76577662e39a5840f8883e19cb91b..0000000000000000000000000000000000000000
--- a/content/docs/general/management/meta.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "title": "Management",
-  "pages": [
-    "einfracz-profile",
-    "it4i-profile"
-  ]
-}
diff --git a/content/docs/general/meta.json b/content/docs/general/meta.json
deleted file mode 100644
index f5b1282973186d3a23c69c4f4cf712039bd13064..0000000000000000000000000000000000000000
--- a/content/docs/general/meta.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "title": "General",
-  "pages": [
-    "access",
-    "accessing-the-clusters",
-    "applying-for-resources",
-    "aup",
-    "barbora-partitions",
-    "capacity-computing",
-    "energy",
-    "feedback",
-    "hyperqueue",
-    "job-arrays",
-    "job-priority",
-    "job-submission-and-execution",
-    "karolina-mpi",
-    "karolina-partitions",
-    "karolina-slurm",
-    "management",
-    "obtaining-login-credentials",
-    "pbs-job-submission-and-execution",
-    "resource-accounting",
-    "resource_allocation_and_job_execution",
-    "resources-allocation-policy",
-    "services-access",
-    "shell-and-data-access",
-    "slurm-batch-examples",
-    "slurm-job-submission-and-execution",
-    "support",
-    "tools"
-  ]
-}
diff --git a/content/docs/general/obtaining-login-credentials/certificates-faq.mdx b/content/docs/general/obtaining-login-credentials/certificates-faq.mdx
deleted file mode 100644
index c69d552c8be6c79dbbfe304f912950737146e143..0000000000000000000000000000000000000000
--- a/content/docs/general/obtaining-login-credentials/certificates-faq.mdx
+++ /dev/null
@@ -1,176 +0,0 @@
----
-title: "Certificates FAQ"
----
-FAQ about certificates in general.
-
-## Q: What Are Certificates?
-
-IT4Innovations employs X.509 certificates for secure communication (e.g. credentials exchange) and for grid services related to PRACE, as they present a single method of authentication for all PRACE services, where only one password is required.
-
-There are different kinds of certificates, each with a different scope of use. We mention here:
-
-* User (Private) certificates
-* Certificate Authority (CA) certificates
-* Host certificates
-* Service certificates
-
-However, users only need to manage User and CA certificates. Note that your user certificate is protected by an associated private key, and this **private key must never be disclosed**.
-
-## Q: Which X.509 Certificates Are Recognized by IT4Innovations?
-
-See the [Certificates for Digital Signatures][1] section.
-
-## Q: How Do I Get a User Certificate That Can Be Used With IT4Innovations?
-
-To get a certificate, you must make a request to your local, IGTF approved Certificate Authority (CA). Then, you must usually visit, in person, your nearest Registration Authority (RA) to verify your affiliation and identity (photo identification is required). Usually, you will then be emailed details on how to retrieve your certificate, although procedures can vary between CAs. If you are in Europe, you can locate [your trusted CA][a].
-
-In some countries, certificates can also be retrieved using the TERENA Certificate Service, see the FAQ below for the link.
-
-## Q: Does IT4Innovations Support Short Lived Certificates (SLCS)?
-
-Yes, if the CA which provides this service is also a member of IGTF.
-
-## Q: Does IT4Innovations Support the TERENA Certificate Service?
-
- Yes, IT4Innovations supports TERENA eScience personal certificates. For more information, visit [TCS - Trusted Certificate Service][b], where you can also find if your organization/country can use this service.
-
-## Q: What Format Should My Certificate Take?
-
-User Certificates come in many formats, the three most common being the ’PKCS12’, ’PEM’, and JKS formats.
-
-The PKCS12 (often abbreviated to ’p12’) format stores your user certificate, along with your associated private key, in a single file. This form of your certificate is typically employed by web browsers, mail clients, and grid services like UNICORE, DART, gsissh-term, and Globus toolkit (GSI-SSH, GridFTP, and GRAM5).
-
-The PEM format (`*`.pem) stores your user certificate and your associated private key in two separate files. This form of your certificate can be used by PRACE’s gsissh-term and with the grid related services like Globus toolkit (GSI-SSH, GridFTP, and GRAM5).
-
-To convert your Certificate from PEM to p12 formats and _vice versa_, IT4Innovations recommends using the OpenSSL tool (see the [separate FAQ entry][2]).
-
-JKS is the Java KeyStore and may contain both your personal certificate with your private key and a list of your trusted CA certificates. This form of your certificate can be used by grid services like DART and UNICORE6.
-
-To convert your certificate from p12 to JKS, IT4Innovations recommends using the keytool utility (see the [separate FAQ entry][3]).
-
-## Q: What Are CA Certificates?
-
-Certification Authority (CA) certificates are used to verify the link between your user certificate and the issuing authority. They are also used to verify the link between the host certificate of an IT4Innovations server and the CA that issued the certificate. In essence, they establish a chain of trust between you and the target server. Thus, for some grid services, users must have a copy of all the CA certificates.
-
-To assist users, SURFsara (a member of PRACE) provides a complete and up-to-date bundle of all the CA certificates that any PRACE user (or IT4Innovations grid services user) will require. Bundle of certificates, in either p12, PEM, or JKS formats, are [available here][c].
-
-It is worth noting that gsissh-term and DART automatically update their CA certificates from this SURFsara website. In other cases, if you receive a warning that a server’s certificate cannot be validated (not trusted), update your CA certificates via the SURFsara website. If this fails, contact the IT4Innovations helpdesk.
-
-Lastly, if you need the CA certificates for a personal Globus 5 installation, you can install the CA certificates from a MyProxy server with the following command:
-
-```console
-    myproxy-get-trustroots -s myproxy-prace.lrz.de
-```
-
-If you run this command as `root`, it will install the certificates into /etc/grid-security/certificates. Otherwise, the certificates will be installed into $HOME/.globus/certificates. For Globus, you can download the globuscerts.tar.gz packet [available here][c].
-
-## Q: What Is a DN and How Do I Find Mine?
-
-DN stands for Distinguished Name and is a part of your user certificate. IT4Innovations needs to know your DN to enable your account to use the grid services. You may use OpenSSL (see [below][2]) to determine your DN or, if your browser contains your user certificate, you can extract your DN from your browser.
-
-For Internet Explorer users, the DN is referred to as the "subject" of your certificate. ToolsInternet OptionsContentCertificatesViewDetailsSubject.
-
-For users running Firefox under Windows, the DN is referred to as the "subject" of your certificate. ToolsOptionsAdvancedEncryptionView Certificates. Highlight your name and then click ViewDetailsSubject.
-
-## Q: How Do I Use the Openssl Tool?
-
-The following examples are for Unix/Linux operating systems only.
-
-To convert from PEM to p12, enter the following command:
-
-```console
-    openssl pkcs12 -export -in usercert.pem -inkey userkey.pem -out
-    username.p12
-```
-
-To convert from p12 to PEM, type the following _four_ commands:
-
-```console
-    openssl pkcs12 -in username.p12 -out usercert.pem -clcerts -nokeys
-    openssl pkcs12 -in username.p12 -out userkey.pem -nocerts
-    chmod 444 usercert.pem
-    chmod 400 userkey.pem
-```
-
-To check your Distinguished Name (DN), enter the following command:
-
-```console
-    openssl x509 -in usercert.pem -noout -subject -nameopt
-    RFC2253
-```
-
-To check your certificate (e.g. DN, validity, issuer, public key algorithm, etc.), enter the following command:
-
-```console
-    openssl x509 -in usercert.pem -text -noout
-```
-
-To download OpenSSL if not pre-installed, see [here][d]. On Macintosh Mac OS X computers, OpenSSL is already pre-installed and can be used immediately.
-
-## Q: How Do I Create and Then Manage a Keystore?
-
-IT4innovations recommends the Java-based keytool utility to create and manage keystores, which themselves are stores of keys and certificates. For example if you want to convert your pkcs12 formatted key pair into a Java keystore you can use the following command:
-
-```console
-    keytool -importkeystore -srckeystore $my_p12_cert -destkeystore
-    $my_keystore -srcstoretype pkcs12 -deststoretype jks -alias
-    $my_nickname -destalias $my_nickname
-```
-
-where `$my_p12_cert` is the name of your p12 (pkcs12) certificate, `$my_keystore` is the name that you give to your new java keystore and `$my_nickname` is the alias name that the p12 certificate was given and is also used for the new keystore.
-
-You can also import CA certificates into your Java keystore with the tool, for exmaple:
-
-```console
-    keytool -import -trustcacerts -alias $mydomain -file $mydomain.crt -keystore $my_keystore
-```
-
-where `$mydomain.crt` is the certificate of a trusted signing authority (CA) and `$mydomain` is the alias name that you give to the entry.
-
-More information on the tool can be found [here][e].
-
-## Q: How Do I Use My Certificate to Access Different Grid Services?
-
-Most grid services require the use of your certificate; however, the format of your certificate depends on the grid Service you wish to employ.
-
-If employing the PRACE version of GSISSH-term (also a Java Web Start Application), you may use either the PEM or p12 formats. Note that this service automatically installs up-to-date PRACE CA certificates.
-
-If the grid service is UNICORE, then you bind your certificate, in either the p12 format or JKS, to UNICORE during the installation of the client on your local machine.
-
-If the grid service is a part of Globus (e.g. GSI-SSH, GriFTP, or GRAM5), the certificates can be in either p12 or PEM format and must reside in the "$HOME/.globus" directory for Linux and Mac users or %HOMEPATH%.globus for Windows users. (Windows users will have to use the DOS command `cmd` to create a directory which starts with a ’.’). Further, user certificates should be named either "usercred.p12" or "usercert.pem" and "userkey.pem", and the CA certificates must be kept in a pre-specified directory as follows. For Linux and Mac users, this directory is either $HOME/.globus/certificates or /etc/grid-security/certificates. For Windows users, this directory is %HOMEPATH%.globuscertificates. (If you are using GSISSH-Term from prace-ri.eu, you do not have to create the .globus directory nor install CA certificates to use this tool alone).
-
-## Q: How Do I Manually Import My Certificate Into My Browser?
-
-In Firefox, you can import your certificate by first choosing the "Preferences" window. For Windows, this is ToolsOptions. For Linux, this is EditPreferences. For Mac, this is FirefoxPreferences. Then choose the "Advanced" button, followed by the "Encryption" tab. Then choose the "Certificates" panel, select the "Select one automatically" option if you have only one certificate, or "Ask me every time" if you have more than one. Then, click on the "View Certificates" button to open the "Certificate Manager" window. You can then select the "Your Certificates" tab and click on the "Import" button. Then locate the PKCS12 (.p12) certificate you wish to import and employ its associated password.
-
-If you are a Safari user, then simply open the "Keychain Access" application and follow "FileImport items".
-
-If you are an Internet Explorer user, click Start > Settings > Control Panel and then double-click on Internet. On the Content tab, click Personal and then click Import. Type your password in the Password field. You may be prompted multiple times for your password. In the "Certificate File To Import" box, type the filename of the certificate you wish to import, and then click OK. Click Close, and then click OK.
-
-## Q: What Is a Proxy Certificate?
-
-A proxy certificate is a short-lived certificate, which may be employed by UNICORE and the Globus services. The proxy certificate consists of a new user certificate and a newly generated proxy private key. This proxy typically has a rather short lifetime (normally 12 hours) and often allows only a limited delegation of rights. Its default location for Unix/Linux, is /tmp/x509_u_uid_ but can be set via the `$X509_USER_PROXY` environment variable.
-
-## Q: What Is the MyProxy Service?
-
-[MyProxy Service][g] can be employed by gsissh-term and Globus tools and is an online repository that allows users to store long-lived proxy certificates remotely, which can then be retrieved for later use. Each proxy is protected by a password provided by the user at the time of storage. This is beneficial to Globus users, as they do not have to carry their private keys and certificates when travelling; nor do users have to install private keys and certificates on possibly insecure computers.
-
-## Q: Someone May Have Copied or Had Access to the Private Key of My Certificate Either in a Separate File or in the Browser. What Should I Do?
-
-Please ask the Certificate Authority that issued your certificate to revoke this certificate and to supply you with a new one. In addition, report this to IT4Innovations by contacting [the support team][h].
-
-## Q: My Certificate Expired. What Should I Do?
-
-In order to still be able to communicate with us, make a request for a new certificate to your CA. There is no need to explicitly send us any information about your new certificate if a new one has the same Distinguished Name (DN) as the old one.
-
-[1]: obtaining-login-credentials.md#certificates-for-digital-signatures
-[2]: #q-how-do-i-use-the-openssl-tool
-[3]: #q-how-do-i-create-and-then-manage-a-keystore
-
-[a]: https://www.eugridpma.org/members/worldmap/
-[b]: https://tcs-escience-portal.terena.org/
-[c]: https://winnetou.surfsara.nl/prace/certs/
-[d]: https://www.openssl.org/source/
-[e]: http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html
-[g]: http://grid.ncsa.illinois.edu/myproxy/
-[h]: https://support.it4i.cz/rt
diff --git a/content/docs/general/obtaining-login-credentials/meta.json b/content/docs/general/obtaining-login-credentials/meta.json
deleted file mode 100644
index 90b45a1d5ceb737b43de26bc260303e6ef95fada..0000000000000000000000000000000000000000
--- a/content/docs/general/obtaining-login-credentials/meta.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "title": "Obtaining-login-credentials",
-  "pages": [
-    "certificates-faq",
-    "obtaining-login-credentials"
-  ]
-}
diff --git a/content/docs/general/obtaining-login-credentials/obtaining-login-credentials.mdx b/content/docs/general/obtaining-login-credentials/obtaining-login-credentials.mdx
deleted file mode 100644
index 9824cd9ae3a83e69fcff7bc932fc01e8ea77abce..0000000000000000000000000000000000000000
--- a/content/docs/general/obtaining-login-credentials/obtaining-login-credentials.mdx
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: "IT4I Account"
----
-<Callout type=warn>
-    If you are affiliated with an academic institution from the Czech Republic ([eduID.cz][u]), create an [e-INFRA CZ account][8], instead.
-</Callout>
-
-If you are not eligible for an e-INFRA CZ account, contact the [IT4I support][a] (email: [support\[at\]it4i.cz][b]) and provide the following information:
-
-1. Personal information (**required**, note that without this information, you cannot use IT4I resources):
-    1. **Full name**
-    1. **Gender**
-    1. **Citizenship**
-    1. **Country of residence**
-    1. **Organization/affiliation**
-    1. **Organization/affiliation country**
-    1. **Organization/affiliation type** (university, company, R&D institution, private/public sector (hospital, police), academy of sciences, etc.)
-    1. **Job title** (student, PhD student, researcher, research assistant, employee, etc.)
-1. Statement that you have read and accepted the [Acceptable use policy document][c] (AUP)
-1. Attach the AUP file
-1. Your preferred username (length is limited between 4 and 7 letters)<br>The preferred username must associate with your first and last name or be otherwise derived from it. Note that the system will automatically add the `it4i-` prefix to your username.
-1. Public part of your SSH key<br>If you don't provide it in the ticket, you must [add it manually][s] after your account is created.
-1. All information above should be provided by email that is **digitally signed by a CA authority**. Read more on [digital signatures][4] below. If you do not have such a digital signature, you can choose an [Alternative way to personal certificate][3].
-
-Example (except the subject line, which must be in English, you may use Czech or Slovak language for communication with us):
-
-```console
-Subject: Access to IT4Innovations
-
-Dear support,
-
-Please open the user account for me and attach the account to OPEN-0-0
-Personal information: John Smith, USA, Department of Chemistry, MIT, MA, US
-I have read and accept the Acceptable use policy document (attached)
-
-Preferred username: johnsm
-
-Thank you,
-John Smith
-(Digitally signed)
-```
-
-You will receive your personal login credentials in an encrypted email. The login credentials include:
-
-1. username
-1. system password
-
-The clusters are accessed by the [private key][5] and username. Username and password are used for login to the [information systems][d].
-
-## Certificates for Digital Signatures
-
-We accept personal certificates issued by any widely respected certification authority (CA). This includes certificates by CAs organized in [International Grid Trust Federation][f], its European branch [EUGridPMA][g] and its member organizations, e.g. the [CESNET certification authority][h]. The Czech _"Qualified certificate" (Kvalifikovaný certifikát)_ provided by [PostSignum][i] or [I.CA][j], which is used in electronic contact with Czech authorities, is accepted as well. **In general, we accept certificates issued by any trusted CA that ensures unambiguous identification of the user.**
-
-Certificate generation process for academic purposes, utilizing the CESNET certification authority, is well described here:
-
-* [How to generate a personal TCS certificate in Mozilla Firefox ESR web browser.][k] (in Czech)
-
-<Callout>
-    The certificate file can be installed into your email client. Web-based email interfaces cannot be used for secure communication, external application, such as Thunderbird or Outlook must be used. This way, your new credentials will be visible only in applications that have access to your certificate.
-<Callout>
-
-If you are not able to obtain the certificate from any of the respected certification authorities, follow the Alternative Way below.
-
-FAQ about certificates can be found here: [Certificates FAQ][7].
-
-## Alternative Way to Personal Certificate
-
-<Callout type=warn>
-    Choose this alternative **only** if you cannot obtain your certificate in a standard way.
-    Note that in this case **you must attach a scan of your photo ID** (personal ID, passport, or driver's license) when applying for login credentials.
-</Callout>
-
-An alternative to personal certificate is an S/MIME certificate allowing secure email communication,
-e.g. providing sensitive information such as ID scan or user login/password.
-
-The following example is for Actalis free S/MIME certificate, but you can choose your preferred CA.
-
-1. Go to the [Actalis Free Email Certificate][l] request form.
-1. Follow the instructions: fill out the form, accept the terms and conditions, and submit the request.
-1. You will receive an email with the certificate.
-1. Import the certificate to one of the supported email clients.
-1. Attach a scan of photo ID (personal ID, passport, or driver license) to your email request for IT4I account.
-
-<Callout>
-    Web-based email interfaces cannot be used for secure communication; external application, such as Thunderbird or Outlook must be used. This way, your new credentials will be visible only in applications that have access to your certificate.
-</Callout>
-
-[1]: ./obtaining-login-credentials.md#certificates-for-digital-signatures
-[2]: #authorization-by-web
-[3]: #alternative-way-to-personal-certificate
-[4]: #certificates-for-digital-signatures
-[5]: ../accessing-the-clusters/shell-access-and-data-transfer/ssh-keys.md
-[6]: ../accessing-the-clusters/shell-access-and-data-transfer/putty.md#putty-key-generator
-[7]: ../obtaining-login-credentials/certificates-faq.md
-[8]: ../access/einfracz-account.md
-[10]: ../access/project-access.md
-
-[a]: https://support.it4i.cz/rt/
-[b]: mailto:support@it4i.cz
-[c]: https://docs.it4i.cz/general/aup/
-[d]: http://support.it4i.cz/
-[e]: https://scs.it4i.cz
-[f]: http://www.igtf.net/
-[g]: https://www.eugridpma.org
-[h]: https://tcs.cesnet.cz
-[i]: http://www.postsignum.cz/
-[j]: http://www.ica.cz/Kvalifikovany-certifikat.aspx
-[k]: http://idoc.vsb.cz/xwiki/wiki/infra/view/uzivatel/moz-cert-gen
-[l]: https://extrassl.actalis.it/portal/uapub/freemail?lang=en
-[r]: https://www.it4i.cz/computing-resources-allocation/?lang=en
-[s]: https://extranet.it4i.cz/ssp/?action=changesshkey
-[u]: https://www.eduid.cz/
diff --git a/content/docs/general/pbs-job-submission-and-execution.mdx b/content/docs/general/pbs-job-submission-and-execution.mdx
deleted file mode 100644
index d2c3b52aca43be4164f91eeeacb417b7e2b1cc03..0000000000000000000000000000000000000000
--- a/content/docs/general/pbs-job-submission-and-execution.mdx
+++ /dev/null
@@ -1,475 +0,0 @@
----
-title: "Job Submission and Execution"
----
-<Callout type=warn>
-    This page has not been updated yet. The page does not reflect the transition from PBS to Slurm.
-<\Callout>
-
-## Job Submission
-
-When allocating computational resources for the job, specify:
-
-1. a suitable queue for your job (the default is qprod)
-1. the number of computational nodes (required)
-1. the number of cores per node (not required)
-1. the maximum wall time allocated to your calculation, note that jobs exceeding the maximum wall time will be killed
-1. your Project ID
-1. a Jobscript or interactive switch
-
-Submit the job using the `qsub` command:
-
-```console
-$ qsub -A Project_ID -q queue -l select=x:ncpus=y,walltime=[[hh:]mm:]ss[.ms] jobscript
-```
-
-The `qsub` command submits the job to the queue, i.e. it creates a request to the PBS Job manager for allocation of specified resources. The resources will be allocated when available, subject to the above described policies and constraints. **After the resources are allocated, the jobscript or interactive shell is executed on the first of the allocated nodes.**
-
-<Callout>
-    `ncpus=y` is usually not required, because the smallest allocation unit is an entire node. The exception are corner cases for `qviz` and `qfat` on Karolina.
-</Callout>
-
-### Job Submission Examples
-
-```console
-$ qsub -A OPEN-0-0 -q qprod -l select=64,walltime=03:00:00 ./myjob
-```
-
-In this example, we allocate 64 nodes, 36 cores per node, for 3 hours. We allocate these resources via the `qprod` queue, consumed resources will be accounted to the project identified by Project ID `OPEN-0-0`. The jobscript `myjob` will be executed on the first node in the allocation.
-
-```console
-$ qsub -q qexp -l select=4 -I
-```
-
-In this example, we allocate 4 nodes, 36 cores per node, for 1 hour. We allocate these resources via the `qexp` queue. The resources will be available interactively.
-
-```console
-$ qsub -A OPEN-0-0 -q qnvidia -l select=10 ./myjob
-```
-
-In this example, we allocate 10 NVIDIA accelerated nodes, 24 cores per node, for 24 hours. We allocate these resources via the `qnvidia` queue. The jobscript `myjob` will be executed on the first node in the allocation.
-
-```console
-$ qsub -A OPEN-0-0 -q qfree -l select=10 ./myjob
-```
-
-In this example, we allocate 10 nodes, 24 cores per node, for 12 hours. We allocate these resources via the `qfree` queue. It is not required that the project `OPEN-0-0` has any available resources left. Consumed resources are still accounted for. The jobscript `myjob` will be executed on the first node in the allocation.
-
-All `qsub` options may be [saved directly into the jobscript][1]. In such cases, it is not necessary to specify any options for `qsub`.
-
-```console
-$ qsub ./myjob
-```
-
-By default, the PBS batch system sends an email only when the job is aborted. Disabling mail events completely can be done as follows:
-
-```console
-$ qsub -m n
-```
-
-#### Dependency Job Submission
-
-To submit dependent jobs in sequence, use the `depend` function of `qsub`.
-
-First submit the first job in a standard manner:
-
-```console
-$ qsub -A OPEN-0-0 -q qprod -l select=64,walltime=02:00:00 ./firstjob
-123456[].isrv1
-```
-
-Then submit the second job using the `depend` function:
-
-```console
-$ qsub -W depend=afterok:123456 ./secondjob
-```
-
-Both jobs will be queued, but the second job won't start until the first job has finished successfully.
-
-Below is the list of arguments that can be used with `-W depend=dependency:jobid`:
-
-| Argument    | Description                                                     |
-| ----------- | --------------------------------------------------------------- |
-| after       | This job is scheduled after `jobid` begins execution.       |
-| afterok     | This job is scheduled after `jobid` finishes successfully.  |
-| afternotok  | This job is scheduled after `jobid` finishes unsucessfully. |
-| afterany    | This job is scheduled after `jobid` finishes in any state.  |
-| before      | This job must begin execution before `jobid` is scheduled.  |
-| beforeok    | This job must finish successfully before `jobid` begins.        |
-| beforenotok | This job must finish unsuccessfully before `jobid` begins.      |
-| beforeany   | This job must finish in any state before `jobid` begins.        |
-
-### Useful Tricks
-
-All `qsub` options may be [saved directly into the jobscript][1]. In such a case, no options to `qsub` are needed.
-
-```console
-$ qsub ./myjob
-```
-
-By default, the PBS batch system sends an email only when the job is aborted. Disabling mail events completely can be done like this:
-
-```console
-$ qsub -m n
-```
-
-<!--- NOT IMPLEMENTED ON KAROLINA YET
-
-## Advanced Job Placement
-
-### Salomon - Placement by Network Location
-
-The network location of allocated nodes in the [InfiniBand network][3] influences efficiency of network communication between nodes of job. Nodes on the same InfiniBand switch communicate faster with lower latency than distant nodes. To improve communication efficiency of jobs, PBS scheduler on Salomon is configured to allocate nodes (from currently available resources), which are as close as possible in the network topology.
-
-For communication intensive jobs, it is possible to set stricter requirement - to require nodes directly connected to the same InfiniBand switch or to require nodes located in the same dimension group of the InfiniBand network.
-
-### Salomon - Placement by InfiniBand Switch
-
-Nodes directly connected to the same InfiniBand switch can communicate most efficiently. Using the same switch prevents hops in the network and provides for unbiased, most efficient network communication. There are 9 nodes directly connected to every InfiniBand switch.
-
-<Callout>
-    We recommend allocating compute nodes of a single switch when the best possible computational network performance is required to run job efficiently.
-</Callout>
-
-Nodes directly connected to the one InfiniBand switch can be allocated using node grouping on the PBS resource attribute `switch`.
-
-In this example, we request all 9 nodes directly connected to the same switch using node grouping placement.
-
-```console
-$ qsub -A OPEN-0-0 -q qprod -l select=9 -l place=group=switch ./myjob
-```
-
--->
-
-## Advanced Job Handling
-
-### Selecting Turbo Boost Off
-
-<Callout>
-    For Barbora only.
-</Callout>
-
-Intel Turbo Boost Technology is on by default. We strongly recommend keeping the default.
-
-If necessary (such as in the case of benchmarking), you can disable Turbo for all nodes of the job by using the PBS resource attribute `cpu_turbo_boost`:
-
-```console
-$ qsub -A OPEN-0-0 -q qprod -l select=4 -l cpu_turbo_boost=0 -I
-```
-
-More information about the Intel Turbo Boost can be found in the TurboBoost section
-
-### Advanced Examples
-
-In the following example, we select an allocation for benchmarking a very special and demanding MPI program. We request Turbo off, and 2 full chassis of compute nodes (nodes sharing the same IB switches) for 30 minutes:
-
-```console
-$ qsub -A OPEN-0-0 -q qprod
-    -l select=18:ibswitch=isw10:mpiprocs=1:ompthreads=16+18:ibswitch=isw20:mpiprocs=16:ompthreads=1
-    -l cpu_turbo_boost=0,walltime=00:30:00
-    -N Benchmark ./mybenchmark
-```
-
-The MPI processes will be distributed differently on the nodes connected to the two switches. On the isw10 nodes, we will run 1 MPI process per node with 16 threads per process, on isw20 nodes we will run 16 plain MPI processes.
-
-Although this example is somewhat artificial, it demonstrates the flexibility of the qsub command options.
-
-## Job Management
-
-<Callout>
-    Check the status of your jobs using the `qstat` and `check-pbs-jobs` commands
-</Callout>
-
-```console
-$ qstat -a
-$ qstat -a -u username
-$ qstat -an -u username
-$ qstat -f 12345.srv11
-```
-
-Example:
-
-```console
-$ qstat -a
-
-srv11:
-                                                            Req'd Req'd   Elap
-Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time S Time
---------------- -------- --  |---|---| ------ --- --- ------ ----- - -----
-16287.srv11 user1    qlong    job1         6183   4 64   --  144:0 R 38:25
-16468.srv11 user1    qlong    job2         8060   4 64   --  144:0 R 17:44
-16547.srv11 user2    qprod    job3x       13516   2 32   --  48:00 R 00:58
-```
-
-In this example user1 and user2 are running jobs named `job1`, `job2`, and `job3x`. `job1` and `job2` are using 4 nodes, 128 cores per node each. `job1` has already run for 38 hours and 25 minutes, and `job2` for 17 hours 44 minutes. So `job1`, for example, has already consumed `64 x 38.41 = 2,458.6` core-hours. `job3x` has already consumed `32 x 0.96 = 30.93` core-hours. These consumed core-hours will be [converted to node-hours][10] and accounted for on the respective project accounts, regardless of whether the allocated cores were actually used for computations.
-
-The following commands allow you to check the status of your jobs using the `check-pbs-jobs` command, check for the presence of user's PBS jobs' processes on execution hosts, display load and processes, display job standard and error output, and continuously display (`tail -f`) job standard or error output.
-
-```console
-$ check-pbs-jobs --check-all
-$ check-pbs-jobs --print-load --print-processes
-$ check-pbs-jobs --print-job-out --print-job-err
-$ check-pbs-jobs --jobid JOBID --check-all --print-all
-$ check-pbs-jobs --jobid JOBID --tailf-job-out
-```
-
-Examples:
-
-```console
-$ check-pbs-jobs --check-all
-JOB 35141.dm2, session_id 71995, user user2, nodes cn164,cn165
-Check session id: OK
-Check processes
-cn164: OK
-cn165: No process
-```
-
-In this example we see that job `35141.dm2` is not currently running any processes on the allocated node cn165, which may indicate an execution error:
-
-```console
-$ check-pbs-jobs --print-load --print-processes
-JOB 35141.dm2, session_id 71995, user user2, nodes cn164,cn165
-Print load
-cn164: LOAD: 16.01, 16.01, 16.00
-cn165: LOAD:  0.01,  0.00,  0.01
-Print processes
-       %CPU CMD
-cn164:  0.0 -bash
-cn164:  0.0 /bin/bash /var/spool/PBS/mom_priv/jobs/35141.dm2.SC
-cn164: 99.7 run-task
-...
-```
-
-In this example, we see that job `35141.dm2` is currently running a process run-task on node `cn164`, using one thread only, while node `cn165` is empty, which may indicate an execution error.
-
-```console
-$ check-pbs-jobs --jobid 35141.dm2 --print-job-out
-JOB 35141.dm2, session_id 71995, user user2, nodes cn164,cn165
-Print job standard output:
-======================== Job start  ==========================
-Started at    : Fri Aug 30 02:47:53 CEST 2013
-Script name   : script
-Run loop 1
-Run loop 2
-Run loop 3
-```
-
-In this example, we see the actual output (some iteration loops) of the job `35141.dm2`.
-
-<Callout>
-    Manage your queued or running jobs, using the `qhold`, `qrls`, `qdel`, `qsig`, or `qalter` commands
-</Callout>
-
-You may release your allocation at any time, using the `qdel` command
-
-```console
-$ qdel 12345.srv11
-```
-
-You may kill a running job by force, using the `qsig` command
-
-```console
-$ qsig -s 9 12345.srv11
-```
-
-Learn more by reading the PBS man page
-
-```console
-$ man pbs_professional
-```
-
-## Job Execution
-
-### Jobscript
-
-<Callout>
-    Prepare the jobscript to run batch jobs in the PBS queue system
-</Callout>
-
-The Jobscript is a user made script controlling a sequence of commands for executing the calculation. It is often written in bash, though other scripts may be used as well. The jobscript is supplied to the PBS `qsub` command as an argument, and is executed by the PBS Professional workload manager.
-
-<Callout>
-    The jobscript or interactive shell is executed on first of the allocated nodes.
-</Callout>
-
-```console
-$ qsub -q qexp -l select=4 -N Name0 ./myjob
-$ qstat -n -u username
-
-srv11:
-                                                            Req'd Req'd   Elap
-Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time S Time
---------------- -------- --  |---|---| ------ --- --- ------ ----- - -----
-15209.srv11     username qexp     Name0        5530   4 128    --  01:00 R 00:00
-   cn17/0*32+cn108/0*32+cn109/0*32+cn110/0*32
-```
-
-In this example, the nodes `cn17`, `cn108`, `cn109`, and `cn110` were allocated for 1 hour via the qexp queue. The `myjob` jobscript will be executed on the node `cn17`, while the nodes `cn108`, `cn109`, and `cn110` are available for use as well.
-
-The jobscript or interactive shell is by default executed in the `/home` directory:
-
-```console
-$ qsub -q qexp -l select=4 -I
-qsub: waiting for job 15210.srv11 to start
-qsub: job 15210.srv11 ready
-
-$ pwd
-/home/username
-```
-
-In this example, 4 nodes were allocated interactively for 1 hour via the `qexp` queue. The interactive shell is executed in the `/home` directory.
-
-<Callout>
-    All nodes within the allocation may be accessed via SSH. Unallocated nodes are not accessible to the user.
-</Callout>
-
-The allocated nodes are accessible via SSH from login nodes. The nodes may access each other via SSH as well.
-
-Calculations on allocated nodes may be executed remotely via the MPI, SSH, pdsh, or clush. You may find out which nodes belong to the allocation by reading the `$PBS_NODEFILE` file
-
-```console
-$ qsub -q qexp -l select=4 -I
-qsub: waiting for job 15210.srv11 to start
-qsub: job 15210.srv11 ready
-
-$ pwd
-/home/username
-
-$ sort -u $PBS_NODEFILE
-cn17.bullx
-cn108.bullx
-cn109.bullx
-cn110.bullx
-
-$ pdsh -w cn17,cn[108-110] hostname
-cn17: cn17
-cn108: cn108
-cn109: cn109
-cn110: cn110
-```
-
-In this example, the hostname program is executed via `pdsh` from the interactive shell. The execution runs on all four allocated nodes. The same result would be achieved if the `pdsh` were called from any of the allocated nodes or from the login nodes.
-
-### Example Jobscript for MPI Calculation
-
-<Callout>
-    Production jobs must use the /scratch directory for I/O
-</Callout>
-
-The recommended way to run production jobs is to change to the `/scratch` directory early in the jobscript, copy all inputs to `/scratch`, execute the calculations, and copy outputs to the `/home` directory.
-
-```bash
-#!/bin/bash
-
-cd $PBS_O_WORKDIR
-
-SCRDIR=/scratch/project/open-00-00/${USER}/myjob
-mkdir -p $SCRDIR
-
-# change to scratch directory, exit on failure
-cd $SCRDIR || exit
-
-# copy input file to scratch
-cp $PBS_O_WORKDIR/input .
-cp $PBS_O_WORKDIR/mympiprog.x .
-
-# load the MPI module
-# (Always specify the module's name and version in your script;
-# for the reason, see https://docs.it4i.cz/software/modules/lmod/#loading-modules.)
-ml OpenMPI/4.1.1-GCC-10.2.0-Java-1.8.0_221
-
-# execute the calculation
-mpirun -pernode ./mympiprog.x
-
-# copy output file to home
-cp output $PBS_O_WORKDIR/.
-
-#exit
-exit
-```
-
-In this example, a directory in `/home` holds the input file input and the `mympiprog.x` executable. We create the `myjob` directory on the `/scratch` filesystem, copy input and executable files from the `/home` directory where the `qsub` was invoked (`$PBS_O_WORKDIR`) to `/scratch`, execute the MPI program `mympiprog.x` and copy the output file back to the `/home` directory. `mympiprog.x` is executed as one process per node, on all allocated nodes.
-
-<Callout>
-    Consider preloading inputs and executables onto [shared scratch][6] memory before the calculation starts.
-</Callout>
-
-In some cases, it may be impractical to copy the inputs to the `/scratch` memory and the outputs to the `/home` directory. This is especially true when very large input and output files are expected, or when the files should be reused by a subsequent calculation. In such cases, it is the users' responsibility to preload the input files on the shared `/scratch` memory before the job submission, and retrieve the outputs manually after all calculations are finished.
-
-<Callout>
-    Store the `qsub` options within the jobscript. Use the `mpiprocs` and `ompthreads` qsub options to control the MPI job execution.
-</Callout>
-
-### Example Jobscript for MPI Calculation With Preloaded Inputs
-
-Example jobscript for an MPI job with preloaded inputs and executables, options for `qsub` are stored within the script:
-
-```bash
-#!/bin/bash
-#PBS -q qprod
-#PBS -N MYJOB
-#PBS -l select=100:mpiprocs=1:ompthreads=16
-#PBS -A OPEN-00-00
-
-# job is run using project resources; here ${PBS_ACCOUNT,,} translates to "open-00-00"
-SCRDIR=/scratch/project/${PBS_ACCOUNT,,}/${USER}/myjob
-
-# change to scratch directory, exit on failure
-cd $SCRDIR || exit
-
-# load the MPI module
-# (Always specify the module's name and version in your script;
-# for the reason, see https://docs.it4i.cz/software/modules/lmod/#loading-modules.)
-ml OpenMPI/4.1.1-GCC-10.2.0-Java-1.8.0_221
-
-# execute the calculation
-mpirun ./mympiprog.x
-
-#exit
-exit
-```
-
-In this example, input and executable files are assumed to be preloaded manually in the `/scratch/project/open-00-00/$USER/myjob` directory. Because we used the `qprod` queue, we had to specify which project's resources we want to use, and our `PBS_ACCOUNT` variable will be set accordingly (OPEN-00-00). `${PBS_ACCOUNT,,}` uses one of the bash's built-in functions to translate it into lower case.
-
-Note the `mpiprocs` and `ompthreads` qsub options controlling the behavior of the MPI execution. `mympiprog.x` is executed as one process per node, on all 100 allocated nodes. If `mympiprog.x` implements OpenMP threads, it will run 16 threads per node.
-
-### Example Jobscript for Single Node Calculation
-
-<Callout>
-    The local scratch directory is often useful for single node jobs. Local scratch memory will be deleted immediately after the job ends.
-</Callout>
-
-Example jobscript for single node calculation, using [local scratch][6] memory on the node:
-
-```bash
-#!/bin/bash
-
-# change to local scratch directory
-cd /lscratch/$PBS_JOBID || exit
-
-# copy input file to scratch
-cp $PBS_O_WORKDIR/input .
-cp $PBS_O_WORKDIR/myprog.x .
-
-# execute the calculation
-./myprog.x
-
-# copy output file to home
-cp output $PBS_O_WORKDIR/.
-
-#exit
-exit
-```
-
-In this example, a directory in `/home` holds the input file input and the executable `myprog.x`. We copy input and executable files from the `/home` directory where the `qsub` was invoked (`$PBS_O_WORKDIR`) to the local `/scratch` memory `/lscratch/$PBS_JOBID`, execute `myprog.x` and copy the output file back to the `/home directory`. `myprog.x` runs on one node only and may use threads.
-
-### Other Jobscript Examples
-
-Further jobscript examples may be found in the software section and the [Capacity computing][9] section.
-
-[1]: #example-jobscript-for-mpi-calculation-with-preloaded-inputs
-[2]: resources-allocation-policy.md
-[3]: ../salomon/network.md
-[5]: ../salomon/7d-enhanced-hypercube.md
-[6]: ../salomon/storage.md
-[9]: capacity-computing.md
-[10]: resources-allocation-policy.md#resource-accounting-policy
diff --git a/content/docs/general/resource-accounting.mdx b/content/docs/general/resource-accounting.mdx
deleted file mode 100644
index af290c68984e4044da7eb9bd922cccf2339eb9d0..0000000000000000000000000000000000000000
--- a/content/docs/general/resource-accounting.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: "Resource Accounting Policy"
----
-Starting with the 24<sup>th</sup> open access grant competition,
-the accounting policy has been changed from [normalized core hours (NCH)][2a] to **node-hours (NH)**.
-This means that it is now required to apply for node hours of the specific cluster and node type:
-
-1. [Barbora CPU][3a]
-1. [Barbora GPU][4a]
-1. [Barbora FAT][5a]
-1. [DGX-2][6a]
-1. [Karolina CPU][7a]
-1. [Karolina GPU][8a]
-1. [Karolina FAT][9a]
-
-The accounting runs whenever the nodes are allocated via the Slurm workload manager (the `sbatch`, `salloc` command),
-regardless of whether the nodes are actually used for any calculation.
-The same rule applies for unspent [reservations][10a].
-
-## Resource Accounting Formula
-
-| Resources                       | NH Consumed                  |
-| ------------------------------- | ---------------------------- |
-| Barbora All types, Karolina CPU | allocated nodes \* time      |
-| Karolina GPU                    | allocated gpus \* time / 8   |
-| Karolina FAT                    | allocated cpus \* time / 768 |
-| Karolina VIZ                    | allocated cpus \* time / 64  |
-
-time: duration of the Slurm job in hours
-
-<Callout type=warn>
-    Minimal granularity of all Barbora's partitions and Karolina's CPU partition is 1 node.
-    This means that if you request, for example, 32 cores on Karolina's CPU partition,
-    your job will still consume 1 NH \* time.
-
-    All other Karolina's partitions (GPU, FAT, VIZ) provide partial node allocation;
-    i.e.: if you request 4 GPUs on Karolina, you will consume only 0.5 NH \* time.
-</Callout>
-
-[1a]: job-submission-and-execution.md
-[2a]: #normalized-core-hours-nch
-[3a]: ../../barbora/compute-nodes/#compute-nodes-without-accelerators
-[4a]: ../../barbora/compute-nodes/#compute-nodes-with-a-gpu-accelerator
-[5a]: ../../barbora/compute-nodes/#fat-compute-node
-[6a]: ../../dgx2/introduction/
-[7a]: ../../karolina/compute-nodes/#compute-nodes-without-accelerators
-[8a]: ../../karolina/compute-nodes/#compute-nodes-with-a-gpu-accelerator
-[9a]: ../../karolina/compute-nodes/#data-analytics-compute-node
-[10a]: resource_allocation_and_job_execution.md#resource-reservation
diff --git a/content/docs/general/resource_allocation_and_job_execution.mdx b/content/docs/general/resource_allocation_and_job_execution.mdx
deleted file mode 100644
index 5e4cabdc3d558addec0836c3047c95a20da65a8b..0000000000000000000000000000000000000000
--- a/content/docs/general/resource_allocation_and_job_execution.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "How to Run Jobs"
----
-## Job Submission and Execution
-
-To run a [job][1], computational resources for this particular job must be allocated. This is done via the [Slurm][a] job workload manager software, which distributes workloads across the supercomputer.
-
-The `sbatch` or `salloc` command creates a request to the Slurm job manager for allocation of specified resources.
-The resources will be allocated when available, subject to allocation policies and constraints.
-**After the resources are allocated, the jobscript or interactive shell is executed on first of the allocated nodes.**
-
-Read more on the [Job Submission and Execution][5] page.
-
-## Resource Allocation Policy
-
-Resources are allocated to the job in a fair-share fashion, subject to constraints set by the queue and resources available to the Project. [The Fair-share][3] ensures that individual users may consume approximately equal amount of resources per week. The resources are accessible via queues for queueing the jobs. The queues provide prioritized and exclusive access to the computational resources.
-
-<Callout>
-    See the queue status for [Karolina][d] or [Barbora][e].
-</Callout>
-
-Read more on the [Resource Allocation Policy][4] page.
-
-## Resource Reservation
-
-You can request a reservation of a specific number, range, or type of computational resources at [support@it4i.cz][c].
-Note that unspent reserved node-hours count towards the total computational resources used.
-
-[1]: ../index.md#terminology-frequently-used-on-these-pages
-[2]: https://slurm.schedmd.com/documentation.html
-[3]: job-priority.md#fair-share-priority
-[4]: resources-allocation-policy.md
-[5]: job-submission-and-execution.md
-
-[a]: https://slurm.schedmd.com/
-[b]: https://slurm.schedmd.com/documentation.html
-[c]: mailto:support@it4i.cz
-[d]: https://extranet.it4i.cz/rsweb/karolina/queues
-[e]: https://extranet.it4i.cz/rsweb/barbora/queues
diff --git a/content/docs/general/resources-allocation-policy.mdx b/content/docs/general/resources-allocation-policy.mdx
deleted file mode 100644
index 1bc9e851056e45c57e8e2357b69ed352ada92520..0000000000000000000000000000000000000000
--- a/content/docs/general/resources-allocation-policy.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: "Resource Allocation Policy"
----
-## Job Queue Policies
-
-Resources are allocated to jobs in a fair-share fashion,
-subject to constraints set by the queue and the resources available to the project.
-The fair-share system ensures that individual users may consume approximately equal amounts of resources per week.
-Detailed information can be found in the [Job scheduling][1] section.
-
-Resources are accessible via several queues for queueing the jobs.
-Queues provide prioritized and exclusive access to the computational resources.
-
-Computational resources are subject to [accounting policy][7].
-
-<Callout type=warn>
-    Queues are divided based on a resource type: `qcpu_` for non-accelerated nodes and `qgpu_` for accelerated nodes. <br><br>
-    EuroHPC queues are no longer available. If you are an EuroHPC user, use standard queues based on allocated/required type of resources.
-</Callout>
-
-### Queues
-
-| <div style="width:86px">Queue</div>| Description |
-| -------------------------------- | ----------- |
-| `qcpu`                           | Production queue for non-accelerated nodes intended for standard production runs. Requires an active project with nonzero remaining resources. Full nodes are allocated. Identical to `qprod`. |
-| `qgpu`                           | Dedicated queue for accessing the NVIDIA accelerated nodes. Requires an active project with nonzero remaining resources. It utilizes 8x NVIDIA A100 with 320GB HBM2 memory per node. The PI needs to explicitly ask support for authorization to enter the queue for all users associated with their project. **On Karolina, you can allocate 1/8 of the node - 1 GPU and 16 cores**. For more information, see [Karolina qgpu allocation][4]. |
-| `qgpu_big`                       | Intended for big jobs (>16 nodes), queue priority is lower than production queue prority, **priority is temporarily increased every even weekend**. |
-| `qcpu_biz`<br>`qgpu_biz`         | Commercial queues, slightly higher priority.                   |
-| `qcpu_exp`<br>`qgpu_exp`         | Express queues for testing and running very small jobs. There are 2 nodes always reserved (w/o accelerators), max 8 nodes available per user. The nodes may be allocated on a per core basis. It is configured to run one job and accept five jobs in a queue per user. |
-| `qcpu_free`<br>`qgpu_free`       | Intended for utilization of free resources, after a project exhausted all its allocated resources. Note that the queue is **not free of charge**. [Normal accounting][2] applies. (Does not apply to DD projects by default. DD projects have to request for permission after exhaustion of computational resources.). Consumed resources will be accounted to the Project. Access to the queue is removed if consumed resources exceed 150% of the allocation. Full nodes are allocated. |
-| `qcpu_long`       | Queues for long production runs. Require an active project with nonzero remaining resources. Only 200 nodes without acceleration may be accessed. Full nodes are allocated. |
-| `qcpu_preempt`<br>`qgpu_preempt` | Free queues with the lowest priority (LP). The queues require a project with allocation of the respective resource type. There is no limit on resource overdraft. Jobs are killed if other jobs with a higher priority (HP) request the nodes and there are no other nodes available. LP jobs are automatically re-queued once HP jobs finish, so **make sure your jobs are re-runnable**. |
-| `qdgx`                           | Queue for DGX-2, accessible from Barbora. |
-| `qfat`                           | Queue for fat node, PI must request authorization to enter the queue for all users associated to their project. |
-| `qviz`                           | Visualization queue Intended for pre-/post-processing using OpenGL accelerated graphics. Each user gets 8 cores of a CPU allocated (approx. 64 GB of RAM and 1/8 of the GPU capacity (default "chunk")). If more GPU power or RAM is required, it is recommended to allocate more chunks (with 8 cores each) up to one whole node per user. This is currently also the maximum allowed allocation per one user. One hour of work is allocated by default, the user may ask for 2 hours maximum. |
-
-See the following subsections for the list of queues:
-
-* [Karolina queues][5]
-* [Barbora queues][6]
-
-## Queue Notes
-
-The job time limit defaults to **half the maximum time**, see the table above.
-Longer time limits can be [set manually, see examples][3].
-
-Jobs that exceed the reserved time limit get killed automatically.
-The time limit can be changed for queuing jobs (state Q) using the `scontrol modify job` command,
-however it cannot be changed for a running job.
-
-## Queue Status
-
-<Callout>
-    Check the status of jobs, queues and compute nodes [here][c].
-</Callout>
-
-![rsweb interface](/it4i/img/barbora_cluster_usage.png)
-
-Display the queue status:
-
-```console
-$ sinfo -s
-```
-
-The Slurm allocation overview may also be obtained using the `rsslurm` command:
-
-```console
-$ rsslurm
-Usage: rsslurm [options]
-
-Options:
-  --version             show program's version number and exit
-  -h, --help            show this help message and exit
-  --get-server-details  Print server
-  --get-queues          Print queues
-  --get-queues-details  Print queues details
-  --get-reservations    Print reservations
-  --get-reservations-details
-                        Print reservations details
-  ...
-  ..
-  .
-```
-
----8<--- "mathjax.md"
-
-[1]: job-priority.md
-[2]: #resource-accounting-policy
-[3]: job-submission-and-execution.md
-[4]: karolina-slurm.md
-[5]: ./karolina-partitions.md
-[6]: ./barbora-partitions.md
-[7]: ./resource-accounting.md
-
-[a]: https://support.it4i.cz/rt/
-[c]: https://extranet.it4i.cz/rsweb
diff --git a/content/docs/general/services-access.mdx b/content/docs/general/services-access.mdx
deleted file mode 100644
index 3f6016fbe433f970d65f09e765b676bcfc69c2ca..0000000000000000000000000000000000000000
--- a/content/docs/general/services-access.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: "Access to IT4I Services"
----
-Once you have created an e-INFRA CZ or an IT4I account, you can access the following IT4I services:
-
-## IT4Innovations Information System (SCS IS)
-
-SCS IS is a system where users can apply for a project membership and primary investigators can apply for a project
-or manage their projects (e.g. accept/deny users' requests to become project members).
-You can also submit a feedback on support services, etc. SCS IS is available on [https://scs.it4i.cz/][1].
-
-## Request Tracker (RT)
-
-If you have a question or need help, you can contact our support on [https://support.it4i.cz/][2].
-Please note that first response to a new ticket may take up to 24 hours.
-
-## Cluster Usage Overview
-
-For information about the current clusters usage, go to [https://extranet.it4i.cz/rsweb][3].
-You can switch between the clusters by clicking on its name in the upper right corner.
-You can filter your search by clicking on the respective keywords.
-
-[1]: https://scs.it4i.cz/
-[2]: https://support.it4i.cz/
-[3]: https://extranet.it4i.cz/rsweb
diff --git a/content/docs/general/shell-and-data-access.mdx b/content/docs/general/shell-and-data-access.mdx
deleted file mode 100644
index ca394d8d8e36a5c5f14d70077fadee05e16197b7..0000000000000000000000000000000000000000
--- a/content/docs/general/shell-and-data-access.mdx
+++ /dev/null
@@ -1,376 +0,0 @@
----
-title: "Accessing the Clusters"
----
-## Shell Access
-
-All IT4Innovations clusters are accessed by the SSH protocol via login nodes at the address **cluster-name.it4i.cz**. The login nodes may be addressed specifically, by prepending the loginX node name to the address.
-
-<Callout>
-    Projects from the **EUROHPC** workgroup can only access the **Karolina** cluster.
-</Callout>
-
-<Callout>
-    We accept only RSA or ED25519 keys for logging into our systems.
-</Callout>
-
-### Karolina Cluster
-
-| Login address                   | Port | Protocol | Login node                                |
-| ------------------------------- | ---- | -------- | ----------------------------------------- |
-| karolina.it4i.cz                | 22   | SSH      | round-robin DNS record for login{1,2,3,4} |
-| login{1,2,3,4}.karolina.it4i.cz | 22   | SSH      | login{1,2,3,4}                            |
-
-### Barbora Cluster
-
-| Login address                 | Port | Protocol | Login node                            |
-| ----------------------------- | ---- | -------- | ------------------------------------- |
-| barbora.it4i.cz               | 22   | SSH      | round-robin DNS record for login{1,2} |
-| login{1,2}.barbora.it4i.cz    | 22   | SSH      | login{1,2}                            |
-
-## Authentication
-
-Authentication is available by [private key][1] only. Verify SSH fingerprints during the first logon:
-
-### Karolina
-
-**Fingerprints**
-
-Fingerprints are identical for all login nodes.
-
-```console
-# login{1,2,3,4}:22 SSH-2.0-OpenSSH_7.4
-2048 MD5:41:3a:40:32:da:08:77:51:79:04:af:53:e4:57:d0:7c (RSA)
-2048 SHA256:Ip37d/bE6XwtWf3KnWA+sqA+zRGSFlf5vXai0v3MBmo (RSA)
-256 MD5:e9:b6:8e:7d:f8:c6:8f:42:34:10:71:02:14:a6:7c:22 (ED25519)
-256 SHA256:zKEtQMi2KRsxzzgo/sHcog+NFZqQ9tIyvJ7BVxOfzgI (ED25519)
-```
-
-**Public Keys \ Known Hosts**
-
-Public Keys \ Known Hosts are identical for all login nodes.
-
-```console
-login1,login1.karolina.it4i.cz,login1.karolina,karolina.it4i.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Cp8/a3F7eOPQvH4+HjC778XvYgRXWmCEOQnE3clPcKw15iIat3bvKc8ckYLudAzomipWy4VYdDI2OnEXay5ba8HqdREJO31qNBtW1AXgydCfPnkeuUZS4WVlAWM+HDlK6caB8KlvHoarCnNj2jvuYsMbARgGEq3vrk3xW4uiGpS6Y/uGVBBwMFWFaINbmXUrU1ysv/ZD1VpH4eHykkD9+8xivhhZtcz5Z2T7ZnIib4/m9zZZvjKs4ejOo58cKXGYVl27kLkfyOzU3cirYNQOrGqllN/52fATfrXKMcQor9onsbTkNNjMgPFZkddufxTrUaS7EM6xYsj8xrPJ2RaN
-login1,login1.karolina.it4i.cz,login1.karolina,karolina.it4i.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDkIdDODkUYRgMy1h6g/UtH34RnDCQkwwiJZFB0eEu1c
-login2,login2.karolina.it4i.cz,login2.karolina,karolina.it4i.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Cp8/a3F7eOPQvH4+HjC778XvYgRXWmCEOQnE3clPcKw15iIat3bvKc8ckYLudAzomipWy4VYdDI2OnEXay5ba8HqdREJO31qNBtW1AXgydCfPnkeuUZS4WVlAWM+HDlK6caB8KlvHoarCnNj2jvuYsMbARgGEq3vrk3xW4uiGpS6Y/uGVBBwMFWFaINbmXUrU1ysv/ZD1VpH4eHykkD9+8xivhhZtcz5Z2T7ZnIib4/m9zZZvjKs4ejOo58cKXGYVl27kLkfyOzU3cirYNQOrGqllN/52fATfrXKMcQor9onsbTkNNjMgPFZkddufxTrUaS7EM6xYsj8xrPJ2RaN
-login2,login2.karolina.it4i.cz,login2.karolina,karolina.it4i.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDkIdDODkUYRgMy1h6g/UtH34RnDCQkwwiJZFB0eEu1c
-login3,login3.karolina.it4i.cz,login3.karolina,karolina.it4i.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Cp8/a3F7eOPQvH4+HjC778XvYgRXWmCEOQnE3clPcKw15iIat3bvKc8ckYLudAzomipWy4VYdDI2OnEXay5ba8HqdREJO31qNBtW1AXgydCfPnkeuUZS4WVlAWM+HDlK6caB8KlvHoarCnNj2jvuYsMbARgGEq3vrk3xW4uiGpS6Y/uGVBBwMFWFaINbmXUrU1ysv/ZD1VpH4eHykkD9+8xivhhZtcz5Z2T7ZnIib4/m9zZZvjKs4ejOo58cKXGYVl27kLkfyOzU3cirYNQOrGqllN/52fATfrXKMcQor9onsbTkNNjMgPFZkddufxTrUaS7EM6xYsj8xrPJ2RaN
-login3,login3.karolina.it4i.cz,login3.karolina,karolina.it4i.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDkIdDODkUYRgMy1h6g/UtH34RnDCQkwwiJZFB0eEu1c
-login4,login4.karolina.it4i.cz,login4.karolina,karolina.it4i.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Cp8/a3F7eOPQvH4+HjC778XvYgRXWmCEOQnE3clPcKw15iIat3bvKc8ckYLudAzomipWy4VYdDI2OnEXay5ba8HqdREJO31qNBtW1AXgydCfPnkeuUZS4WVlAWM+HDlK6caB8KlvHoarCnNj2jvuYsMbARgGEq3vrk3xW4uiGpS6Y/uGVBBwMFWFaINbmXUrU1ysv/ZD1VpH4eHykkD9+8xivhhZtcz5Z2T7ZnIib4/m9zZZvjKs4ejOo58cKXGYVl27kLkfyOzU3cirYNQOrGqllN/52fATfrXKMcQor9onsbTkNNjMgPFZkddufxTrUaS7EM6xYsj8xrPJ2RaN
-login4,login4.karolina.it4i.cz,login4.karolina,karolina.it4i.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDkIdDODkUYRgMy1h6g/UtH34RnDCQkwwiJZFB0eEu1c
-
-```
-
-### Barbora
-
-**Fingerprints**
-
-```console
-md5:
-39:55:e2:b9:2a:a2:c4:9e:b1:8e:f0:f7:b1:66:a8:73 (RSA)
-40:67:03:26:d3:6c:a0:7f:0a:df:0e:e7:a0:52:cc:4e (ED25519)
-
-sha256:
-TO5szOJf0bG7TWVLO3WABUpGKkP7nBm/RLyHmpoNpro (RSA)
-ZQzFTJVDdZa3I0ics9ME2qz4v5a3QzXugvyVioaH6tI (ED25519)
-```
-
-**Public Keys \ Known Hosts**
-
-```console
-barbora.it4i.cz, ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHUHvIrv7VUcGIcfsrcBjYfHpFBst8uhtJqfiYckfbeMRIdaodfjTO0pIXvd5wx+61a0C14zy1pdhvx6ykT5lwYkkn8l2tf+LRd6qN0alq/s+NGDJKpWGvdAGD3mM9AO1RmUPt+Vfg4VePQUZMu2PXZQu2C4TFFbaH2yiyCFlKz/Md9q+7NM+9U86uf3uLFbBu8mzkk2z3jyDGR6pjmpYTAiV/goUGpHgsW8Qx4GUdCreObQ6GUfPVOPvYaTlfXfteD9HluB7gwCWaUi5hevHhc+kK4xj61v64mGBOPmCobnAlr2RYQv6cDn7PHgI2mE7ZwRsZkNyMXqGr1S2JK2M64K53ZfF70aGrW/muHlFrYVFaJg6s1f7K/Xqu21wjwwvnJ8CcP7lUjASqhfSn9OBzEI38KMMo5Qon9p108wvqSKP2QnEdrdv1QOsBPtOZMNRMfEVpw6xVvyPka0X6gxzGfEc9nn3nOok35Fbvoo3G0P8RmOeDJLqDjUOggOs0Gwk=
-barbora.it4i.cz, ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOmUm4btn7OC0QLIT3xekKTTdg5ziby8WdxccEczEeE1
-```
-
-<Callout>
-    Barbora has identical SSH fingerprints on all login nodes.
-</Callout>
-
-### Private Key Authentication:
-
-On **Linux** or **Mac**, use:
-
-```console
-local $ ssh -i /path/to/id_rsa username@cluster-name.it4i.cz
-```
-
-If you see a warning message **UNPROTECTED PRIVATE KEY FILE!**, use this command to set lower permissions to the private key file:
-
-```console
-local $ chmod 600 /path/to/id_rsa
-```
-
-On **Windows**, use the [PuTTY SSH client][2].
-
-After logging in, you will see the command prompt with the name of the cluster and the message of the day.
-
-<Callout>
-    The environment is **not** shared between login nodes, except for shared filesystems.
-</Callout>
-
-## Data Transfer
-
-### Serial Transfer
-
-Data in and out of the system may be transferred by SCP and SFTP protocols.
-
-| Cluster  | Port | Protocol  |
-| -------- | ---- | --------- |
-| Karolina | 22   | SCP, SFTP |
-| Barbora  | 22   | SCP       |
-
-Authentication is by [private key][1] only.
-
-On Linux or Mac, use an SCP or SFTP client to transfer data to the cluster:
-
-```console
-local $ scp -i /path/to/id_rsa my-local-file username@cluster-name.it4i.cz:directory/file
-```
-
-```console
-local $ scp -i /path/to/id_rsa -r my-local-dir username@cluster-name.it4i.cz:directory
-```
-
-or
-
-```console
-local $ sftp -o IdentityFile=/path/to/id_rsa username@cluster-name.it4i.cz
-```
-
-You may request the **aes256-gcm@openssh.com cipher** for more efficient ssh based transfer:
-
-```console
-local $ scp -c aes256-gcm@openssh.com -i /path/to/id_rsa -r my-local-dir username@cluster-name.it4i.cz:directory
-```
-
-The -c argument may be used with ssh, scp and sftp, and is also applicable to sshfs and rsync below.
-
-A very convenient way to transfer files in and out of the cluster is via the fuse filesystem [SSHFS][b].
-
-```console
-local $ sshfs -o IdentityFile=/path/to/id_rsa username@cluster-name.it4i.cz:. mountpoint
-```
-
-Using SSHFS, the user's home directory will be mounted on your local computer, just like an external disk.
-
-Learn more about SSH, SCP, and SSHFS by reading the manpages:
-
-```console
-local $ man ssh
-local $ man scp
-local $ man sshfs
-```
-
-The rsync client uses ssh to establish connection.
-
-```console
-local $ rsync my-local-file
-```
-
-```console
-local $ rsync -r my-local-dir username@cluster-name.it4i.cz:directory
-```
-
-### Parallel Transfer
-
-<Callout>
-    The data transfer speed is limited by the single TCP stream and single-core ssh encryption speed to about **250 MB/s** (750 MB/s in case of aes256-gcm@openssh.com cipher)
-    Run **multiple** streams for unlimited transfers
-</Callout>
-
-#### Many Files
-
-Parallel execution of multiple rsync processes utilizes multiple cores to accelerate encryption and multiple tcp streams for enhanced bandwidth.
-First, set up ssh-agent single sign on:
-
-```console
-local $ eval `ssh-agent`
-local $ ssh-add
-Enter passphrase for /home/user/.ssh/id_rsa:
-```
-
-Then run multiple rsync instances in parallel, f.x.:
-
-```console
-local $ cd my-local-dir
-local $ ls | xargs -n 2 -P 4 /bin/bash -c 'rsync "$@" username@cluster-name.it4i.cz:mydir' sh
-```
-
-The **-n** argument detemines the number of files to transfer in one rsync call. Set according to file size and count (large for many small files).
-The **-P** argument determines number of parallel rsync processes. Set to number of cores on your local machine.
-
-Alternatively, use [HyperQueue][11]. First get [HyperQueue binary][e], then run:
-
-```console
-local $ hq server start &
-local $ hq worker start &
-local $ find my-local-dir -type f | xargs -n 2 > jobfile
-local $ hq submit --log=/dev/null --progress --each-line jobfile \
-        bash -c 'rsync -R $HQ_ENTRY username@cluster-name.it4i.cz:mydir'
-```
-
-Again, the **-n** argument detemines the number of files to transfer in one rsync call. Set according to file size and count (large for many small files).
-
-#### Single Very Large File
-
-To transfer single very large file efficienty, we need to transfer many blocks of the file in parallel, utilizing multiple cores to accelerate ssh encryption and multiple tcp streams for enhanced bandwidth.
-
-First, set up ssh-agent single sign on as [described above][10].
-Second, start the [HyperQueue server and HyperQueue worker][f]:
-
-```console
-local $ hq server start &
-local $ hq worker start &
-```
-
-Once set up, run the hqtransfer script listed below:
-
-```console
-local $ ./hqtransfer mybigfile username@cluster-name.it4i.cz outputpath/outputfile
-```
-
-The hqtransfer script:
-
-```console
-#!/bin/bash
-#Read input
-if [ -z $1 ]; then echo Usage: $0 'input_file ssh_destination [output_path/output_file]'; exit; fi
-INFILE=$1
-
-if [ -z $2 ]; then echo Usage: $0 'input_file ssh_destination [output_path/output_file]'; exit; fi
-DEST=$2
-
-OUTFILE=$INFILE
-if [ ! -z $3 ]; then OUTFILE=$3; fi
-
-#Calculate transfer blocks
-SIZE=$(($(stat --printf %s $INFILE)/1024/1024/1024))
-echo Transfering $(($SIZE+1)) x 1GB blocks
-
-#Execute
-hq submit --log=/dev/null --progress --array 0-$SIZE /bin/bash -c \
-        "dd if=$INFILE bs=1G count=1 skip=\$HQ_TASK_ID | \
-         ssh -c aes256-gcm@openssh.com $DEST \
-         dd of=$OUTFILE bs=1G conv=notrunc seek=\$HQ_TASK_ID"
-
-exit
-```
-
-Copy-paste the script into `hqtransfer` file and set executable flags:
-
-```console
-local $ chmod u+x hqtransfer
-```
-
-The `hqtransfer` script is ready for use.
-
-### Data Transfer From Windows Clients
-
-On Windows, use the [WinSCP client][c] to transfer data. The [win-sshfs client][d] provides a way to mount the cluster filesystems directly as an external disc.
-
-## Connection Restrictions
-
-Outgoing connections from cluster login nodes to the outside world are restricted to the following ports:
-
-| Port | Protocol |
-| ---- | -------- |
-| 22   | SSH      |
-| 80   | HTTP     |
-| 443  | HTTPS    |
-| 873  | Rsync    |
-
-<Callout>
-    Use **SSH port forwarding** and proxy servers to connect from cluster to all other remote ports.
-</Callout>
-
-Outgoing connections from cluster compute nodes are restricted to the internal network. Direct connections from compute nodes to the outside world are cut.
-
-| Service          | IP/Port            |
-| ---------------- | ------------------ |
-| TCP/22, TCP      | port 1024-65535    |
-| e-INFRA CZ Cloud | 195.113.243.0/24   |
-| IT4I Cloud       | 195.113.175.128/26 |
-
-## Port Forwarding
-
-### Port Forwarding From Login Nodes
-
-<Callout>
-    Port forwarding allows an application running on cluster to connect to arbitrary remote hosts and ports.
-</Callout>
-
-It works by tunneling the connection from cluster back to the user's workstations and forwarding from the workstation to the remote host.
-
-Select an unused port on the cluster login node (for example 6000) and establish the port forwarding:
-
-```console
-$ ssh -R 6000:remote.host.com:1234 cluster-name.it4i.cz
-```
-
-In this example, we establish port forwarding between port 6000 on the cluster and port 1234 on the `remote.host.com`. By accessing `localhost:6000` on the cluster, an application will see the response of `remote.host.com:1234`. The traffic will run via the user's local workstation.
-
-Port forwarding may be done **using PuTTY** as well. On the PuTTY Configuration screen, load your cluster configuration first. Then go to *Connection > SSH > Tunnels* to set up the port forwarding. Click the _Remote_ radio button. Insert 6000 to the _Source port_ textbox. Insert `remote.host.com:1234`. Click _Add_, then _Open_.
-
-Port forwarding may be established directly to the remote host. However, this requires that the user has an SSH access to `remote.host.com`.
-
-```console
-$ ssh -L 6000:localhost:1234 remote.host.com
-```
-
-<Callout>
-    Port number 6000 is chosen as an example only. Pick any free port.
-</Callout>
-
-### Port Forwarding From Compute Nodes
-
-Remote port forwarding from compute nodes allows applications running on the compute nodes to access hosts outside the cluster.
-
-First, establish the remote port forwarding from the login node, as [described above][5].
-
-Second, invoke port forwarding from the compute node to the login node. Insert the following line into your jobscript or interactive shell:
-
-```console
-$ ssh  -TN -f -L 6000:localhost:6000 login1
-```
-
-In this example, we assume that port forwarding from `login1:6000` to `remote.host.com:1234` has been established beforehand. By accessing `localhost:6000`, an application running on a compute node will see the response of `remote.host.com:1234`.
-
-### Using Proxy Servers
-
-Port forwarding is static; each single port is mapped to a particular port on a remote host. Connection to another remote host requires a new forward.
-
-<Callout>
-    Applications with inbuilt proxy support experience unlimited access to remote hosts via a single proxy server.
-</Callout>
-
-To establish a local proxy server on your workstation, install and run the SOCKS proxy server software. On Linux, SSHD demon provides the functionality. To establish the SOCKS proxy server listening on port 1080 run:
-
-```console
-local $ ssh -D 1080 localhost
-```
-
-On Windows, install and run the free, open source Sock Puppet server.
-
-Once the proxy server is running, establish the SSH port forwarding from cluster to the proxy server, port 1080, exactly as [described above][5]:
-
-```console
-local $ ssh -R 6000:localhost:1080 cluster-name.it4i.cz
-```
-
-Now, configure the applications proxy settings to `localhost:6000`. Use port forwarding to access the [proxy server from compute nodes][9], as well.
-
-[1]: ../general/accessing-the-clusters/shell-access-and-data-transfer/ssh-key-management.md
-[2]: ../general/accessing-the-clusters/shell-access-and-data-transfer/putty.md
-[5]: #port-forwarding-from-login-nodes
-[6]: ../general/accessing-the-clusters/graphical-user-interface/x-window-system.md
-[7]: ../general/accessing-the-clusters/graphical-user-interface/vnc.md
-[8]: ../general/accessing-the-clusters/vpn-access.md
-[9]: #port-forwarding-from-compute-nodes
-[10]: #many-files
-[11]: ../general/hyperqueue.md
-
-[b]: http://linux.die.net/man/1/sshfs
-[c]: http://winscp.net/eng/download.php
-[d]: http://code.google.com/p/win-sshfs/
-[e]: https://github.com/It4innovations/hyperqueue/releases/latest
-[f]: https://it4innovations.github.io/hyperqueue/stable/cheatsheet/
diff --git a/content/docs/general/slurm-batch-examples.mdx b/content/docs/general/slurm-batch-examples.mdx
deleted file mode 100644
index 15fffc77087b4faa49ef778a8de60b8e44eea063..0000000000000000000000000000000000000000
--- a/content/docs/general/slurm-batch-examples.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: "Slurm Batch Jobs Examples"
----
-Below is an excerpt from the [2024 e-INFRA CZ conference][1]
-describing best practices for Slurm batch calculations and data managing, including examples, by Ondrej Meca.
-
-![PDF presentation on Slurm Batch Jobs Examples](/it4i/src/srun_karolina.pdf){ type=application/pdf style="min-height:100vh;width:100%" }
-
-[1]: https://www.e-infra.cz/en/e-infra-cz-conference
\ No newline at end of file
diff --git a/content/docs/general/slurm-job-submission-and-execution.mdx b/content/docs/general/slurm-job-submission-and-execution.mdx
deleted file mode 100644
index 0b2ece24a5fd4ed81ac4cf351af5729392cab585..0000000000000000000000000000000000000000
--- a/content/docs/general/slurm-job-submission-and-execution.mdx
+++ /dev/null
@@ -1,364 +0,0 @@
----
-title: "Job Submission and Execution"
----
-<Callout type=warn>
-    Don't use the `#SBATCH --exclusive` parameter as it is already included in the SLURM configuration.<br><br>
-    Use the `#SBATCH --mem=` parameter **on `qfat` only**. On `cpu_` queues, whole nodes are allocated.
-    Accelerated nodes (`gpu_` queues) are divided each into eight parts with corresponding memory.
-</Callout>
-
-## Introduction
-
-[Slurm][1] workload manager is used to allocate and access Karolina's, Barbora's and Complementary systems' resources.
-
-A `man` page exists for all Slurm commands, as well as the `--help` command option,
-which provides a brief summary of options.
-Slurm [documentation][c] and [man pages][d] are also available online.
-
-## Getting Partition Information
-
-Display partitions/queues on system:
-
-```console
-$ sinfo -s
-PARTITION    AVAIL  TIMELIMIT   NODES(A/I/O/T) NODELIST
-qcpu*           up 2-00:00:00      1/191/0/192 cn[1-192]
-qcpu_biz        up 2-00:00:00      1/191/0/192 cn[1-192]
-qcpu_exp        up    1:00:00      1/191/0/192 cn[1-192]
-qcpu_free       up   18:00:00      1/191/0/192 cn[1-192]
-qcpu_long       up 6-00:00:00      1/191/0/192 cn[1-192]
-qcpu_preempt    up   12:00:00      1/191/0/192 cn[1-192]
-qgpu            up 2-00:00:00          0/8/0/8 cn[193-200]
-qgpu_biz        up 2-00:00:00          0/8/0/8 cn[193-200]
-qgpu_exp        up    1:00:00          0/8/0/8 cn[193-200]
-qgpu_free       up   18:00:00          0/8/0/8 cn[193-200]
-qgpu_preempt    up   12:00:00          0/8/0/8 cn[193-200]
-qfat            up 2-00:00:00          0/1/0/1 cn201
-qdgx            up 2-00:00:00          0/1/0/1 cn202
-qviz            up    8:00:00          0/2/0/2 vizserv[1-2]
-```
-
-`NODES(A/I/O/T)` column summarizes node count per state, where the `A/I/O/T` stands for `allocated/idle/other/total`.
-Example output is from Barbora cluster.
-
-Graphical representation of clusters' usage, partitions, nodes, and jobs could be found
-
-* for Karolina at [https://extranet.it4i.cz/rsweb/karolina][5]
-* for Barbora at [https://extranet.it4i.cz/rsweb/barbora][4]
-* for Complementary Systems at [https://extranet.it4i.cz/rsweb/compsys][6]
-
-On Karolina cluster
-
-* all cpu queues/partitions provide full node allocation, whole nodes are allocated to job
-* other queues/partitions (gpu, fat, viz) provide partial node allocation
-
-See [Karolina Slurm Specifics][7] for details.
-
-On Barbora cluster, all queues/partitions provide full node allocation, whole nodes are allocated to job.
-
-On Complementary systems, only some queues/partitions provide full node allocation,
-see [Complementary systems documentation][2] for details.
-
-## Running Interactive Jobs
-
-Sometimes you may want to run your job interactively, for example for debugging,
-running your commands one by one from the command line.
-
-Run interactive job - queue `qcpu_exp`, one node by default, one task by default:
-
-```console
-$ salloc -A PROJECT-ID -p qcpu_exp
-```
-
-Run interactive job on four nodes, 128 tasks per node (Karolina cluster, CPU partition recommended value based on node core count),
-two hours time limit:
-
-```console
-$ salloc -A PROJECT-ID -p qcpu -N 4 --ntasks-per-node 128 -t 2:00:00
-```
-
-Run interactive job, with X11 forwarding:
-
-```console
-$ salloc -A PROJECT-ID -p qcpu_exp --x11
-```
-
-To finish the interactive job, use the Ctrl+D (`^D`) control sequence.
-
-<Callout type=warn>
-    Do not use `srun` for initiating interactive jobs, subsequent `srun`, `mpirun` invocations would block forever.
-</Callout>
-
-## Running Batch Jobs
-
-Batch jobs is the standard way of running jobs and utilizing HPC clusters.
-
-### Job Script
-
-Create example job script called script.sh with the following content:
-
-```shell
-#!/usr/bin/bash
-#SBATCH --job-name MyJobName
-#SBATCH --account PROJECT-ID
-#SBATCH --partition qcpu
-#SBATCH --nodes 4
-#SBATCH --ntasks-per-node 128
-#SBATCH --time 12:00:00
-
-ml purge
-ml OpenMPI/4.1.4-GCC-11.3.0
-
-srun hostname | sort | uniq -c
-```
-
-Script will:
-
-* use bash shell interpreter
-* use `MyJobName` as job name
-* use project `PROJECT-ID` for job access and accounting
-* use partition/queue `qcpu`
-* use `4` nodes
-* use `128` tasks per node - value used by MPI
-* set job time limit to `12` hours
-
-* load appropriate module
-* run command, `srun` serves as Slurm's native way of executing MPI-enabled applications, `hostname` is used in the example just for sake of simplicity
-
-<Callout>
-    Use `#SBATCH --exclude=<node_name_list>` directive to exclude specific nodes from your job, e.g.: `#SBATCH --exclude=cn001,cn002,cn003`.
-</Callout>
-
-Submit directory will be used as working directory for submitted job,
-so there is no need to change directory in the job script.
-Alternatively you can specify job working directory using the sbatch `--chdir` (or shortly `-D`) option.
-
-### Srun Over mpirun
-
-While `mpirun` can be used to run parallel jobs on our Slurm-managed clusters, we recommend using `srun` for better integration with Slurm's scheduling and resource management. `srun` ensures more efficient job execution and resource control by leveraging Slurm’s features directly, and it simplifies the process by reducing the need for additional configurations often required with `mpirun`.
-
-### Job Submit
-
-Submit batch job:
-
-```console
-$ cd my_work_dir
-$ sbatch script.sh
-```
-
-A path to `script.sh` (relative or absolute) should be given
-if the job script is in a different location than the job working directory.
-
-By default, job output is stored in a file called `slurm-JOBID.out` and contains both job standard output and error output.
-This can be changed using the sbatch options `--output` (shortly `-o`) and `--error` (shortly `-e`).
-
-Example output of the job:
-
-```shell
-     128 cn017.karolina.it4i.cz
-     128 cn018.karolina.it4i.cz
-     128 cn019.karolina.it4i.cz
-     128 cn020.karolina.it4i.cz
-```
-
-### Job Environment Variables
-
-Slurm provides useful information to the job via environment variables.
-Environment variables are available on all nodes allocated to job when accessed via Slurm supported means (`srun`, compatible `mpirun`).
-
-See all Slurm variables
-
-```
-$ set | grep ^SLURM
-```
-
-Commonly used variables are:
-
-| variable name | description | example |
-| ------ | ------ | ------ |
-| SLURM_JOB_ID | job id of the executing job| 593 |
-| SLURM_JOB_NODELIST | nodes allocated to the job | cn[101-102] |
-| SLURM_JOB_NUM_NODES | number of nodes allocated to the job | 2 |
-| SLURM_STEP_NODELIST | nodes allocated to the job step | cn101 |
-| SLURM_STEP_NUM_NODES | number of nodes allocated to the job step | 1 |
-| SLURM_JOB_PARTITION | name of the partition | qcpu |
-| SLURM_SUBMIT_DIR | submit directory | /scratch/project/open-xx-yy/work |
-
-See relevant [Slurm documentation][3] for details.
-
-Get job nodelist:
-
-```
-$ echo $SLURM_JOB_NODELIST
-cn[101-102]
-```
-
-Expand nodelist to list of nodes:
-
-```
-$ scontrol show hostnames
-cn101
-cn102
-```
-
-## Job Management
-
-### Getting Job Information
-
-Show all jobs on system:
-
-```console
-$ squeue
-```
-
-Show my jobs:
-
-```console
-$ squeue --me
-             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
-               104   qcpu    interact    user   R       1:48      2 cn[101-102]
-```
-
-Show job details for a specific job:
-
-```console
-$ scontrol show job JOBID
-```
-
-Show job details for executing job from job session:
-
-```console
-$ scontrol show job $SLURM_JOBID
-```
-
-Show my jobs using a long output format which includes time limit:
-
-```console
-$ squeue --me -l
-```
-
-Show my jobs in running state:
-
-```console
-$ squeue --me -t running
-```
-
-Show my jobs in pending state:
-
-```console
-$ squeue --me -t pending
-```
-
-Show jobs for a given project:
-
-```console
-$ squeue -A PROJECT-ID
-```
-
-### Job States
-
-The most common job states are (in alphabetical order):
-
-| Code | Job State     | Explanation                                                                                                    |
-| :--: | :------------ | :------------------------------------------------------------------------------------------------------------- |
-| CA   | CANCELLED     | Job was explicitly cancelled by the user or system administrator.  The job may or may not have been initiated. |
-| CD   | COMPLETED     | Job has terminated all processes on all nodes with an exit code of zero.                                       |
-| CG   | COMPLETING    | Job is in the process of completing. Some processes on some nodes may still be active.                         |
-| F    | FAILED        | Job terminated with non-zero exit code or other failure condition.                                             |
-| NF   | NODE_FAIL     | Job terminated due to failure of one or more allocated nodes.                                                  |
-| OOM  | OUT_OF_MEMORY | Job experienced out of memory error.                                                                           |
-| PD   | PENDING       | Job is awaiting resource allocation.                                                                           |
-| PR   | PREEMPTED     | Job terminated due to preemption.                                                                              |
-| R    | RUNNING       | Job currently has an allocation.                                                                               |
-| RQ   | REQUEUED      | Completing job is being requeued.                                                                              |
-| SI   | SIGNALING     | Job is being signaled.                                                                                         |
-| TO   | TIMEOUT       | Job terminated upon reaching its time limit.                                                                   |
-
-### Modifying Jobs
-
-In general:
-
-```
-$ scontrol update JobId=JOBID ATTR=VALUE
-```
-
-Modify job's time limit:
-
-```
-$ scontrol update JobId=JOBID timelimit=4:00:00
-```
-
-Set/modify job's comment:
-
-```
-$ scontrol update JobId=JOBID Comment='The best job ever'
-```
-
-### Deleting Jobs
-
-Delete a job by job ID:
-
-```
-$ scancel JOBID
-```
-
-Delete all my jobs:
-
-```
-$ scancel --me
-```
-
-Delete all my jobs in interactive mode, confirming every action:
-
-```
-$ scancel --me -i
-```
-
-Delete all my running jobs:
-
-```
-$ scancel --me -t running
-```
-
-Delete all my pending jobs:
-
-```
-$ scancel --me -t pending
-```
-
-Delete all my pending jobs for a project PROJECT-ID:
-
-```
-$ scancel --me -t pending -A PROJECT-ID
-```
-
-## Troubleshooting
-
-### Invalid Account
-
-`sbatch: error: Batch job submission failed: Invalid account or account/partition combination specified`
-
-Possible causes:
-
-* Invalid account (i.e. project) was specified in job submission.
-* User does not have access to given account/project.
-* Given account/project does not have access to given partition.
-* Access to given partition was retracted due to the project's allocation exhaustion.
-
-[1]: https://slurm.schedmd.com/
-[2]: /cs/job-scheduling/#partitions
-[3]: https://slurm.schedmd.com/srun.html#SECTION_OUTPUT-ENVIRONMENT-VARIABLES
-[4]: https://extranet.it4i.cz/rsweb/barbora
-[5]: https://extranet.it4i.cz/rsweb/karolina
-[6]: https://extranet.it4i.cz/rsweb/compsys
-[7]: /general/karolina-slurm
-
-[a]: https://slurm.schedmd.com/
-[b]: http://slurmlearning.deic.dk/
-[c]: https://slurm.schedmd.com/documentation.html
-[d]: https://slurm.schedmd.com/man_index.html
-[e]: https://slurm.schedmd.com/sinfo.html
-[f]: https://slurm.schedmd.com/squeue.html
-[g]: https://slurm.schedmd.com/scancel.html
-[h]: https://slurm.schedmd.com/scontrol.html
-[i]: https://slurm.schedmd.com/job_array.html
diff --git a/content/docs/general/support.mdx b/content/docs/general/support.mdx
deleted file mode 100644
index 8e3049e2d14f405940ed3752785acd23222075ae..0000000000000000000000000000000000000000
--- a/content/docs/general/support.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: "Getting Help and Support"
----
-Contact [support\[at\]it4i.cz][a] or use the [support][b] portal for help and support regarding the cluster technology at IT4Innovations.
-For communication, use the **Czech**, **Slovak**, or **English** language.
-Follow the status of your request to IT4Innovations [here][b].
-The IT4Innovations support team will use best efforts to resolve requests within thirty days.
-
-[a]: mailto:support@it4i.cz
-[b]: http://support.it4i.cz/rt
diff --git a/content/docs/general/tools/cicd.mdx b/content/docs/general/tools/cicd.mdx
deleted file mode 100644
index 30f964ba6fc6922a57a665597f58005e91ea84f4..0000000000000000000000000000000000000000
--- a/content/docs/general/tools/cicd.mdx
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: "CI/CD"
----
-## Introduction
-
-Continuous Integration (CI) is the practice of automatically executing a compilation script and set of test cases to ensure that the integrated codebase is in a workable state. The integration is often followed by Continuous Benchmarking (CB) to evaluate the impact of the code change on the application performance and Continuous Deployment (CD) to distribute a new version of the developed code.
-
-IT4I offers its users a possibility to set up CI for their projects and to execute their dedicated CI jobs directly in computational nodes of the production HPC clusters (Karolina, Barbora) and Complementary systems. The Complementary systems gives a possibility to run the tests on emerging, non-traditional, and highly specialized hardware architectures. It consists of computational nodes built on Intel Sapphire Rapids + HBM, NVIDIA Grace CPU, IBM Power10, A64FX, and many more.
-
-Besides that, there is also a possibility to execute CI jobs in a customizable virtual environment (Docker containers). This allows to test the code in a clean build environment. It also makes dependency management more straight-forward since all dependencies for building the project can be put in the Docker image, from which the corresponding containers are created.
-
-## CI Infrastructure Deployed at IT4I
-
-IT4Innovations maintains a GitLab server (code.it4i.cz), which has built-in support for CI/CD. It provides a set of GitLab runners, which is an application that executes jobs specified in the project CI pipelines, consisting of jobs and stages. Grouping jobs together in collections is called stages. Stages run in sequence, while all jobs in a stage can run in parallel.
-
-Detailed documentation about GitLab CI/CD is available [here][1].
-
-### Karolina, Barbora, and Complementary Systems
-
-For all the users, a unified solution is provided to let them execute their CI jobs at Karolina, Barbora, and Complementary systems without the need to create their own project runners. For each of the HPC clusters, a GitLab instance runner has been deployed. The runners are running in the login nodes and are visible to all the projects of the IT4I GitLab server. These runners are shared by all users.
-
-These runners are using **Jacamar CI driver** – an HPC-focused open-source CI/CD driver for GitLab runners. It allows a GitLab runner to interact directly with a job scheduler of a given cluster. One of the main benefits this driver provides is a downscoping mechanism. It ensures that every command within each CI job is executed as the user who triggers the CI pipeline to which the job belongs.
-
-For more information about the Jacamar CI driver, please visit [the official documentation][2].
-
-The execution of CI pipelines works as follows. First, a user in the IT4I GitLab server triggers a CI pipeline (for example, by making push to a repository, etc.). Then, the jobs, which the pipeline consists of, are sent to the corresponding runner, running in the login node. Lastly, for every CI job, the runner clones the repository (or just fetches changes to an already cloned one, if there are any), restores [cache][3], downloads [artifacts][4] (if specified), and submits the job as a Slurm job to the corresponding HPC cluster using the `sbatch` command. After each execution of a job, the runner reports the results back to the server, creates cache, and uploads artifacts (if specified).
-
-<img src="../../../img/it4i-ci.svg" title="IT4I CI" width="750">
-
-<Callout>
-    The GitLab runners at Karolina and Barbora are able to submit (as a Slurm job) and execute 32 CI jobs concurrently, while the runner at Complementary systems can submit 16 jobs concurrently at most. Jobs above this limit are postponed in submission to respective slurm queue until a previous job has finished.
-</Callout>
-
-### Virtual Environment (Docker Containers)
-
-There are also 5 GitLab instance runners with Docker executor configured, which have been deployed in the local virtual infrastructure (each runs in a dedicated virtual machine). The runners use Docker Engine to execute each job in a separate and isolated container created from the image specified beforehand. These runners are also visible to all the projects of the IT4I GitLab server.
-
-Detailed information about the Docker executor and its workflow (the execution of CI pipelines) can be found [here][5].
-
-In addition, these runners have distributed caching enabled. This feature uses pre-configured object storage server and allows to share the [cache][3] between subsequent CI jobs (of the same project) executed on multiple runners (2 or more of the 5 deployed). Refer to [Caching in GitLab CI/CD][6] for information about cache and how cache is different from artifacts.
-
-## How to Set Up Continuous Integration for Your Project
-
-To begin with, a CI pipeline of a project must be defined in a YAML file. The most common name of this file is `.gitlab-ci.yml` and it should be located in the repository top level. For detailed information, see [tutorial][7] on how to create your first pipeline. Additionally, [CI/CD YAML syntax reference][8] lists all possible keywords, that can be specified in the definition of CI/CD pipelines and jobs.
-
-<Callout>
-    The default maximum time that a CI job can run for before it times out is 1 hour. This can be changed in [project's CI/CD settings][9]. When jobs exceed the specified timeout, they are marked as failed. Pending jobs are dropped after 24 hours of inactivity.
-</Callout>
-
-### Execution of CI Pipelines at the HPC Clusters
-
-Every CI job in the project CI pipeline, intended to be submitted as a Slurm job to one of the HPC clusters, must have the 3 following keywords specified in its definition.
-
-* `id_tokens`, in which `SITE_ID_TOKEN` must be defined with `aud` set to the URL of IT4I GitLab server.
-
-```yaml
-id_tokens:
-    SITE_ID_TOKEN:
-        aud: https://code.it4i.cz/
-```
-
-* `tags`, by which the appropriate runner for the CI job is selected. There are exactly 3 tags that must be specified in the `tags` clause of the CI job. Two of these are `it4i`  and `slurmjob`. The third one represents name of the target cluster. It can be `karolina`, `barbora`, or `compsys`.
-
-```yaml
-tags:
-    - it4i
-    - karolina/barbora/compsys
-    - slurmjob
-```
-
-* `variables`, where the `SCHEDULER_PARAMETERS` variable must be specified. This variable should contain all the arguments that the developer wants to pass to the `sbatch` command during the submission of the CI job - project, queue, partition, etc. There are also arguments, which are specified by the Jacamar CI driver automatically. Those are `--wait`, `--job-name`, and `--output`.
-
-```yaml
-variables:
-    SCHEDULER_PARAMETERS: "-A ... –p ... -N ..."
-```
-
-Optionally, a custom build directory can also be specified. The deployed GitLab runners are configured to store all files and directories for the CI job in the home directory of the user, who triggers the associated CI pipeline (the repository is also cloned there in a unique subpath). This behavior can be changed by specifying the `CUSTOM_CI_BUILDS_DIR` variable in the `variables` clause of the CI job.
-
-```yaml
-variables:
-    SCHEDULER_PARAMETERS: ...
-    CUSTOM_CI_BUILDS_DIR: /path/to/custom/build/dir/
-```
-
-A GitLab repository with examples of CI jobs can be found [here][10].
-
-### Execution of CI Pipelines in Docker Containers
-
-Every CI job in the project CI pipeline, intended to be executed by one of the 5 runners with Docker executor configured, must have the 2 following keywords specified in its definition.
-
-* `image`, where the name of the Docker image must be specified. Image requirements are listed [here][11]. See also [the description][12] in CI/CD YAML syntax reference for information about all possible name formats. The runners are configured to pull the images from [Docker Hub][13].
-
-```yaml
-image: <image-name-in-one-of-the-accepted-formats>
-
-# or
-
-image:
-    name: <image-name-in-one-of-the-accepted-formats>
-```
-
-* `tags`, by which one of the 5 runners is selected (the selection is done automatically). There are exactly 2 tags that must be specified in the `tags` clause of the CI job. Those are `centos7` and `docker`.
-
-```yaml
-tags:
-    - centos7
-    - docker
-```
-
-[1]: https://docs.gitlab.com/ee/topics/build_your_application.html
-[2]: https://ecp-ci.gitlab.io/docs/admin/jacamar/introduction.html
-[3]: https://docs.gitlab.com/ee/ci/yaml/#cache
-[4]: https://docs.gitlab.com/ee/ci/yaml/#artifacts
-[5]: https://docs.gitlab.com/runner/executors/docker.html
-[6]: https://docs.gitlab.com/ee/ci/caching/index.html
-[7]: https://docs.gitlab.com/ee/ci/quick_start/
-[8]: https://docs.gitlab.com/ee/ci/yaml/index.html
-[9]: https://docs.gitlab.com/ee/ci/pipelines/settings.html#set-a-limit-for-how-long-jobs-can-run
-[10]: https://code.it4i.cz/nie0056/it4i-cicd-example
-[11]: https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#image-requirements
-[12]: https://docs.gitlab.com/ee/ci/yaml/index.html#image
-[13]: https://hub.docker.com/
diff --git a/content/docs/general/tools/codeit4i.mdx b/content/docs/general/tools/codeit4i.mdx
deleted file mode 100644
index dbd532e93689a003384b430f12a9a5ae292f49f3..0000000000000000000000000000000000000000
--- a/content/docs/general/tools/codeit4i.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Code.it4i.cz"
----
-[code.it4i.cz][1] is a GitLab server maintained by IT4Innovations.
-It is available for all IT4I users and can be accessed via LDAP login credentials.
-
-It offers various tools including:
-
-## Project Management
-
-Collaborate with teammates using built-in code review tools.
-Control, track, and manage different versions of your project.
-Manage access and permission rights for different roles within your project.
-Report, track, and manage bugs and feature requests within your projects.
-Maintain project-specific documentation directly within GitLab.
-
-For more detailed information see the [GitLab documentation][2].
-
-## Continuous Integration / Continuous Deployment
-
-Automatically execute compilation scripts and test cases
-and distribute new versions of your code.
-See the [CI/CD section][a] for more information.
-
-## IT4I Documentation
-
-Participate on improving and expanding our documentation to help other users.
-
-[1]: https://code.it4i.cz/
-[2]: https://docs.gitlab.com/
-
-[a]: cicd.md
diff --git a/content/docs/general/tools/meta.json b/content/docs/general/tools/meta.json
deleted file mode 100644
index ce51e1598868ab81008fd96131f240148f76007a..0000000000000000000000000000000000000000
--- a/content/docs/general/tools/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Tools",
-  "pages": [
-    "cicd",
-    "codeit4i",
-    "opencode",
-    "portal-clients",
-    "tools-list"
-  ]
-}
diff --git a/content/docs/general/tools/opencode.mdx b/content/docs/general/tools/opencode.mdx
deleted file mode 100644
index 7680d2a7f0255882c2f9f1e7cfdb0b694adabc93..0000000000000000000000000000000000000000
--- a/content/docs/general/tools/opencode.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: "Opencode"
----
-[Opencode][b] is a GitLab-based page for projects on which IT4Innovations participates.
-
-## Who Can Access Opencode
-
-IT4Innovations account is not required, it is possible to access through [B2ACCESS][a].
-
-## Sign in Through B2ACCESS
-
-First, we need to verify your identity:
-
-1. Sign in with your organization B2ACCESS; the page requests a valid personal certificate (e.g. GEANT).
-   Accounts with "Low" level of assurance are not granted access to IT4I zone.
-
-2. Confirm your certificate in the browser:
-
-    ![](/it4i/img/B2ACCESS_chrome_eng.jpg)
-
-3. Confirm your certificate in the OS (Windows):
-
-    ![](/it4i/img/crypto_v2.jpg)
-
-4. Sign to EUDAT/B2ACCESS:
-
-    ![](/it4i/img/b2access-univerzity.jpg)
-
-    - If you aren't affiliated with any university, try log in with Social account. If you aren't able to sign in through an IDP, It might be a result of an internal policy of your employer.
-
-    - If you don't have, or refuse to use, any of the above-mentioned accounts, you can create an account in B2ACCESS.
-
-   ![](/it4i/img/b2access-no_account.jpg)
-   ![](/it4i/img/b2access-select.jpg)
-   ![](/it4i/img/b2access-fill.jpg)
-
-[a]: https://b2access.eudat.eu/
-[b]: https://opencode.it4i.eu
diff --git a/content/docs/general/tools/portal-clients.mdx b/content/docs/general/tools/portal-clients.mdx
deleted file mode 100644
index fda30f67798777e1afbf6d7a092eb7b7a07020ca..0000000000000000000000000000000000000000
--- a/content/docs/general/tools/portal-clients.mdx
+++ /dev/null
@@ -1,297 +0,0 @@
----
-title: "IT4I Portal Clients"
----
-it4i-portal-clients provides simple user-friendly shell interface
-to call [IT4I API](https://docs.it4i.cz/apiv1/) requests and display their respond.
-
-<Callout type=warn>
-	Python 2.7 is required.
-</Callout>
-
-Limits are placed on the number of requests you may make to [IT4I API](https://docs.it4i.cz/apiv1/).
-Rate limit can be changed without any warning at any time, but the default is **6 requests per minute**.
-Exceeding the limit will lead to your IP address being temporarily blocked from making further requests.
-The block will automatically be lifted by waiting an hour.
-
-## List of Available Utilities
-
-* [it4icheckaccess](#it4icheckaccess) - Shows if IT4I account and/or related project has the access to specified cluster and queue.
-* [it4idedicatedtime](#it4idedicatedtime) - Shows IT4I dedicated time.
-* [it4ifree](#it4ifree) - Shows some basic information from IT4I Slurm accounting.
-* [it4ifsusage](#it4ifsusage) - Shows filesystem usage of IT4I cluster storage systems.
-* [it4iuserfsusage](#it4iuserfsusage) - Shows user filesystem usage of IT4I cluster storage systems.
-* [it4projectifsusage](#it4iprojectfsusage) - Shows project filesystem usage of IT4I cluster storage systems.
-* [it4imotd](#it4imotd) - Shows IT4I messages of the day into formatted text or HTML page (using TAL / Zope Page Template).
-
-## Installation/Upgrading
-
-```bash
-pip install --upgrade it4i.portal.clients
-```
-
-## Sample Configuration File main.cfg
-
-```bash
-[main]
-
-# IT4I API
-api_url = https://scs.it4i.cz/api/v1/
-it4ifreetoken = <your_token>
-```
-
-Username is taken from OS, therefore the script has to be run under the same user login name as you use to log into clusters.
-
-* System-wide config file path: ```/usr/local/etc/it4i-portal-clients/main.cfg```
-* Local user's config file path: ```~/.it4ifree```
-
-## it4icheckaccess
-
-### Help of IT4ICHECKACCESS
-
-```console
-$ it4icheckaccess -h
-usage: it4icheckaccess [-h] -l LOGIN -c CLUSTER -q QUEUE [-p PROJECT]
-
-The command shows if an IT4I account and/or related project has the access to
-specified cluster and queue. Return exit code 99 if access is not granted.
-
-optional arguments:
-  -h, --help            show this help message and exit
-  -l LOGIN, --login LOGIN
-                        user login
-  -c CLUSTER, --cluster CLUSTER
-                        cluster name
-  -q QUEUE, --queue QUEUE
-                        queue
-  -p PROJECT, --project PROJECT
-                        project id
-```
-
-### Example of IT4ICHECKACCESS
-
-```console
-$ it4icheckaccess -l xxx0123 -c barbora -q qcpu_exp -p DD-12-345
-OK Access granted for regular queue.
-```
-
-## it4idedicatedtime
-
-### Help of IT4IDEDICATEDTIME
-
-```console
-$ it4idedicatedtime -h
-usage: it4idedicatedtime [-h] [-m {active,planned}]
-                         [-c {barbora,karolina}]
-
-The command shows IT4I dedicated time. By default all planned and active
-outages of all clusters are displayed. Return exit code 99 if there is no
-outage, otherwise return 0.
-
-optional arguments:
-  -h, --help            show this help message and exit
-  -m {active,planned}, --message {active,planned}
-                        select type of dedicated time. Planned contains also
-                        active
-  -c {barbora,karolina}, --cluster {barbora,karolina}
-                        select cluster
-```
-
-### Example of IT4IDEDICATEDTIME
-
-```console
-$ it4idedicatedtime
-Cluster    Start                End                  Last update
----------  -------------------  -------------------  -------------------
-barbora    2024-03-19 08:00:00  2024-03-19 09:30:00  2024-03-08 08:24:33
-karolina   2024-03-19 08:00:00  2024-03-19 09:30:00  2024-03-08 08:23:40
-```
-
-## it4ifree
-
-### Help of IT4IFREE
-
-```console
-$ it4ifree -h
-usage: it4ifree [-h] [-p] [-a]
-
-The command shows some basic information from IT4I SLURM accounting. The
-data is related to the current user and to all projects in which user
-participates.
-
-optional arguments:
-  -h, --help            show this help message and exit
-  -p, --percent
-                        show values in percentage. Projects with unlimited resources are not displayed
-  -a, --all             Show all resources include inactive and future ones.
-
-
-Columns of "Projects I am participating in":
-         PID: Project ID/account string.
-        Type: Standard or multiyear project.
-   Days left: Days till the given project expires.
-       Total: Core-hours allocated to the given project.
-        Used: Sum of core-hours used by all project members.
-          My: Core-hours used by the current user only.
-        Free: Core-hours that haven't yet been utilized.
-
-Columns of "Projects I am Primarily Investigating" (if present):
-         PID: Project ID/account string.
-        Type: Standard or multiyear project.
-       Login: Project member's login name.
-        Used: Project member's used core-hours.
-```
-
-### Example of IT4IFREE
-
-```console
-$ it4ifree
-
-Projects I am participating in
-==============================
-PID         Resource type    Days left      Total     Used      By me     Free
-----------  ---------------  -------------  --------  --------  --------  --------
-OPEN-XX-XX  Karolina GPU      249                42         0         0        42
-            Barbora CPU       249                42         5         5        37
-            Legacy NCH        249               100         0         0       100
-
-
-Projects I am Primarily Investigating
-=====================================
-PID         Resource type    Login      Usage
-----------  --------------   -------  --------
-OPEN-XX-XX  Barbora CPU      user1          3
-            Barbora CPU      user2          2
-            Karolina GPU     N/A            0
-            Legacy NCH       N/A            0
-
-
-Legend
-======
-N/A   =    No one used this resource yet
-Legacy Normalized core hours are in NCH
-Everything else is in Node Hours
-```
-
-## it4ifsusage
-
-### Help of IT4IFSUSAGE
-
-```console
-$ it4ifsusage -h
-usage: it4ifsusage [-h]
-
-The command shows filesystem usage of IT4I cluster storage systems
-
-optional arguments:
-  -h, --help            show this help message and exit
-```
-
-### Example of IT4IFSUSAGE
-
-```console
-$ it4ifsusage
-Quota Type     Cluster / PID    File System    Space used    Space limit    Entries used    Entries limit    Last update
--------------  ---------------  -------------  ------------  -------------  --------------  ---------------  -------------------
-User           barbora          /home          2.9 GB        25.0 GB        183             500,000          2024-03-22 16:50:10
-User           karolina         /home          3.0 MB        25.0 GB        150             500,000          2024-03-22 17:00:07
-User           barbora          /scratch       0 Bytes       10.0 TB        0               10,000,000       2024-03-22 16:50:28
-User           karolina         /scratch       0 Bytes       0 Bytes        0               0                2024-03-22 17:00:43
-Project        service          proj3          1.5 TB        1.0 TB         169,933         198,000          2024-03-22 17:00:02
-```
-
-## it4iuserfsusage
-
-### Help of IT4IUSERFSUSAGE
-
-```console
-$ it4iuserfsusage -h
-usage: it4iuserfsusage [-h] [-c {all,barbora, karolina}]
-
-The command shows user filesystem usage of IT4I cluster storage systems
-
-optional arguments:
-  -h, --help            show this help message and exit
-```
-
-### Example of IT4IUSERFSUSAGE
-
-```console
-$ it4iuserfsusage
-Cluster          File System    Space used    Space limit      Entries used  Entries limit    Last update
----------------  -------------  ------------  -------------  --------------  ---------------  -------------------
-barbora          /home          2.9  GB       25.0 GB                   183  500,000          2024-03-22 16:50:10
-karolina         /home          3.0 MB        25.0 GB                   150  500,000          2024-03-22 17:00:07
-barbora          /scratch       0 Bytes       10.0 TB                     0  10,000,000       2024-03-22 16:50:28
-karolina         /scratch       0 Bytes       0 Bytes                     0  0                2024-03-22 17:00:43
-```
-
-## it4iprojectfsusage
-
-### Help of IT4IPROJECTFSUSAGE
-
-```console
-$ it4iprojectfsusage -h
-usage: it4iprojectfsusage [-h] [-p {PID, all}]
-
-The command shows project filesystem usage of IT4I cluster storage systems
-
-optional arguments:
-  -h, --help            show this help message and exit
-```
-
-### Example of IT4IPROJECTFSUSAGE
-
-```console
-$ it4iprojectfsusage
-PID              File System    Space used    Space limit      Entries used  Entries limit    Last update
----------------  -------------  ------------  -------------  --------------  ---------------  -------------------
-service          proj3          3.1 GB        1.0 TB                      5  100,000          2024-03-22 17:00:02
-it4i-x-y         proj1          3.1 TB        2.0 TB                      5  100,000          2024-03-22 17:00:02
-dd-13-5          proj3          2 GB          3.0 TB                      5  100,000          2024-03-22 17:00:02
-projectx         proj2          150 TB        4.0 TB                      5  100,000          2024-03-22 17:00:02
-```
-
-## it4imotd
-
-### Help of IT4IMOTD
-
-```console
-$ it4imotd -h
-usage: it4imotd [-h] [-t TEMPLATE] [-w WIDTH] [-c]
-
-The command shows IT4I messages of the day into formatted text or HTML page.
-
-optional arguments:
-  -h, --help            show this help message and exit
-  -t TEMPLATE, --template TEMPLATE
-                        path to TAL / Zope Page Template, output will be
-                        formatted into HTML page
-  -w WIDTH, --width WIDTH
-                        maximum line width (intended for text rendering,
-                        default of 78 columns)
-  -c, --cron            sleep from 10 up to 60 seconds prior to any actions
-  -m {TYPE}, --message {TYPE}
-                        select type of messages
-                        supported types:
-                            all,
-                            public-service-announcement,
-                            service-recovered-up,
-                            critical-service-down,
-                            service-hard-down,
-                            auxiliary-service-down,
-                            planned-outage,
-                            service-degraded,
-                            important,
-                            notice.
-```
-
-### Example of IT4IMOTD
-
-```console
-$ it4imotd
-
-                       Message of the Day (DD/MM/YYYY)
-                            (YYYY-MM-DD hh:mm:ss)
-
-More on https://...
-```
diff --git a/content/docs/general/tools/tools-list.mdx b/content/docs/general/tools/tools-list.mdx
deleted file mode 100644
index 941b0aaf77f7ed2f4fc4a09f2dcb39c9c71af965..0000000000000000000000000000000000000000
--- a/content/docs/general/tools/tools-list.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: "IT4I Data Sharing Tools"
----
-Below is the list of tools with description available at IT4 Innovations.
-
-| Hostname                | VPN | Access                                                         | Domain  | Function                                                                                                              | Technology  | Target Group                                | License                                                                                               |
-| ----------------------- | --- | -------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
-| adasoffice.vsb.cz       | no  |                                                                | vsb.cz  | Data sharing<br>Project work<br>\- Tasks<br>\- Milestones<br>\- Chat<br>Calendar<br>CRM<br>Collaborative writing      | onlyoffice  | Adas only, to shut down                     | 110/150 - Counts for 30 days from file open;<br>returns to pool if not used in 30 days.<br>50ks/1000E |
-| internal.office.it4i.cz | no  | ldap vsb                                                       | it4i.cz | Data sharing<br>Project work<br>\- Tasks<br>\- Milestones<br>\- Chat<br>Calendar<br>CRM<br>Collaborative writing      | onlyoffice  | Private projects                            | 110/150 - Counts for 30 days from file open;<br>returns to pool if not used in 30 days.<br>50ks/1000E |
-| events.it4i.cz          |     | local account                                                  | it4i.cz | Events management<br>Schedules & programs<br>Evaluation & feedback<br>Participants registration                       | indico      | IT4I                                        |                                                                                                       |
-| code.it4i.cz            | no  | ldap it4i                                                      | it4i.cz | Versions management<br>Project management<br>CI/CD<br>Tasks<br>Documentation                                          | gitlab      | IT4I users                                  | free                                                                                                  |
-| gitlab.it4i.cz          | yes | ldap it4i                                                      | it4i.cz | Versions management<br>Project management<br>CI/CD<br>Tasks<br>Documentation                                          | gitlab      | IT4I                                        | free                                                                                                  |
-| opencode.it4i.eu        | no  | ldap vsb<br>b2access<br>MyAccessID                             | it4i.eu | Versions management<br>Project management<br>CI/CD<br>Tasks<br>Documentation                                          | gitlab      | Lexis, OWS, Partners                        | free                                                                                                  |
-| openmm.it4i.eu          | no  | redirecting to opencode:<br>ldap vsb<br>b2access<br>MyAccessID | it4i.eu | Chat channels<br>Data sharing<br>Integration<br>Direct messages                                                       | gitlab      | Lexis, OWS, Partners                        | free                                                                                                  |
-| sharing.office.it4i.cz  | no  | SSO<br>ldap vsb<br>MyAccessID                                  | it4i.cz | Data sharing<br>Project work<br>\- Tasks<br>\- Milestones<br>\- Chat<br>Calendar<br>CRM<br>Collaborative writing      | onlyoffice  | Partners outside VSB                        | 110/150 - Counts for 30 days from file open;<br>returns to pool if not used in 30 days.<br>50ks/1000E |
-| ext-folder.it4i.cz      | no  | ldap vsb<br>ldap it4i<br>MyAccessID                            | vsb.cz  | Data sharing<br>draw.io<br>Forms                                                                                      | nextcloud   | IT4I,<br>VSB users,<br>Partners outside VSB | free                                                                                                  |
diff --git a/content/docs/index.mdx b/content/docs/index.mdx
deleted file mode 100644
index 2a3d4950e0a267bbc7a958412e817c762d217d05..0000000000000000000000000000000000000000
--- a/content/docs/index.mdx
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: "Documentation"
----
-Welcome to the IT4Innovations documentation.
-The IT4Innovations National Supercomputing Center operates the [Karolina][1] and [Barbora][2] supercomputers.
-The supercomputers are available to the academic community within the Czech Republic and Europe, and the industrial community worldwide.
-The purpose of these pages is to provide comprehensive documentation of the hardware, software, and usage of the computers.
-
-## How to Read the Documentation
-
-1. Select the subject of interest from the left column or use the Search tool in the upper right corner.
-1. Scan for all the notes and reminders on the page.
-1. If more information is needed, read the details and **look for examples** illustrating the concepts.
-
-## Required Proficiency
-
-<Callout>
-    Basic proficiency in Linux environments is required.
-</Callout>
-
-In order to use the system for your calculations, you need basic proficiency in Linux environments.
-To gain this proficiency, we recommend you read the [introduction to Linux][a] operating system environments,
-and install a Linux distribution on your personal computer.
-For example, the [CentOS][b] distribution is similar to systems on the clusters at IT4Innovations and it is easy to install and use,
-but any Linux distribution would do.
-
-<Callout>
-    Learn how to parallelize your code.
-</Callout>
-
-In many cases, you will run your own code on the cluster.
-In order to fully exploit the cluster, you will need to carefully consider how to utilize all the cores available on the node
-and how to use multiple nodes at the same time.
-You need to **parallelize** your code.
-Proficiency in MPI, OpenMP, CUDA, UPC, or GPI2 programming may be gained via [training provided by IT4Innovations][c].
-
-## Terminology Frequently Used on These Pages
-
-* **node:** a computer, interconnected via a network to other computers – Computational nodes are powerful computers, designed for, and dedicated to executing demanding scientific computations.
-* **core:** a processor core, a unit of processor, executing computations
-* **node-hour:** a metric of computer utilization, [see definition][3].
-* **job:** a calculation running on the supercomputer – the job allocates and utilizes the resources of the supercomputer for certain time.
-* **HPC:** High Performance Computing
-* **HPC (computational) resources:** nodehours, storage capacity, software licenses
-* **code:** a program
-* **primary investigator (PI):** a person responsible for execution of computational project and utilization of computational resources allocated to that project
-* **collaborator:** a person participating in the execution of a computational project and utilization of computational resources allocated to that project
-* **project:** a computational project under investigation by the PI – the project is identified by the project ID. Computational resources are allocated and charged per project.
-* **jobscript:** a script to be executed by the Slurm workload manager
-
-## Conventions
-
-In this documentation, you will find a number of examples.
-We use the following conventions:
-
-Cluster command prompt:
-
-```console
-$
-```
-
-Your local Linux host command prompt:
-
-```console
-local $
-```
-
-## Errors
-
-Although we have taken every care to ensure the accuracy of the content, mistakes do happen.
-If you find an inconsistency or error, please report it by visiting [support][d], creating a new ticket, and entering the details.
-By doing so, you can save other readers from frustration and help us improve.
-
-[1]: karolina/introduction.md
-[2]: barbora/introduction.md
-[3]: general/resources-allocation-policy.md#resource-accounting-policy
-
-[a]: http://www.tldp.org/LDP/intro-linux/html/
-[b]: http://www.centos.org/
-[c]: https://www.it4i.cz/en/education/training-activities
-[d]: http://support.it4i.cz/rt
diff --git a/content/docs/job-features.mdx b/content/docs/job-features.mdx
deleted file mode 100644
index fdcdcc9447abda35cc143c3f0109400d33afcf34..0000000000000000000000000000000000000000
--- a/content/docs/job-features.mdx
+++ /dev/null
@@ -1,200 +0,0 @@
----
-title: "Job Features"
----
-Special features installed/configured on the fly on allocated nodes, features are requested in Slurm job using specially formatted comments.
-
-```console
-$ salloc... --comment "use:feature=req"
-```
-
-or
-
-```
-SBATCH --comment "use:feature=req"
-```
-
-or for multiple features
-
-```console
-$ salloc ... --comment "use:feature1=req1 use:feature2=req2 ..."
-```
-
-where `feature` is a feature name and `req` is a requested value (`true`, `version string`, etc.)
-
-## Xorg
-
-[Xorg][2] is a free and open source implementation of the X Window System imaging server maintained by the X.Org Foundation. Xorg is available only for Karolina accelerated nodes Acn[01-72].
-
-```console
-$ salloc ... --comment "use:xorg=True"
-```
-
-## VTune Support
-
-Load the VTune kernel modules.
-
-```console
-$ salloc ... --comment "use:vtune=version_string"
-```
-
-`version_string` is VTune version e.g. 2019_update4
-
-## Global RAM Disk
-
-<Callout type=warn>
-    The feature has not been implemented on Slurm yet.
-<Callout>
-
-The Global RAM disk deploys BeeGFS On Demand parallel filesystem,
-using local (i.e. allocated nodes') RAM disks as a storage backend.
-
-The Global RAM disk is mounted at `/mnt/global_ramdisk`.
-
-```console
-$ salloc ... --comment "use:global_ramdisk=true"
-```
-
-![Global RAM disk](/it4i/img/global_ramdisk.png)
-
-### Example
-
-```console
-$ sbatch -A PROJECT-ID -p qcpu --nodes 4 --comment="use:global_ramdisk=true" ./jobscript
-```
-
-This command submits a 4-node job in the `qcpu` queue;
-once running, a RAM disk shared across the 4 nodes will be created.
-The RAM disk will be accessible at `/mnt/global_ramdisk`
-and files written to this RAM disk will be visible on all 4 nodes.
-
-The file system is private to a job and shared among the nodes,
-created when the job starts and deleted at the job's end.
-
-<Callout type=warn>
-    The Global RAM disk will be deleted immediately after the calculation end.
-    Users should take care to save the output data from within the jobscript.
-</Callout>
-
-The files on the Global RAM disk will be equally striped across all the nodes, using 512k stripe size.
-Check the Global RAM disk status:
-
-```console
-$ beegfs-df -p /mnt/global_ramdisk
-$ beegfs-ctl --mount=/mnt/global_ramdisk --getentryinfo /mnt/global_ramdisk
-```
-
-Use Global RAM disk in case you need very large RAM disk space.
-The Global RAM disk allows for high performance sharing of data among compute nodes within a job.
-
-<Callout type=warn>
-     Use of Global RAM disk file system is at the expense of operational memory.
-</Callout>
-
-| Global RAM disk    |                                                                           |
-| ------------------ | --------------------------------------------------------------------------|
-| Mountpoint         | /mnt/global_ramdisk                                                       |
-| Accesspoint        | /mnt/global_ramdisk                                                       |
-| Capacity           | Barbora (Nx180)GB                                    |
-| User quota         | none                                                                      |
-
-N = number of compute nodes in the job.
-
-<Callout type=warn>
-    Available on Barbora nodes only.
-</Callout>
-
-## MSR-SAFE Support
-
-Load a kernel module that allows saving/restoring values of MSR registers.
-Uses [LLNL MSR-SAFE][a].
-
-```console
-$ salloc ... --comment "use:msr=version_string"
-```
-
-`version_string` is MSR-SAFE version e.g. 1.4.0
-
-<Callout type=error>
-    Hazardous, it causes CPU frequency disruption.
-</Callout>
-
-<Callout type=warn>
-    Available on Barbora nodes only.
-</Callout>
-
-## HDEEM Support
-
-Load the HDEEM software stack. The [High Definition Energy Efficiency Monitoring][b] (HDEEM) library is a software interface used to measure power consumption of HPC clusters with bullx blades.
-
-```console
-$ salloc ... --comment "use:hdeem=version_string"
-```
-
-`version_string` is HDEEM version e.g. 2.2.8-1
-
-<Callout type=warn>
-    Available on Barbora nodes only.
-</Callout>
-
-## NVMe Over Fabrics File System
-
-<Callout type=warn>
-    The feature has not been implemented on Slurm yet.
-</Callout>
-
-Attach a volume from an NVMe storage and mount it as a file-system. File-system is mounted on /mnt/nvmeof (on the first node of the job).
-Barbora cluster provides two NVMeoF storage nodes equipped with NVMe disks. Each storage node contains seven 1.6TB NVMe disks and provides net aggregated capacity of 10.18TiB. Storage space is provided using the NVMe over Fabrics protocol; RDMA network i.e. InfiniBand is used for data transfers.
-
-```console
-$ salloc ... --comment "use:nvmeof=size"
-```
-
-`size` is a size of the requested volume, size conventions are used, e.g. 10t
-
-Create a shared file-system on the attached NVMe file-system and make it available on all nodes of the job. Append `:shared` to the size specification, shared file-system is mounted on /mnt/nvmeof-shared.
-
-```console
-$ salloc ... --comment "use:nvmeof=size:shared"
-```
-
-For example:
-
-```console
-$ salloc ... --comment "use:nvmeof=10t:shared"
-```
-
-<Callout type=warn>
-    Available on Barbora nodes only.
-</Callout>
-
-## Smart Burst Buffer
-
-<Callout type=warn>
-    The feature has not been implemented on Slurm yet.
-</Callout>
-
-Accelerate SCRATCH storage using the Smart Burst Buffer (SBB) technology. A specific Burst Buffer process is launched and Burst Buffer resources (CPUs, memory, flash storage) are allocated on an SBB storage node for acceleration (I/O caching) of SCRATCH data operations. The SBB profile file `/lscratch/$SLURM_JOB_ID/sbb.sh` is created on the first allocated node of job. For SCRATCH acceleration, the SBB profile file has to be sourced into the shell environment - provided environment variables have to be defined in the process environment. Modified data is written asynchronously to a backend (Lustre) filesystem, writes might be proceeded after job termination.
-
-Barbora cluster provides two SBB storage nodes equipped with NVMe disks. Each storage node contains ten 3.2TB NVMe disks and provides net aggregated capacity of 29.1TiB. Acceleration uses RDMA network i.e. InfiniBand is used for data transfers.
-
-```console
-$ salloc ... --comment "use:sbb=spec:
-```
-
-`spec` specifies amount of resources requested for Burst Buffer (CPUs, memory, flash storage), available values are small, medium, and large
-
-Loading SBB profile:
-
-```console
-$ source /lscratch/$SLURM_JOB_ID/sbb.sh
-```
-
-<Callout type=warn>
-    Available on Barbora nodes only.
-</Callout>
-
-[1]: software/tools/virtualization.md#tap-interconnect
-[2]: general/accessing-the-clusters/graphical-user-interface/xorg.md
-
-[a]: https://software.llnl.gov/news/2019/04/29/msrsafe-1.3.0/
-[b]: https://tu-dresden.de/zih/forschung/projekte/hdeem
diff --git a/content/docs/karolina/compute-nodes.mdx b/content/docs/karolina/compute-nodes.mdx
deleted file mode 100644
index 5bb323f2c6dd8b3bffd9782b64aa35c0fd72ab59..0000000000000000000000000000000000000000
--- a/content/docs/karolina/compute-nodes.mdx
+++ /dev/null
@@ -1,153 +0,0 @@
----
-title: "Compute Nodes"
----
-Karolina is a cluster of x86-64 AMD- and Intel-based nodes built with the HPE technology. The cluster contains four types of compute nodes.
-
-## Compute Nodes Without Accelerators
-
-Standard compute nodes without accelerators (such as GPUs or FPGAs) are based on the x86 CPU architecture and provide quick accessibility for the users and their existing codes.
-
-* 720 nodes
-* 92,160 cores in total
-* 2x AMD EPYC™ 7H12, 64-core, 2.6 GHz processors per node
-* 256 GB DDR4 3200MT/s of physical memory per node
-* 5,324.8 GFLOP/s per compute node
-* 1x 100 Gb/s IB port
-* Cn[001-720]
-
-![](/it4i/karolina/img/apolloproliant.png)
-
-## Compute Nodes With a GPU Accelerator
-
-Accelerated compute nodes deliver most of the compute power usable for HPC as well as excellent performance in HPDA and AI workloads, especially in the learning phase of Deep Neural Networks.
-
-* 72 nodes
-* 9,216 cores in total
-* 2x AMD EPYC™ 7763, 64-core, 2.45 GHz processors per node
-* 1024 GB DDR4 3200MT/s of physical memory per node
-* 8x GPU accelerator NVIDIA A100 per node, 320GB HBM2 memory per node
-* 5,017.6 GFLOP/s per compute node
-* 4x 200 Gb/s IB port
-* Acn[01-72]
-
-![](/it4i/karolina/img/hpeapollo6500.png)
-
-## Data Analytics Compute Node
-
-Data analytics compute node is oriented on supporting huge memory jobs by implementing a NUMA SMP system with large cache coherent memory.
-
-* 1x HPE Superdome Flex server
-* 768 cores in total
-* 32x Intel® Xeon® Platinum, 24-core, 2.9 GHz, 205W
-* 24 TB DDR4 2993MT/s of physical memory per node
-* 2x 200 Gb/s IB port
-* 71.2704 TFLOP/s
-* Sdf1
-
-![](/it4i/karolina/img/superdomeflex.png)
-
-## Cloud Compute Node
-
-Cloud compute nodes support both the research and operation of the Infrastructure/HPC as a Service. It is intended for provision and operation of cloud technologies like OpenStack and Kubernetes.
-
-* 36 nodes
-* 4,608 cores in total
-* 2x AMD EPYC™ 7H12, 64-core, 2.6 GHz processors per node
-* 256 GB DDR4 3200MT/s of physical memory per node
-* HPE ProLiant XL225n Gen10 Plus servers
-* 5,324.8 GFLOP/s per compute node
-* 2x 10 Gb/s Ethernet
-* 1x 100 Gb/s IB port
-* CLn[01-36]
-
-## Compute Node Summary
-
-| Node type                    | Count | Range        | Memory  | Cores          |
-| ---------------------------- | ----- | ------------ | ------- | -------------- |
-| Nodes without an accelerator | 720   | Cn[001-720]  | 256 GB  | 128 @ 2.6 GHz  |
-| Nodes with a GPU accelerator | 72    | Acn[01-72]   | 1024 GB | 128 @ 2.45 GHz |
-| Data analytics nodes         | 1     | Sdf1         | 24 TB   | 768 @ 2.9 GHz  |
-| Cloud partiton               | 36    | CLn[01-36]   | 256 GB  | 128 @ 2.6 GHz  |                            |
-
-## Processor Architecture
-
-Karolina is equipped with AMD EPYC™ 7H12 (nodes without accelerators, Cloud partiton), AMD EPYC™ 7763 (nodes with accelerators), and Intel Cascade Lake Xeon-SC 8268 (Data analytics partition).
-
-### AMD [Epyc™ 7H12][d]
-
-EPYC™ 7H12 is a 64-bit 64-core x86 server microprocessor designed and introduced by AMD in late 2019. This multi-chip processor, which is based on the Zen 2 microarchitecture, incorporates logic fabricated TSMC 7 nm process and I/O fabricated on GlobalFoundries 14 nm process. The 7H12 has a TDP of 280 W with a base frequency of 2.6 GHz and a boost frequency of up to 3.3 GHz. This processor supports up to two-way SMP and up to 4 TiB of eight channels DDR4-3200 memory per socket.
-
-* **Family**: EPYC™
-* **Cores**: 64
-* **Threads**: 128
-* **L1I Cache**: 2 MiB, 64x32 KiB, 8-way set associative
-* **L1D Cache**: 2 MiB, 64x32 KiB, 8-way set associative
-* **L2 Cache**: 32 MiB, 64x512 KiB, 8-way set associative, write-back
-* **L3 Cache**: 256 MiB, 16x16 MiB
-* **Instructions**: x86-16, x86-32, x86-64, MMX, EMMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4a, AVX, AVX2, AES, CLMUL, RdRanD, FMA3, F16C, ABM, BMI1, BMI2, AMD-Vi, AMD-V, SHA, ADX, Real, Protected, SMM, FPU, NX, SMT, SME, TSME, SEV, SenseMI, Boost2
-* **Frequency**: 2.6 GHz
-* **Max turbo**: 3.3 GHz
-* **Process**: 7 nm, 14 nm
-* **TDP**: 280 W
-
-### AMD [Epyc™ 7763][e]
-
-EPYC 7763 is a 64-bit 64-core x86 server microprocessor designed and introduced by AMD in March 2021. This multi-chip processor, which is based on the Zen 3 microarchitecture, incorporates eight Core Complex Dies fabricated on a TSMC advanced 7 nm process and a large I/O die manufactured by GlobalFoundries. The 7763 has a TDP of 280 W with a base frequency of 2.45 GHz and a boost frequency of up to 3.5 GHz. This processor supports up to two-way SMP and up to 4 TiB of eight channel DDR4-3200 memory per socket.
-
-* **Family**: EPYC™
-* **Cores**: 64
-* **Threads**: 128
-* **L1I Cache**: 2 MiB, 64x32 KiB, 8-way set associative, write-back
-* **L1D Cache**: 2 MiB,	64x32 KiB, 8-way set associative, write-back
-* **L2 Cache**: 32 MiB, 64x512 KiB, 8-way set associative, write-back
-* **L3 Cache**: 256 MiB, 8x32 MiB, 16-way set associative, write-back
-* **Instructions**: x86-16, x86-32, x86-64, MMX, EMMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4a, AVX, AVX2, AES, CLMUL, RdRanD, FMA3, F16C, ABM, BMI1, BMI2, AMD-Vi, AMD-V, SHA, ADX, Real, Protected, SMM, FPU, NX, SMT, SME, TSME, SEV, SenseMI
-* **Frequency**: 2.45 GHz
-* **Max turbo**: 3.5 GHz
-* **Process**: 7 nm
-* **TDP**: 280 W
-
-### Intel [Skylake Platinum 8268][f]
-
-Xeon Platinum 8268 is a 64-bit 24-core x86 high-performance server microprocessor introduced by Intel in early 2019. The Platinum 8268 is based on the Cascade Lake microarchitecture and is manufactured on a 14 nm process. This chip supports 8-way multiprocessing, sports 2 AVX-512 FMA units as well as three Ultra Path Interconnect links. This microprocessor supports up 1 TiB of hexa-channel DDR4-2933 memory, operates at 2.9 GHz with a TDP of 205 W and features a turbo boost frequency of up to 3.9 GHz.
-
-* **Family**: Xeon Platinum
-* **Cores**: 24
-* **Threads**: 48
-* **L1I Cache**: 768 KiB, 24x32 KiB, 8-way set associative
-* **L1D Cache**: 768 KiB, 24x32 KiB, 8-way set associative, write-back
-* **L2 Cache**: 24 MiB, 24x1 MiB, 16-way set associative, write-back
-* **L3 Cache**: 35.75 MiB, 26x1.375 MiB, 11-way set associative, write-back
-* **Instructions**: x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA3, F16C, BMI, BMI2, VT-x, VT-d, TXT, TSX, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVE, SGX, MPX, AVX-512
-* **Frequency**: 2.9 GHz
-* **Max turbo**: 3.9 GHz
-* **Process**: 14 nm
-* **TDP**: 205 W
-
-## GPU Accelerator
-
-Karolina is equipped with an [NVIDIA A100][g] accelerator.
-
-|NVIDIA A100||
-| --- | --- |
-| GPU Architecture | NVIDIA Ampere |
-| NVIDIA Tensor| Cores: 432 |
-| NVIDIA CUDA® Cores | 6912 |
-| Double-Precision Performance | 9.7 TFLOP/s |
-| Single-Precision Performance | 19.5 TFLOP/s |
-| Tensor Performance | 312 TFLOP/s |
-| GPU Memory | 40 GB HBM2 |
-| Memory Bandwidth | 1555 GB/sec |
-| ECC | Yes |
-| Interconnect Bandwidth | 600 GB/sec |
-| System Interface | NVIDIA NVLink |
-| Form Factor | SXM4 | (sxm 8?)
-| Max Power Consumption | 400 W |
-| Thermal Solution | Passive |
-| Compute APIs | CUDA, DirectCompute,OpenCLTM, OpenACC | (?)
-
-[c]: https://en.wikichip.org/wiki/x86/avx512vnni
-[d]: https://en.wikichip.org/wiki/amd/epyc/7h12
-[e]: https://en.wikichip.org/wiki/amd/epyc/7763
-[f]: https://en.wikichip.org/wiki/intel/xeon_platinum/8268
-[g]: https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/a100/pdf/a100-80gb-datasheet-update-nvidia-us-1521051-r2-web.pdf
diff --git a/content/docs/karolina/hardware-overview.mdx b/content/docs/karolina/hardware-overview.mdx
deleted file mode 100644
index 92def247bf9244a7076e0b1615c049dc588296c6..0000000000000000000000000000000000000000
--- a/content/docs/karolina/hardware-overview.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: "Hardware Overview"
----
-Karolina consists of 829 computational nodes of which 720 are universal compute nodes (**Cn[001-720]**), 72 are NVIDIA A100 accelerated nodes (**Acn[01-72]**), 1 is a data analytics node (**Sdf1**), and 36 are cloud partitions (**CLn[01-36]**). Each node is a powerful x86-64 computer, equipped with 128/768 cores (64-core AMD EPYC™ 7H12 / 64-core AMD EPYC™ 7763 / 24-core Intel Xeon-SC 8268) and at least 256 GB of RAM.
-
-[User access][5] to Karolina is provided by four login nodes **login[1-4]**. The nodes are interlinked through high speed InfiniBand and Ethernet networks.
-
-The Accelerated nodes, Data analytics node, and Cloud nodes are available [upon request][a] from a PI. For more information about accessing the nodes, see also the [Resources Allocation Policy][2] section.
-
-For more technical information, see the [Compute Nodes][1] section.
-
-The parameters are summarized in the following tables:
-
-| **In general**                              |                                                |
-| ------------------------------------------- | ---------------------------------------------- |
-| Primary purpose                             | High Performance Computing                     |
-| Architecture of compute nodes               | x86-64                                         |
-| Operating system                            | Linux                                          |
-| **Compute nodes**                           |                                                |
-| Total                                       | 829                                            |
-| Processor cores                             | 128/768 (2x64 cores/32x24 cores)               |
-| RAM                                         | min. 256 GB                                    |
-| Local disk drive                            | no                                             |
-| Compute network                             | InfiniBand HDR                                 |
-| Universal compute node                      | 720, Cn[001-720]                               |
-| Accelerated compute nodes                   | 72, Acn[01-72]                                 |
-| Data analytics compute nodes                | 1, Sdf1                                        |
-| Cloud compute nodes                         | 36, CLn[01-36]                                 |
-| **In total**                                |                                                |
-| Total theoretical peak performance  (Rpeak) | 15.7 PFLOP/s                                   |
-| Total amount of RAM                         | 313 TB                                         |
-
-| Node                     | Processor                                | Memory  | Accelerator                  |
-| ------------------------ | ---------------------------------------  | ------  | ---------------------------- |
-| Universal compute node   | 2 x AMD Zen 2 EPYC™ 7H12, 2.6 GHz        | 256 GB  | -                            |
-| Accelerated compute node | 2 x AMD Zen 3 EPYC™ 7763, 2.45 GHz       | 1024 GB | 8 x NVIDIA A100 (40 GB HBM2) |
-| Data analytics node      | 32 x Intel Xeon-SC 8268, 2.9 GHz         | 24 TB   | -                            |
-| Cloud compute node       | 2 x AMD Zen 2 EPYC™ 7H12, 2.6 GHz        | 256 GB  | -                            |
-
-[1]: compute-nodes.md
-[2]: ../general/resources-allocation-policy.md
-[3]: network.md
-[4]: storage.md
-[5]: ../general/shell-and-data-access.md
-[6]: visualization.md
-
-[a]: https://support.it4i.cz/rt
diff --git a/content/docs/karolina/introduction.mdx b/content/docs/karolina/introduction.mdx
deleted file mode 100644
index 394af33a777b4dde56dff7f5027fc590f71ca4b6..0000000000000000000000000000000000000000
--- a/content/docs/karolina/introduction.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Introduction"
----
-Karolina is the latest and most powerful supercomputer cluster built for IT4Innovations in Q2 of 2021. The Karolina cluster consists of 829 compute nodes, totaling 106,752 compute cores with 313 TB RAM, giving over 15.7 PFLOP/s theoretical peak performance.
-
-Nodes are interconnected through a fully non-blocking fat-tree InfiniBand network, and are equipped with AMD Zen 2, Zen 3, and Intel Cascade Lake architecture processors. Seventy two nodes are also equipped with NVIDIA A100 accelerators. Read more in [Hardware Overview][1].
-
-The cluster runs with an operating system compatible with the Red Hat [Linux family][a]. We have installed a wide range of software packages targeted at different scientific domains. These packages are accessible via the [modules environment][2].
-
-The user data shared file system and job data shared file-system are available to users.
-
-The [Slurm][b] workload manager provides [computing resources allocations and job execution][3].
-
-Read more on how to [apply for resources][4], [obtain login credentials][5] and [access the cluster][6].
-
-[1]: hardware-overview.md
-[2]: ../environment-and-modules.md
-[3]: ../general/job-submission-and-execution.md
-[4]: ../general/applying-for-resources.md
-[5]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-[6]: ../general/shell-and-data-access.md
-
-[a]: http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
-[b]: https://slurm.schedmd.com/
diff --git a/content/docs/karolina/meta.json b/content/docs/karolina/meta.json
deleted file mode 100644
index aa403d164cddaeaf6d54f56c6285a5bc6cb76e6a..0000000000000000000000000000000000000000
--- a/content/docs/karolina/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "title": "Karolina",
-  "pages": [
-    "compute-nodes",
-    "hardware-overview",
-    "introduction",
-    "network",
-    "storage",
-    "visualization"
-  ]
-}
diff --git a/content/docs/karolina/network.mdx b/content/docs/karolina/network.mdx
deleted file mode 100644
index d90d068548127b3fe61590d249e044b4a8d78151..0000000000000000000000000000000000000000
--- a/content/docs/karolina/network.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: "Network"
----
-All of the compute and login nodes of Karolina are interconnected through an [InfiniBand][a] HDR 200Gbps network and a gigabit ethernet network.
-
-The compute network is configured as a non-blocking Fat Tree which consists of 60 x 40-ports Mellanox Quantum™ HDR switches (40 Leaf HDR switches and 20 Spine HDR switches).
-
-![](/it4i/karolina/img/compute_network_topology_v2.png)<br>*For a higher resolution, open the image in a new browser tab.*
-
-Compute nodes and the service infrastructure is connected by the HDR100 technology that allows one 200Gbps HDR port (aggregation 4x 50Gbps) divided into 2 HDR100 ports with 100Gbps (2x 50Gbps) bandwidth. The cabling between the L1 and L2 layer is realized by HDR cabling, connecting the end devices is realized by so called Y or splitter cable (1x HDR200 - 2x HDR100).
-
-**The compute network has the following parameters**
-
-* 100Gbps
-* Latencies less than 10 microseconds (0.6ÎĽs end-to-end, <90ns switch hop)
-* Adaptive routing support
-* MPI communication support
-* IP protocol support (IPoIB)
-* Support for SCRATCH Data Storage and NVMe over Fabric Data Storage.
-
-## Mellanox Quantum™ QM8790 40-Ports Switch
-
-[Mellanox][b] provides the world’s smartest switch, enabling in-network computing through the Co-Design Scalable Hierarchical Aggregation and Reduction Protocol (SHARP)™ technology.
-QM8790 has the highest fabric performance available in the market with up to 16Tb/s of non-blocking bandwidth with sub-130ns port-to-port latency.
-
-**Performance**
-
-* 40 x HDR200 200Gb/s ports in a 1U switch
-* 80 x HDR100 100Gb/s ports (using splitter cables)
-* 16Tb/s aggregate switch throughput
-* Sub-130ns switch latency – Optimized design
-
-**Optimized Design**
-
-* 1+1 redundant & hot-swappable power
-* N+1 redundant & hot-swappable fans
-* 80 gold+ and energy star certified power supplies
-
-**Advanced Design**
-
-* Adaptive routing
-* Congestion control
-* Collective offloads (Mellanox SHARP™ technology)
-* VL mapping (VL2VL)
-
-[a]: http://en.wikipedia.org/wiki/InfiniBand
-[b]: https://network.nvidia.com/files/doc-2020/pb-qm8790.pdf
diff --git a/content/docs/karolina/storage.mdx b/content/docs/karolina/storage.mdx
deleted file mode 100644
index e48f38d1b8f4140e7dca102fd6cb8bdc30fc8e13..0000000000000000000000000000000000000000
--- a/content/docs/karolina/storage.mdx
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: "Storage"
----
-Karolina cluster provides two main shared filesystems, [HOME filesystem][1] and [SCRATCH filesystem][2], and has access to IT4Innovations' central PROJECT storage, as well. All login and compute nodes may access the same data on shared file systems. Compute nodes are also equipped with local (non-shared) scratch, RAM disk, and TMP file systems.
-
-## Archiving
-
-Shared filesystems should not be used as a backup for large amount of data or long-term data storage. The academic staff and students of research institutions in the Czech Republic can use the [CESNET storage][6] service, which is available via SSHFS.
-
-### HOME File System
-
-The HOME filesystem is an HA cluster of two active-passive NFS servers. This filesystem contains users' home directories `/home/username`. Accessible capacity is 31 TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 25 GB per user. Should 25 GB prove insufficient, contact [support][d], the quota may be increased upon request.
-
-<Callout>
-    The HOME filesystem is intended for preparation, evaluation, processing and storage of data generated by active projects.
-</Callout>
-
-The files on HOME filesystem will not be deleted until the end of the [user's lifecycle][4].
-
-The filesystem is backed up, so that it can be restored in case of a catastrophic failure resulting in significant data loss. However, this backup is not intended to restore old versions of user data or to restore deleted files.
-
-| HOME filesystem      |                                |
-| -------------------- | ------------------------------ |
-| Mountpoint           | /home/username                 |
-| Capacity             | 31 TB                          |
-| Throughput           | 1.93 GB/s write, 3.1 GB/s read |
-| User space quota     | 25 GB                          |
-| User inodes quota    | 500 k                          |
-| Protocol             | NFS                            |
-
- Configuration of the storage:
-
-**2x NFS server HPE ProLiant DL325 Gen10 Plus**
-
-* 1x AMD EPYC 7302P (3.0GHz/16-core/155W)
-* 8x 16GB (1x16GB) Dual Rank x8 DDR4-3200 CAS-22-22-22
-* 2x 240GB SATA 6G Read Intensive SFF (2.5in) SC SSD – (HW RAID1)
-* 1x Smart Array E208i-a SR Gen10 (No Cache) 12G SAS Modular LH Controller
-* 1x HPE SN1100Q 16Gb Dual Port Fibre Channel Host Bus Adapter
-* 1x Intel I350-T4 Ethernet 1Gb 4-port BASE-T OCP3 Adapter
-* ILO5
-* 1x InfiniBand HDR100/Ethernet 100Gb 2-port QSFP56 PCIe4 x16 MCX653106A-ECAT Adapter
-* 2x 500W Flex Slot Platinum Hot Plug Low Halogen Power Supply Kit
-* OS: Red Hat Enterprise Linux Server
-
-**1x Storage array HPE MSA 2060 16Gb Fibre Channel SFF Storage**
-
-* 1x Base MSA 2060 SFF Storage Drive Enclosure
-* 22x MSA 1.92TB SAS 12G SFF (2.5in) M2 SSD
-* 1x MSA 16Gb Short Wave Fibre Channel SFP+ 4-pack Transceiver
-* Dual-controller, 4x 16Gb FC host interface
-* LAN connectivity 2x 1Gb/s
-* Redundant, hot-swap power supplies
-
-### SCRATCH File System
-
-The SCRATCH filesystem is realized as a parallel Lustre filesystem. It is accessible via the Infiniband network and is available from all login and compute nodes. Extended ACLs are provided on the Lustre filesystems for sharing data with other users using fine-grained control. For basic information about Lustre, see the [Understanding the Lustre Filesystems][7] subsection of the Barbora's storage documentation.
-
-The SCRATCH filesystem is mounted in the `/scratch/project/PROJECT_ID` directory created automatically with the `PROJECT_ID` project. Accessible capacity is 1000 TB, shared among all users. Users are restricted by PROJECT quotas set to 20 TB. The purpose of this quota is to prevent runaway programs from filling the entire filesystem and deny service to other users. Should 20 TB prove insufficient, contact [support][d], the quota may be increased upon request.
-
-To find out current SCRATCH quotas, use:
-
-```code
-[usr0123@login1.karolina ~]$ getent group OPEN-XX-XX
-open-xx-xx:*:1234:user1,...,usern
-
-[usr0123@login1.karolina ~]$ lfs quota -p 1234 /scratch/
-Disk quotas for prj 1234 (pid 1234):
-Filesystem kbytes quota limit grace files quota limit grace
-/scratch/ 14356700796 0 19531250000 - 82841 0 20000000 -
-```
-
-<Callout>
-    The Scratch filesystem is intended for temporary scratch data generated during the calculation as well as for high-performance access to input and output files. All I/O intensive jobs must use the SCRATCH filesystem as their working directory.
-
-    Users are advised to save the necessary data from the SCRATCH filesystem to HOME filesystem after the calculations and clean up the scratch files.
-</Callout>
-
-<Callout type=warn>
-    Files on the SCRATCH filesystem that are **not accessed for more than 90 days** will be automatically **deleted**.
-</Callout>
-
-| SCRATCH filesystem   |                                    |
-| -------------------- | ---------------------------------- |
-| Mountpoint           | /scratch                           |
-| Capacity             | 1361 TB                            |
-| Throughput           | 730.9 GB/s write, 1198.3 GB/s read |
-| PROJECT quota        | 20 TB                             |
-| PROJECT inodes quota | 20 M                               |
-| Default stripe size  | 1 MB                               |
-| Default stripe count | 1                                  |
-| Protocol             | Lustre                             |
-
-Configuration of the storage:
-
-**1x SMU - ClusterStor 2U/24 System Management Unit Storage Controller**
-
-* 5x Cray ClusterStor 1.6TB NVMe x4 Lanes Mixed Use SFF (2.5in) U.2 with Carrier
-* 2x Cray ClusterStor InfiniBand HDR/Ethernet 200Gb 1-port QSFP PCIe4 Adapter (Mellanox ConnectX-6)
-
-**1x MDU - ClusterStor 2U/24 Metadata Unit Storage Controller**
-
-* 24x Cray ClusterStor 1.6TB NVMe x4 Lanes Mixed Use SFF (2.5in) U.2 with Carrier
-* 2x Cray ClusterStor InfiniBand HDR/Ethernet 200Gb 1-port QSFP PCIe4 Adapter (Mellanox ConnectX-6)
-
-**24x SSU-F - ClusterStor 2U24 Scalable Storage Unit Flash Storage Controller**
-
-* 24x Cray ClusterStor 3.2TB NVMe x4 Lanes Mixed Use SFF (2.5in) U.2 with Carrier
-* 4x Cray ClusterStor InfiniBand HDR/Ethernet 200Gb 1-port QSFP PCIe4 Adapter (Mellanox ConnectX-6)
-
-**2x LMN - Aruba 6300M 48-port 1GbE**
-
-* Aruba X371 12VDC 250W 100-240VAC Power-to-Port Power Supply
-
-### PROJECT File System
-
-The PROJECT data storage is a central storage for projects' and users' data at IT4Innovations that is accessible from all clusters.
-For more information, see the [PROJECT Data Storage][9] section.
-
-### Disk Usage and Quota Commands
-
-For more information about disk usage and user quotas, see the Barbora's [storage section][8].
-
-### Extended ACLs
-
-Extended ACLs provide another security mechanism beside the standard POSIX ACLs, which are defined by three entries (for owner/group/others). Extended ACLs have more than the three basic entries. In addition, they also contain a mask entry and may contain any number of named user and named group entries.
-
-ACLs on a Lustre file system work exactly like ACLs on any Linux file system. They are manipulated with the standard tools in the standard manner.
-
-For more information, see the [Access Control List][10] section of the documentation.
-
-## Local Filesystems
-
-### TMP
-
-Each node is equipped with a local `/tmp` directory of few GB capacity. The `/tmp` directory should be used to work with small temporary files. Old files in the `/tmp` directory are automatically purged.
-
-## Summary
-
-| Mountpoint | Usage                     | Protocol | Net Capacity   | Throughput | Limitations | Access                  | Services                    |        |
-| ---------- | ------------------------- | -------- | -------------- | ---------- | ----------- | ----------------------- | --------------------------- | ------ |
-| /home      | home directory            | NFS      | 31 TB        | 1.93 GB/s write, 3.1 GB/s read | Quota 25 GB | Compute and login nodes | backed up                   |        |
-| /scratch   | cluster shared jobs' data | Lustre   | 1361 TB        | 730.9 GB/s write, 1198.3 GB/s read  | Quota 20 TB| Compute and login nodes | files older 90 days removed |        |
-| /tmp       | local temporary files     | local    | ------   | -------   | none        | Compute / login nodes   | auto                        | purged |
-
-[1]: #home-file-system
-[2]: #scratch-file-system
-[4]: ../general/obtaining-login-credentials/obtaining-login-credentials.md
-[5]: #project-file-system
-[6]: ../storage/cesnet-storage.md
-[7]: ../barbora/storage.md#understanding-the-lustre-filesystems
-[8]: ../barbora/storage.md#disk-usage-and-quota-commands
-[9]: ../storage/project-storage.md
-[10]: ../storage/standard-file-acl.md
-
-[a]: http://www.nas.nasa.gov
-[b]: http://www.nas.nasa.gov/hecc/support/kb/Lustre_Basics_224.html#striping
-[c]: http://doc.lustre.org/lustre_manual.xhtml#managingstripingfreespace
-[d]: https://support.it4i.cz/rt
-[e]: http://man7.org/linux/man-pages/man1/nfs4_setfacl.1.html
-[l]: http://man7.org/linux/man-pages/man1/nfs4_getfacl.1.html
diff --git a/content/docs/karolina/visualization.mdx b/content/docs/karolina/visualization.mdx
deleted file mode 100644
index 4c0f42375bef57a8acc5f46ff3bbda92dee4b276..0000000000000000000000000000000000000000
--- a/content/docs/karolina/visualization.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: "Visualization Servers"
----
-Karolina includes two nodes for remote visualization with [VirtualGL 2][3] and TurboVNC 2.
-
-* 64 cores in total
-* 2x AMD EPYC™ 7452 32-core, 2.35 GHz processors per node
-* 256GiB DDR4 RAM, 3200MT/s, ECC of physical memory per node (12x 16 GB)
-* HPE ProLiant DL385 Gen10 Plus servers
-* 2406.4 GFLOP/s per compute node
-* NVIDIA Quadro RTX 6000 card with OpenGL support
-* 2x 100 Gb/s Ethernet and 1x 1 Gb/s Ethernet
-* 1x HDR 200 Gb/s IB port
-* 2x SSD 480 GB in RAID1
-
-![](/it4i/karolina/img/proliantdl385.png)
-
-## NVIDIA® Quadro RTX™ 6000
-
-* GPU Memory: 24 GB GDDR6
-* Memory Interface: 384-bit
-* Memory Bandwidth: Up to 672 GB/s
-* NVIDIA® CUDA® Cores: 4,608
-* NVIDIA® Tensor Cores: 576
-* NVIDIA® RT Cores: 72
-* System Interface: PCI Express 3.0 x16
-* Max Power Consumption: 295 W
-* Thermal Solution: Active
-* Form Factor: 111 mm W x 267 mm L, Dual Slot, Full Height
-* Display Connectors: 4x DP 1.4 + DVI-D DL
-* Graphics APIs: Shader Model 5.1, OpenGL 4.6, DirectX 12.0, Vulkan 1.1,
-* Compute APIs: CUDA, DirectCompute, OpenCL™
-* Floating-Point Performance-Single Precision: 16.3 TFLOP/s, Peak
-* Tensor Performance: 130.5 TFLOP/s
-
-![](/it4i/karolina/img/qrtx6000.png)
-
-## Resource Allocation Policy
-
-| queue | active project | project resources | nodes                             | min ncpus | priority | authorization | walltime |
-| ----- | -------------- | ----------------- | --------------------------------- | --------- | -------- | ------------- | -------- |
-| qviz  | yes            | none required     | 2 (with NVIDIA® Quadro RTX™ 6000) | 8         | 150      | no            | 1h/8h    |
-
-## References
-
-* [Graphical User Interface][1]
-* [VPN Access][2]
-
-[1]: ../general/shell-and-data-access.md#graphical-user-interface
-[2]: ../general/shell-and-data-access.md#vpn-access
-[3]: ../software/viz/vgl.md
diff --git a/content/docs/lumi/about.mdx b/content/docs/lumi/about.mdx
deleted file mode 100644
index dd8aba07576ff60143fceb393c462f86dba9f63f..0000000000000000000000000000000000000000
--- a/content/docs/lumi/about.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: "About LUMI"
----
-The European High-Performance Computing Joint Undertaking (EuroHPC JU) is pooling European resources
-to develop top-of-the-range exascale supercomputers for processing big data,
-based on competitive European technology.
-
-One of the pan-European pre-exascale supercomputers, [LUMI][1], is located in CSC’s data center in Kajaani, Finland.
-
-The supercomputer is hosted by the Large Unified Modern Infrastructure consortium.
-The LUMI consortium countries are Finland, Belgium, the Czech Republic,
-Denmark, Estonia, Iceland, Norway, Poland, Sweden, and Switzerland.
-
-LUMI is one of the world’s best-known scientific instruments for the lifespan of 2021–2027.
-
-## LUMI AI
-
-LUMI can assist users in migrating their machine learning applications from smaller-scale computing environments to LUMI.
-For more information, see the [LUMI AI][c] subsection.
-
-## LUMI Software
-
-For the list of software modules installed on LUMI,
-as well as direct links to documentation for some of the most used modules,
-see the [LUMI Software][a] subsection.
-
-## LUMI Support
-
-LUMI offers general support, Czech national support, events, and training.
-For more information, see the [LUMI Support][b] subsection.
-
-## Technical Reference
-
-For more information about how to access the LUMI supercomputer,
-see the [official documentation][2].
-
-[1]: https://lumi-supercomputer.eu/
-[2]: https://docs.lumi-supercomputer.eu/
-
-[a]: software.md
-[b]: support.md
-[c]: lumiai.md
\ No newline at end of file
diff --git a/content/docs/lumi/lumiai.mdx b/content/docs/lumi/lumiai.mdx
deleted file mode 100644
index 3773d7b77e32c7f0f07c5133c864fcd2569da0fb..0000000000000000000000000000000000000000
--- a/content/docs/lumi/lumiai.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "LUMI AI"
----
-LUMI can assist users in migrating their machine learning applications from smaller-scale computing environments to LUMI.
-
-## LUMI AI Guide
-
-The guide is available at [LUMI GitHub][1] page.
-Note that the project is still work in progress and changes are made constantly.
-
-## Requirements
-
-Before proceeding, please ensure you meet the following prerequisites:
-
-* A basic understanding of machine learning concepts and Python programming. This guide will focus primarily on aspects specific to training models on LUMI.
-* An active user account on LUMI and familiarity with its basic operations.
-* If you wish to run the included examples, you need to be part of a project with GPU hours on LUMI.
-
-## Examples
-
-For examples visit [LUMI AI workshop][2].
-
-[1]: https://github.com/Lumi-supercomputer/LUMI-AI-Guide/blob/main/README.md
-[2]: https://github.com/Lumi-supercomputer/Getting_Started_with_AI_workshop
\ No newline at end of file
diff --git a/content/docs/lumi/meta.json b/content/docs/lumi/meta.json
deleted file mode 100644
index cbf44ca7b580edcea8262f39b7a2bc77391fd8f9..0000000000000000000000000000000000000000
--- a/content/docs/lumi/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "title": "Lumi",
-  "pages": [
-    "about",
-    "lumiai",
-    "openfoam",
-    "pytorch",
-    "software",
-    "support"
-  ]
-}
diff --git a/content/docs/lumi/openfoam.mdx b/content/docs/lumi/openfoam.mdx
deleted file mode 100644
index f66397835d3398b32ccc9a715d13ffe8237a56e5..0000000000000000000000000000000000000000
--- a/content/docs/lumi/openfoam.mdx
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: "OpenFoam"
----
-OpenFOAM is a free, open source CFD software package.
-OpenFOAM has an extensive range of features to solve anything
-from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetics.
-
-## CSC Installed Software Collection
-
-- [https://docs.lumi-supercomputer.eu/software/local/csc/][2]
-- [https://docs.csc.fi/apps/openfoam/][3]
-
-## Install 32bit/64bit
-
-<Callout type=warn>
-    There is a very small quota for maximum number of files on LUMI:
-    projappl (100K), scratch (2.0M), flash (1.0M) - check: `lumi-quota`.
-</Callout>
-
-```
-#!/bin/bash
-
-SCRATCH="/pfs/lustre..."
-
-cd $SCRATCH
-mkdir -p openfoam
-cd openfoam
-
-export EBU_USER_PREFIX=$PWD/easybuild/lumi-c-23.09
-module load LUMI/23.09 partition/container EasyBuild-user
-
-#32bit - use eb file from this repository
-#eb OpenFOAM-v2312-cpeGNU-23.09.eb -r
-
-#64bit - use eb file from this repository
-eb eb/OpenFOAM-v2312-64bit-cpeGNU-23.09.eb -r
-```
-
-## Run 32bit/64bit
-
-```
-#!/bin/bash
-
-SCRATCH="/pfs/lustre..."
-
-cd $SCRATCH/openfoam
-
-export EBU_USER_PREFIX=$PWD/easybuild/lumi-c-23.09
-module load LUMI/23.09 partition/container EasyBuild-user
-ml OpenFOAM/v2312-cpeGNU-23.09-64bit
-
-#32bit
-#source $EBROOTOPENFOAM/etc/bashrc WM_COMPILER=Cray WM_MPLIB=CRAY-MPICH
-
-#64bit
-source $EBROOTOPENFOAM/etc/bashrc WM_COMPILER=Cray WM_MPLIB=CRAY-MPICH WM_LABEL_SIZE=64
-
-OPENFOAM_PROJECT="/pfs/lustre..."
-cd $OPENFOAM_PROJECT
-
-srun -n 1 blockMesh
-srun -n 1 decomposePar
-
-srun -n $SLURM_NTASKS snappyHexMesh -overwrite -parallel | tee log.snappy
-srun -n $SLURM_NTASKS createPatch -overwrite -parallel | tee log.createPatch
-srun -n $SLURM_NTASKS transformPoints -scale '(0.01 0.01 0.01)' -parallel | tee log.transformPoint
-srun -n $SLURM_NTASKS renumberMesh -overwrite -parallel | tee log.renum
-srun -n $SLURM_NTASKS pimpleFoam -parallel | tee log.pimpleFoam1
-```
-
-## License
-
-OpenFOAM is the free, open source CFD software developed primarily by OpenCFD Ltd since 2004.
-OpenCFD Ltd, owner of the OpenFOAM Trademark, is a wholly owned subsidiary of ESI Group.
-
-ESI-OpenCFD produces the OpenFOAM® open source CFD toolbox and distributes freely
-via [https://www.openfoam.com/][1]. OpenCFD Ltd was established in 2004 to coincide with
-the release of its OpenFOAM software under general public license.
-
-OpenFOAM is distributed under the GPL v3 license.
-
-## References
-
-- Homepage: [http://www.openfoam.com/][1]
-
-[1]: https://www.openfoam.com/
-[2]: https://docs.lumi-supercomputer.eu/software/local/csc/
-[3]: https://docs.csc.fi/apps/openfoam/
diff --git a/content/docs/lumi/pytorch.mdx b/content/docs/lumi/pytorch.mdx
deleted file mode 100644
index 3507621f6c08e73fde8078a583a833e0fbd7e75f..0000000000000000000000000000000000000000
--- a/content/docs/lumi/pytorch.mdx
+++ /dev/null
@@ -1,208 +0,0 @@
----
-title: "PyTorch"
----
-## PyTorch Highlight
-
-* Official page: [https://pytorch.org/][1]
-* Code: [https://github.com/pytorch/pytorch][2]
-* Python-based framework for machine learning
-  * Auto-differentiation on tensor types
-* Official LUMI page: [https://lumi-supercomputer.github.io/LUMI-EasyBuild-docs/p/PyTorch/][3]
-  * **Warning:** be careful where the SIF image is installed or copied ($HOME is not recommended for quota reasons). For EasyBuild you must specify the installation path: `export EBU_USER_PREFIX=/project/project_XXXX/EasyBuild`.
-
-## CSC Installed Software Collection
-
-* [https://docs.csc.fi/support/tutorials/ml-multi/][8]
-* [https://docs.lumi-supercomputer.eu/software/local/csc/][9]
-* [https://docs.csc.fi/apps/pytorch/][10]
-
-## PyTorch Install
-
-### Base Environment
-
-```console
-module purge
-module load CrayEnv
-module load PrgEnv-cray/8.3.3
-module load craype-accel-amd-gfx90a
-module load cray-python
-
-# Default ROCm – more recent versions are preferable (e.g. ROCm 5.6.0)
-module load rocm/5.2.3.lua
-```
-
-### Scripts
-
-* natively
-  * [01-install-direct-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/01-install-direct-torch1.13.1-rocm5.2.3.sh)
-  * [01-install-direct-torch2.1.2-rocm5.5.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/01-install-direct-torch2.1.2-rocm5.5.3.sh)
-* virtual env
-  * [02-install-venv-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/02-install-venv-torch1.13.1-rocm5.2.3.sh)
-  * [02-install-venv-torch2.1.2-rocm5.5.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/02-install-venv-torch2.1.2-rocm5.5.3.sh)
-* conda env
-  * [03-install-conda-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/03-install-conda-torch1.13.1-rocm5.2.3.sh)
-  * [03-install-conda-torch2.1.2-rocm5.5.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/03-install-conda-torch2.1.2-rocm5.5.3.sh)
-  * from source: [04-install-source-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/04-install-source-torch1.13.1-rocm5.2.3.sh)
-* containers (singularity)
-  * [05-install-container-torch2.0.1-rocm5.5.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/05-install-container-torch2.0.1-rocm5.5.1.sh)
-  * [05-install-container-torch2.1.0-rocm5.6.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/install/05-install-container-torch2.1.0-rocm5.6.1.sh)
-
-## PyTorch Tests
-
-### Run Interactive Job on Single Node
-
-```console
-salloc -A project_XXX --partition=standard-g -N 1 -n 1 --gpus 8 -t 01:00:00
-```
-
-### Scripts
-
-* natively
-  * [01-simple-test-direct-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/01-simple-test-direct-torch1.13.1-rocm5.2.3.sh)
-  * [01-simple-test-direct-torch2.1.2-rocm5.5.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/01-simple-test-direct-torch2.1.2-rocm5.5.3.sh)
-* virtual env
-  * [02-simple-test-venv-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/02-simple-test-venv-torch1.13.1-rocm5.2.3.sh)
-  * [02-simple-test-venv-torch2.1.2-rocm5.5.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/02-simple-test-venv-torch2.1.2-rocm5.5.3.sh)
-* conda env
-  * [03-simple-test-conda-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/03-simple-test-conda-torch1.13.1-rocm5.2.3.sh)
-  * [03-simple-test-conda-torch2.1.2-rocm5.5.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/03-simple-test-conda-torch2.1.2-rocm5.5.3.sh)
-  * from source: [04-simple-test-source-torch1.13.1-rocm5.2.3.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/04-simple-test-source-torch1.13.1-rocm5.2.3.sh)
-* containers (singularity)
-  * [05-simple-test-container-torch2.0.1-rocm5.5.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/05-simple-test-container-torch2.0.1-rocm5.5.1.sh)
-  * [05-simple-test-container-torch2.1.0-rocm5.6.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/05-simple-test-container-torch2.1.0-rocm5.6.1.sh)
-
-### Run Interactive Job on Multiple Nodes
-
-```
-salloc -A project_XXX --partition=standard-g -N 2 -n 16 --gpus 16 -t 01:00:00
-```
-
-### Scripts
-
-* containers (singularity)
-  * [07-mnist-distributed-learning-container-torch2.0.1-rocm5.5.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/07-mnist-distributed-learning-container-torch2.0.1-rocm5.5.1.sh)
-  * [07-mnist-distributed-learning-container-torch2.1.0-rocm5.6.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/07-mnist-distributed-learning-container-torch2.1.0-rocm5.6.1.sh)
-  * [08-cnn-distributed-container-torch2.0.1-rocm5.5.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/08-cnn-distributed-container-torch2.0.1-rocm5.5.1.sh)
-  * [08-cnn-distributed-container-torch2.1.0-rocm5.6.1.sh](https://code.it4i.cz/lumi-g/pytorch/-/blob/main/scripts/tests/08-cnn-distributed-container-torch2.1.0-rocm5.6.1.sh)
-
-## Tips
-
-### Official Containers
-
-```
-ls -la /appl/local/containers/easybuild-sif-images/
-```
-
-### Unofficial Versions of ROCM
-
-```
-module use /pfs/lustrep2/projappl/project_462000125/samantao-public/mymodules
-ml rocm/5.4.3
-ml rocm/5.6.0
-```
-
-### Unofficial Containers
-
-```
-ls -la /pfs/lustrep2/projappl/project_462000125/samantao-public/containers/
-```
-
-### Installing Python Modules in Containers
-
-```console
-#!/bin/bash
-
-wd=$(pwd)
-SIF=/pfs/lustrep2/projappl/project_462000125/samantao-public/containers/lumi-pytorch-rocm-5.6.1-python-3.10-pytorch-v2.1.0-dockerhash-aa8dbea5e0e4.sif
-
-rm -rf $wd/setup-me.sh
-cat > $wd/setup-me.sh << EOF
-#!/bin/bash -e
-
-\$WITH_CONDA
-pip3 install scipy h5py tqdm
-EOF
-chmod +x $wd/setup-me.sh
-
-mkdir -p $wd/pip_install
-
-srun -n 1 --gpus 8 singularity exec \
--B /var/spool/slurmd:/var/spool/slurmd \
--B /opt/cray:/opt/cray \
--B /usr/lib64/libcxi.so.1:/usr/lib64/libcxi.so.1 \
--B $wd:/workdir \
--B $wd/pip_install:$HOME/.local/lib \
-$SIF /workdir/setup-me.sh
-
-# Add the path of pip_install to singularity-exec in run.sh:
-# -B $wd/pip_install:$HOME/.local/lib \
-```
-
-### Controlling Device Visibility
-
-* `HIP_VISIBLE_DEVICES=0,1,2,3 python -c 'import torch; print(torch.cuda.device_count())'`
-* `ROCR_VISIBLE_DEVICES=0,1,2,3 python -c 'import torch; print(torch.cuda.device_count())'`
-* SLURM sets `ROCR_VISIBLE_DEVICES`
-* Implications of both ways of setting visibility – blit kernels and/or DMA
-
-### RCCL
-
-* The problem – on startup we can see:
-  * `NCCL error in: /pfs/lustrep2/projappl/project_462000125/samantao/pytorchexample/pytorch/torch/csrc/distributed/c10d/ProcessGroupNCCL.cpp:1269, unhandled system error, NCCL version 2.12.12`
-* Checking error origin:
-  * `export NCCL_DEBUG=INFO`
-  * `NCCL INFO NET/Socket : Using [0]nmn0:10.120.116.65<0> [1]hsn0:10.253.6.67<0> [2]hsn1:10.253.6.68<0>[3]hsn2:10.253.2.12<0> [4]hsn3:10.253.2.11<0>`
-  * `NCCL INFO /long_pathname_so_that_rpms_can_package_the_debug_info/data/driver/rccl/src/init.cc:1292`
-* The fix:
-  * `export NCCL_SOCKET_IFNAME=hsn0,hsn1,hsn2,hsn3`
-
-### RCCL AWS-CXI Plugin
-
-* RCCL relies on runtime plugin-ins to connect with some transport layers
-  * Libfabric – provider for Slingshot
-* Hipified plugin adapted from AWS OpenFabrics support available
-* [https://github.com/ROCmSoftwarePlatform/aws-ofi-rccl][7]
-* 3-4x faster collectives
-* Plugin needs to be pointed at by the loading environment
-
-```console
-module use /pfs/lustrep2/projappl/project_462000125/samantao-public/mymodules
-module load aws-ofi-rccl/rocm-5.2.3.lua
-# Or
-export LD_LIBRARY_PATH=/pfs/lustrep2/projappl/project_462000125/samantao-public/apps-rocm-5.2.3/aws-ofirccl
-# (will detect librccl-net.so)
-```
-
-* Verify the plugin is detected
-
-```console
-export NCCL_DEBUG=INFO
-export NCCL_DEBUG_SUBSYS=INIT
-# and search the logs for:
-# [0] NCCL INFO NET/OFI Using aws-ofi-rccl 1.4.0
-```
-
-### amdgpu.ids Issue
-
-[https://github.com/pytorch/builder/issues/1410][4]
-
-## References
-
-* Samuel Antao (AMD), LUMI Courses
-  * [https://lumi-supercomputer.github.io/LUMI-training-materials/4day-20230530/extra_4_10_Best_Practices_GPU_Optimization/][5]
-  * [https://lumi-supercomputer.github.io/LUMI-training-materials/4day-20231003/extra_4_10_Best_Practices_GPU_Optimization/][6]
-
-* Multi-GPU and multi-node machine learning by CSC
-  * [https://docs.csc.fi/support/tutorials/ml-multi/][11]
-
-[1]: https://pytorch.org/
-[2]: https://github.com/pytorch/pytorch
-[3]: https://lumi-supercomputer.github.io/LUMI-EasyBuild-docs/p/PyTorch/
-[4]: https://github.com/pytorch/builder/issues/1410
-[5]: https://lumi-supercomputer.github.io/LUMI-training-materials/4day-20230530/extra_4_10_Best_Practices_GPU_Optimization/
-[6]: https://lumi-supercomputer.github.io/LUMI-training-materials/4day-20231003/extra_4_10_Best_Practices_GPU_Optimization/
-[7]: https://github.com/ROCmSoftwarePlatform/aws-ofi-rccl
-[8]: https://docs.csc.fi/support/tutorials/ml-multi
-[9]: https://docs.lumi-supercomputer.eu/software/local/csc/
-[10]: https://docs.csc.fi/apps/pytorch/
-[11]: https://docs.csc.fi/support/tutorials/ml-multi/
diff --git a/content/docs/lumi/software.mdx b/content/docs/lumi/software.mdx
deleted file mode 100644
index 91967cb4d4dc398b2bee3f250808120ad53d3646..0000000000000000000000000000000000000000
--- a/content/docs/lumi/software.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: "LUMI Software"
----
-Below are links to LUMI guides for selected [LUMI Software modules][1]:
-
-## PyTorch
-
-[PyTorch][8] is an optimized tensor library for deep learning using GPUs and CPUs.
-
-### Comprehensive Guide on PyTorch
-
-See the [PyTorch][a] subsection for guides on how to install PyTorch and run interactive jobs.
-
-### How to Run PyTorch on Lumi-G AMD GPU Accelerators
-
-Link to LUMI guide on how to run PyTorch on LUMI GPUs:
-
-[https://docs.lumi-supercomputer.eu/software/packages/pytorch/][2]
-
-## How to Run Gromacs on Lumi-G AMD GPU Accelerators
-
-Gromacs is a very efficient engine to perform molecular dynamics simulations
-and energy minimizations particularly for proteins.
-However, it can also be used to model polymers, membranes and e.g. coarse grained systems.
-It also comes with plenty of analysis scripts.
-
-[https://docs.csc.fi/apps/gromacs/#example-batch-script-for-lumi-full-gpu-node][3]
-
-## AMD Infinity Hub
-
-The AMD Infinity Hub contains a collection of advanced software containers and deployment guides for HPC and AI applications,
-including code built recipes for code customization.
-
-[https://www.amd.com/fr/developer/resources/infinity-hub.html][4]
-
-## GPU-Accelerated Applications With AMD INSTINCT™ Accelerators Enabled by AMD ROCm™
-
-The AMD Infinity Hub contains a collection of advanced software containers
-and deployment guides for HPC and AI applications,
-enabling researchers, scientists, and engineers to speed up their time to science.
-
-[https://www.amd.com/system/files/documents/gpu-accelerated-applications-catalog.pdf][5]
-
-## CSC Installed Software
-
-The link below contains a list of codes enabled by CSC
-and available for all, including PyTorch, TensorFlow, JAX, GROMACS, and others.
-
-[https://docs.lumi-supercomputer.eu/software/local/csc/][6]
-
-## Installation of SW via Conda
-
-Conda is an open-source, cross-platform,language-agnostic package manager and environment management system.
-
-[https://docs.lumi-supercomputer.eu/software/installing/container-wrapper/][7]
-
-[1]: https://lumi-supercomputer.github.io/LUMI-EasyBuild-docs/
-[2]: https://docs.lumi-supercomputer.eu/software/packages/pytorch/
-[3]: https://docs.csc.fi/apps/gromacs/#example-batch-script-for-lumi-full-gpu-node
-[4]: https://www.amd.com/fr/developer/resources/infinity-hub.html
-[5]: https://www.amd.com/system/files/documents/gpu-accelerated-applications-catalog.pdf
-[6]: https://docs.lumi-supercomputer.eu/software/local/csc/
-[7]: https://docs.lumi-supercomputer.eu/software/installing/container-wrapper/
-[8]: https://pytorch.org/docs/stable/index.html
-
-[a]: pytorch.md
diff --git a/content/docs/lumi/support.mdx b/content/docs/lumi/support.mdx
deleted file mode 100644
index 896636b7c6098e8e35f29998f2f4adb9d6b5fd19..0000000000000000000000000000000000000000
--- a/content/docs/lumi/support.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: "LUMI Support"
----
-You can use the [LUMI support portal][5] for help and support regarding the cluster and SW technology at LUMI.
-
-Czech national support for LUMI is provided by Jan Vicherek (contact: [support\[at\]it4i.cz][a]).
-
-Additionally, LUMI organizes number of events and training, the list of which can be found at:
-
-[https://lumi-supercomputer.eu/events/][1]
-
-## LUMI User Coffee Breaks
-
-These are LUMI User Support Team’s online meetings
-which you can join even if you are not yet LUMI user.
-
-[https://lumi-supercomputer.eu/lumi-user-coffee-breaks/][2]
-
-You can submit questions for the session using HedgeDoc.
-
-Zoom link for the meeting can be found at:
-
-[https://www.lumi-supercomputer.eu/events/usercoffeebreaks/][3]
-
-## Overview
-
-The overview of LUMI's events and trainings can be found at:
-
-[https://lumi-supercomputer.github.io/LUMI-training-materials/][4]
-
-[1]: https://lumi-supercomputer.eu/events/
-[2]: https://lumi-supercomputer.eu/lumi-user-coffee-breaks/
-[3]: https://www.lumi-supercomputer.eu/events/usercoffeebreaks/
-[4]: https://lumi-supercomputer.github.io/LUMI-training-materials/
-[5]: https://lumi-supercomputer.eu/user-support/need-help/
-
-[a]: mailto:support@it4i.cz
diff --git a/content/docs/meta.json b/content/docs/meta.json
deleted file mode 100644
index 688d7dec05d81114e6854f2fc55e488502f4ba10..0000000000000000000000000000000000000000
--- a/content/docs/meta.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "title": "Docs",
-  "pages": [
-    "anselm",
-    "apiv1",
-    "archive",
-    "barbora",
-    "cloud",
-    "cs",
-    "dgx2",
-    "dice",
-    "einfracz-migration",
-    "environment-and-modules",
-    "general",
-    "index",
-    "job-features",
-    "karolina",
-    "lumi",
-    "prace",
-    "salomon",
-    "software",
-    "src",
-    "storage"
-  ]
-}
diff --git a/content/docs/prace.mdx b/content/docs/prace.mdx
deleted file mode 100644
index 3c4dc79f0b9ffbd335934cb1da8cbe5b608210a6..0000000000000000000000000000000000000000
--- a/content/docs/prace.mdx
+++ /dev/null
@@ -1,303 +0,0 @@
----
-title: "PRACE User Support"
----
-## Introduction
-
-PRACE users coming to the TIER-1 systems offered through the DECI calls are, in general, treated as standard users, so most of the general documentation applies to them as well. This section shows the main differences for quicker orientation, but often uses references to the original documentation. PRACE users who do not undergo the full procedure (including signing the IT4I AuP on top of the PRACE AuP) will not have a password and thus an access to some services intended for regular users. However, even with the limited access, they should be able to use the TIER-1 system as intended. If the same level of access is required, see the [Obtaining Login Credentials][1] section.
-
-All general [PRACE User Documentation][a] should be read before continuing reading the local documentation here.
-
-## Help and Support
-
-If you need any information, request support, or want to install additional software, use PRACE Helpdesk.
-
-Information about the local services are provided in the [introduction of general user documentation Salomon][2] and [introduction of general user documentation Barbora][3]. Keep in mind, that standard PRACE accounts don't have a password to access the web interface of the local (IT4Innovations) request tracker and thus a new ticket should be created by sending an email to support[at]it4i.cz.
-
-## Obtaining Login Credentials
-
-In general, PRACE users already have a PRACE account set up through their HOMESITE (institution from their country) as a result of a rewarded PRACE project proposal. This includes signed PRACE AuP, generated and registered certificates, etc.
-
-If there is a special need, a PRACE user can get a standard (local) account at IT4Innovations. To get an account on a cluster, the user needs to obtain the login credentials. The procedure is the same as for general users of the cluster, see the corresponding [section of the general documentation here][1].
-
-## Accessing the Cluster
-
-### Access With GSI-SSH
-
-For all PRACE users, the method for interactive access (login) and data transfer based on grid services from Globus Toolkit (GSI SSH and GridFTP) is supported.
-
-The user will need a valid certificate and to be present in the PRACE LDAP (contact your HOME SITE or the Primary Investigator of your project for LDAP account creation).
-
-For more information, see [PRACE FAQ][b]
-
-Before you start using any of the services, do not forget to create a proxy certificate from your certificate:
-
-```console
-$ grid-proxy-init
-```
-
-To check whether your proxy certificate is still valid (12 hours by default), use:
-
-```console
-$ grid-proxy-info
-```
-
-To access the cluster, several login nodes running the GSI SSH service are available. The service is available from public Internet as well as from the internal PRACE network (accessible only from other PRACE partners).
-
-#### Access From PRACE Network:
-
-It is recommended to use the single DNS name **name-cluster**-prace.it4i.cz which is distributed between the four login nodes. If needed, the user can log in directly to one of the login nodes. The addresses are:
-
-Salomon cluster:
-
-| Login address                | Port | Protocol | Login node                       |
-| ---------------------------- | ---- | -------- | -------------------------------- |
-| salomon-prace.it4i.cz        | 2222 | gsissh   | login1, login2, login3 or login4 |
-| login1-prace.salomon.it4i.cz | 2222 | gsissh   | login1                           |
-| login2-prace.salomon.it4i.cz | 2222 | gsissh   | login2                           |
-| login3-prace.salomon.it4i.cz | 2222 | gsissh   | login3                           |
-| login4-prace.salomon.it4i.cz | 2222 | gsissh   | login4                           |
-
-```console
-$ gsissh -p 2222 salomon-prace.it4i.cz
-```
-
-When logging from other PRACE system, the prace_service script can be used:
-
-```console
-$ gsissh `prace_service -i -s salomon`
-```
-
-#### Access From Public Internet:
-
-It is recommended to use the single DNS name **name-cluster**.it4i.cz which is distributed between the four login nodes. If needed, the user can login directly to one of the login nodes. The addresses are:
-
-Salomon cluster:
-
-| Login address                | Port | Protocol | Login node                       |
-| ---------------------------- | ---- | -------- | -------------------------------- |
-| salomon.it4i.cz              | 2222 | gsissh   | login1, login2, login3 or login4 |
-| login1.salomon.it4i.cz       | 2222 | gsissh   | login1                           |
-| login2-prace.salomon.it4i.cz | 2222 | gsissh   | login2                           |
-| login3-prace.salomon.it4i.cz | 2222 | gsissh   | login3                           |
-| login4-prace.salomon.it4i.cz | 2222 | gsissh   | login4                           |
-
-```console
-$ gsissh -p 2222 salomon.it4i.cz
-```
-
-When logging from other PRACE system, the prace_service script can be used:
-
-```console
-$ gsissh `prace_service -e -s salomon`
-```
-
-Although the preferred and recommended file transfer mechanism is [using GridFTP][5], the GSI SSH implementation also supports SCP, so for small files transfer, gsiscp can be used:
-
-```console
-$ gsiscp -P 2222 _LOCAL_PATH_TO_YOUR_FILE_ salomon.it4i.cz:_SALOMON_PATH_TO_YOUR_FILE_
-$ gsiscp -P 2222 salomon.it4i.cz:_SALOMON_PATH_TO_YOUR_FILE_ _LOCAL_PATH_TO_YOUR_FILE_
-$ gsiscp -P 2222 _LOCAL_PATH_TO_YOUR_FILE_ salomon-prace.it4i.cz:_SALOMON_PATH_TO_YOUR_FILE_
-$ gsiscp -P 2222 salomon-prace.it4i.cz:_SALOMON_PATH_TO_YOUR_FILE_ _LOCAL_PATH_TO_YOUR_FILE_
-```
-
-### Access to X11 Applications (VNC)
-
-If the user needs to run X11 based graphical application and does not have a X11 server, the applications can be run using VNC service. If the user is using a regular SSH based access, see this [section in general documentation][6].
-
-If the user uses a GSI SSH based access, then the procedure is similar to the [SSH based access][6], only the port forwarding must be done using GSI SSH:
-
-```console
-$ gsissh -p 2222 salomon.it4i.cz -L 5961:localhost:5961
-```
-
-### Access With SSH
-
-After they successfully obtain the login credentials for the local IT4Innovations account, the PRACE users can access the cluster as regular users using SSH. For more information, see this [section in general documentation][9].
-
-## File Transfers
-
-PRACE users can use the same transfer mechanisms as regular users (if they have undergone the full registration procedure). For more information, see the [Accessing the Clusters][9] section.
-
-Apart from the standard mechanisms, for PRACE users to transfer data to/from the Salomon cluster, a GridFTP server running the Globus Toolkit GridFTP service is available. The service is available from public Internet as well as from the internal PRACE network (accessible only from other PRACE partners).
-
-There is one control server and three backend servers for striping and/or backup in case one of them would fail.
-
-### Access From PRACE Network
-
-Salomon cluster:
-
-| Login address                 | Port | Node role                   |
-| ----------------------------- | ---- | --------------------------- |
-| gridftp-prace.salomon.it4i.cz | 2812 | Front end /control server   |
-| lgw1-prace.salomon.it4i.cz    | 2813 | Backend / data mover server |
-| lgw2-prace.salomon.it4i.cz    | 2813 | Backend / data mover server |
-| lgw3-prace.salomon.it4i.cz    | 2813 | Backend / data mover server |
-
-Copy files **to** Salomon by running the following commands on your local machine:
-
-```console
-$ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://gridftp-prace.salomon.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_
-```
-
-Or by using prace_service script:
-
-```console
-$ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://`prace_service -i -f salomon`/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_
-```
-
-Copy files **from** Salomon:
-
-```console
-$ globus-url-copy gsiftp://gridftp-prace.salomon.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_
-```
-
-Or by using the prace_service script:
-
-```console
-$ globus-url-copy gsiftp://`prace_service -i -f salomon`/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_
-```
-
-### Access From Public Internet
-
-Salomon cluster:
-
-| Login address           | Port | Node role                   |
-| ----------------------- | ---- | --------------------------- |
-| gridftp.salomon.it4i.cz | 2812 | Front end /control server   |
-| lgw1.salomon.it4i.cz    | 2813 | Backend / data mover server |
-| lgw2.salomon.it4i.cz    | 2813 | Backend / data mover server |
-| lgw3.salomon.it4i.cz    | 2813 | Backend / data mover server |
-
-Copy files **to** Salomon by running the following commands on your local machine:
-
-```console
-$ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://gridftp.salomon.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_
-```
-
-Or by using the prace_service script:
-
-```console
-$ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://`prace_service -e -f salomon`/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_
-```
-
-Copy files **from** Salomon:
-
-```console
-$ globus-url-copy gsiftp://gridftp.salomon.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_
-```
-
-Or by using the prace_service script:
-
-```console
-$ globus-url-copy gsiftp://`prace_service -e -f salomon`/home/prace/_YOUR_ACCOUNT_ON_SALOMON_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_
-```
-
-Generally, both shared file systems are available through GridFTP:
-
-| File system mount point | Filesystem | Comment                                                        |
-| ----------------------- | ---------- | -------------------------------------------------------------- |
-| /home                   | Lustre     | Default HOME directories of users in format /home/prace/login/ |
-| /scratch                | Lustre     | Shared SCRATCH mounted on the whole cluster                    |
-
-More information about the shared file systems on Salomon is available [here][10].
-
-<Callout>
-    The `prace` directory is used for PRACE users on the SCRATCH file system.
-</Callout>
-
-Salomon cluster /scratch:
-
-| Data type                    | Default path                    |
-| ---------------------------- | ------------------------------- |
-| large project files          | /scratch/work/user/prace/login/ |
-| large scratch/temporary data | /scratch/temp/                  |
-
-## Usage of the Cluster
-
-There are some limitations for PRACE users when using the cluster. By default, PRACE users are not allowed to access special queues in the PBS Pro to have high priority or exclusive access to some special equipment like accelerated nodes and high memory (fat) nodes. There may also be restrictions on obtaining a working license for the commercial software installed on the cluster, mostly because of the license agreement or because of insufficient amount of licenses.
-
-For production runs, always use scratch file systems. The available file systems on Salomon is described [here][10].
-
-### Software, Modules and PRACE Common Production Environment
-
-All system-wide installed software on the cluster is made available to the users via the modules. For more information about the environment and modules usage, see the [Environment and Modules][12] section.
-
-PRACE users can use the "prace" module for PRACE Common Production Environment.
-
-```console
-$ ml prace
-```
-
-### Resource Allocation and Job Execution
-
-For general information about the resource allocation, job queuing, and job execution, see [Resources Allocation Policy][13].
-
-For PRACE users, the default production run queue is "qprod", the same queue as for the national users of IT4I. Previously the "qprace" was the default queue for PRACE users, but since it gradually became identical with the "qprod" queue, it has been retired. For legacy reasons, the "qprace" queue is enabled on systems where it was the default one, but is not available on current and future systems. PRACE users can also use two other queues "qexp" and "qfree".
-
-Salomon:
-
-| queue                              | Active project | Project resources | Nodes                      | priority | authorization | walltime  |
-| ---------------------------------- | -------------- | ----------------- | -------------------------- | -------- | ------------- | --------- |
-| **qexp** Express queue             | no             | none required     | 32 nodes, max 8 per user   | 150      | no            | 1 / 1 h       |
-| **qprod** Production queue         | yes            | >0                | 1006 nodes, max 86 per job | 0        | no            | 24 / 48 h      |
-| **qfree** Free resource queue      | yes            | none required     | 752 nodes, max 86 per job  | -1024    | no            | 12 / 12 h      |
-| **qprace** Legacy production queue | yes            | >0                | 1006 nodes, max 86 per job | 0        | no            | 24 / 48 h      |
-
-### Accounting & Quota
-
-The resources that are currently subject to accounting are the core hours. The core hours are accounted on the wall clock basis. The accounting runs whenever the computational cores are allocated or blocked via the PBS Pro workload manager (the qsub command), regardless of whether the cores are actually used for any calculation. See the [example in the general documentation][13].
-
-PRACE users should check their project accounting using the PRACE Accounting Tool (DART).
-
-Users who have undergone the full local registration procedure (including signing the IT4Innovations Acceptable Use Policy) and who have received a local password may check at any time, how many core-hours they and their projects have consumed using the command "it4ifree". Note that you need to know your user password to use the command and that the displayed core hours are "system core hours" which differ from PRACE "standardized core hours".
-
-<Callout>
-    The **it4ifree** command is a part of it4i.portal.clients package, [located here][pypi].
-</Callout>
-
-```console
-$ it4ifree
-
-Projects I am participating in
-==============================
-PID         Days left      Total    Used WCHs    Used NCHs    WCHs by me    NCHs by me     Free
-----------  -----------  -------  -----------  -----------  ------------  ------------  -------
-OPEN-XX-XX  323                0      5169947      5169947         50001         50001  1292555
-
-
-Projects I am Primarily Investigating
-=====================================
-PID        Login         Used WCHs    Used NCHs
----------- ----------  -----------  -----------
-OPEN-XX-XX user1            376670       376670
-           user2           4793277      4793277
-
-Legend
-======
-WCH   =    Wall-clock Core Hour
-NCH   =    Normalized Core Hour
-```
-
-By default, a file system quota is applied. To check the current status of the quota (separate for HOME and SCRATCH), use:
-
-```console
-$ quota
-$ lfs quota -u USER_LOGIN /scratch
-```
-
-If the quota is insufficient, contact the [support][15] and request an increase.
-
-[1]: general/obtaining-login-credentials/obtaining-login-credentials.md
-[2]: salomon/introduction.md
-[3]: barbora/introduction.md
-[5]: #file-transfers
-[6]: general/accessing-the-clusters/graphical-user-interface/x-window-system.md
-[9]: general/shell-and-data-access.md
-[10]: salomon/storage.md
-[12]: environment-and-modules.md
-[13]: general/resources-allocation-policy.md
-[15]: #help-and-support
-
-[a]: https://prace-ri.eu/training-support/
-[b]: https://prace-ri.eu/about/faqs/
-[pypi]: https://pypi.python.org/pypi/it4i.portal.clients
diff --git a/content/docs/salomon/7d-enhanced-hypercube.mdx b/content/docs/salomon/7d-enhanced-hypercube.mdx
deleted file mode 100644
index 5ba3b1cf3c071345de03277413287e3361cfbe93..0000000000000000000000000000000000000000
--- a/content/docs/salomon/7d-enhanced-hypercube.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "7D Enhanced Hypercube"
----
-![](/it4i/img/7D_Enhanced_hypercube.png)
-
-| Node type                            | Count | Short name       | Long name                | Rack  |
-| ------------------------------------ | ----- | ---------------- | ------------------------ | ----- |
-| M-Cell compute nodes w/o accelerator | 576   | cns1 -cns576     | r1i0n0 - r4i7n17         | 1-4   |
-| compute nodes MIC accelerated        | 432   | cns577 - cns1008 | r21u01n577 - r37u31n1008 | 21-38 |
-
-## IB Topology
-
-![](/it4i/img/Salomon_IB_topology.png)
diff --git a/content/docs/salomon/compute-nodes.mdx b/content/docs/salomon/compute-nodes.mdx
deleted file mode 100644
index be6e8821c045bde028e70af85a51cc465e6b8874..0000000000000000000000000000000000000000
--- a/content/docs/salomon/compute-nodes.mdx
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: "Compute Nodes"
----
-## Nodes Configuration
-
-Salomon is cluster of x86-64 Intel-based nodes. The cluster contains two types of compute nodes of the same processor type and memory size.
-Compute nodes with MIC accelerator **contain two Intel Xeon Phi 7120P accelerators.**
-
-[More about][1] schematic representation of the Salomon cluster compute nodes IB topology.
-
-### Compute Nodes Without Accelerator
-
-* codename "grafton"
-* 576 nodes
-* 13 824 cores in total
-* two Intel Xeon E5-2680v3, 12-core, 2.5 GHz processors per node
-* 128 GB of physical memory per node
-
-![cn_m_cell](/it4i/img/cn_m_cell.jpg)
-
-### Compute Nodes With MIC Accelerator
-
-* codename "perrin"
-* 432 nodes
-* 10 368 cores in total
-* two Intel Xeon E5-2680v3, 12-core, 2.5 GHz processors per node
-* 128 GB of physical memory per node
-* MIC accelerator 2 x Intel Xeon Phi 7120P per node, 61-cores, 16 GB per accelerator
-
-![cn_mic](/it4i/img/cn_mic-1.jpg)
-
-![(/it4i/img/sgi-c1104-gp1.jpeg)
-
-![cn_mic](/it4i/img/cn_mic.jpg)
-
-### Uv 2000
-
-* codename "UV2000"
-* 1 node
-* 112 cores in total
-* 14 x Intel Xeon E5-4627v2, 8-core, 3.3 GHz processors, in 14 NUMA nodes
-* 3328 GB of physical memory per node
-* 1 x NVIDIA GM200 (GeForce GTX TITAN X), 12 GB RAM
-
-![](/it4i/img/uv-2000.jpeg)
-
-### Compute Nodes Summary
-
-| Node type                  | Count | Memory            | Cores                               |
-| -------------------------- | ----- | ----------------- | ----------------------------------- |
-| Nodes without accelerator  | 576   | 128 GB            | 24 @ 2.5GHz                         |
-| Nodes with MIC accelerator | 432   | 128 GB, MIC 32GB  | 24 @ 2.5GHz, MIC 61 @ 1.238 GHz     |
-| UV2000 SMP node            | 1     | 3328GB            | 112 @ 3.3GHz                        |
-
-## Processor Architecture
-
-Salomon is equipped with Intel Xeon processors Intel Xeon E5-2680v3. Processors support Advanced Vector Extensions 2.0 (AVX2) 256-bit instruction set.
-
-### Intel Xeon E5-2680v3 Processor
-
-* 12-core
-* speed: 2.5 GHz, up to 3.3 GHz using Turbo Boost Technology
-* peak performance:  40 GFLOP/s per core @ 2.5 GHz
-* caches:
-  * Intel® Smart Cache:  30 MB
-* memory bandwidth at the level of the processor: 68 GB/s
-
-### MIC Accelerator Intel Xeon Phi 7120P Processor
-
-* 61-core
-* speed:  1.238
-    GHz, up to 1.333 GHz using Turbo Boost Technology
-* peak performance:  18.4 GFLOP/s per core
-* caches:
-  * L2:  30.5 MB
-* memory bandwidth at the level of the processor:  352 GB/s
-
-## Memory Architecture
-
-Memory is equally distributed across all CPUs and cores for optimal performance. Memory is composed of memory modules of the same size and evenly distributed across all memory controllers and memory channels.
-
-### Compute Node Without Accelerator
-
-* 2 sockets
-* Memory Controllers are integrated into processors.
-  * 8 DDR4 DIMMs per node
-  * 4 DDR4 DIMMs per CPU
-  * 1 DDR4 DIMMs per channel
-* Populated memory: 8 x 16 GB DDR4 DIMM >2133 MHz
-
-### Compute Node With MIC Accelerator
-
-2 sockets
-Memory Controllers are integrated into processors.
-
-* 8 DDR4 DIMMs per node
-* 4 DDR4 DIMMs per CPU
-* 1 DDR4 DIMMs per channel
-
-Populated memory: 8 x 16 GB DDR4 DIMM 2133 MHz
-MIC Accelerator Intel Xeon Phi 7120P Processor
-
-* 2 sockets
-* Memory Controllers are connected via an
-    Interprocessor Network (IPN) ring.
-  * 16 GDDR5 DIMMs per node
-  * 8 GDDR5 DIMMs per CPU
-  * 2 GDDR5 DIMMs per channel
-
-[1]: ib-single-plane-topology.md
diff --git a/content/docs/salomon/hardware-overview.mdx b/content/docs/salomon/hardware-overview.mdx
deleted file mode 100644
index 689886824f1eb217f827afbc4f7e75feb61ef131..0000000000000000000000000000000000000000
--- a/content/docs/salomon/hardware-overview.mdx
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: "Hardware Overview"
----
-## Introduction
-
-The Salomon cluster consists of 1008 computational nodes of which 576 are regular compute nodes and 432 accelerated nodes. Each node is a powerful x86-64 computer equipped with 24 cores (two twelve-core Intel Xeon processors) and 128 GB RAM. The nodes are interlinked by high speed InfiniBand and Ethernet networks. All nodes share 0.5 PB /home NFS disk storage to store the user files. Users may use a DDN Lustre shared storage with capacity of 1.69 PB which is available for the scratch project data. User access to the Salomon cluster is provided by four login nodes.
-
-[More about][1] schematic representation of the Salomon cluster compute nodes IB topology.
-
-![Salomon](/it4i/img/salomon-2.jpg)
-
-The parameters are summarized in the following tables:
-
-## General Information
-
-| **In general**                              |                                             |
-| ------------------------------------------- | ------------------------------------------- |
-| Primary purpose                             | High Performance Computing                  |
-| Architecture of compute nodes               | x86-64                                      |
-| Operating system                            | CentOS 7.x Linux                            |
-| [**Compute nodes**][2]                      |                                             |
-| Totally                                     | 1008                                        |
-| Processor                                   | 2 x Intel Xeon E5-2680v3, 2.5 GHz, 12 cores |
-| RAM                                         | 128GB, 5.3 GB per core, DDR4@2133 MHz       |
-| Local disk drive                            | no                                          |
-| Compute network / Topology                  | InfiniBand FDR56 / 7D Enhanced hypercube    |
-| w/o accelerator                             | 576                                         |
-| MIC accelerated                             | 432                                         |
-| **In total**                                |                                             |
-| Total theoretical peak performance  (Rpeak) | 2011 TFLOP/s                                |
-| Total amount of RAM                         | 129.024 TB                                  |
-
-## Compute Nodes
-
-| Node            | Count | Processor                         | Cores | Memory | Accelerator                                   |
-| --------------- | ----- | --------------------------------- | ----- | ------ | --------------------------------------------- |
-| w/o accelerator | 576   | 2 x Intel Xeon E5-2680v3, 2.5 GHz | 24    | 128 GB | -                                             |
-| MIC accelerated | 432   | 2 x Intel Xeon E5-2680v3, 2.5 GHz | 24    | 128 GB | 2 x Intel Xeon Phi 7120P, 61 cores, 16 GB RAM |
-
-For more details, refer to the [Compute nodes][2] section.
-
-## Remote Visualization Nodes
-
-For remote visualization, two nodes with NICE DCV software are available each configured:
-
-| Node          | Count | Processor                         | Cores | Memory | GPU Accelerator               |
-| ------------- | ----- | --------------------------------- | ----- | ------ | ----------------------------- |
-| visualization | 2     | 2 x Intel Xeon E5-2695v3, 2.3 GHz | 28    | 512 GB | NVIDIA QUADRO K5000, 4 GB RAM |
-
-## SGI Uv 2000
-
-For large memory computations, a special SMP/NUMA SGI UV 2000 server is available:
-
-| Node   | Count | Processor                                   | Cores | Memory                | Extra HW                                                                 |
-| ------ | ----- | ------------------------------------------- | ----- | --------------------- | ------------------------------------------------------------------------ |
-| UV2000 | 1     | 14 x Intel Xeon E5-4627v2, 3.3 GHz, 8 cores | 112   | 3328 GB DDR3@1866 MHz | 2 x 400GB local SSD, 1x NVIDIA GM200 (GeForce GTX TITAN X), 12 GB RAM |
-
-![](/it4i/img/uv-2000.jpeg)
-
-[1]: ib-single-plane-topology.md
-[2]: compute-nodes.md
diff --git a/content/docs/salomon/ib-single-plane-topology.mdx b/content/docs/salomon/ib-single-plane-topology.mdx
deleted file mode 100644
index 0ce946535d31f4db32d3666299701ccecac6d364..0000000000000000000000000000000000000000
--- a/content/docs/salomon/ib-single-plane-topology.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: "IB Single-Plane Topology"
----
-A complete M-Cell assembly consists of four compute racks. Each rack contains 4 physical IRUs - Independent rack units. Using one dual socket node per one blade slot leads to 8 logical IRUs. Each rack contains 4 x 2 SGI ICE X IB Premium Blades.
-
-The SGI ICE X IB Premium Blade provides the first level of interconnection via dual 36-port Mellanox FDR InfiniBand ASIC switch with connections as follows:
-
-* 9 ports from each switch chip connect to the unified backplane, to connect the 18 compute node slots
-* 3 ports on each chip provide connectivity between the chips
-* 24 ports from each switch chip connect to the external bulkhead, for a total of 48
-
-## IB Single-Plane Topology - ICEX M-Cell
-
-Each color in each physical IRU represents one dual-switch ASIC switch.
-
-[IB single-plane topology - ICEX Mcell.pdf][1]
-
-![IB single-plane topology - ICEX Mcell.pdf](/it4i/img/IBsingleplanetopologyICEXMcellsmall.png)
-
-## IB Single-Plane Topology - Accelerated Nodes
-
-Each of the 3 inter-connected D racks is equivalent to one half of the M-Cell rack. 18 x D rack with MIC accelerated nodes [r21-r38] are equivalent to 3 M-Cell racks as shown in the [7D Enhanced Hypercube][2] diagram.
-
-As shown in a diagram [IB Topology][3]
-
-* Racks 21, 22, 23, 24, 25, 26 are equivalent to one M-Cell rack.
-* Racks 27, 28, 29, 30, 31, 32 are equivalent to one M-Cell rack.
-* Racks 33, 34, 35, 36, 37, 38 are equivalent to one M-Cell rack.
-
-[IB single-plane topology - Accelerated nodes.pdf][4]
-
-![IB single-plane topology - Accelerated nodes.pdf](/it4i/img/IBsingleplanetopologyAcceleratednodessmall.png)
-
-[1]: ../src/IB_single-plane_topology_-_ICEX_Mcell.pdf
-[2]: 7d-enhanced-hypercube.md
-[3]: 7d-enhanced-hypercube.md#ib-topology)
-[4]: ../src/IB_single-plane_topology_-_Accelerated_nodes.pdf
diff --git a/content/docs/salomon/introduction.mdx b/content/docs/salomon/introduction.mdx
deleted file mode 100644
index 485f7494c5a6ad1844540562d9c0eabb2f9b30bd..0000000000000000000000000000000000000000
--- a/content/docs/salomon/introduction.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "Introduction"
----
-Welcome to Salomon supercomputer cluster. The Salomon cluster consists of 1009 compute nodes, totaling 24192 compute cores with 129 TB RAM and giving over 2 PFLOP/s theoretical peak performance. Each node is a powerful x86-64 computer equipped with 24 cores and at least 128 GB RAM. Nodes are interconnected through a 7D Enhanced hypercube InfiniBand network and are equipped with Intel Xeon E5-2680v3 processors. The Salomon cluster consists of 576 nodes without accelerators and 432 nodes equipped with Intel Xeon Phi MIC accelerators. Read more in [Hardware Overview][1].
-
-The cluster runs with a [CentOS Linux][a] operating system, which is compatible with the Red Hat [Linux family][b].
-
-## Water-Cooled Compute Nodes With MIC Accelerators
-
-![](/it4i/img/salomon.jpg)
-
-![](/it4i/img/salomon-1.jpeg)
-
-## Tape Library T950B
-
-![](/it4i/img/salomon-3.jpeg)
-
-![](/it4i/img/salomon-4.jpeg)
-
-[1]: hardware-overview.md
-
-[a]: http://www.bull.com/bullx-logiciels/systeme-exploitation.html
-[b]: http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
diff --git a/content/docs/salomon/meta.json b/content/docs/salomon/meta.json
deleted file mode 100644
index c493f1ba023b7cd180214fe856149473182f204e..0000000000000000000000000000000000000000
--- a/content/docs/salomon/meta.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "title": "Salomon",
-  "pages": [
-    "7d-enhanced-hypercube",
-    "compute-nodes",
-    "hardware-overview",
-    "ib-single-plane-topology",
-    "introduction",
-    "network",
-    "software",
-    "storage",
-    "visualization"
-  ]
-}
diff --git a/content/docs/salomon/network.mdx b/content/docs/salomon/network.mdx
deleted file mode 100644
index 88fe79524debaa3057a0160aeb340b5393788967..0000000000000000000000000000000000000000
--- a/content/docs/salomon/network.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Network"
----
-All compute and login nodes of Salomon are interconnected by the 7D Enhanced hypercube [InfiniBand][a] network and by the Gigabit [Ethernet][b] network. Only the [InfiniBand][c] network may be used to transfer user data.
-
-## InfiniBand Network
-
-All compute and login nodes of Salomon are interconnected by the 7D Enhanced hypercube [Infiniband][a] network (56 Gbps). The network topology is a [7D Enhanced hypercube][1].
-
-Read more about schematic representation of the Salomon cluster [IB single-plain topology][2] ([hypercube dimension][1]).
-
-The compute nodes may be accessed via the Infiniband network using the ib0 network interface, in the address range 10.17.0.0 (mask 255.255.224.0). The MPI may be used to establish a native Infiniband connection among the nodes.
-
-The network provides **2170MB/s** transfer rates via the TCP connection (single stream) and up to **3600MB/s** via the native Infiniband protocol.
-
-## Example
-
-```console
-$ qsub -q qexp -l select=4:ncpus=16 -N Name0 ./myjob
-$ qstat -n -u username
-                                                            Req'd Req'd   Elap
-Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time S Time
---------------- -------- --  |---|---| ------ --- --- ------ ----- - -----
-15209.isrv5     username qexp     Name0        5530   4 96    --  01:00 R 00:00
-   r4i1n0/0*24+r4i1n1/0*24+r4i1n2/0*24+r4i1n3/0*24
-```
-
-In this example, we access the node r4i1n0 by Infiniband network via the ib0 interface.
-
-```console
-$ ssh 10.17.35.19
-```
-
-In this example, we get
-information of the Infiniband network.
-
-```console
-$ ifconfig
-....
-inet addr:10.17.35.19....
-....
-
-$ ip addr show ib0
-
-....
-inet 10.17.35.19....
-....
-```
-
-[1]: 7d-enhanced-hypercube.md
-[2]: ib-single-plane-topology.md
-
-[a]: http://en.wikipedia.org/wiki/InfiniBand
-[b]: http://en.wikipedia.org/wiki/Ethernet
-[c]: http://en.wikipedia.org/wiki/InfiniBand
diff --git a/content/docs/salomon/software/meta.json b/content/docs/salomon/software/meta.json
deleted file mode 100644
index 0924f1e6865af32d1e0dd28c085df1db832169bd..0000000000000000000000000000000000000000
--- a/content/docs/salomon/software/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Software",
-  "pages": [
-    "numerical-libraries"
-  ]
-}
diff --git a/content/docs/salomon/software/numerical-libraries/Clp.mdx b/content/docs/salomon/software/numerical-libraries/Clp.mdx
deleted file mode 100644
index 8926e82a6be252fa893ac1860ca8ccd1a431b948..0000000000000000000000000000000000000000
--- a/content/docs/salomon/software/numerical-libraries/Clp.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "CLP"
----
-## Introduction
-
-Clp (Coin-or linear programming) is an open-source linear programming solver written in C++. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available.
-
-Clp ([projects.coin-or.org/Clp][1]) is a part of the COIN-OR (The Computational Infrastracture for Operations Research) project ([projects.coin-or.org/][2]).
-
-## Modules
-
-Clp, version 1.16.10 is available on Salomon via module Clp:
-
-```console
-$ ml Clp
-```
-
-The module sets up environment variables required for linking and running applications using Clp. This particular command loads the default module Clp/1.16.10-intel-2017a, Intel module intel/2017a and other related modules.
-
-## Compiling and Linking
-
-<Callout>
-    Link with -lClp
-</Callout>
-
-Load the Clp module. Link using -lClp switch to link your code against Clp.
-
-```console
-$ ml Clp
-$ icc myprog.c -o myprog.x -Wl,-rpath=$LIBRARY_PATH -lClp
-```
-
-## Example
-
-An example of Clp enabled application follows. In this example, the library solves linear programming problem loaded from file.
-
-```cpp
-#include "coin/ClpSimplex.hpp"
-
-int main (int argc, const char *argv[])
-{
-    ClpSimplex model;
-    int status;
-    if (argc<2)
-        status=model.readMps("/apps/all/Clp/1.16.10-intel-2017a/lib/p0033.mps");
-    else
-        status=model.readMps(argv[1]);
-    if (!status) {
-        model.primal();
-    }
-    return 0;
-}
-```
-
-### Load Modules and Compile:
-
-```console
-ml Clp
-icc lp.c -o lp.x -Wl,-rpath=$LIBRARY_PATH -lClp
-```
-
-In this example, the lp.c code is compiled using the Intel compiler and linked with Clp. To run the code, the Intel module has to be loaded.
-
-[1]: https://projects.coin-or.org/Clp
-[2]: https://projects.coin-or.org/
diff --git a/content/docs/salomon/software/numerical-libraries/meta.json b/content/docs/salomon/software/numerical-libraries/meta.json
deleted file mode 100644
index 3cde8032817e868dc5339a16e23e35fc6b3e20ba..0000000000000000000000000000000000000000
--- a/content/docs/salomon/software/numerical-libraries/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Numerical-libraries",
-  "pages": [
-    "Clp"
-  ]
-}
diff --git a/content/docs/salomon/storage.mdx b/content/docs/salomon/storage.mdx
deleted file mode 100644
index 803a7577d3c5cdb7f50b787308516b1273039adc..0000000000000000000000000000000000000000
--- a/content/docs/salomon/storage.mdx
+++ /dev/null
@@ -1,350 +0,0 @@
----
-title: "Storage"
----
-## Introduction
-
-There are two main shared file systems on Salomon cluster: [HOME][1] and [SCRATCH][2].
-
-All login and compute nodes may access same data on shared file systems. Compute nodes are also equipped with local (non-shared) scratch, ramdisk, and tmp file systems.
-
-## Policy (In a Nutshell)
-
-<Callout>
-    * Use [HOME][1] for your most valuable data and programs.
-    * Use [WORK][3] for your large project files.
-    * Use [TEMP][4] for large scratch data.
-</Callout>
-
-<Callout type=warn>
-    Do not use for [archiving][5]!
-</Callout>
-
-## Archiving
-
-Do not use shared file systems as a backup for large amount of data or long-term archiving mean. The academic staff and students of research institutions in the Czech Republic can use [CESNET storage service][6], which is available via SSHFS.
-
-## Shared File Systems
-
-Salomon computer provides two main shared file systems, the [HOME file system][7] and the [SCRATCH file system][8]. The SCRATCH file system is partitioned to [WORK and TEMP workspaces][9]. The HOME file system is realized as a tiered NFS disk storage. The SCRATCH file system is realized as a parallel Lustre file system. Both shared file systems are accessible via the Infiniband network. Extended ACLs are provided on both HOME/SCRATCH file systems for sharing data with other users using fine-grained control.
-
-### HOME File System
-
-The HOME file system is realized as a Tiered file system, exported via NFS. The first tier has the capacity of 100 TB, second tier has the capacity of 400 TB. The file system is available on all login and computational nodes. The Home file system hosts the [HOME workspace][1].
-
-### SCRATCH File System
-
-The architecture of Lustre on Salomon is composed of two metadata servers (MDS) and six data/object storage servers (OSS). Accessible capacity is 1.69 PB, shared among all users. The SCRATCH file system hosts the [WORK and TEMP workspaces][9].
-
-Configuration of the SCRATCH Lustre storage
-
-* SCRATCH Lustre object storage
-  * Disk array SFA12KX
-  * 540 x 4 TB SAS 7.2krpm disk
-  * 54 x OST of 10 disks in RAID6 (8+2)
-  * 15 x hot-spare disk
-  * 4 x 400 GB SSD cache
-* SCRATCH Lustre metadata storage
-  * Disk array EF3015
-  * 12 x 600 GB SAS 15 krpm disk
-
-### Understanding the Lustre File Systems
-
-A user file on the Lustre file system can be divided into multiple chunks (stripes) and stored across a subset of the object storage targets (OSTs) (disks). The stripes are distributed among the OSTs in a round-robin fashion to ensure load balancing.
-
-When a client (a compute node from your job) needs to create or access a file, the client queries the metadata server (MDS) and the metadata target (MDT) for the layout and location of the file's stripes. Once the file is opened and the client obtains the striping information, the MDS is no longer involved in the file I/O process. The client interacts directly with the object storage servers (OSSes) and OSTs to perform I/O operations such as locking, disk allocation, storage, and retrieval.
-
-If multiple clients try to read and write the same part of a file at the same time, the Lustre distributed lock manager enforces coherency so that all clients see consistent results.
-
-## Disk Usage and Quota Commands
-
-Disk usage and user quotas can be checked and reviewed using the following command:
-
-```console
-$ it4i-disk-usage
-```
-
-Example for Salomon:
-
-```console
-$ it4i-disk-usage -h
-# Using human-readable format
-# Using power of 1000 for space
-# Using power of 1000 for entries
-
-Filesystem:    /home
-Space used:    110GB
-Space limit:   250GB
-Entries:       40K
-Entries limit: 500K
-# based on filesystem quota
-
-Filesystem:    /scratch
-Space used:    377GB
-Space limit:   100TB
-Entries:       14K
-Entries limit: 10M
-# based on Lustre quota
-
-Filesystem:    /scratch
-Space used:    377GB
-Entries:       14K
-# based on Robinhood
-
-Filesystem:    /scratch/work
-Space used:    377GB
-Entries:       14K
-Entries:       40K
-Entries limit: 1.0M
-# based on Robinhood
-
-Filesystem:    /scratch/temp
-Space used:    12K
-Entries:       6
-# based on Robinhood
-```
-
-In this example, we view current size limits and space occupied on the /home and /scratch filesystem, for a particular user executing the command.
-Note that limits are imposed also on number of objects (files, directories, links, etc.) that the user is allowed to create.
-
-To have a better understanding of where the space is exactly used, use the following command:
-
-```console
-$ du -hs dir
-```
-
-Example for your HOME directory:
-
-```console
-$ cd /home
-$ du -hs * .[a-zA-z0-9]* | grep -E "[0-9]*G|[0-9]*M" | sort -hr
-258M     cuda-samples
-15M      .cache
-13M      .mozilla
-5,5M     .eclipse
-2,7M     .idb_13.0_linux_intel64_app
-```
-
-This will list all directories with megabytes or gigabytes of consumed space in your actual (in this example HOME) directory. List is sorted in descending order from largest to smallest files/directories.
-
-To have a better understanding of the previous commands, read the man pages:
-
-```console
-$ man lfs
-```
-
-```console
-$ man du
-```
-
-## Extended Access Control List (ACL)
-
-Extended ACLs provide another security mechanism beside the standard POSIX ACLs which are defined by three entries (for owner/group/others). Extended ACLs have more than the three basic entries. In addition, they also contain a mask entry and may contain any number of named user and named group entries.
-
-ACLs on a Lustre file system work exactly like ACLs on any Linux file system. They are manipulated with the standard tools in the standard manner.
-
-For more information, see the [Access Control List][11] section of the documentation.
-
-## Shared Workspaces
-
-### Home
-
-Users home directories /home/username reside on HOME file system. Accessible capacity is 0.5 PB, shared among all users. Individual users are restricted by file system usage quotas, set to 250 GB per user. If 250 GB should prove as insufficient for particular user, contact [support][d], the quota may be lifted upon request.
-
-<Callout>
-    The HOME file system is intended for preparation, evaluation, processing and storage of data generated by active Projects.
-</Callout>
-
-The HOME should not be used to archive data of past Projects or other unrelated data.
-
-The files on HOME will not be deleted until end of the user's lifecycle.
-
-The workspace is backed up, such that it can be restored in case of catastrophic failure resulting in significant data loss. This backup however is not intended to restore old versions of user data or to restore (accidentally) deleted files.
-
-| HOME workspace    |                |
-| ----------------- | -------------- |
-| Accesspoint       | /home/username |
-| Capacity          | 500TB          |
-| Throughput        | 6GB/s          |
-| User space quota  | 250GB          |
-| User inodes quota | 500K           |
-| Protocol          | NFS, 2-Tier    |
-
-### Scratch
-
-The SCRATCH is realized as Lustre parallel file system and is available from all login and computational nodes. There are 54 OSTs dedicated for the SCRATCH file system.
-
-Accessible capacity is 1.6PB, shared among all users on TEMP and WORK. Individual users are restricted by file system usage quotas, set to 10M inodes and 100 TB per user. The purpose of this quota is to prevent runaway programs from filling the entire file system and deny service to other users. Should 100TB of space or 10M inodes prove insufficient, contact [support][d], the quota may be lifted upon request.
-
-#### Work
-
-The WORK workspace resides on SCRATCH file system. Users may create subdirectories and files in the **/scratch/work/project/projectid** directory. The directory is accessible to all users involved in the `projectid` project.
-
-<Callout>
-    The WORK workspace is intended to store users project data as well as for high performance access to input and output files. All project data should be removed once the project is finished. The data on the WORK workspace are not backed up.
-
-    Files on the WORK file system are **persistent** (not automatically deleted) throughout duration of the project.
-</Callout>
-
-#### Temp
-
-The TEMP workspace resides on SCRATCH file system. The TEMP workspace accesspoint is  /scratch/temp.  Users may freely create subdirectories and files on the workspace. Accessible capacity is 1.6 PB, shared among all users on TEMP and WORK.
-
-<Callout>
-    The TEMP workspace is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. All I/O intensive jobs must use the TEMP workspace as their working directory.
-
-    Users are advised to save the necessary data from the TEMP workspace to HOME or WORK after the calculations and clean up the scratch files.
-</Callout>
-
-<Callout type=warn>
-    Files on the TEMP file system that are **not accessed for more than 90 days** will be automatically **deleted**.
-</Callout>
-
-<table>
-  <tr>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;"></td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">WORK workspace</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">TEMP workspace</td>
-  </tr>
-  <tr>
-    <td style="vertical-align : middle">Accesspoints</td>
-    <td>/scratch/work/user/projectid</td>
-    <td>/scratch/temp</td>
-  </tr>
-  <tr>
-    <td>Capacity</td>
-    <td colspan="2" style="vertical-align : middle;text-align:center;">1.6PB</td>
-  </tr>
-  <tr>
-    <td>Throughput</td>
-    <td colspan="2" style="vertical-align : middle;text-align:center;">30GB/s</td>
-  </tr>
-  <tr>
-    <td>User space quota</td>
-    <td colspan="2" style="vertical-align : middle;text-align:center;">100TB</td>
-  </tr>
-  <tr>
-    <td>User inodes quota</td>
-    <td colspan="2" style="vertical-align : middle;text-align:center;">10M</td>
-  </tr>
-  <tr>
-    <td>Number of OSTs</td>
-    <td colspan="2" style="vertical-align : middle;text-align:center;">54</td>
-  </tr>
-  <tr>
-    <td>Protocol</td>
-    <td colspan="2" style="vertical-align : middle;text-align:center;">Lustre</td>
-  </tr>
-</table>
-
-## RAM Disk
-
-### Local RAM Disk
-
-Every computational node is equipped with file system realized in memory, so called RAM disk.
-
-The local RAM disk is mounted as /ramdisk and is accessible to user at /ramdisk/$PBS_JOBID directory.
-
-The RAM disk is private to a job and local to node, created when the job starts and deleted at the job end.
-
-<Callout>
-    The local RAM disk directory /ramdisk/$PBS_JOBID will be deleted immediately after the calculation end. Users should take care to save the output data from within the jobscript.
-</Callout>
-
-The local RAM disk file system is intended for  temporary scratch data generated during the calculation as well as
-for high-performance access to input and output files. Size of RAM disk file system is limited.
-It is not recommended to allocate large amount of memory and use large amount of data in RAM disk file system at the same time.
-
-<Callout type=warn>
-     Be very careful, use of RAM disk file system is at the expense of operational memory.
-</Callout>
-
-| Local RAM disk    |                                                                                                   |
-| ----------- | ------------------------------------------------------------------------------------------------------- |
-| Mountpoint  | /ramdisk                                                                                                |
-| Accesspoint | /ramdisk/$PBS_JOBID                                                                                     |
-| Capacity    | 110GB                                                                                                   |
-| Throughput  | over 1.5GB/s write, over 5GB/s read, single thread, over 10GB/s write, over 50GB/s read, 16 threads     |
-| User quota  | none                                                                                                    |
-
-### Global RAM Disk
-
-The Global RAM disk spans the local RAM disks of all the nodes within a single job.
-For more information, see the [Job Features][12] section.
-
-## Summary
-
-<table>
-  <tr>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Mountpoint</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Usage</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Protocol</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Net Capacity</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Throughput</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Space/Inodes quota</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Access</td>
-    <td style="background-color: rgba(0, 0, 0, 0.54); color: white;">Service</td>
-  </tr>
-  <tr>
-    <td>/home</td>
-    <td>home directory</td>
-    <td>NFS, 2-Tier</td>
-    <td>500TB</td>
-    <td>6GB/s</td>
-    <td>250GB / 500K</td>
-    <td>Compute and login nodes</td>
-    <td>backed up</td>
-  </tr>
-  <tr>
-    <td style="background-color: #D3D3D3;">/scratch/work</td>
-    <td style="background-color: #D3D3D3;">large project files</td>
-    <td rowspan="2" style="background-color: #D3D3D3; vertical-align : middle;text-align:center;">Lustre</td>
-    <td rowspan="2" style="background-color: #D3D3D3; vertical-align : middle;text-align:center;">1.69PB</td>
-    <td rowspan="2" style="background-color: #D3D3D3; vertical-align : middle;text-align:center;">30GB/s</td>
-    <td rowspan="2" style="background-color: #D3D3D3; vertical-align : middle;text-align:center;">100TB / 10M</td>
-    <td style="background-color: #D3D3D3;">Compute and login nodes</td>
-    <td style="background-color: #D3D3D3;">none</td>
-  </tr>
-  <tr>
-    <td style="background-color: #D3D3D3;">/scratch/temp</td>
-    <td style="background-color: #D3D3D3;">job temporary data</td>
-    <td style="background-color: #D3D3D3;">Compute and login nodes</td>
-    <td style="background-color: #D3D3D3;">files older 90 days removed</td>
-  </tr>
-  <tr>
-    <td>/ramdisk</td>
-    <td>job temporary data, node local</td>
-    <td>tmpfs</td>
-    <td>110GB</td>
-    <td>90GB/s</td>
-    <td>none / none</td>
-    <td>Compute nodes, node local</td>
-    <td>purged after job ends</td>
-  </tr>
-  <tr>
-    <td style="background-color: #D3D3D3;">/mnt/global_ramdisk</td>
-    <td style="background-color: #D3D3D3;">job temporary data</td>
-    <td style="background-color: #D3D3D3;">BeeGFS</td>
-    <td style="background-color: #D3D3D3;">(N*110)GB</td>
-    <td style="background-color: #D3D3D3;">3*(N+1)GB/s</td>
-    <td style="background-color: #D3D3D3;">none / none</td>
-    <td style="background-color: #D3D3D3;">Compute nodes, job shared</td>
-    <td style="background-color: #D3D3D3;">purged after job ends</td>
-  </tr>
-</table>
-
-N = number of compute nodes in the job.
-
-[1]: #home
-[2]: #shared-filesystems
-[3]: #work
-[4]: #temp
-[5]: #archiving
-[6]: ../storage/cesnet-storage.md
-[7]: #home-filesystem
-[8]: #scratch-filesystem
-[9]: #shared-workspaces
-[11]: ../storage/standard-file-acl.md
-[12]: ../job-features.md#global-ram-disk
-
-[c]: https://access.redhat.com/documentation/en-US/Red_Hat_Storage/2.0/html/Administration_Guide/ch09s05.html
-[d]: https://support.it4i.cz/rt
diff --git a/content/docs/salomon/visualization.mdx b/content/docs/salomon/visualization.mdx
deleted file mode 100644
index b19e8b49a19e8f8709b335fa83e2a9650958745d..0000000000000000000000000000000000000000
--- a/content/docs/salomon/visualization.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Visualization Servers"
----
-Remote visualization with [NICE DCV software][3] or [VirtualGL][4] is availabe on two nodes.
-
-| Node          | Count | Processor                         | Cores | Memory | GPU Accelerator              |
-|---------------|-------|-----------------------------------|-------|--------|------------------------------|
-| visualization | 2     | 2 x Intel Xeon E5-2695v3, 2.3 GHz | 28    | 512 GB | NVIDIA QUADRO K5000 4 GB     |
-
-## Resource Allocation Policy
-
-| queue | active project | project resources | nodes | min ncpus | priority | authorization | walltime |
-|-------|----------------|-------------------|-------|-----------|----------|---------------|----------|
-| qviz Visualization queue | yes | none required | 2 (with NVIDIA Quadro K5000) | 4 | 150 | no | 1h/8h |
-
-## References
-
-* [Graphical User Interface][1]
-* [VPN Access][2]
-
-[1]: ../general/shell-and-data-access.md#graphical-user-interface
-[2]: ../general/shell-and-data-access.md#vpn-access
-[3]: ../software/viz/NICEDCVsoftware.md
-[4]: ../software/viz/vgl.md
\ No newline at end of file
diff --git a/content/docs/software/bio/meta.json b/content/docs/software/bio/meta.json
deleted file mode 100644
index 618329b4b88f56f2eebc4d48a8a0c62a05bdfd8f..0000000000000000000000000000000000000000
--- a/content/docs/software/bio/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Bio",
-  "pages": [
-    "omics-master"
-  ]
-}
diff --git a/content/docs/software/bio/omics-master/diagnostic-component-team.mdx b/content/docs/software/bio/omics-master/diagnostic-component-team.mdx
deleted file mode 100644
index b998e164850e14c6e1b076328cd77c9d819e4aa9..0000000000000000000000000000000000000000
--- a/content/docs/software/bio/omics-master/diagnostic-component-team.mdx
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: "Diagnostic Component (TEAM)"
----
-## Access
-
-TEAM is available at the [following address][a]
-
-<Callout>
-    The address is accessible only via VPN.
-</Callout>
-
-## Diagnostic Component
-
-VCF files are scanned by this diagnostic tool for known diagnostic disease-associated variants. When no diagnostic mutation is found, the file can be sent to the disease-causing gene discovery tool to see whether new disease-associated variants can be found.
-
-TEAM (27) is an intuitive and easy-to-use web tool that fills the gap between the predicted mutations and the final diagnostic in targeted enrichment sequencing analysis. The tool searches for known diagnostic mutations, corresponding to a disease panel, among the predicted patient’s variants. Diagnostic variants for the disease are taken from four databases of disease-related variants (HGMD, HUMSAVAR , ClinVar and COSMIC) If no primary diagnostic variant is found, then a list of secondary findings that can help to establish a diagnostic is produced. TEAM also provides with an interface for the definition of and customization of panels, by means of which, genes and mutations can be added or discarded to adjust panel definitions.
-
-![Interface of the application. Panels for defining targeted regions of interest can be set up by just drag and drop known disease genes or disease definitions from the lists. Thus, virtual panels can be interactively improved as the knowledge of the disease increases.](/it4i/img/fig5.png)
-
-**Figure 5.** Interface of the application. Panels for defining targeted regions of interest can be set up by just drag and drop known disease genes or disease definitions from the lists. Thus, virtual panels can be interactively improved as the knowledge of the disease increases.
-
-[a]: http://omics.it4i.cz/team/
diff --git a/content/docs/software/bio/omics-master/meta.json b/content/docs/software/bio/omics-master/meta.json
deleted file mode 100644
index 9ce4100d5e8235d4130885addaf342d2666b76df..0000000000000000000000000000000000000000
--- a/content/docs/software/bio/omics-master/meta.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "title": "Omics-master",
-  "pages": [
-    "diagnostic-component-team",
-    "overview",
-    "priorization-component-bierapp"
-  ]
-}
diff --git a/content/docs/software/bio/omics-master/overview.mdx b/content/docs/software/bio/omics-master/overview.mdx
deleted file mode 100644
index 13dfce9e016943b09da1f1c1d9a3157b904e9167..0000000000000000000000000000000000000000
--- a/content/docs/software/bio/omics-master/overview.mdx
+++ /dev/null
@@ -1,415 +0,0 @@
----
-title: "Overview"
----
-A human NGS data processing solution.
-
-## Introduction
-
-The scope of this OMICS MASTER solution is restricted to human genomics research (disease causing gene discovery in the whole human genome or exome) or diagnosis (panel sequencing), although it could be extended to other usages in the future.
-
-The pipeline inputs the raw data produced by the sequencing machines and undergoes a processing procedure that consists of a quality control, the mapping and variant calling steps that result in a file containing the set of variants in the sample. From this point, the prioritization component or the diagnostic component can be launched.
-
-![OMICS MASTER solution overview. Data is produced in the external labs and comes to IT4I (represented by the blue dashed line). The data pre-processor converts raw data into a list of variants and annotations for each sequenced patient. These lists files together with primary and secondary (alignment) data files are stored in IT4I sequence DB and uploaded to the discovery (candidate priorization) or diagnostic component where they can be analysed directly by the user that produced
-them, depending of the experimental design carried out.](/it4i/img/fig1.png)
-
-Figure 1. OMICS MASTER solution overview. Data is produced in the external labs and comes to IT4I (represented by the blue dashed line). The data pre-processor converts raw data into a list of variants and annotations for each sequenced patient. These lists files together with primary and secondary (alignment) data files are stored in IT4I sequence DB and uploaded to the discovery (candidate prioritization) or diagnostic component where they can be analyzed directly by the user that produced them, depending of the experimental design carried out.
-
-Typical genomics pipelines are composed by several components that need to be launched manually. The advantage of OMICS MASTER pipeline is that all these components are invoked sequentially in an automated way.
-
-OMICS MASTER pipeline inputs a FASTQ file and outputs an enriched VCF file. This pipeline is able to queue all the jobs by only launching a process taking all the necessary input files and creates the intermediate and final folders
-
-Let us see each of the OMICS MASTER solution components:
-
-## Components
-
-### Processing
-
-This component is composed by a set of programs that carry out quality controls, alignment, realignment, variant calling and variant annotation. It turns raw data from the sequencing machine into files containing lists of variants (VCF) that once annotated, can be used by the following components (discovery and diagnosis).
-
-We distinguish three types of sequencing instruments: bench sequencers (MySeq, IonTorrent, and Roche Junior, although the last one is being discontinued), which produce relatively Genomes in the clinic.
-
-Low throughput (tens of million reads), and high-end sequencers, which produce high throughput (hundreds of million reads) among which we have Illumina HiSeq 2000 (and new models) and SOLiD. All of them but SOLiD produce data in sequence format. SOLiD produces data in a special format called color space that require specific software for the mapping process. Once the mapping has been done, the rest of the pipeline is identical. SOLiD is a technology which is also being discontinued by the manufacturer, so this type of data will be scarce in the future.
-
-#### Quality Control, Preprocessing and Statistics for FASTQ
-
-FastQC& FastQC.
-
-These steps are carried out over the original FASTQ file with optimized scripts and includes the following steps: sequence cleansing, estimation of base quality scores, elimination of duplicates, and statistics.
-
-Input: FASTQ file.
-
-Output: FASTQ file plus an HTML file containing statistics on the data.
-
-FASTQ format represents the nucleotide sequence and its corresponding quality scores.
-
-![FASTQ file.](/it4i/img/fig2.png)
-Figure 2.FASTQ file.
-
-#### Mapping
-
-Component: Hpg-aligner.
-
-Sequence reads are mapped over the human reference genome. SOLiD reads are not covered by this solution; they should be mapped with specific software (among the few available options, SHRiMP seems to be the best one). For the rest of NGS machine outputs we use HPG Aligner. HPG-Aligner is an innovative solution, based on a combination of mapping with BWT and local alignment with Smith-Waterman (SW), that drastically increases mapping accuracy (97% versus 62-70% by current mappers, in the most common scenarios). This proposal provides a simple and fast solution that maps almost all the reads, even those containing a high number of mismatches or indels.
-
-Input: FASTQ file.
-
-Output: Aligned file in BAM format.
-
-#### Sequence Alignment/Map (SAM)
-
-It is a human readable tab-delimited format in which each read and its alignment is represented on a single line. The format can represent unmapped reads, reads that are mapped to unique locations, and reads that are mapped to multiple locations.
-
-The SAM format (1) consists of one header section and one alignment section. The lines in the header section start with the ‘@’ character, and lines in the alignment section do not. All lines are TAB delimited.
-
-In SAM, each alignment line has 11 mandatory fields and a variable number of optional fields. The mandatory fields are briefly described in Table 1. They must be present but their value can be a ‘\’ or a zero (depending on the field) if the
-corresponding information is unavailable.
-
-|  No.      |  Name      |  Description                                          |
-| --------- | ---------- | ----------------------------------------------------- |
-| 1         | QNAME      | Query NAME of the read or the read pai                |
-| 2         | FLAG       | Bitwise FLAG (pairing,strand,mate strand,etc.)        |
-| 3         | RNAME      | Reference sequence NAME                               |
-| 4         | POS        | 1-Based leftmost POSition of clipped alignment        |
-| 5         | MAPQ       | MAPping Quality (Phred-scaled)                        |
-| 6         | CIGAR      | Extended CIGAR string (operations:MIDNSHP)            |
-| 7         | MRNM       | Mate REference NaMe ('=' if same RNAME)               |
-| 8         | MPOS       | 1-Based leftmost Mate POSition                        |
-| 9         | ISIZE      | Inferred Insert SIZE                                  |
-| 10        | SEQ        | Query SEQuence on the same strand as the reference    |
-| 11        | QUAL       | Query QUALity (ASCII-33=Phred base quality)           |
-
- Table 1. Mandatory fields in the SAM format.
-
-The standard CIGAR description of pairwise alignment defines three operations: ‘M’ for match/mismatch, ‘I’ for insertion compared with the reference and ‘D’ for deletion. The extended CIGAR proposed in SAM added four more operations: ‘N’ for skipped bases on the reference, ‘S’ for soft clipping, ‘H’ for hard clipping and ‘P’ for padding. These support splicing, clipping, multi-part and padded alignments. Figure 3 shows examples of CIGAR strings for different types of alignments.
-
-![SAM format file. The ‘@SQ’ line in the header section gives the order of reference sequences. Notably, r001 is the name of a read pair. According to FLAG 163 (/it4i/img/fig3.png)
-
- Figure 3. SAM format file. The ‘@SQ’ line in the header section gives the order of reference sequences. Notably, r001 is the name of a read pair. According to FLAG 163 (=1+2+32+128), the read mapped to position 7 is the second read in the pair (128) and regarded as properly paired (1 + 2); its mate is mapped to 37 on the reverse strand (32). Read r002 has three soft-clipped (unaligned) bases. The coordinate shown in SAM is the position of the first aligned base. The CIGAR string for this alignment contains a P (padding) operation, which correctly aligns the inserted sequences. Padding operations can be absent when an aligner does not support multiple sequence alignment. The last six bases of read r003 map to position 9, and the first five to position 29 on the reverse strand. The hard clipping operation H indicates that the clipped sequence is not present in the sequence field. The NM tag gives the number of mismatches. Read r004 is aligned across an intron, indicated by the N operation.
-
-##### Binary Alignment/Map (BAM)
-
-BAM is the binary representation of SAM and keeps exactly the same information as SAM. BAM uses lossless compression to reduce the size of the data by about 75% and provides an indexing system that allows reads that overlap a region of the genome to be retrieved and rapidly traversed.
-
-#### Quality Control, Preprocessing and Statistics for BAM
-
-Component: Hpg-Fastq & FastQC.
-
-Some features
-
- Quality control
-   reads with N errors
-   reads with multiple mappings
-   strand bias
-   paired-end insert
- Filtering: by number of errors, number of hits
-   Comparator: stats, intersection, etc.
-
-Input: BAM file.
-
-Output: BAM file plus an HTML file containing statistics.
-
-#### Variant Calling
-
-Component: GATK.
-
-Identification of single nucleotide variants and indels on the alignments is performed using the Genome Analysis Toolkit (GATK). GATK (2) is a software package developed at the Broad Institute to analyze high-throughput sequencing data. The toolkit offers a wide variety of tools, with a primary focus on variant discovery and genotyping as well as strong emphasis on data quality assurance.
-
-Input: BAM
-
-Output:VCF
-
-Variant Call Format (VCF)
-
-VCF (3) is a standardized format for storing the most prevalent types of sequence variation, including SNPs, indels and larger structural variants, together with rich annotations. The format was developed with the primary intention to represent human genetic variation, but its use is not restricted to diploid genomes and can be used in different contexts as well. Its flexibility and user extensibility allows representation of a wide variety of genomic variation with respect to a single reference sequence.
-
-A VCF file consists of a header section and a data section. The header contains an arbitrary number of metainformation lines, each starting with characters ‘##’, and a TAB delimited field definition line, starting with a single ‘#’ character. The meta-information header lines provide a standardized description of tags and annotations used in the data section. The use of meta-information allows the information stored within a VCF file to be tailored to the dataset in question. It can be also used to provide information about the means of file creation, date of creation, version of the reference sequence, software used and any other information relevant to the history of the file. The field definition line names eight mandatory columns, corresponding to data columns representing the chromosome (CHROM), a 1-based position of the start of the variant (POS), unique identifiers of the variant (ID), the reference allele (REF), a comma separated list of alternate non-reference alleles (ALT), a phred-scaled quality score (QUAL), site filtering information (FILTER) and a semicolon separated list of additional, user extensible annotation (INFO). In addition, if samples are present in the file, the mandatory header columns are followed by a FORMAT column and an arbitrary number of sample IDs that define the samples included in the VCF file. The FORMAT column is used to define the information contained within each subsequent genotype column, which consists of a colon separated list of fields. For example, the FORMAT field GT:GQ:DP in the fourth data entry of Figure 1a indicates that the subsequent entries contain information regarding the genotype, genotype quality and read depth for each sample. All data lines are TAB delimited and the number of fields in each data line must match the number of fields in the header line. It is strongly recommended that all annotation tags used are declared in the VCF header section.
-
-![a) Example of valid VCF. The header lines ##fileformat and #CHROM are mandatory, the rest is optional but strongly recommended. Each line of the body describes variants present in the sampled population at one genomic position or region. All alternate alleles are listed in the ALT column and referenced from the genotype fields as 1-based indexes to this list; the reference haplotype is designated as 0. For multiploid data, the separator indicates whether the data are phased (/it4i/img/fig4.png)
-
- Figure 4 . (a) Example of valid VCF. The header lines ##fileformat and #CHROM are mandatory, the rest is optional but strongly recommended. Each line of the body describes variants present in the sampled population at one genomic position or region. All alternate alleles are listed in the ALT column and referenced from the genotype fields as 1-based indexes to this list; the reference haplotype is designated as 0. For multiploid data, the separator indicates whether the data are phased (|) or unphased (/). Thus, the two alleles C and G at the positions 2 and 5 in this figure occur on the same chromosome in SAMPLE1. The first data line shows an example of a deletion (present in SAMPLE1) and a replacement of two bases by another base (SAMPLE2); the second line shows a SNP and an insertion; the third a SNP; the fourth a large structural variant described by the annotation in the INFO column, the coordinate is that of the base before the variant. (b–f ) Alignments and VCF representations of different sequence variants: SNP, insertion, deletion, replacement, and a large deletion. The REF columns shows the reference bases replaced by the haplotype in the ALT column. The coordinate refers to the first reference base. (g) Users are advised to use simplest representation possible and lowest coordinate in cases where the position is ambiguous.
-
-### Annotating
-
-Component: HPG-Variant
-
-The functional consequences of every variant found are then annotated using the HPG-Variant software, which extracts from CellBase, the Knowledge database, all the information relevant on the predicted pathologic effect of the variants.
-
-VARIANT (VARIant Analysis Tool) (4) reports information on the variants found that include consequence type and annotations taken from different databases and repositories (SNPs and variants from dbSNP and 1000 genomes, and disease-related variants from the Genome-Wide Association Study (GWAS) catalog, Online Mendelian Inheritance in Man (OMIM), Catalog of Somatic Mutations in Cancer (COSMIC) mutations, etc. VARIANT also produces a rich variety of annotations that include information on the regulatory (transcription factor or miRNAbinding sites, etc.) or structural roles, or on the selective pressures on the sites affected by the variation. This information allows extending the conventional reports beyond the coding regions and expands the knowledge on the contribution of non-coding or synonymous variants to the phenotype studied.
-
- Input: VCF
-
- Output: The output of this step is the Variant Calling Format (VCF) file, which contains changes with respect to the reference genome with the corresponding QC and functional annotations.
-
-#### CellBase
-
-CellBase(5) is a relational database integrates biological information from different sources and includes:
-
-Core features
-
-We took genome sequences, genes, transcripts, exons, cytobands or cross references (xrefs) identifiers (IDs) from Ensembl (6). Protein information including sequences, xrefs or protein features (natural variants, mutagenesis sites, post-translational modifications, etc.) were imported from UniProt (7).
-
-Regulatory
-
-CellBase imports miRNA from miRBase (8); curated and non-curated miRNA targets from miRecords (9), miRTarBase (10),
-TargetScan(11) and microRNA.org (12) and CpG islands and conserved regions from the UCSC database (13).
-
-Functional annotation
-
-OBO Foundry (14) develops many biomedical ontologies that are implemented in OBO format. We designed a SQL schema to store these OBO ontologies and 30 ontologies were imported. OBO ontology term annotations were taken from Ensembl (6). InterPro (15) annotations were also imported.
-
-Variation
-
-CellBase includes SNPs from dbSNP (16)^; SNP population frequencies from HapMap (17), 1000 genomes project (18) and Ensembl (6); phenotypically annotated SNPs were imported from NHRI GWAS Catalog (19),HGMD (20), Open Access GWAS Database (21), UniProt (7) and OMIM (22); mutations from COSMIC (23) and structural variations from Ensembl (6).
-
-Systems biology
-
-We also import systems biology information like interactome information from IntAct (24). Reactome (25) stores pathway and interaction information in BioPAX (26) format. BioPAX data exchange format enables the integration of diverse pathway
-resources. We successfully solved the problem of storing data released in BioPAX format into a SQL relational schema, which allowed us importing Reactome in CellBase.
-
-### Diagnostic Component (TEAM)
-
-More detail [here][1].
-
-### Priorization Component (BiERApp)
-
-More detail [here][2].
-
-## Usage
-
-First, we should load ngsPipeline module:
-
-```console
-$ ml ngsPipeline
-```
-
-This command will load python/2.7.5 module and all the required modules (hpg-aligner, gatk, etc)
-
-If we launch ngsPipeline with ‘-h’, we will get the usage help:
-
-```console
-$ ngsPipeline -h
-    Usage: ngsPipeline.py [-h] -i INPUT -o OUTPUT -p PED --project PROJECT --queue
-      QUEUE [--stages-path STAGES_PATH] [--email EMAIL]
-     [--prefix PREFIX] [-s START] [-e END] --log
-
-    Python pipeline
-
-    optional arguments:
-      -h, --help show this help message and exit
-      -i INPUT, --input INPUT
-      -o OUTPUT, --output OUTPUT
-        Output Data directory
-      -p PED, --ped PED     Ped file with all individuals
-      --project PROJECT     Project Id
-      --queue QUEUE         Queue Id
-      --stages-path STAGES_PATH
-        Custom Stages path
-      --email EMAIL         Email
-      --prefix PREFIX       Prefix name for Queue Jobs name
-      -s START, --start START
-        Initial stage
-      -e END, --end END     Final stage
-      --log       Log to file
-```
-
-Let us see a brief description of the arguments:
-
-```console
-      -h --help. Show the help.
-
-      -i, --input. The input data directory. This directory must to have a special structure. We have to create one folder per sample (with the same name). These folders will host the fastq files. These fastq files must have the following pattern “sampleName” + “_” + “1 or 2” + “.fq”. 1 for the first pair (in paired-end sequences), and 2 for the
-second one.
-
-      -o , --output. The output folder. This folder will contain all the intermediate and final folders. When the pipeline will be executed completely, we could remove the intermediate folders and keep only the final one (with the VCF file containing all the variants)
-
-      -p , --ped. The ped file with the pedigree. This file contains all the sample names. These names must coincide with the names of the input folders. If our input folder contains more samples than the .ped file, the pipeline will use only the samples from the .ped file.
-
-      --email. Email for notifications.
-
-      --prefix. Prefix for Job names.
-
-      -s, --start & -e, --end. Initial and final stage. If we want to launch the pipeline in a specific stage we must use -s. If we want to end the pipeline in a specific stage we must use -e.
-
-      --log. Using log argument NGSpipeline will prompt all the logs to this file.
-
-      --project>. Project ID of your supercomputer allocation.
-
-      --queue. [Queue][3] to run the jobs in.
-```
-
-Input, output and ped arguments are mandatory. If the output folder does not exist, the pipeline will create it.
-
-## Examples
-
-This is an example usage of NGSpipeline:
-
-We have a folder with the following structure in
-
-```console
-/apps/bio/omics/1.0/sample_data/ >:
-
-    /apps/bio/omics/1.0/sample_data
-    └── data
-        ├── file.ped
-        ├── sample1
-        │   ├── sample1_1.fq
-        │   └── sample1_2.fq
-        └── sample2
-  ├── sample2_1.fq
-  └── sample2_2.fq
-```
-
-The ped file (file.ped) contains the following info:
-
-```console
-    #family_ID sample_ID parental_ID maternal_ID sex phenotype
-    FAM sample_A 0 0 1 1
-    FAM sample_B 0 0 2 2
-```
-
-Now, let us load the NGSPipeline module and copy the sample data to a [scratch directory][4]:
-
-```console
-$ ml ngsPipeline
-$ mkdir -p /scratch/$USER/omics/results
-$ cp -r /apps/bio/omics/1.0/sample_data /scratch/$USER/omics/
-```
-
-Now, we can launch the pipeline (replace OPEN-0-0 with your Project ID):
-
-```console
-$ ngsPipeline -i /scratch/$USER/omics/sample_data/data -o /scratch/$USER/omics/results -p /scratch/$USER/omics/sample_data/data/file.ped --project OPEN-0-0 --queue qprod
-```
-
-This command submits the processing [jobs to the queue][5].
-
-If we want to re-launch the pipeline from stage 4 until stage 20, we should use the next command:
-
-```console
-$ ngsPipeline -i /scratch/$USER/omics/sample_data/data -o /scratch/$USER/omics/results -p /scratch/$USER/omics/sample_data/data/file.ped -s 4 -e 20 --project OPEN-0-0 --queue qprod
-```
-
-## Details on the Pipeline
-
-The pipeline calls the following tools
-
- [fastqc][a], quality control tool for high throughput sequence data.
- [gatk][b], The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute to analyze high-throughput sequencing data. The toolkit offers a wide variety of tools, with a primary focus on variant discovery and genotyping as well as strong emphasis on data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.
- [hpg-aligner][c], HPG Aligner has been designed to align short and long reads with high sensitivity, therefore any number of mismatches or indels are allowed. HPG Aligner implements and combines two well known algorithms: _Burrows-Wheeler Transform_ (BWT) to speed-up mapping high-quality reads, and _Smith-Waterman_> (SW) to increase sensitivity when reads cannot be mapped using BWT.
- [hpg-fastq][d], a quality control tool for high throughput sequence data.
- [hpg-variant][e], The HPG Variant suite is an ambitious project aimed to provide a complete suite of tools to work with genomic variation data, from VCF tools to variant profiling or genomic statistics. It is being implemented using High Performance Computing technologies to provide the best performance possible.
- [picard][f], Picard comprises Java-based command-line utilities that manipulate SAM files, and a Java API (HTSJDK) for creating new programs that read and write SAM files. Both SAM text format and SAM binary (BAM) format are supported.
- [samtools][g], SAM Tools provide various utilities for manipulating alignments in the SAM format, including sorting, merging, indexing and generating alignments in a per-position format.
- [snpEff][h], Genetic variant annotation and effect prediction toolbox.
-
-This listing show which tools are used in each step of the pipeline
-
- stage-00: fastqc
- stage-01: hpg_fastq
- stage-02: fastqc
- stage-03: hpg_aligner and samtools
- stage-04: samtools
- stage-05: samtools
- stage-06: fastqc
- stage-07: picard
- stage-08: fastqc
- stage-09: picard
- stage-10: gatk
- stage-11: gatk
- stage-12: gatk
- stage-13: gatk
- stage-14: gatk
- stage-15: gatk
- stage-16: samtools
- stage-17: samtools
- stage-18: fastqc
- stage-19: gatk
- stage-20: gatk
- stage-21: gatk
- stage-22: gatk
- stage-23: gatk
- stage-24: hpg-variant
- stage-25: hpg-variant
- stage-26: snpEff
- stage-27: snpEff
- stage-28: hpg-variant
-
-## Interpretation
-
-The output folder contains all the subfolders with the intermediate data. This folder contains the final VCF with all the variants. This file can be uploaded into [TEAM][1] by using the VCF file button. It is important to note here that the entire management of the VCF file is local: no patient’s sequence data is sent over the Internet thus avoiding any problem of data privacy or confidentiality.
-
-![TEAM upload panel. Once the file has been uploaded, a panel must be chosen from the Panel list. Then, pressing the Run button the diagnostic process starts.]\(/it4i/img/fig7.png)
-
- Figure 7. _TEAM upload panel._ _Once the file has been uploaded, a panel must be chosen from the Panel_ list. Then, pressing the Run button the diagnostic process starts.
-
-Once the file has been uploaded, a panel must be chosen from the Panel list. Then, pressing the Run button the diagnostic process starts. TEAM searches first for known diagnostic mutation(s) taken from four databases: HGMD-public (20), [HUMSAVAR][i], ClinVar (29) and COSMIC (23).
-
-![The panel manager. The elements used to define a panel are (/it4i/img/fig7x.png)
-
- Figure 7. The panel manager. The elements used to define a panel are ( A ) disease terms, ( B ) diagnostic mutations and ( C ) genes. Arrows represent actions that can be taken in the panel manager. Panels can be defined by using the known mutations and genes of a particular disease. This can be done by dragging them to the Primary Diagnostic box (action D). This action, in addition to defining the diseases in the Primary Diagnostic box, automatically adds the corresponding genes to the Genes box. The panels can be customized by adding new genes (action F) or removing undesired genes (action G). New disease mutations can be added independently or associated to an already existing disease term (action E). Disease terms can be removed by simply dragging them back (action H).
-
-For variant discovering/filtering we should upload the VCF file into BierApp by using the following form:
-
-![BierApp VCF upload panel. It is recommended to choose a name for the job as well as a description.](/it4i/img/fig8.png)\
-
- Figure 8. \BierApp VCF upload panel. It is recommended to choose a name for the job as well as a description \\.
-
-Each prioritization (‘job’) has three associated screens that facilitate the filtering steps. The first one, the ‘Summary’ tab, displays a statistic of the data set analyzed, containing the samples analyzed, the number and types of variants found and its distribution according to consequence types. The second screen, in the ‘Variants and effect’ tab, is the actual filtering tool, and the third one, the ‘Genome view’ tab, offers a representation of the selected variants within the genomic context provided by an embedded version of the Genome Maps Tool (30).
-
-![This picture shows all the information associated to the variants. If a variant has an associated phenotype we could see it in the last column. In this case, the variant 7:132481242 CT is associated to the phenotype: large intestine tumor.](/it4i/img/fig9.png)
-
- Figure 9. This picture shows all the information associated to the variants. If a variant has an associated phenotype we could see it in the last column. In this case, the variant 7:132481242 CT is associated to the phenotype: large intestine tumor.
-
-## References
-
-1. Heng Li, Bob Handsaker, Alec Wysoker, Tim Fennell, Jue Ruan, Nils Homer, Gabor Marth5, Goncalo Abecasis6, Richard Durbin and 1000 Genome Project Data Processing Subgroup: The Sequence Alignment/Map format and SAMtools. Bioinformatics 2009, 25: 2078-2079.
-1. McKenna A, Hanna M, Banks E, Sivachenko A, Cibulskis K, Kernytsky A, Garimella K, Altshuler D, Gabriel S, Daly M, DePristo MA: The Genome Analysis Toolkit: a MapReduce framework for analyzing next-generation DNA sequencing data. _Genome Res_ >2010, 20:1297-1303.
-1. Petr Danecek, Adam Auton, Goncalo Abecasis, Cornelis A. Albers, Eric Banks, Mark A. DePristo, Robert E. Handsaker, Gerton Lunter, Gabor T. Marth, Stephen T. Sherry, Gilean McVean, Richard Durbin, and 1000 Genomes Project Analysis Group. The variant call format and VCFtools. Bioinformatics 2011, 27: 2156-2158.
-1. Medina I, De Maria A, Bleda M, Salavert F, Alonso R, Gonzalez CY, Dopazo J: VARIANT: Command Line, Web service and Web interface for fast and accurate functional characterization of variants found by Next-Generation Sequencing. Nucleic Acids Res 2012, 40:W54-58.
-1. Bleda M, Tarraga J, de Maria A, Salavert F, Garcia-Alonso L, Celma M, Martin A, Dopazo J, Medina I: CellBase, a comprehensive collection of RESTful web services for retrieving relevant biological information from heterogeneous sources. Nucleic Acids Res 2012, 40:W609-614.
-1. Flicek,P., Amode,M.R., Barrell,D., Beal,K., Brent,S., Carvalho-Silva,D., Clapham,P., Coates,G., Fairley,S., Fitzgerald,S. et al. (2012) Ensembl 2012. Nucleic Acids Res., 40, D84–D90.
-1. UniProt Consortium. (2012) Reorganizing the protein space at the Universal Protein Resource (UniProt). Nucleic Acids Res., 40, D71–D75.
-1. Kozomara,A. and Griffiths-Jones,S. (2011) miRBase: integrating microRNA annotation and deep-sequencing data. Nucleic Acids Res., 39, D152–D157.
-1. Xiao,F., Zuo,Z., Cai,G., Kang,S., Gao,X. and Li,T. (2009) miRecords: an integrated resource for microRNA-target interactions. Nucleic Acids Res., 37, D105–D110.
-1. Hsu,S.D., Lin,F.M., Wu,W.Y., Liang,C., Huang,W.C., Chan,W.L., Tsai,W.T., Chen,G.Z., Lee,C.J., Chiu,C.M. et al. (2011) miRTarBase: a database curates experimentally validated microRNA-target interactions. Nucleic Acids Res., 39, D163–D169.
-1. Friedman,R.C., Farh,K.K., Burge,C.B. and Bartel,D.P. (2009) Most mammalian mRNAs are conserved targets of microRNAs. Genome Res., 19, 92–105. 12. Betel,D., Wilson,M., Gabow,A., Marks,D.S. and Sander,C. (2008) The microRNA.org resource: targets and expression. Nucleic Acids Res., 36, D149–D153.
-1. Dreszer,T.R., Karolchik,D., Zweig,A.S., Hinrichs,A.S., Raney,B.J., Kuhn,R.M., Meyer,L.R., Wong,M., Sloan,C.A., Rosenbloom,K.R. et al. (2012) The UCSC genome browser database: extensions and updates 2011. Nucleic Acids Res.,40, D918–D923.
-1. Smith,B., Ashburner,M., Rosse,C., Bard,J., Bug,W., Ceusters,W., Goldberg,L.J., Eilbeck,K., Ireland,A., Mungall,C.J. et al. (2007) The OBO Foundry: coordinated evolution of ontologies to support biomedical data integration. Nat. Biotechnol., 25, 1251–1255.
-1. Hunter,S., Jones,P., Mitchell,A., Apweiler,R., Attwood,T.K.,Bateman,A., Bernard,T., Binns,D., Bork,P., Burge,S. et al. (2012) InterPro in 2011: new developments in the family and domain prediction database. Nucleic Acids Res.,40, D306–D312.
-1. Sherry,S.T., Ward,M.H., Kholodov,M., Baker,J., Phan,L., Smigielski,E.M. and Sirotkin,K. (2001) dbSNP: the NCBI database of genetic variation. Nucleic Acids Res., 29, 308–311.
-1. Altshuler,D.M., Gibbs,R.A., Peltonen,L., Dermitzakis,E., Schaffner,S.F., Yu,F., Bonnen,P.E., de Bakker,P.I., Deloukas,P., Gabriel,S.B. et al. (2010) Integrating common and rare genetic variation in diverse human populations. Nature, 467, 52–58.
-1. 1000 Genomes Project Consortium. (2010) A map of human genome variation from population-scale sequencing. Nature, 467, 1061–1073.
-1. Hindorff,L.A., Sethupathy,P., Junkins,H.A., Ramos,E.M., Mehta,J.P., Collins,F.S. and Manolio,T.A. (2009) Potential etiologic and functional implications of genome-wide association loci for human diseases and traits. Proc. Natl Acad. Sci. USA, 106, 9362–9367.
-1. Stenson,P.D., Ball,E.V., Mort,M., Phillips,A.D., Shiel,J.A., Thomas,N.S., Abeysinghe,S., Krawczak,M. and Cooper,D.N. (2003) Human gene mutation database (HGMD): 2003 update. Hum. Mutat., 21, 577–581.
-1. Johnson,A.D. and O’Donnell,C.J. (2009) An open access database of genome-wide association results. BMC Med. Genet, 10, 6.
-1. McKusick,V. (1998) A Catalog of Human Genes and Genetic Disorders, 12th edn. John Hopkins University Press,Baltimore, MD.
-1. Forbes,S.A., Bindal,N., Bamford,S., Cole,C., Kok,C.Y., Beare,D., Jia,M., Shepherd,R., Leung,K., Menzies,A. et al. (2011) COSMIC: mining complete cancer genomes in the catalogue of somatic mutations in cancer. Nucleic Acids Res., 39, D945–D950.
-1. Kerrien,S., Aranda,B., Breuza,L., Bridge,A., Broackes-Carter,F., Chen,C., Duesbury,M., Dumousseau,M., Feuermann,M., Hinz,U. et al. (2012) The Intact molecular interaction database in 2012. Nucleic Acids Res., 40, D841–D846.
-1. Croft,D., O’Kelly,G., Wu,G., Haw,R., Gillespie,M., Matthews,L., Caudy,M., Garapati,P., Gopinath,G., Jassal,B. et al. (2011) Reactome: a database of reactions, pathways and biological processes. Nucleic Acids Res., 39, D691–D697.
-1. Demir,E., Cary,M.P., Paley,S., Fukuda,K., Lemer,C., Vastrik,I.,Wu,G., D’Eustachio,P., Schaefer,C., Luciano,J. et al. (2010) The BioPAX community standard for pathway data sharing. Nature Biotechnol., 28, 935–942.
-1. Alemán Z, García-García F, Medina I, Dopazo J (2014): A web tool for the design and management of panels of genes for targeted enrichment and massive sequencing for clinical applications. Nucleic Acids Res 42: W83-7.
-1. [Alemán A][j], [Garcia-Garcia F][k], [Salavert F][l], [Medina I][m], [Dopazo J][n] (2014). A web-based interactive framework to assist in the prioritization of disease candidate genes in whole-exome sequencing studies. [Nucleic Acids Res.][o], W88-93.
-1. Landrum,M.J., Lee,J.M., Riley,G.R., Jang,W., Rubinstein,W.S., Church,D.M. and Maglott,D.R. (2014) ClinVar: public archive of relationships among sequence variation and human phenotype. Nucleic Acids Res., 42, D980–D985.
-1. Medina I, Salavert F, Sanchez R, de Maria A, Alonso R, Escobar P, Bleda M, Dopazo J: Genome Maps, a new generation genome browser. Nucleic Acids Res 2013, 41:W41-46.
-
-[1]: diagnostic-component-team.md
-[2]: priorization-component-bierapp.md
-[3]: ../../../general/resources-allocation-policy.md
-[4]: ../../../salomon/storage.md
-[5]: ../../../general/job-submission-and-execution.md
-
-[a]: http://www.bioinformatics.babraham.ac.uk/projects/fastqc/
-[b]: https://www.broadinstitute.org/gatk/
-[c]: https://github.com/opencb-hpg/hpg-aligner
-[d]: http://docs.bioinfo.cipf.es/projects/fastqhpc/wiki
-[e]: http://docs.bioinfo.cipf.es/projects/hpg-variant/wiki
-[f]: http://picard.sourceforge.net/
-[g]: http://samtools.sourceforge.net/samtools-c.shtml
-[h]: http://snpeff.sourceforge.net/
-[i]: http://www.uniprot.org/docs/humsavar
-[j]: http://www.ncbi.nlm.nih.gov/pubmed?term=Alem%C3%A1n%20A%5BAuthor%5D&cauthor=true&cauthor_uid=24803668
-[k]: http://www.ncbi.nlm.nih.gov/pubmed?term=Garcia-Garcia%20F%5BAuthor%5D&cauthor=true&cauthor_uid=24803668
-[l]: http://www.ncbi.nlm.nih.gov/pubmed?term=Salavert%20F%5BAuthor%5D&cauthor=true&cauthor_uid=24803668
-[m]: http://www.ncbi.nlm.nih.gov/pubmed?term=Medina%20I%5BAuthor%5D&cauthor=true&cauthor_uid=24803668
-[n]: http://www.ncbi.nlm.nih.gov/pubmed?term=Dopazo%20J%5BAuthor%5D&cauthor=true&cauthor_uid=24803668
-[o]: http://www.ncbi.nlm.nih.gov/pubmed/?term=BiERapp
diff --git a/content/docs/software/bio/omics-master/priorization-component-bierapp.mdx b/content/docs/software/bio/omics-master/priorization-component-bierapp.mdx
deleted file mode 100644
index d6e77e8956107ce7e0c30ac18e3f35a41828078a..0000000000000000000000000000000000000000
--- a/content/docs/software/bio/omics-master/priorization-component-bierapp.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "Prioritization Component (BiERapp)"
----
-## Access
-
-BiERapp is available at the [following address][1].
-
-<Callout>
-    The address is accessible only via VPN.
-</Callout>
-
-## BiERapp
-
-** This tool is aimed at discovering new disease genes or variants by studying affected families or cases and controls. It carries out a filtering process to sequentially remove: (i) variants which are not compatible with the disease because they are not expected to have impact on the protein function; (ii) variants that exist at frequencies incompatible with the disease; (iii) variants that do not segregate with the disease. The result is a reduced set of disease gene candidates that should be further validated experimentally. **
-
-BiERapp (28) efficiently helps in the identification of causative variants in family and sporadic genetic diseases. The program reads lists of predicted variants (nucleotide substitutions and indels) in affected individuals or tumor samples and controls. In family studies, different modes of inheritance can easily be defined to filter out variants that do not segregate with the disease along the family. Moreover, BiERapp integrates additional information such as allelic frequencies in the general population and the most popular damaging scores to further narrow down the number of putative variants in successive filtering steps. BiERapp provides an interactive and user-friendly interface that implements the filtering strategy used in the context of a large-scale genomic project carried out by the Spanish Network for Research, in Rare Diseases (CIBERER), and the Medical Genome Project. in which more than 800 exomes have been analyzed.
-
-![Web interface to the prioritization tool. This figure shows the interface of the web tool for candidate gene prioritization with the filters available. The tool includes a genomic viewer (/it4i/img/fig6.png)
-
-**Figure 6**. Web interface to the prioritization tool. This figure shows the interface of the web tool for candidate gene
-prioritization with the filters available. The tool includes a genomic viewer (Genome Maps 30) that enables the representation of the variants in the corresponding genomic coordinates.
-
-[1]: http://omics.it4i.cz/bierapp/
diff --git a/content/docs/software/cae/comsol/comsol-multiphysics.mdx b/content/docs/software/cae/comsol/comsol-multiphysics.mdx
deleted file mode 100644
index 7aab34eba04152dd80ebe96781ef0c40aa407052..0000000000000000000000000000000000000000
--- a/content/docs/software/cae/comsol/comsol-multiphysics.mdx
+++ /dev/null
@@ -1,196 +0,0 @@
----
-title: "COMSOL Multiphysics"
----
-## Introduction
-
-[COMSOL][a] is a powerful environment for modelling and solving various engineering
-and scientific problems based on partial differential equations.
-COMSOL is designed to solve coupled or multiphysics phenomena.
-For many standard engineering problems, COMSOL provides add-on products (modules)
-such as electrical, mechanical, fluid flow, and chemical applications.
-
-* [Structural Mechanics Module][b],
-* [Heat Transfer Module][c],
-* [CFD Module][d],
-* [Acoustics Module][e].
-* and [many others][f]
-
-COMSOL also allows an interface support for equation-based modelling of partial differential equations.
-
-## Execution
-
-There are two types of license:
-
-* **Non commercial** or so called **EDU variant**, which can be used for research and educational purposes.
-
-* **Commercial** or so called **COM variant**, which can used also for commercial activities. **COM variant** has only subset of features compared to the **EDU variant** available. More about licensing [here][1].
-
-By default, the **EDU variant** is loaded. If you needs other version or variant, load the particular version. To obtain the list of available versions, use:
-
-```console
-$ ml av COMSOL
-```
-
-To prepare COMSOL jobs in the interactive mode, we recommend using COMSOL on the compute nodes.
-
-<Callout>
-    To run the COMSOL Desktop GUI on Windows, we recommend using the [Virtual Network Computing (VNC)][2].
-</Callout>
-
-Example for Karolina:
-
-```console
-$srun --account=PROJECT_ID --partition=qcpu --nodes=1 --ntasks=128 --cpus-per-task=1 --x11
-
-$ ml av COMSOL
-
------------------------------- /apps/modules/phys -----------------------------
-   COMSOL/5.2.0-COM    COMSOL/5.2.0-EDU (D)
-
-$ ml COMSOL/5.2.0-EDU
-$ comsol -3drend sw
-```
-
-* If you receive errors at startup, for example, of the following type:
-
-```console
-FL3D: error at line 814 in file fl3dglcontext_x11common.c:
-   PBuffers are not supported by the system.
-FL3D: error at line 235 in file fl3dglcontext_x11common.c:
-   assert: x11Handle
-```
-
-you need to run COMSOL with additional parameters:
-
-```console
-$ comsol -3drend sw
-```
-
-To run COMSOL in batch mode without the COMSOL Desktop GUI environment,
-utilize the following (`comsol.slurm`) job script and execute it via the `salloc` command:
-
-```bash
-#!/bin/bash
-#SBATCH --nodes=3
-#SBATCH --ntasks-per-node=128
-#SBATCH --cpus-per-task=1
-#SBATCH --partition=qcpu
-#SBATCH --job-name=JOB_NAME
-#SBATCH --account=PROJECT_ID
-
-cd /scratch/project/PROJECT_ID/ || exit
-
-echo Time is `date`
-echo Directory is `pwd`
-echo '**SLURM_JOB_NODELIST***START*******'
-scontrol show hostname $SLURM_JOB_NODELIST
-echo '**SLURM_JOB_NODELIST***END*********'
-
-# Assign the number of tasks
-ntask=$(scontrol show hostname $SLURM_JOB_NODELIST | wc -l)
-
-# Load COMSOL module
-ml COMSOL/5.2.0-EDU
-
-# Run COMSOL with SLURM options
-comsol -3drend sw -nn ${ntask} batch -configuration /tmp \
-    –mpiarg –rmk –mpiarg slurm \
-    -tmpdir /scratch/project/PROJECT_ID/ \
-    -inputfile name_input_f.mph \
-    -outputfile name_output_f.mph \
-    -batchlog name_log_f.log
-```
-
-A working directory has to be created before sending the (`comsol.slurm`) job script into the queue.
-The input file (name_input_f.mph) has to be in the working directory
-or a full path to the input file has to be specified.
-The appropriate path to the temp directory of the job has to be set by the `-tmpdir` command option.
-
-### Starting a COMSOL Server
-
-Starting a COMSOL server on a compute node and then connecting to it
-through a COMSOL Desktop GUI environment is a convenient way of running calculations from GUI.
-To do so, you first need to submit a job with which you'll start the COMSOL server, for example:
-
-<Callout>
-    You may be prompted to provide username and password. These can be different from your IT4Innovations credentials, and will be used during the authentication when trying to connect to the server from GUI.
-</Callout>
-
-```bash
-$ salloc --account=PROJECT_ID --partition=qcpu_exp --nodes=1 --ntasks=36 --cpus-per-task=1
-salloc: Granted job allocation 694746
-salloc: Waiting for resource configuration
-salloc: Nodes cn58 are ready for job
-
-$ ml COMSOL/5.2.0-COM
-$ comsol server
-COMSOL 5.2 (Build: 166) Multiphysics Server started listening on port 2036
-Use the console command 'close' to exit the program
-```
-
-After that, start your COMSOL Desktop GUI session and fill required information under `File -> Client Server -> Connect to Server`, where server will be the node where COMSOL server is running. Once you are done, your computational tasks will be offloaded to the COMSOL server.
-
-## LiveLink for MATLAB
-
-COMSOL is a software package for the numerical solution of partial differential equations. LiveLink for MATLAB allows connection to the COMSOL API (Application Programming Interface) with the benefits of the programming language and computing environment of MATLAB.
-
-LiveLink for MATLAB is available in both **EDU** and **COM** **variant** of the COMSOL release. On the clusters there is 1 commercial (**COM**) and 5 educational (**EDU**) licenses of LiveLink for MATLAB (see the [ISV Licenses][3]). The following example shows how to start COMSOL model from MATLAB via LiveLink in the interactive mode.
-
-```console
-salloc --account=PROJECT_ID --partition=qcpu_exp --nodes=1 --ntasks=128 --cpus-per-task=1 --x11
-$ ml <matlab_module> and <comsol_module>
-$ comsol -3drend sw server MATLAB
-```
-
-On the first start of the LiveLink for MATLAB (client-MATLAB/server-COMSOL connection), the login and password is requested; this information is not requested again.
-
-To run LiveLink for MATLAB in batch mode with (`comsol_matlab.slurm`) job script,
-you can utilize/modify the following script and execute it via the `sbatch` command.
-
-```bash
-#!/bin/bash
-#SBATCH --nodes=3
-#SBATCH --ntasks-per-node=128
-#SBATCH --cpus-per-task=1
-#SBATCH --partition=qcpu
-#SBATCH --job-name=JOB_NAME
-#SBATCH --account=PROJECT_ID
-
-cd /scratch/project/PROJECT_ID || exit
-
-echo Time is `date`
-echo Directory is `pwd`
-echo '**SLURM_JOB_NODELIST***START*******'
-scontrol show hostname $SLURM_JOB_NODELIST
-echo '**SLURM_JOB_NODELIST***END*********'
-
-# Assign the number of tasks
-ntask=$(scontrol show hostname $SLURM_JOB_NODELIST | wc -l)
-
-# Load modules
-ml <matlab_module> and <comsol_module>
-
-# Run with Slurm options
-comsol -3drend sw -nn ${ntask} server -configuration /tmp -mpiarg -rmk -mpiarg slurm -tmpdir /scratch/project/PROJECT_ID &
-cd $EBROOTCOMSOL/mli
-matlab -nodesktop -nosplash -r "mphstart; addpath /scratch/project/PROJECT_ID; test_job"
-```
-
-This example shows how to run LiveLink for MATLAB with the following configuration:
-3 nodes and 128 cores per node. A working directory has to be created
-before submitting (`comsol_matlab.slurm`) job script into the queue.
-The input file (`test_job.m`) has to be in the working directory
-or a full path to the input file has to be specified.
-The MATLAB command option (`-r ”mphstart”`) created a connection with a COMSOL server using the default port number.
-
-[1]: licensing-and-available-versions.md
-[2]: ../../../general/accessing-the-clusters/graphical-user-interface/vnc.md
-[3]: ../../isv_licenses.md
-[4]: ../../../modules/lmod/#loading-modules
-
-[a]: http://www.comsol.com
-[b]: http://www.comsol.com/structural-mechanics-module
-[c]: http://www.comsol.com/heat-transfer-module
-[d]: http://www.comsol.com/cfd-module
-[e]: http://www.comsol.com/acoustics-module
-[f]: http://www.comsol.com/products
diff --git a/content/docs/software/cae/comsol/licensing-and-available-versions.mdx b/content/docs/software/cae/comsol/licensing-and-available-versions.mdx
deleted file mode 100644
index 8fdc794c9b9529ddeeb9fbd530e224ffcf591353..0000000000000000000000000000000000000000
--- a/content/docs/software/cae/comsol/licensing-and-available-versions.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "Licensing and Available Versions"
----
-## COMSOL License Can Be Used By:
-
-* all persons carrying out the CE IT4Innovations Project (In addition to the primary licensee, which is VSB - Technical University of Ostrava, users are CE IT4Innovations third parties - CE IT4Innovations project partners, particularly the University of Ostrava, the Brno University of Technology - Faculty of Informatics, the Silesian University in Opava, Institute of Geonics AS CR.);
-* all persons who have a valid license;
-* students of the Technical University.
-
-## COMSOL Network License Types
-
-| Type | Description |
-| ---- | ----------- |
-| EDU  | Academic license for science and research, publications, students’ projects, and teaching. |
-| COM  | Commercial license for science and research, publications, students’ projects, and commercial research with no commercial use restrictions. Enables the solution of at least one job by one user in one program start. |
-
-## Available Versions
-
-See the [list of available licenses][a].
-
-[a]: http://licelin.it4i.cz/list/
\ No newline at end of file
diff --git a/content/docs/software/cae/comsol/meta.json b/content/docs/software/cae/comsol/meta.json
deleted file mode 100644
index 3aafc618a18b925a41595dcac05650c2c5d09834..0000000000000000000000000000000000000000
--- a/content/docs/software/cae/comsol/meta.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "title": "Comsol",
-  "pages": [
-    "comsol-multiphysics",
-    "licensing-and-available-versions"
-  ]
-}
diff --git a/content/docs/software/cae/meta.json b/content/docs/software/cae/meta.json
deleted file mode 100644
index 61ad618029c48206f4ce64560e725e822a8d5046..0000000000000000000000000000000000000000
--- a/content/docs/software/cae/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Cae",
-  "pages": [
-    "comsol"
-  ]
-}
diff --git a/content/docs/software/chemistry/files-nwchem/meta.json b/content/docs/software/chemistry/files-nwchem/meta.json
deleted file mode 100644
index 301c21cce82b5ace9df0ad506d28092024640b77..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/files-nwchem/meta.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "title": "Files-nwchem",
-  "pages": []
-}
diff --git a/content/docs/software/chemistry/files-phono3py/meta.json b/content/docs/software/chemistry/files-phono3py/meta.json
deleted file mode 100644
index 147c613f635a64e763822a9c3a008a4b5bb5ffff..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/files-phono3py/meta.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "title": "Files-phono3py",
-  "pages": []
-}
diff --git a/content/docs/software/chemistry/files-phonopy/meta.json b/content/docs/software/chemistry/files-phonopy/meta.json
deleted file mode 100644
index 1a2fcdec77cc0e7e29e5001f9457ca3c1ba2f130..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/files-phonopy/meta.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "title": "Files-phonopy",
-  "pages": []
-}
diff --git a/content/docs/software/chemistry/gaussian.mdx b/content/docs/software/chemistry/gaussian.mdx
deleted file mode 100644
index 08d5d134ac76e5b8e8e8691c1d8adfcf2e1b8d31..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/gaussian.mdx
+++ /dev/null
@@ -1,267 +0,0 @@
----
-title: "Gaussian"
----
-## Introduction
-
-Gaussian provides state-of-the-art capabilities for electronic structure modeling.
-Gaussian provides a wide-ranging suite of the most advanced modeling capabilities available.
-Starting from the fundamental laws of quantum mechanics, Gaussian predicts the energies, molecular structures, vibrational frequencies, and molecular properties of compounds and reactions in a wide variety of chemical environments.
-Gaussians models can be applied to both stable species and compounds that are difficult or impossible to observe experimentally.
-
-For more information, see the [official webpage][a].
-
-## License
-
-Gaussian software package is available to all users that are
-not in direct or indirect competition with the Gaussian Inc. company and have a valid AUP with the IT4Innovations National Supercomputing Center.
-The license includes GPU support and Linda parallel environment for Gaussian multi-node parallel execution.
-
-<Callout>
-    You need to be a member of the **gaussian group**. Contact [support\[at\]it4i.cz][b] in order to get included in the gaussian group.
-</Callout>
-
-Check your group membership:
-
-```bash
-$ id
-uid=1000(user) gid=1000(user) groups=1000(user),1234(open-0-0),7310(gaussian)
-```
-
-## Installed Version
-
-The following versions of Gaussian is available on Karolina, Barbora, and DGX-2 systems.
-
-| Module                               | CPU support | GPU support  | Parallelization | Note                | Barbora | DGX-2 | Karolina |
-|--------------------------------------|-------------|--------------|-----------------|---------------------|---------|-------| -------- |
-| Gaussian/09-a02                      | AVX2        | No           | SMP + Linda     | IT4I compiled       | Yes     | No    | No       |
-| Gaussian/09-d01                      | AVX2        | No           | SMP + Linda     | IT4I compiled       | Yes     | No    | No       |
-| Gaussian/16_rev_c0-binary            | AVX2        | Yes          | SMP             | Binary distribution | Yes     | Yes   | No       |
-| Gaussian/16_rev_c0-binary-Linda      | AVX2        | Yes          | SMP + Linda     | Binary distribution | Yes     | No    | No       |
-| Gaussian/16_rev_c0-CascadeLake       | AVX-512     | No           | SMP             | IT4I compiled       | Yes     | No    | No       |
-| Gaussian/16_rev_c0-CascadeLake-Linda | AVX-512     | No           | SMP + Linda     | IT4I compiled       | Yes     | No    | No       |
-| Gaussian/16_rev_c0-GPU-Linda         | AVX2        | Yes          | SMP + Linda     | IT4I compiled       | Yes     | No    | No       |
-| Gaussian/16_rev_c0-GPU               | AVX2        | Yes          | SMP             | IT4I compiled       | No      | Yes   | No       |
-| Gaussian/16_rev_c0-Linda             | AVX2        | No           | SMP + Linda     | IT4I compiled       | No      | No    | No       |
-| Gaussian/16_rev_c0                   | AVX2        | No           | SMP + Linda     | IT4I compiled       | No      | No    | No       |
-| Gaussian/16_rev_c2                   | AVX2        | Yes          | SMP + Linda     | IT4I compiled       | No      | No    | Yes      |
-
-Speedup may be observed on Barbora and DGX-2 systems when using the `CascadeLake` and `GPU` modules compared to the `binary` module.
-
-## Running
-
-Gaussian is compiled for single node parallel execution as well as multi-node parallel execution using Linda.
-GPU support for V100 cards is available on Barbora and DGX-2.
-
-<Callout>
-    By default, the execution is single-core, single-node, and without GPU acceleration.
-</Callout>
-
-### Shared-Memory Multiprocessor Parallel Execution (Single Node)
-
-Load module
-
-```bash
-$ ml Gaussian/16_rev_c0-binary
-```
-
-In the input file Link0 header section, set the CPU cores (e.g. 36 for Barbora, 48 for DGX-2) and memory amount.
-
-```bash
-%CPU=0-35
-%Mem=8GB
-```
-
-### Cluster/Network Parallel Execution (Multi Node)
-
-Load Linda-enabled module
-
-```bash
-$ ml Gaussian/16_rev_c0-binary-Linda
-```
-
-The network parallelization environment is **Linda**.
-In the input file Link0 header section, set the CPU cores (e.g. 36 for Barbora, 48 for DGX-2) and memory amount.
-Include the `%UseSSH` keyword, as well. This enables Linda to spawn parallel workers.
-
-```bash
-%CPU=0-35
-%Mem=8GB
-%UseSSH
-```
-
-The number and placement of Linda workers may be controlled by %LindaWorkers keyword or by
-GAUSS_WDEF environment variable. When running multi-node job via the batch queue, loading
-the Linda-enabled module **automatically sets the `GAUSS_WDEF` variable** to the correct node-list, using one worker per node.
-In combination with the %CPU keyword, this enables a full-scale multi-node execution.
-
-```bash
-$ echo $GAUSS_WDEF
-```
-
-If a different amount of Linda workers is required, unset or modify
-the GAUSS_WDEF environment variable accordingly.
-
-### GPU-Accelerated Execution (Single Node/Multi Node)
-
-#### Karolina
-
-Karolina is equipped with NVIDIA A100 GPUs and the Ampere architecture requires new CUDA and compiler versions which are supported by the module `Gaussian/16_rev_c2`.
-
-#### Barbora
-
-On Barbora, the GPU acceleration may be combined with the Linda parallelization.
-Load Linda-enabled binary module:
-
-```bash
-$ ml Gaussian/16_rev_c0-binary-Linda
-```
-
-or GPU-enabled module:
-
-```bash
-$ ml Gaussian/16_rev_c0-GPU-Linda
-```
-
-In the input file Link0 header section, set the CPU cores (24 for Barbora GPU nodes) and memory.
-To enable GPU acceleration, set the `%GPUCPU` keyword. This keyword activates GPU accelerators and dedicates CPU cores to drive the GPU accelerators.
-On Barbora GPU nodes, we activate GPUs 0-3 and assign cores 0, 2, 12, 14 (two from each CPU socket) to drive the accelerators.
-If multi-node computation is intended, include the `%UseSSH` keyword, as well. This enables Linda to spawn parallel workers.
-
-```bash
-%CPU=0-23
-%GPUCPU=0-3=0,2,12,14
-%Mem=8GB
-%UseSSH
-```
-
-#### DGX-2
-
-GPU-accelerated calculations on the **DGX-2** are supported with Gaussian binary module:
-
-```bash
-$ ml Gaussian/16_rev_c0-binary
-```
-
-Or IT4I-compiled module
-
-```bash
-$ ml Gaussian/16_rev_c0-GPU
-```
-
-In the input file Link0 header section, modify the `%CPU` keyword to 48 cores and the `%GPUCPU` keyword to 16 GPU accelerators. Omit the Linda.
-
-```bash
-%CPU=0-47
-%GPUCPU=0-15=0,2,4,6,8,10,12,14,24,26,28,30,32,34,36,38
-%Mem=512GB
-```
-
-### Example Input File
-
-This example input file sets water molecule geometry optimization and vibrational frequencies computation
-using 36 cores (on Barbora supercomputer) and Linda parallelization.
-
-```bash
-%CPU=0-35
-%Mem=8GB
-%UseSSH
-#p rb3lyp/6-31G* test opt freq
-
-Gaussian Test Job:
-WATER H20 optimization
-
- 0 1
- O
- H 1 R
- H 1 R 2 A
-
-R 0.96
-A 109.471221
-
-```
-
-### Run Gaussian (All Modes)
-
-Set a scratch directory:
-
-```bash
-$ GAUSS_SCRDIR=/scratch/project/open-0-0/GaussianJob # on Barbora
-```
-
-Copy files from a local home to the scratch directory:
-
-```bash
-cp * $GAUSS_SCRDIR/
-```
-
-Run Gaussian:
-
-```bash
-cd $GAUSS_SCRDIR
-g16 < input.inp > output.out
-```
-
-After the calculation, you can move the data back to your home directory and delete the scratch folder.
-For more details, see the [Gaussian documentation][c].
-
-### Example Jobscript
-
-This jobscript will run parallel Gaussian job on Barbora supercomputer, using 4 nodes (4*36 = 144 cores) via Linda. The Linda workers are set
-up automatically by the module load.
-
-```bash
-#!/bin/bash
-#SBATCH --account=PROJECT_ID
-#SBATCH --partition=qcpu
-#SBATCH --job-name=MY_JOB
-#SBATCH --nodes=4
-
-# change to workdir
-cd $$SLURM_SUBMIT_DIR
-
-# load Gaussian Linda enabled module and set up Linda
-ml Gaussian/16_rev_c0-binary-Linda
-
-# create scratch folder and copy input files
-GAUSS_SCRDIR=/scratch/work/project/open-0-0/GaussianJob
-mkdir -p $GAUSS_SCRDIR
-cd $GAUSS_SCRDIR || exit
-cp $SLURM_SUBMIT_DIR/* .
-
-# run Gaussian calculation
-# g16 < input.inp > output.out
-
-# run Gaussian from stdin
-g16 << EOF > output.out
-%CPU=0-35
-%Mem=8GB
-%UseSSH
-#p rb3lyp/6-31G* test opt freq
-
-Gaussian Test Job:
-WATER H20 optimization
-
- 0 1
- O
- H 1 R
- H 1 R 2 A
-
-R 0.96
-A 109.471221
-
-
-EOF
-
-# copy output files to home
-	cp * $SLURM_SUBMIT_DIR/. && cd ../
-
-# delete scratch directory
-rm -rf $GAUSS_SCRDIR
-
-#end
-exit
-```
-
-[a]: https://gaussian.com/gaussian16/
-[b]: mailto:support@it4i.cz
-[c]: https://gaussian.com/man/
diff --git a/content/docs/software/chemistry/meta.json b/content/docs/software/chemistry/meta.json
deleted file mode 100644
index b71bcdf17bf237ff98fadaa13e15abed219cef34..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/meta.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "title": "Chemistry",
-  "pages": [
-    "files-nwchem",
-    "files-phono3py",
-    "files-phonopy",
-    "gaussian",
-    "molpro",
-    "nwchem",
-    "orca",
-    "phono3py",
-    "phonopy",
-    "vasp"
-  ]
-}
diff --git a/content/docs/software/chemistry/molpro.mdx b/content/docs/software/chemistry/molpro.mdx
deleted file mode 100644
index 95c148451b8c316e0139ff231e6593935f64a309..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/molpro.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: "Molpro"
----
-## Introduction
-
-MOLPRO is a complete software package used for accurate ab-initio quantum chemistry calculations.
-For more information, see the [official webpage][a].
-
-## License
-
-MOLPRO software package is available only to users that have a valid license. Contact support to enable access to MOLPRO if you have a valid license appropriate for running on our cluster (e.g. academic research group licence, parallel execution).
-
-To run MOLPRO, you need to have a valid license token present in `HOME/.molpro/token`. You can download the token from [MOLPRO website][b].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Molpro
-```
-
-Compilation parameters are default:
-
-| Parameter                          | Value        |
-| ---------------------------------- | ------------ |
-| max number of atoms                | 200          |
-| max number of valence orbitals     | 300          |
-| max number of basis functions      | 4095         |
-| max number of states per symmetry  | 20           |
-| max number of state symmetries     | 16           |
-| max number of records              | 200          |
-| max number of primitives           | maxbfn x [2] |
-
-## Running
-
-MOLPRO is compiled for parallel execution using MPI and OpenMP.
-By default, MOLPRO reads the number of allocated nodes from Slurm
-and launches a data server on one node.
-On the remaining allocated nodes, compute processes are launched, one process per node.
-You can modify this behavior by using the `-n`, `-t`, and `helper-server` options.
-For more details, see the [MOLPRO documentation][c].
-
-<Callout>
-    The OpenMP parallelization in MOLPRO is limited and has been observed to produce limited scaling. We therefore recommend to use MPI parallelization only. This can be achieved by passing the `--ntasks-per-node=128` and `--cpus-per-task=1` options to Slurm.
-</Callout>
-
-You are advised to use the `-d` option to point to a directory in SCRATCH file system.
-MOLPRO can produce a large amount of temporary data during its run,
-so it is important that these are placed in the fast scratch file system.
-
-### Example jobscript
-
-```bash
-#!/bin/bash
-#SBATCH --account=PROJECT_ID
-#SBATCH --partition=qcpu
-#SBATCH --nodes=1
-#SBATCH --ntasks-per-node=128
-#SBATCH --cpus-per-task=1
-
-cd $SLURM_SUBMIT_DIR
-
-# load Molpro module
-ml Molpro/mpp-2024.1.0.linux_x86_64_mpipr
-
-# create a directory in the SCRATCH filesystem
-mkdir -p /scratch/project/PROJECT_ID/$SLURM_JOB_ID
-cd /scratch/project/PROJECT_ID/$SLURM_JOB_ID
-
-# copy an example input
-cp $EBROOTMOLPRO/examples/caffeine_opt_diis.com .
-
-# run Molpro with default options
-molpro -d /scratch/project/PROJECT_ID/$SLURM_JOB_ID caffeine_opt_diis.com
-
-exit 0
-```
-
-[a]: http://www.molpro.net/
-[b]: https://www.molpro.net/licensee/?portal=licensee
-[c]: http://www.molpro.net/info/2010.1/doc/manual/node9.html
diff --git a/content/docs/software/chemistry/nwchem.mdx b/content/docs/software/chemistry/nwchem.mdx
deleted file mode 100644
index 2cf96a01482eb93602cc2000c9e72bbf7a15c9ff..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/nwchem.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: "NWChem"
----
-## Introduction
-
-[NWChem][a] aims to provide its users with computational chemistry tools
-that are scalable both in their ability to treat large scientific computational chemistry problems efficiently,
-and in their use of available parallel computing resources
-from high-performance parallel supercomputers to conventional workstation clusters.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av NWChem
-```
-
-## Running
-
-NWChem is compiled for parallel MPI execution.
-A standard procedure for MPI jobs applies.
-A sample jobscript (for Karolina on 128 threads) using a sample input file [h2o.nw][1]:
-
-```bash
-#SBATCH --account=ACCOUNT_ID
-#SBATCH --partition=qcpu
-#SBATCH --nodes=1
-#SBATCH --ntasks-per-node=128
-#SBATCH --cpus-per-task=1
-
-cd $SLURM_SUBMIT_DIR
-ml NWChem/7.0.2-intel-2020a-Python-3.8.2-karolina
-mpirun nwchem h2o.nw
-```
-
-## Options
-
-Refer to [the documentation][b] and set the following directives in the input file:
-
-* MEMORY : controls the amount of memory NWChem will use
-* SCRATCH_DIR : set this to a directory in SCRATCH filesystem (or run the calculation completely in a scratch directory). For certain calculations, it might be advisable to reduce I/O by forcing the `direct` mode, e.g. `scf direct`
-
-[1]: ./files-nwchem/h2o.nw
-
-[a]: https://www.nwchem-sw.org/index.php/Main_Page
-[b]: https://github.com/nwchemgit/nwchem/wiki
diff --git a/content/docs/software/chemistry/orca.mdx b/content/docs/software/chemistry/orca.mdx
deleted file mode 100644
index 352e462f69ae218b42452a0eac489c064bf6d2b3..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/orca.mdx
+++ /dev/null
@@ -1,281 +0,0 @@
----
-title: "ORCA"
----
-## Introduction
-
-ORCA is a flexible, efficient, and easy-to-use general-purpose tool for quantum chemistry with specific emphasis on spectroscopic properties of open-shell molecules. It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- and multireference correlated ab initio methods. It can also treat environmental and relativistic effects.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av orca
-```
-
-## Serial Computation With ORCA
-
-You can test a serial computation with this simple input file.
-Create a file called `orca_serial.inp` and paste into it the following ORCA commands:
-
-```bash
-    ! HF SVP
-    * xyz 0 1
-      C 0 0 0
-      O 0 0 1.13
-    *
-```
-
-Next, create a Slurm submission file for Karolina cluster (interactive job can be used too):
-
-```bash
-#!/bin/bash
-#SBATCH --job-name=ORCA_SERIAL
-#SBATCH --nodes=1
-#SBATCH --partition=qcpu_exp
-#SBATCH --time=1:00:00
-#SBATCH --account=OPEN-0-0
-
-ml ORCA/6.0.0-gompi-2023a-avx2
-orca orca_serial.inp
-```
-
-Submit the job to the queue.
-After the job ends, you can find an output log in your working directory:
-
-```console
-sbatch submit_serial.slurm
-1417552
-
-$ ll ORCA_SERIAL.*
--rw------- 1 user user     0 Aug 21 12:24 ORCA_SERIAL.e1417552
--rw------- 1 user user 20715 Aug 21 12:25 ORCA_SERIAL.o1417552
-
-$ cat ORCA_SERIAL.o1417552
-
-                                 *****************
-                                 * O   R   C   A *
-                                 *****************
-
-                #########################################################
-                #                        -***-                          #
-                #          Department of theory and spectroscopy        #
-                #                                                       #
-                #                      Frank Neese                      #
-                #                                                       #
-                #     Directorship, Architecture, Infrastructure        #
-                #                    SHARK, DRIVERS                     #
-                #        Core code/Algorithms in most modules           #
-                #                                                       #
-                #        Max Planck Institute fuer Kohlenforschung      #
-                #                Kaiser Wilhelm Platz 1                 #
-                #                 D-45470 Muelheim/Ruhr                 #
-                #                      Germany                          #
-                #                                                       #
-                #                  All rights reserved                  #
-                #                        -***-                          #
-                #########################################################
-
-
-                         Program Version 6.0.0  -   RELEASE  -
-
-...
-
-                             ****ORCA TERMINATED NORMALLY****
-TOTAL RUN TIME: 0 days 0 hours 0 minutes 0 seconds 980 msec
-```
-
-## Running ORCA in Parallel
-
-Your serial computation can be easily converted to parallel.
-Simply specify the number of parallel processes by the `%pal` directive.
-In this example, 1 node, 16 cores are used.
-
-<Callout type=warn>
-    Do not use the `! PAL` directive as only PAL2 to PAL8 is recognized.
-</Callout>
-
-```bash
-    ! HF SVP
-    %pal
-      nprocs 16
-    end
-    * xyz 0 1
-      C 0 0 0
-      O 0 0 1.13
-    *
-```
-
-You also need to edit the previously used Slurm submission file.
-You have to specify number of nodes, cores, and MPI-processes to run:
-
-```bash
-
-#!/bin/bash
-#SBATCH --job-name=ORCA_PARALLEL
-#SBATCH --nodes=1
-#SBATCH --ntasks-per-node=16
-#SBATCH --partition=qcpu_exp
-#SBATCH --account=OPEN-0-0
-#SBATCH --time=1:00:00
-
-ml ORCA/6.0.0-gompi-2023a-avx2
-$(which orca) orca_parallel.inp > output.out
-```
-
-<Callout>
-    When running ORCA in parallel, ORCA should **NOT** be started with `mpirun` (e.g. `mpirun -np 4 orca`, etc.)
-    like many MPI programs and **has to be called with a full pathname**.
-</Callout>
-
-Submit this job to the queue and see the output file.
-
-```console
-$ sbatch submit_parallel.slurm
-Submitted batch job 2127305
-
-$ cat output.out
-
-                                 *****************
-                                 * O   R   C   A *
-                                 *****************
-
-
-                #########################################################
-                #                        -***-                          #
-                #          Department of theory and spectroscopy        #
-                #                                                       #
-                #                      Frank Neese                      #
-                #                                                       #
-                #     Directorship, Architecture, Infrastructure        #
-                #                    SHARK, DRIVERS                     #
-                #        Core code/Algorithms in most modules           #
-                #                                                       #
-                #        Max Planck Institute fuer Kohlenforschung      #
-                #                Kaiser Wilhelm Platz 1                 #
-                #                 D-45470 Muelheim/Ruhr                 #
-                #                      Germany                          #
-                #                                                       #
-                #                  All rights reserved                  #
-                #                        -***-                          #
-                #########################################################
-
-
-                         Program Version 6.0.0  -   RELEASE  -
-...
-
-           ************************************************************
-           *        Program running with 16 parallel MPI-processes    *
-           *              working on a common directory               *
-           ************************************************************
-
-...
-                             ****ORCA TERMINATED NORMALLY****
-TOTAL RUN TIME: 0 days 0 hours 0 minutes 17 seconds 62 msec
-```
-
-You can see, that the program was running with 16 parallel MPI-processes.
-In version 6.0.0, only the following modules are parallelized:
-
-* AUTOCI
-* CASSCF / NEVPT2 / CASSCFRESP
-* CIPSI
-* CIS/TDDFT
-* GRAD (general Gradient program)
-* GUESS
-* LEANSCF (memory conserving SCF solver)
-* MCRPA
-* MDCI (Canonical- and DLPNO-Methods)
-* MM
-* MP2 and RI-MP2 (including Gradients)
-* MRCI
-* PC
-* PLOT
-* PNMR
-* POP
-* PROP
-* PROPINT
-* REL
-* ROCIS
-* SCFGRAD
-* SCFRESP (with SCFHessian)
-* STARTUP
-* VPOT
-* Numerical Gradients, Frequencies, Overtones-and-Combination-Bands
-* VPT2
-* NEB (Nudged Elastic Band
-
-<!--
-
-## Example Submission Script
-
-The following script contains all of the necessary instructions to run an ORCA job,
-including copying of the files to and from `/scratch` to utilize the InfiniBand network:
-
-```bash
-#!/bin/bash
-#SBATCH --account=OPEN-00-00
-#SBATCH --job-name=example-CO
-#SBATCH --partition=qexp
-#SBATCH --nodes=2
-#SBATCH --ntasks-per-node=128
-#SBATCH --cpus-per-task=1
-#SBATCH --time=00:05:00
-
-ml purge
-ml ORCA/5.0.1-OpenMPI-4.1.1
-
-echo $SLURM_O_WORKDIR
-cd $SLURM_O_WORKDIR
-
-# create /scratch dir
-b=$(basename $SLURM_O_WORKDIR)
-SCRDIR=/scratch/project/OPEN-00-00/$USER/${b}_${SLURM_JOBID}/
-echo $SCRDIR
-mkdir -p $SCRDIR
-cd $SCRDIR || exit
-
-# get number of cores used for our job
-ncpus=$(sacct -j 727825 --format=AllocCPUS --noheader | head -1)
-
-### create ORCA input file
-cat > ${SLURM_JOBNAME}.inp <<EOF
-! HF def2-TZVP
-%pal
-  nprocs $ncpus
-end
-* xyz 0 1
-C 0.0 0.0
- 0.0
-O 0.0 0.0
- 1.13
-*
-EOF
-###
-
-# copy input files to /scratch
-cp -r $SLURM_O_WORKDIR/* .
-
-# run calculations
-$(which orca) ${SLURM_JOBNAME}.inp > $SLURM_O_WORKDIR/${SLURM_JOBNAME}.out
-
-# copy output files to home, delete the rest
-cp * $SLURM_O_WORKDIR/ && cd $SLURM_O_WORKDIR
-rm -rf $SCRDIR
-exit
-```
-
--->
-
-## Register as User
-
-You are encouraged to register as a user of ORCA [here][a]
-in order to take advantage of updates, announcements, and the users forum.
-
-## Documentation
-
-A comprehensive [manual][b] is available online for registered users.
-
-[a]: https://orcaforum.kofo.mpg.de/app.php/portal
-[b]: https://www.faccts.de/docs
-
diff --git a/content/docs/software/chemistry/phono3py.mdx b/content/docs/software/chemistry/phono3py.mdx
deleted file mode 100644
index 8fe63ca402ccd4d674443aed2bfc5fde711baf75..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/phono3py.mdx
+++ /dev/null
@@ -1,186 +0,0 @@
----
-title: "Phono3py"
----
-## Introduction
-
-This GPL software calculates phonon-phonon interactions via the third order force constants. It allows obtaining lattice thermal conductivity, phonon lifetime/linewidth, imaginary part of self energy at the lowest order, joint density of states (JDOS), and weighted-JDOS. For details, see Phys. Rev. B 91, 094306 (2015) and [website][a].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av phono3py
-```
-
-## Example of Calculating Thermal Conductivity of Si Using VASP Code.
-
-### Calculating Force Constants
-
-You need to calculate second order and third order force constants using the diamond structure of silicon stored in [POSCAR][1] (the same form as in VASP) using single displacement calculations within supercell.
-
-```console
-$ cat POSCAR
- Si
-   1.0
-     5.4335600309153529    0.0000000000000000    0.0000000000000000
-     0.0000000000000000    5.4335600309153529    0.0000000000000000
-     0.0000000000000000    0.0000000000000000    5.4335600309153529
- Si
-   8
-Direct
-   0.8750000000000000 0.8750000000000000 0.8750000000000000
-   0.8750000000000000 0.3750000000000000 0.3750000000000000
-   0.3750000000000000 0.8750000000000000 0.3750000000000000
-   0.3750000000000000 0.3750000000000000 0.8750000000000000
-   0.1250000000000000 0.1250000000000000 0.1250000000000000
-   0.1250000000000000 0.6250000000000000 0.6250000000000000
-   0.6250000000000000 0.1250000000000000 0.6250000000000000
-   0.6250000000000000 0.6250000000000000 0.1250000000000000
-```
-
-### Generating Displacement Using 2 by 2 by 2 Supercell for Both Second and Third Order Force Constants
-
-```console
-$ phono3py -d --dim="2 2 2" -c POSCAR
-```
-
- 111 displacements is created stored in
-`disp_fc3.yaml`, and the structure input files with this displacements are `POSCAR-00XXX`, where the `XXX=111`.
-
-```console
-disp_fc3.yaml POSCAR-00008 POSCAR-00017 POSCAR-00026 POSCAR-00035 POSCAR-00044 POSCAR-00053 POSCAR-00062 POSCAR-00071 POSCAR-00080 POSCAR-00089 POSCAR-00098 POSCAR-00107
-POSCAR         POSCAR-00009 POSCAR-00018 POSCAR-00027 POSCAR-00036 POSCAR-00045 POSCAR-00054 POSCAR-00063 POSCAR-00072 POSCAR-00081 POSCAR-00090 POSCAR-00099 POSCAR-00108
-POSCAR-00001   POSCAR-00010 POSCAR-00019 POSCAR-00028 POSCAR-00037 POSCAR-00046 POSCAR-00055 POSCAR-00064 POSCAR-00073 POSCAR-00082 POSCAR-00091 POSCAR-00100 POSCAR-00109
-POSCAR-00002   POSCAR-00011 POSCAR-00020 POSCAR-00029 POSCAR-00038 POSCAR-00047 POSCAR-00056 POSCAR-00065 POSCAR-00074 POSCAR-00083 POSCAR-00092 POSCAR-00101 POSCAR-00110
-POSCAR-00003   POSCAR-00012 POSCAR-00021 POSCAR-00030 POSCAR-00039 POSCAR-00048 POSCAR-00057 POSCAR-00066 POSCAR-00075 POSCAR-00084 POSCAR-00093 POSCAR-00102 POSCAR-00111
-POSCAR-00004   POSCAR-00013 POSCAR-00022 POSCAR-00031 POSCAR-00040 POSCAR-00049 POSCAR-00058 POSCAR-00067 POSCAR-00076 POSCAR-00085 POSCAR-00094 POSCAR-00103
-POSCAR-00005   POSCAR-00014 POSCAR-00023 POSCAR-00032 POSCAR-00041 POSCAR-00050 POSCAR-00059 POSCAR-00068 POSCAR-00077 POSCAR-00086 POSCAR-00095 POSCAR-00104
-POSCAR-00006   POSCAR-00015 POSCAR-00024 POSCAR-00033 POSCAR-00042 POSCAR-00051 POSCAR-00060 POSCAR-00069 POSCAR-00078 POSCAR-00087 POSCAR-00096 POSCAR-00105
-POSCAR-00007   POSCAR-00016 POSCAR-00025 POSCAR-00034 POSCAR-00043 POSCAR-00052 POSCAR-00061 POSCAR-00070 POSCAR-00079 POSCAR-00088 POSCAR-00097 POSCAR-00106
-```
-
-For each displacement, the forces needs to be calculated, i.e. in form of the output file of VASP (vasprun.xml). For a single VASP calculations, you need [KPOINTS][2], [POTCAR][3], and [INCAR][4] in your case directory (where you have POSCARS) and those 111 displacements calculations can be generated by the [prepare.sh][5] script. Then each of the single 111 calculations is submitted [run.sh][6] by [submit.sh][7].
-
-```console
-$./prepare.sh
-$ls
-disp-00001 disp-00009 disp-00017 disp-00025 disp-00033 disp-00041 disp-00049 disp-00057 disp-00065 disp-00073 disp-00081 disp-00089 disp-00097 disp-00105     INCAR
-disp-00002 disp-00010 disp-00018 disp-00026 disp-00034 disp-00042 disp-00050 disp-00058 disp-00066 disp-00074 disp-00082 disp-00090 disp-00098 disp-00106     KPOINTS
-disp-00003 disp-00011 disp-00019 disp-00027 disp-00035 disp-00043 disp-00051 disp-00059 disp-00067 disp-00075 disp-00083 disp-00091 disp-00099 disp-00107     POSCAR
-disp-00004 disp-00012 disp-00020 disp-00028 disp-00036 disp-00044 disp-00052 disp-00060 disp-00068 disp-00076 disp-00084 disp-00092 disp-00100 disp-00108     POTCAR
-disp-00005 disp-00013 disp-00021 disp-00029 disp-00037 disp-00045 disp-00053 disp-00061 disp-00069 disp-00077 disp-00085 disp-00093 disp-00101 disp-00109     prepare.sh
-disp-00006 disp-00014 disp-00022 disp-00030 disp-00038 disp-00046 disp-00054 disp-00062 disp-00070 disp-00078 disp-00086 disp-00094 disp-00102 disp-00110     run.sh
-disp-00007 disp-00015 disp-00023 disp-00031 disp-00039 disp-00047 disp-00055 disp-00063 disp-00071 disp-00079 disp-00087 disp-00095 disp-00103 disp-00111     submit.sh
-disp-00008 disp-00016 disp-00024 disp-00032 disp-00040 disp-00048 disp-00056 disp-00064 disp-00072 disp-00080 disp-00088 disp-00096 disp-00104 disp_fc3.yaml
-```
-
-Tailor your run.sh script to fit into your project and other needs and submit all 111 calculations using the submit.sh script
-
-```console
-$ ./submit.sh
-```
-
-## Collecting Results and Post-Processing With Phono3py
-
-Once all jobs are finished and vasprun.xml is created in each disp-XXXXX directory, the collection is done by:
-
-```console
-$ phono3py --cf3 disp-{00001..00111}/vasprun.xml
-```
-
-and `disp_fc2.yaml, FORCES_FC2`, `FORCES_FC3`, and `disp_fc3.yaml` should appear and put into the HDF format by:
-
-```console
-$ phono3py --dim="2 2 2" -c POSCAR
-```
-
-resulting in `fc2.hdf5` and `fc3.hdf5`.
-
-### Thermal Conductivity
-
-The phonon lifetime calculations take some time; however, it is independent on grid points, so it can be split:
-
-```console
-$ phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" --sigma 0.1 --wgp
-```
-
-### Inspecting ir_grid_points.yaml
-
-```console
-$ grep grid_point ir_grid_points.yaml
-num_reduced_ir_grid_points: 35
-ir_grid_points:  # [address, weight]
-* grid_point: 0
-* grid_point: 1
-* grid_point: 2
-* grid_point: 3
-* grid_point: 4
-* grid_point: 10
-* grid_point: 11
-* grid_point: 12
-* grid_point: 13
-* grid_point: 20
-* grid_point: 21
-* grid_point: 22
-* grid_point: 30
-* grid_point: 31
-* grid_point: 40
-* grid_point: 91
-* grid_point: 92
-* grid_point: 93
-* grid_point: 94
-* grid_point: 101
-* grid_point: 102
-* grid_point: 103
-* grid_point: 111
-* grid_point: 112
-* grid_point: 121
-* grid_point: 182
-* grid_point: 183
-* grid_point: 184
-* grid_point: 192
-* grid_point: 193
-* grid_point: 202
-* grid_point: 273
-* grid_point: 274
-* grid_point: 283
-* grid_point: 364
-```
-
-You can find which grid points needed to be calculated, for instance, using:
-
-```console
-$ phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write-gamma --gp="0 1 2
-```
-
-You can calculate grid points 0, 1, 2. To automate, use, for instance, scripts to submit 5 points in series, see [gofree-cond1.sh][8].
-
-```console
-$ sbatch gofree-cond1.sh
-```
-
-Finally, the thermal conductivity result is produced by grouping single conductivity per grid calculations using:
-
-```console
-$ phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" --br --read_gamma
-```
-
-[1]: ./files-phono3py/POSCAR.txt
-[2]: ./files-phono3py/KPOINTS.txt
-[3]: ./files-phono3py/POTCAR.txt
-[4]: ./files-phono3py/INCAR.txt
-[5]: ./files-phono3py/prepare.sh
-[6]: ./files-phono3py/run.sh
-[7]: ./files-phono3py/submit.sh
-[8]: ./files-phono3py/gofree-cond1.sh
-
-[a]: https://phonopy.github.io/phono3py/
-
-<!---
-2021-03-31
-
-## Notes
-On salomon, all of the Python2.7-dependent versions no longer work, since Python2.7 is obsoleted.
-On barbora, all of the modules in /apps/modules/phys seem to work.
--->
diff --git a/content/docs/software/chemistry/phonopy.mdx b/content/docs/software/chemistry/phonopy.mdx
deleted file mode 100644
index 01832f6c0f1128264cf6726adf017029f0d77b49..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/phonopy.mdx
+++ /dev/null
@@ -1,128 +0,0 @@
----
-title: "Phonopy"
----
-## Introduction
-
-Phonopy is a free, open-source software for calculating phonons via harmonic and quasi-harmonic approximations, utilizing the direct force-constant method. At harmonic level, it allows calculating phonon band structure, phonon DOS and partial-DOS, phonon thermal properties, such as free energy, izochoric heat capacity, entropy, and other properties at constant volume, while the quasi-harmonic approximation can be used to obtain properties at constant pressure, such as izobaric heat capacity and thermal expansion coefficients. For details, see [Scr. Mater., 108 (2015), pp. 1-5][a], and the [Phonopy website][b].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-ml av phonopy
-```
-
-## Example of the Calculation of Phonon Density of States and Thermal Properties of Aluminum Using the VASP Code
-
-### Generating Displacements
-
-All of the Phonopy calculations generally require a [POSCAR][1] with well relaxed forces in order for the resulting values to carry any physical meaning.
-
-```console
-cat POSCAR
-```
-
-```console
-Al4
-   1.00000000000000
-     4.0432254711710000    0.0000000000000000    0.0000000000000000
-     0.0000000000000000    4.0432254711710000    0.0000000000000000
-     0.0000000000000000    0.0000000000000000    4.0432254711710000
-   Al
-     4
-Direct
-  0.0000000000000000  0.0000000000000000  0.0000000000000000
-  0.0000000000000000  0.5000000000000000  0.5000000000000000
-  0.5000000000000000  0.0000000000000000  0.5000000000000000
-  0.5000000000000000  0.5000000000000000  0.0000000000000000
-```
-
-After obtaining a POSCAR with relaxed forces, we can either generate the displacements directly
-
-```console
-phonopy -d --dim 2 2 2 --pa auto -c POSCAR
-```
-
-or we can specify a config file [mesh.conf][2], which will contain all of our required attributes
-
-```console
-# contents of mesh.conf
-ATOM_NAME = Al
-DIM = 2 2 2
-PRIMITIVE_AXES = Auto
-```
-
-and pass the file to phonopy as an argument
-
-```console
-phonopy -d mesh.conf -c POSCAR
-```
-
-For the list of all the possible phonopy tags, see [official documentation][d].
-
-### Running Jobs
-
-Each unique displacement is named `POSCAR-XXX`, in our case we have only one, which is named `POSCAR-001`. If you are calculating plus and minus displacements, the minus displacement immediately follows the plus displacement.
-Each unique displacement should then be moved to a separate folder, with every displacement file renamed to POSCAR, and POTCAR, [KPOINTS][3] and [INCAR][4] should be added.
-If one doesn't use the automatic settings for the KPOINTS generation, it is important to lower the amount of generated k-points accordingly (for example, with k-points grid `8 8 8` for the unit cell, the `2 2 2` supercell should have a `4 4 4` k-points grid; it's always good to verify the number of generated k-points stays the same).
-During the calculation, we need to move one of the atoms specified in POSCAR and calculate the forces (`ISIF = 0`, `ISMEAR` according to the type of the material at question).
-After this, we can submit the VASP calculation using the `salloc` command.
-
-### Calculating Force Constants
-
-After the calculations finish, we can generate the FORCE_SETS file using the following command:
-
-```console
-phonopy -f POSCAR-???.dir/vasprun.xml
-```
-
-### Calculating DOS and Thermal Properties
-
-Assuming we wrote all of our required parameters (such as the q-point mesh) to the mesh.conf file, we can then derive the phonon density of states (DOS)
-
-```console
-phonopy -p mesh.conf
-```
-
-with the DOS written in total_dos.dat file.
-
-The thermal properties can then be calculated with
-
-```console
-phonopy -t -p mesh.conf
-```
-
-which outputs the thermal properties in the thermal_properties.yaml file.
-
-## Example of the Calculation of Thermal Expansion Coeffiecients of Aluminum Using the VASP Code
-
-To calculate the thermal expansion coefficients, we need to obtain the volume dependence, which means we need to repeat the previous example for several different volumes of our POSCAR. All the rules mentioned in the previous example (i. e. the initial POSCARs have to be relaxed) still apply. We are also going to need a file containing the energy-volume dependence. Assuming we have calculated, we can either parse the data ourselves, or use the vasprun.xml files from the static calculations and running a command
-
-```console
-phonopy-vasp-efe vasprun.xml-{095..105}
-```
-
-Where the vasprun.xml-??? are the vaspruns for the static calculations for different (ionically relaxed) volumes of the unit cell (here, for example, `095` denotes that the initial POSCAR for the `095` calculation was at 95 % of the equilibrium volume etc.). The output file, `e-v.dat`, contains the extracted energy-volume curve.
-Next we compile the thermal_properties.yaml files which we calculated for our selected (supercell) volumes into a single directory under unique names and run command
-
-```console
-phonopy-qha -p e-v.dat thermal_properties.yaml-{095..105}
-```
-
-## Useful Notes
-
-* Always remember to check the FORCE_SETS file and verify that the displaced atoms are the ones with the largest forces acting on them, and that forces on other atoms are one or more orders lower; this can prevent your phonons from becoming imaginary. The forces can be adjusted by increasing (or lowering) the amplitude (`DISPLACEMENT_DISTANCE` tag).
-* Never mix energy-volume curve of conventional unit cell and the supercell calculation of the primitive unit cell (and vice versa). This can be adjusted by the `PM` (primitive axes) tag. To verify whether your POSCAR contains conventional or primitive unit cell, you can run `phonopy --symmetry` on it. This outputs two files: BPOSCAR, which contains the conventional unit cell, and PPOSCAR, which will be the smallest possible cell.
-  * If you used the `Auto` settings for the primitive axes, and aren't sure which cell has been used, you can check the calculated izochoric heat capacity, whose limit should be approaching at most 25 (3\*R) per mole (in our case per atom).
-* Phonopy is a lightweight tool, and as such can be conveniently [run on your local machine][c].
-
-[1]: ./files-phonopy/POSCAR.txt
-[2]: ./files-phonopy/mesh.conf
-[3]: ./files-phonopy/KPOINTS.txt
-[4]: ./files-phonopy/INCAR.txt
-
-[a]: https://doi.org/10.1016/j.scriptamat.2015.07.021
-[b]: https://phonopy.github.io/phonopy/
-[c]: https://phonopy.github.io/phonopy/install.html
-[d]: https://phonopy.github.io/phonopy/setting-tags.html
diff --git a/content/docs/software/chemistry/vasp.mdx b/content/docs/software/chemistry/vasp.mdx
deleted file mode 100644
index 2a39fc0802cbe53604f8c8458edacf3b756bbdae..0000000000000000000000000000000000000000
--- a/content/docs/software/chemistry/vasp.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: "Vasp"
----
-## Introduction
-
-The Vienna Ab initio Simulation Package (VASP) is a local computer program for atomic scale materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, from first principles.
-
-To use VASP, You need academic licenses from the University of Vienna. Follow the [official FAQ instructions](https://www.vasp.at/faqs/) at the [official website](https://www.vasp.at/).
-
-Once obtained, it is necessary to send us a list of authorized users and their IDs for which you need this access. Please, use only [our ticketing system](https://support.it4i.cz/rt). We are responsible for verifying your licences, and as such, you will be allowed to use VASP in our enviroment only **after** the sucessful verification.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-ml av vasp
-```
-
-## Running Jobs
-
-To learn how to submit a job, please refer to the [Job Submission and Execution](https://docs.it4i.cz/general/job-submission-and-execution/) part of this documentation.
-
-VASP uses a [Message Passing Interface](https://en.wikipedia.org/wiki/Message_Passing_Interface) to distribute the workload, and as such can be run via the `mpirun` command, such as
-
-```console
-mpirun vasp_std
-```
-
-### VASP Compilations
-
-<Callout>
-    Starting from version 6.3.1, we compile VASP with HDF5 support.
-</Callout>
-
-VASP can be ran using several different binaries, each being compiled for a specific purpose, for example:
-
-* `vasp_std` is the standard VASP binary for regular jobs
-* `vasp_ncl` must be used when running non-collinear (spin-orbit coupling) jobs
-* `vasp_gam` is optimized for calculations at the Gamma point
-
-GPU-enabled modules are denoted by their CUDA version's suffix.
-
-## Tutorials and Examples
-
-Tutorials and examples can be found at the [offical VASP wiki](https://www.vasp.at/wiki/index.php/The_VASP_Manual), specifically in the sections [Tutorials](https://www.vasp.at/wiki/index.php/Category:Tutorials) and [Examples](https://www.vasp.at/wiki/index.php/Category:Examples). These should provide you with enough information to write and run your own jobs.
-
-VASP wiki also contains all the necessary information about the input and output files, tags, algorithms, and much more.
-
-## Useful Links
-
-* [VASP documentation](https://www.vasp.at/documentation/) containing all the necesary links, including to the VASP wiki, VASP workshop lectures resources, and other
-* [VASP wiki](https://www.vasp.at/wiki/index.php/The_VASP_Manual) is **the** resource for questions regarding anything VASP-related
-* [VASP forum](https://www.vasp.at/forum/) to look up & ask questions
-* [how to cite VASP](https://www.vasp.at/forum/viewtopic.php?f=4&t=2971)
-* [Google](https://www.google.com) :)
diff --git a/content/docs/software/compilers.mdx b/content/docs/software/compilers.mdx
deleted file mode 100644
index fffe69e0e02599657eb87f93a242ab7d2c93c809..0000000000000000000000000000000000000000
--- a/content/docs/software/compilers.mdx
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: "Compilers"
----
-## Available Compilers
-
-There are several compilers for different programming languages available on the cluster:
-
-* C/C++
-* Fortran 77/90/95/HPF
-* Unified Parallel C
-* Java
-* NVIDIA CUDA
-
-The C/C++ and Fortran compilers are provided by:
-
-Open source:
-
-* GNU GCC
-* Clang/LLVM
-
-Commercial licenses:
-
-* Intel
-* PGI
-
-## Intel Compilers
-
-For information about the usage of Intel Compilers and other Intel products, read the [Intel Parallel studio][1] page.
-
-## PGI Compilers
-
-The Portland Group Cluster Development Kit (PGI CDK).
-
-```console
-$ ml PGI
-$ pgcc -v
-$ pgc++ -v
-$ pgf77 -v
-$ pgf90 -v
-$ pgf95 -v
-$ pghpf -v
-```
-
-The PGI CDK also incudes tools for debugging and profiling.
-
-PGDBG OpenMP/MPI debugger and PGPROF OpenMP/MPI profiler are available
-
-```console
-$ ml PGI
-$ ml Java
-$ pgdbg &
-$ pgprof &
-```
-
-For more information, see the [PGI page][a].
-
-## GNU
-
-For compatibility reasons, the original (old 4.8.5) versions of GNU compilers as part of the OS are still available. These are accessible in the search path by default.
-
-It is strongly recommended to use the up to date version which comes with the module GCC:
-
-```console
-$ ml GCC
-$ gcc -v
-$ g++ -v
-$ gfortran -v
-```
-
-With the module loaded, two environment variables are predefined. One for maximum optimizations on the cluster's architecture, and the other for debugging purposes:
-
-```console
-$ echo $OPTFLAGS
--O3 -march=native
-
-$ echo $DEBUGFLAGS
--O0 -g
-```
-
-For more information about the possibilities of the compilers, see the man pages.
-
-**Simple program to test the compiler**
-
-```cpp
-$ cat count.upc
-
-/* hello.upc - a simple UPC example */
-#include <upc.h>
-#include <stdio.h>
-
-int main() {
-  if (MYTHREAD == 0) {
-    printf("Welcome to GNU UPC!!!n");
-  }
-  upc_barrier;
-  printf(" - Hello from thread %in", MYTHREAD);
-  return 0;
-}
-```
-
-To compile the example, use:
-
-```console
-$ gupc -o count.upc.x count.upc
-```
-
-To run the example with 5 threads, use:
-
-```console
-$ ./count.upc.x -fupc-threads-5
-```
-
-For more information, see the man pages.
-
-## Java
-
-For information on how to use Java (runtime and/or compiler), read the [Java page][2].
-
-## NVIDIA CUDA
-
-For information on how to work with NVIDIA CUDA, read the [NVIDIA CUDA page][3].
-
-[1]: intel/intel-suite/intel-compilers.md
-[2]: lang/java.md
-[3]: nvidia-cuda.md
-
-[a]: http://www.pgroup.com/products/pgicdk.htm
diff --git a/content/docs/software/data-science/dask.mdx b/content/docs/software/data-science/dask.mdx
deleted file mode 100644
index 26475b4f029124f94c97899554b59460130da043..0000000000000000000000000000000000000000
--- a/content/docs/software/data-science/dask.mdx
+++ /dev/null
@@ -1,288 +0,0 @@
----
-title: "Dask"
----
-[Dask](https://docs.dask.org/en/latest/) is a popular open-source library that allows you to
-parallelize your Python code using a distributed cluster easily. It can parallelize arbitrary
-Python code in the form of a task DAG (Directed Acyclic Graph), but it also offers parallelized
-versions of popular Python data science libraries like
-[numpy](https://docs.dask.org/en/latest/array.html) or
-[Pandas](https://docs.dask.org/en/latest/dataframe.html).
-
-<Callout>
-    For links to Python documentation, style guide, and introductory tutorial, see the [Python page][a].
-</Callout>
-
-## Installation
-
-To install Dask, load a recent version of Python 3 and install Dask using `pip`. We heavily
-recommend you to install Python packages inside a Python virtual environment.
-
-```bash
-# Load Python (preferably use a specific Python version)
-$ ml Python3
-
-# Create a virtual environment
-$ python3 -m venv dask
-
-# Activate and update the virtual environment
-$ source dask/bin/activate
-(dask) $ pip install -U setuptools pip wheel
-
-# Install Dask
-(dask) $ pip install distributed
-```
-
-## Starting a Dask Cluster
-
-Before you can use Dask, you need to set up a Dask cluster, which consists of a single server
-component which coordinates the cluster, and an arbitrary number of workers, which actually
-execute your tasks.
-
-![Dask cluster architecture](/it4i/software/data-science/imgs/dask-arch.svg)
-
-After you start a job, you should therefore first start the server and the workers on the
-available computing nodes and then run your Python program that uses Dask. There are multiple ways
-of deploying the cluster. A common scenario is to run a Dask server on a single computing node,
-run a single worker per node on all remaining computing nodes and then run your program on the node
-with the server.
-
-> There are some performance considerations to be taken into account regarding Dask cluster
-> deployment, see [below](#dask-performance-considerations) for more information.
-
-<Callout>
-    All the following deployment methods assume that you are inside a Python environment that has
-    Dask installed. Do not forget to load Python and activate the correct virtual environment at
-    the beginning of your job! And also do the same after connecting to any worker nodes
-    manually using SSH.
-</Callout>
-
-### Manual Deployment
-
-Both the server and the worker nodes can be started using a CLI command. If you prefer manual
-deployment, you can manually start the server on a selected node and then start the workers on
-other nodes available inside your job.
-
-```bash
-# Start the server on some node N
-$ dask-scheduler
-
-# Start a single worker on some other node, pass it the address of the server
-$ dask-worker tcp://<hostname-of-N>:8786
-```
-
-### Dask-ssh Deployment
-
-Dask actually contains [built-in support](https://docs.dask.org/en/latest/setup/ssh.html) for
-automating Dask deployment using SSH. It also supports nodefiles provided by Slurm,
-so inside of your job, you can simply run
-
-```bash
-$ dask-ssh --hostfile $SLURM_NODELIST
-```
-
-to start the Dask cluster on all available computing nodes. This will start the server on the first
-node of your job and then a single worker on each node. The first node will therefore be shared
-by a server and a worker, which might not be ideal from a performance point of view.
-
-> Note that for this to work, the `paramiko` Python library has to be installed inside your Python
-> environment (you can install it using `$ pip install paramiko`).
-
-You can also start the Cluster directly from your
-[Python script](https://docs.dask.org/en/latest/setup/ssh.html#python-interface). In this way you
-can start the scheduler and the workers on separate nodes to avoid overcrowding the server node.
-
-### Other Deployment Options
-
-Dask has a lot of other ways of being deployed, e.g. using MPI, or using a shared file on the
-network file system. It also allows you to create a job directly, wait for it to be started and
-then it starts the whole cluster inside the job. You can find more information about Dask HPC
-deployment [here](https://docs.dask.org/en/latest/setup/hpc.html).
-
-## Connecting to the Cluster
-
-Once you have deployed your cluster, you must create a `Client` at the beginning of your program
-and pass it the address of the server.
-
-```python
-from distributed import Client
-
-client = Client("<hostname-of-server>:8786")
-```
-
-Once the client connects to the server successfully, all subsequent Dask computations will be
-parallelized using the cluster.
-
-Below are some examples of computations that you can perform with Dask. Note that the code should
-only be executed after a client was connected to a server!
-
-### Parallelize Arbitrary Python Code Using `Delayed`
-
-The `delayed` function (or a decorator) turns a Python function into a lazy computation. If you
-call such a function, it will not execute right away. It will only return a future object that can
-be composed with other futures to build a DAG of tasks. After you describe your whole computation,
-you can actually execute it using `dask.compute(<future>)`.
-
-```python
-import dask
-
-@dask.delayed
-def inc(x):
-    return x + 1
-
-@dask.delayed
-def double(x):
-    return x * 2
-
-@dask.delayed
-def add(x, y):
-    return x + y
-
-data = [1, 2, 3, 4, 5]
-
-output = []
-for x in data:
-    a = inc(x)
-    b = double(x)
-    c = add(a, b)
-    output.append(c)
-
-total = dask.delayed(sum)(output)
-
-# `total` is just a lazy computation
-# To get the actual value, call dask.compute
-result = dask.compute(total)
-```
-
-You can find more information about the `delayed` API
-[here](https://docs.dask.org/en/latest/delayed.html).
-
-### Parallelize `Pandas`
-
-Dask contains a module called `dataframe` which mirrors the API of `pandas`, a popular library for
-tabular analysis. Using `dataframe` you can distribute your `pandas` code to multiple nodes easily.
-You can find more information about it [here](https://docs.dask.org/en/latest/dataframe.html).
-
-Here is an example of its usage:
-
-```python
-import dask.dataframe as pd
-
-# Load CSV
-df = pd.read_csv("table.csv")
-
-# Describe a lazy computation (this is not computed yet)
-df2 = df[df.y == "a"].x + 1
-
-# Actually compute the table operations on worker nodes
-result = df2.compute()
-```
-
-### Parallelize `Numpy`
-
-Dask contains a module called `array` which mirrors the API of `numpy`, a popular library for
-n-dimensional array computations. Using `array` you can distribute your `numpy` code to multiple
-nodes easily. You can find more information about it
-[here](https://examples.dask.org/array.html).
-
-Here is an example of its usage:
-
-```python
-import dask.array as np
-x = np.random.random((10000, 10000), chunks=(1000, 1000))
-
-# Describe a lazy computation (this is not computed yet)
-y = x + x.T
-z = y[::2, 5000:].mean(axis=1)
-
-# Actually compute the arary operations on worker nodes
-result = z.compute()
-```
-
-## Dask Performance Considerations
-
-Dask should be fast enough by default for most use cases, but there are some considerations that
-should be taken into account.
-
-### Selecting the Number of Processes and Threads Per Worker
-
-When starting a Dask worker on a node, it will by default use a number of threads equal to the
-number of cores on the given machine. At the same time, (C)Python uses a global lock
-([GIL](https://realpython.com/python-gil/)) that prevents more than a single thread to execute at
-once. This is fine if your computational tasks are I/O bound or if they spend most of their time
-inside C libraries that release the GIL.
-
-However, if your tasks executed with Dask are heavily compute-bound, and they hold the GIL (e.g.
-the heavy computation is performed directly inside Python), you might not be able to fully harness
-all cores of the worker node.
-
-To solve this, you can run multiple workers (each with a reduced number of threads) per node. This
-is a trade-off. With more workers on a node, you will be able to utilize more cores (assuming
-your tasks are compute-bound). However, you will also increase the pressure on the central server
-and on the network, because there will be more workers that will communicate with each other and
-with the server.
-
-You can choose the number of workers and threads per each worker using the `--nprocs` and
-`--nthreads` parameters of `dask-worker` (there are similar arguments when using other deployment
-methods).
-
-Some examples (assuming a node with 24 cores):
-
-```bash
-# Run a single worker using 24 threads. Reduces network and server traffic, but may not utilize all cores.
-$ dask-worker --nprocs 1 --nthreads 24
-
-# Run 24 workers, each with a single thread. Maximizes core usage, but may overload server or network.
-$ dask-worker --nprocs 24 --nthreads 1
-
-# Run 6 workers, each with 4 threads. Strikes a balance between core usage and network/server pressure.
-$ dask-worker --nprocs 6 --nthreads 4
-```
-
-From our experiments, we found that often it is best to run a single worker per each core of a
-node to achieve the best performance. With this configuration, we found that Dask scales reasonably
-up to 200 workers (e.g. <10 Barbora nodes). If you start to run into performance problems because
-of the amount of workers, try to use [RSDS](#rsds) to achieve better scaling.
-
-### Memory Considerations
-
-A common reason to use Dask is that your computation does not fit inside the memory of a single
-node. Dask can alleviate this, but you still have to be careful about your memory usage. For
-example, when you use the `dataframe` or `array` API, you should pay attention into how many
-partitions (or chunks) is your data split it. If you use a single partition, it will probably take
-a lot of memory, and it will not offer many possibilities for parallelization. You can find more
-information [here](https://docs.dask.org/en/latest/dataframe-design.html#partitions).
-
-By default, multiple workers on a node will split the available memory. Therefore, if the node
-has 100 GiB of RAM and you start the Dask worker on a single node like this:
-
-```bash
-$ dask-worker --nprocs 10
-```
-
-Each worker will have around 10 GiB memory available. You can set the memory requirements of each
-worker manually using the `--memory-limit` argument.
-
-If your program is strictly memory-bound, you can also try alternative approaches to Dask.
-As an example, [Vaex](https://github.com/vaexio/vaex) is a library that allows you to easily
-process dataframes that do not fit inside your operating memory.
-
-### UCX
-
-In some cases (especially with many workers), the network can be a bottleneck. By default, Dask
-uses TCP/IP for communication, but it also has support for UCX, which enables more efficient usage
-of the available InfiniBand interfaces. It is a bit cumbersome to set up, but if you want to try,
-check [this tutorial](https://ucx-py.readthedocs.io/en/latest/dask.html).
-
-### Nvidia
-
-Dask has built-in support for GPU workers. You can find more information about this use case
-[here](https://docs.dask.org/en/latest/gpu.html).
-
-### RSDS
-
-If you need to run a large amount of tasks and Dask does not perform well enough, you can try to
-use [RSDS](https://github.com/It4innovations/rsds). It is our version of Dask which is optimized
-for HPC use cases, and it should provide better scaling than Dask. You can read more about RSDS
-in this [article](https://arxiv.org/abs/2010.11105).
-
-[a]: https://docs.it4i.cz/software/lang/python/#python
diff --git a/content/docs/software/data-science/meta.json b/content/docs/software/data-science/meta.json
deleted file mode 100644
index ce810905d29e6120f2387a243e525f140008cd1b..0000000000000000000000000000000000000000
--- a/content/docs/software/data-science/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Data-science",
-  "pages": [
-    "dask"
-  ]
-}
diff --git a/content/docs/software/debuggers/allinea-ddt.mdx b/content/docs/software/debuggers/allinea-ddt.mdx
deleted file mode 100644
index 7ad00c372dc6e54499b1ef6fd559397ac4a1d8d6..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/allinea-ddt.mdx
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: "Allinea Forge (DDT, MAP)"
----
-## Introduction
-
-Allinea Forge consist of two tools:
-
-Allinea DDT is a commercial debugger primarily for debugging parallel MPI or OpenMP programs. It also supports for GPU (CUDA) and Intel Xeon Phi accelerators. DDT provides all the standard debugging features (stack trace, breakpoints, watches, view variables, threads, etc.) for every thread running as a part of your program, or for every process - even if these processes are distributed across a cluster using an MPI implementation.
-
-Allinea MAP is a profiler for C/C++/Fortran HPC codes. It is designed for profiling parallel code, which uses pthreads, OpenMP, or MPI.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Forge
-```
-
-## Compiling Code to Run With DDT
-
-### Modules
-
-Load all necessary modules to compile the code, for example:
-
-```console
-$ ml intel
-$ ml impi **or** ml OpenMPI/X.X.X-icc
-```
-
-Load the Allinea DDT module:
-
-```console
-$ ml Forge
-```
-
-<Callout>
-    Loading default modules is [**not** recommended][2].
-</Callout>
-
-Compile the code:
-
-```console
-$ mpicc -g -O0 -o test_debug test.c
-$ mpif90 -g -O0 -o test_debug test.f
-```
-
-### Compiler Flags
-
-Before debugging, you need to compile your code with these flags:
-
-<Callout>
-    `-g`: Generates extra debugging information usable by GDB. `-g3` includes even more debugging information. This option is available for GNU and Intel C/C++ and Fortran compilers.
-    `-O0`: Suppresses all optimizations.
-</Callout>
-
-## Starting a Job With DDT
-
-Be sure to log in with an X window forwarding enabled. This could mean using the `--x11` in the `ssh`:
-
-```console
-$ ssh -X username@login1.karolina.it4i.cz
-```
-
-Another options is to access the login node using VNC. See the detailed information on how to [use graphic user interface][1].
-
-From the login node, an interactive session **with X windows forwarding** (the `-x11` option) can be started by the following command:
-
-```console
-$ salloc -A PROJECT_ID -p qcpu --nodes=1 --ntasks-per-node=128 --cpus-per-task=1 --time=01:00:00 --x11
-```
-
-Then launch the debugger with the `ddt` command followed by the name of the executable to debug:
-
-```console
-$ ddt test_debug
-```
-
-A submission window appears with a prefilled path to the executable to debug. Select the number of MPI processors and/or OpenMP threads on which to run, then press run. Command line arguments to a program can be entered to the Arguments field.
-
-![](/it4i/img/ddt1.png)
-
-To start the debugging directly without the submission window, the user can specify the debugging and execution parameters from the command line. For example, the number of MPI processes is set by the `-np 4` option. Skipping the dialog is done by the `-start` option. To see the list of the `ddt` command line parameters, run `ddt --help`.
-
-```console
-ddt -start -np 4 ./hello_debug_impi
-```
-
-## Documentation
-
-Users can find the original User Guide after loading the DDT module:
-
-```console
-$DDTPATH/doc/userguide.pdf
-```
-
-[1] Discipline, Magic, Inspiration and Science: Best Practice Debugging with Allinea DDT, Workshop conducted at LLNL by Allinea on May 10, 2013, [link][a]
-
-[1]: ../../general/accessing-the-clusters/graphical-user-interface/x-window-system.md
-[2]: ../../modules/lmod/#loading-modules
-
-[a]: https://computing.llnl.gov/tutorials/allineaDDT/index.html
diff --git a/content/docs/software/debuggers/allinea-performance-reports.mdx b/content/docs/software/debuggers/allinea-performance-reports.mdx
deleted file mode 100644
index af773394d9c2f9bd59e53573131019b2108b0ce8..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/allinea-performance-reports.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: "Allinea Performance Reports"
----
-## Introduction
-
-Allinea Performance Reports characterize the performance of HPC application runs. After executing your application through the tool, a synthetic HTML report is generated automatically, containing information about several metrics along with clear behavior statements and hints to help you improve the efficiency of your runs.
-
-Allinea Performance Reports is most useful in profiling MPI programs.
-
-Our license is limited to 64 MPI processes.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Forge
-```
-
-The module sets up environment variables, required for using the Allinea Performance Reports.
-
-## Usage
-
-Instead of [running your MPI program the usual way][1], use the `perf-report` wrapper:
-
-```console
-$ perf-report mpirun ./mympiprog.x
-```
-
-The MPI program will run as usual. `perf-report` creates two additional files, in \*.txt and \*.html format, containing the performance report. Note that demanding MPI code should be run within [the queue system][2].
-
-## Example
-
-In this example, we will be profiling the `mympiprog.x` MPI program, using Allinea performance reports. Assume that the code is compiled with Intel compilers and linked against Intel MPI library:
-
-First, we allocate nodes via the express queue:
-
-```console
-$ salloc -A PROJECT_ID -p qcpu_exp --nodes=2 --ntasks-per-node=128 --cpus-per-task=1
-salloc: Granted job allocation 1566484
-salloc: Waiting for resource configuration
-salloc: Nodes cn[206-207] are ready for job
-```
-
-Then we load the modules and run the program the usual way:
-
-```console
-$ ml intel/2020b Forge/20.1.1
-$ ml PerfReports/6.0
-$ mpirun ./mympiprog.x
-```
-
-Now let us profile the code:
-
-```console
-$ perf-report mpirun ./mympiprog.x
-```
-
-Performance report files [mympiprog_32p\*.txt][3] and [mympiprog_32p\*.html][4] were created. We can see that the code is very efficient on MPI and is CPU bounded.
-
-[1]: ../mpi/mpi.md
-[2]: ../../general/job-submission-and-execution.md
-[3]: mympiprog_32p_2014-10-15_16-56.txt
-[4]: mympiprog_32p_2014-10-15_16-56.html
diff --git a/content/docs/software/debuggers/cube.mdx b/content/docs/software/debuggers/cube.mdx
deleted file mode 100644
index 974c4eddbbc5444b6d35fff714ceca396c3dfb11..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/cube.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: "CUBE"
----
-## Introduction
-
-CUBE is a graphical performance report explorer for displaying data from Score-P and Scalasca (and other compatible tools). The name comes from the fact that it displays performance data in three dimensions:
-
-* **performance metric**, where a number of metrics is available, such as communication time or cache misses,
-* **call path**, which contains the call tree of your program
-* **system resource**, which contains system's nodes, processes and threads, depending on the parallel programming model.
-
-Each dimension is organized in a tree, for example the time performance metric is divided into Execution time and Overhead time, call path dimension is organized by files and routines in your source code, etc.
-
-![](/it4i/img/Snmekobrazovky20141204v12.56.36.png)
-
-\*Figure 1. Screenshot of CUBE displaying data from Scalasca.\*
-
-Each node in the tree is colored by severity (the color scheme is displayed at the bottom of the window, ranging from the least severe blue to the most severe being red). For example in Figure 1, we can see that most of the point-to-point MPI communication happens in the `exch_qbc` routine, colored red.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Cube
-```
-
-## Usage
-
-CUBE is a graphical application. Refer to the Graphical User Interface documentation for a list of methods to launch graphical applications clusters.
-
-<Callout>
-    Analyzing large data sets can consume large amount of CPU and RAM. Do not perform large analysis on login nodes.
-</Callout>
-
-After loading the appropriate module, simply launch the cube command, or alternatively you can use the `scalasca -examine` command to launch the GUI. Note that for Scalasca data sets, if you do not analyze the data with `scalasca -examine` before opening them with CUBE, not all performance data will be available.
-
-References
-1\.  [Download link][a]
-
-[1]: ../../modules-matrix.md
-
-[a]: http://www.scalasca.org/software/cube-4.x/download.html
diff --git a/content/docs/software/debuggers/intel-performance-counter-monitor.mdx b/content/docs/software/debuggers/intel-performance-counter-monitor.mdx
deleted file mode 100644
index 176d45956f2e760fc8cf94bd2fb9881feab34b14..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/intel-performance-counter-monitor.mdx
+++ /dev/null
@@ -1,287 +0,0 @@
----
-title: "Intel Performance Counter Monitor"
----
-## Introduction
-
-Intel PCM (Performance Counter Monitor) is a tool to monitor performance hardware counters on Intel® processors, similar to [PAPI][1]. The difference between PCM and PAPI is that PCM supports only Intel hardware, but PCM can also monitor uncore metrics, like memory controllers and QuickPath Interconnect links.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av intelpcm
-```
-
-## Command Line Tools
-
-PCM provides a set of tools to monitor a system/or application.
-
-### PCM-Memory
-
- Measures memory bandwidth of your application or the whole system. Usage:
-
-```console
-$ pcm-memory.x <delay>|[external_program parameters]
-```
-
-Specify either a delay of updates in seconds or an external program to monitor. If you get an error about PMU in use, respond `y` and relaunch the program.
-
-Sample output:
-
-```console
-    ---------------------------------------||---------------------------------------
-    --             Socket 0              --||--             Socket 1              --
-    ---------------------------------------||---------------------------------------
-    ---------------------------------------||---------------------------------------
-    ---------------------------------------||---------------------------------------
-    --   Memory Performance Monitoring   --||--   Memory Performance Monitoring   --
-    ---------------------------------------||---------------------------------------
-    --  Mem Ch 0: Reads (MB/s):    2.44  --||--  Mem Ch 0: Reads (MB/s):    0.26  --
-    --            Writes(MB/s):    2.16  --||--            Writes(MB/s):    0.08  --
-    --  Mem Ch 1: Reads (MB/s):    0.35  --||--  Mem Ch 1: Reads (MB/s):    0.78  --
-    --            Writes(MB/s):    0.13  --||--            Writes(MB/s):    0.65  --
-    --  Mem Ch 2: Reads (MB/s):    0.32  --||--  Mem Ch 2: Reads (MB/s):    0.21  --
-    --            Writes(MB/s):    0.12  --||--            Writes(MB/s):    0.07  --
-    --  Mem Ch 3: Reads (MB/s):    0.36  --||--  Mem Ch 3: Reads (MB/s):    0.20  --
-    --            Writes(MB/s):    0.13  --||--            Writes(MB/s):    0.07  --
-    -- NODE0 Mem Read (MB/s):      3.47  --||-- NODE1 Mem Read (MB/s):      1.45  --
-    -- NODE0 Mem Write (MB/s):     2.55  --||-- NODE1 Mem Write (MB/s):     0.88  --
-    -- NODE0 P. Write (T/s) :     31506  --||-- NODE1 P. Write (T/s):       9099  --
-    -- NODE0 Memory (MB/s):        6.02  --||-- NODE1 Memory (MB/s):        2.33  --
-    ---------------------------------------||---------------------------------------
-    --                   System Read Throughput(MB/s):      4.93                  --
-    --                  System Write Throughput(MB/s):      3.43                  --
-    --                 System Memory Throughput(MB/s):      8.35                  --
-    ---------------------------------------||---------------------------------------
-```
-
-### PCM-Msr
-
-The `pcm-msr.x` command can be used to read/write model specific registers of the CPU.
-
-### PCM-Numa
-
-Monitors local and remote memory accesses.
-
-### PCM-Pcie
-
-Can be used to monitor PCI Express bandwidth. Usage: `pcm-pcie.x <delay>`
-
-### PCM-Power
-
-Displays energy usage and thermal headroom for CPU and DRAM sockets. Usage: `pcm-power.x <delay> | <external program>`
-
-### PCM
-
-This command provides an overview of performance counters and memory usage. Usage: `pcm.x <delay> | <external program>`
-
-Sample output:
-
-```console
-    $ pcm.x ./matrix
-
-     Intel(r) Performance Counter Monitor V2.6 (2013-11-04 13:43:31 +0100 ID=db05e43)
-
-     Copyright (c) 2009-2013 Intel Corporation
-
-    Number of physical cores: 16
-    Number of logical cores: 16
-    Threads (logical cores) per physical core: 1
-    Num sockets: 2
-    Core PMU (perfmon) version: 3
-    Number of core PMU generic (programmable) counters: 8
-    Width of generic (programmable) counters: 48 bits
-    Number of core PMU fixed counters: 3
-    Width of fixed counters: 48 bits
-    Nominal core frequency: 2400000000 Hz
-    Package thermal spec power: 115 Watt; Package minimum power: 51 Watt; Package maximum power: 180 Watt;
-    Socket 0: 1 memory controllers detected with total number of 4 channels. 2 QPI ports detected.
-    Socket 1: 1 memory controllers detected with total number of 4 channels. 2 QPI ports detected.
-    Number of PCM instances: 2
-    Max QPI link speed: 16.0 GBytes/second (8.0 GT/second)
-
-    Detected Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz "Intel(r) microarchitecture codename Sandy Bridge-EP/Jaketown"
-
-     Executing "./matrix" command:
-
-    Exit code: 0
-
-     EXEC  : instructions per nominal CPU cycle
-     IPC   : instructions per CPU cycle
-     FREQ  : relation to nominal CPU frequency='unhalted clock ticks'/'invariant timer ticks' (includes Intel Turbo Boost)
-     AFREQ : relation to nominal CPU frequency while in active state (not in power-saving C state)='unhalted clock ticks'/'invariant timer ticks while in C0-state'  (includes Intel Turbo Boost)
-     L3MISS: L3 cache misses
-     L2MISS: L2 cache misses (including other core's L2 cache *hits*)
-     L3HIT : L3 cache hit ratio (0.00-1.00)
-     L2HIT : L2 cache hit ratio (0.00-1.00)
-     L3CLK : ratio of CPU cycles lost due to L3 cache misses (0.00-1.00), in some cases could be >1.0 due to a higher memory latency
-     L2CLK : ratio of CPU cycles lost due to missing L2 cache but still hitting L3 cache (0.00-1.00)
-     READ  : bytes read from memory controller (in GBytes)
-     WRITE : bytes written to memory controller (in GBytes)
-     TEMP  : Temperature reading in 1 degree Celsius relative to the TjMax temperature (thermal headroom): 0 corresponds to the max temperature
-
-     Core (SKT) | EXEC | IPC  | FREQ  | AFREQ | L3MISS | L2MISS | L3HIT | L2HIT | L3CLK | L2CLK  | READ  | WRITE | TEMP
-
-       0    0     0.00   0.64   0.01    0.80    5592       11 K    0.49    0.13    0.32    0.06     N/A     N/A     67
-       1    0     0.00   0.18   0.00    0.69    3086     5552      0.44    0.07    0.48    0.08     N/A     N/A     68
-       2    0     0.00   0.23   0.00    0.81     300      562      0.47    0.06    0.43    0.08     N/A     N/A     67
-       3    0     0.00   0.21   0.00    0.99     437      862      0.49    0.06    0.44    0.09     N/A     N/A     73
-       4    0     0.00   0.23   0.00    0.93     293      559      0.48    0.07    0.42    0.09     N/A     N/A     73
-       5    0     0.00   0.21   0.00    1.00     423      849      0.50    0.06    0.43    0.10     N/A     N/A     69
-       6    0     0.00   0.23   0.00    0.94     285      558      0.49    0.06    0.41    0.09     N/A     N/A     71
-       7    0     0.00   0.18   0.00    0.81     674     1130      0.40    0.05    0.53    0.08     N/A     N/A     65
-       8    1     0.00   0.47   0.01    1.26    6371       13 K    0.51    0.35    0.31    0.07     N/A     N/A     64
-       9    1     2.30   1.80   1.28    1.29     179 K     15 M    0.99    0.59    0.04    0.71     N/A     N/A     60
-      10    1     0.00   0.22   0.00    1.26     315      570      0.45    0.06    0.43    0.08     N/A     N/A     67
-      11    1     0.00   0.23   0.00    0.74     321      579      0.45    0.05    0.45    0.07     N/A     N/A     66
-      12    1     0.00   0.22   0.00    1.25     305      570      0.46    0.05    0.42    0.07     N/A     N/A     68
-      13    1     0.00   0.22   0.00    1.26     336      581      0.42    0.04    0.44    0.06     N/A     N/A     69
-      14    1     0.00   0.22   0.00    1.25     314      565      0.44    0.06    0.43    0.07     N/A     N/A     69
-      15    1     0.00   0.29   0.00    1.19    2815     6926      0.59    0.39    0.29    0.08     N/A     N/A     69
-    -------------------------------------------------------------------------------------------------------------------
-     SKT    0     0.00   0.46   0.00    0.79      11 K     21 K    0.47    0.10    0.38    0.07    0.00    0.00     65
-     SKT    1     0.29   1.79   0.16    1.29     190 K     15 M    0.99    0.59    0.05    0.70    0.01    0.01     61
-    -------------------------------------------------------------------------------------------------------------------
-     TOTAL  *     0.14   1.78   0.08    1.28     201 K     15 M    0.99    0.59    0.05    0.70    0.01    0.01     N/A
-
-     Instructions retired: 1345 M ; Active cycles:  755 M ; Time (TSC):  582 Mticks ; C0 (active,non-halted) core residency: 6.30 %
-
-     C1 core residency: 0.14 %; C3 core residency: 0.20 %; C6 core residency: 0.00 %; C7 core residency: 93.36 %;
-     C2 package residency: 48.81 %; C3 package residency: 0.00 %; C6 package residency: 0.00 %; C7 package residency: 0.00 %;
-
-     PHYSICAL CORE IPC                 : 1.78 => corresponds to 44.50 % utilization for cores in active state
-     Instructions per nominal CPU cycle: 0.14 => corresponds to 3.60 % core utilization over time interval
-
-    Intel(r) QPI data traffic estimation in bytes (data traffic coming to CPU/socket through QPI links):
-
-                   QPI0     QPI1    |  QPI0   QPI1
-    ----------------------------------------------------------------------------------------------
-     SKT    0        0        0     |    0%     0%
-     SKT    1        0        0     |    0%     0%
-    ----------------------------------------------------------------------------------------------
-    Total QPI incoming data traffic:    0       QPI data traffic/Memory controller traffic: 0.00
-
-    Intel(r) QPI traffic estimation in bytes (data and non-data traffic outgoing from CPU/socket through QPI links):
-
-                   QPI0     QPI1    |  QPI0   QPI1
-    ----------------------------------------------------------------------------------------------
-     SKT    0        0        0     |    0%     0%
-     SKT    1        0        0     |    0%     0%
-    ----------------------------------------------------------------------------------------------
-    Total QPI outgoing data and non-data traffic:    0
-
-    ----------------------------------------------------------------------------------------------
-     SKT    0 package consumed 4.06 Joules
-     SKT    1 package consumed 9.40 Joules
-    ----------------------------------------------------------------------------------------------
-     TOTAL:                    13.46 Joules
-
-    ----------------------------------------------------------------------------------------------
-     SKT    0 DIMMs consumed 4.18 Joules
-     SKT    1 DIMMs consumed 4.28 Joules
-    ----------------------------------------------------------------------------------------------
-     TOTAL:                  8.47 Joules
-    Cleaning up
-```
-
-### PCM-Sensor
-
-Can be used as a sensor for the ksysguard GUI.
-
-## API
-
-In a similar fashion to PAPI, PCM provides a C++ API to access the performance counter from within your application. Refer to the [Doxygen documentation][a] for details of the API.
-
-Sample program using the API :
-
-```cpp
-    #include <stdlib.h>
-    #include <stdio.h>
-    #include "cpucounters.h"
-
-    #define SIZE 1000
-
-    using namespace std;
-
-    int main(int argc, char **argv) {
-      float matrixa[SIZE][SIZE], matrixb[SIZE][SIZE], mresult[SIZE][SIZE];
-      float real_time, proc_time, mflops;
-      long long flpins;
-      int retval;
-      int i,j,k;
-
-      PCM * m = PCM::getInstance();
-
-      if (m->program() != PCM::Success) return 1;
-
-      SystemCounterState before_sstate = getSystemCounterState();
-
-      /* Initialize the Matrix arrays */
-      for ( i=0; i<SIZE*SIZE; i++ ){
-        mresult[0][i] = 0.0;
-        matrixa[0][i] = matrixb[0][i] = rand()*(float)1.1; }
-
-      /* A naive Matrix-Matrix multiplication */
-      for (i=0;i<SIZE;i++)
-        for(j=0;j<SIZE;j++)
-          for(k=0;k<SIZE;k++)
-            mresult[i][j]=mresult[i][j] + matrixa[i][k]*matrixb[k][j];
-
-      SystemCounterState after_sstate = getSystemCounterState();
-
-      cout << "Instructions per clock:" << getIPC(before_sstate,after_sstate)
-      << "L3 cache hit ratio:" << getL3CacheHitRatio(before_sstate,after_sstate)
-      << "Bytes read:" << getBytesReadFromMC(before_sstate,after_sstate);
-
-      for (i=0; i<SIZE;i++)
-        for (j=0; j<SIZE; j++)
-           if (mresult[i][j] == -1) printf("x");
-
-      return 0;
-    }
-```
-
-Compile it with:
-
-```console
-$ icc matrix.cpp -o matrix -lpthread -lpcm
-```
-
-Sample output:
-
-```console
-$ ./matrix
-    Number of physical cores: 16
-    Number of logical cores: 16
-    Threads (logical cores) per physical core: 1
-    Num sockets: 2
-    Core PMU (perfmon) version: 3
-    Number of core PMU generic (programmable) counters: 8
-    Width of generic (programmable) counters: 48 bits
-    Number of core PMU fixed counters: 3
-    Width of fixed counters: 48 bits
-    Nominal core frequency: 2400000000 Hz
-    Package thermal spec power: 115 Watt; Package minimum power: 51 Watt; Package maximum power: 180 Watt;
-    Socket 0: 1 memory controllers detected with total number of 4 channels. 2 QPI ports detected.
-    Socket 1: 1 memory controllers detected with total number of 4 channels. 2 QPI ports detected.
-    Number of PCM instances: 2
-    Max QPI link speed: 16.0 GBytes/second (8.0 GT/second)
-    Instructions per clock:1.7
-    L3 cache hit ratio:1.0
-    Bytes read:12513408
-```
-
-## References
-
-1. [Intel Performance Counter Monitor - a better way to measure cpu utilization][b]
-1. [Intel® Xeon® Processor E5-2600 Product Family Uncore Performance Monitoring Guide][c]
-1. [API Documentation][d]
-
-[1]: papi.md
-[2]: ../../modules-matrix.md
-
-[a]: http://intel-pcm-api-documentation.github.io/classPCM.html
-[b]: https://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization]
-[c]: https://software.intel.com/sites/default/files/m/3/2/2/xeon-e5-2600-uncore-guide.pdf
-[d]: http://intel-pcm-api-documentation.github.io/classPCM.html
diff --git a/content/docs/software/debuggers/intel-vtune-amplifier.mdx b/content/docs/software/debuggers/intel-vtune-amplifier.mdx
deleted file mode 100644
index f61a706bfa2a5da01e4c2cdf94f55ccd2071f77f..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/intel-vtune-amplifier.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: "Intel VTune Amplifier XE"
----
-## Introduction
-
-Intel*®* VTune™ Amplifier, part of Intel Parallel studio, is a GUI profiling tool designed for Intel processors. It offers a graphical performance analysis of single core and multithreaded applications. A highlight of the features:
-
-* Hotspot analysis
-* Locks and waits analysis
-* Low-level specific counters, such as branch analysis and memory bandwidth
-* Power usage analysis - frequency and sleep states.
-
-![](/it4i/img/vtune-amplifier.png)
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av VTune
-```
-
-## Usage
-
-To profile an application with VTune Amplifier, special kernel modules need to be loaded. The modules are not loaded on the login nodes, thus direct profiling on login nodes is not possible. By default, the kernel modules are not loaded on compute nodes either. In order to have the modules loaded, you need to specify the `--gres=vtune:` resource at job submit. The version is the same as for the environment module.
-
-```console
-$ salloc -p qexp -A PROJECT_ID --nodes=1 --gres=vtune:2020_update3
-```
-
-After that, you can verify the modules `sep*`, `pax`, and `vtsspp` are present in the kernel:
-
-```console
-$ lsmod | grep -e sep -e pax -e vtsspp
-    vtsspp 362000 0
-    sep3_15 546657 0
-    pax 4312 0
-```
-
-To launch the GUI, first load the module:
-
-```console
-$ ml VTune/2020_update3
-```
-
-and launch the GUI:
-
-```console
-$ $ amplxe-gui
-```
-
-The GUI will open in a new window. Click on *New Project...* to create a new project. After clicking OK, a new window with project properties will appear.  At *Application:*, select the path to the binary you want to profile (the binary should be compiled with the `-g` flag). Some additional options, such as command line arguments, can be selected. At *Managed code profiling mode:* select `Native` (unless you want to profile managed mode .NET/Mono applications). After clicking OK, your project is created.
-
-To run a new analysis, click *New analysis...*. You will see a list of possible analyses. Some of them will not be possible on the current CPU (e.g. Intel Atom analysis is not possible on Sandy Bridge CPU), the GUI will show an error box if you select the wrong analysis. For example, select *Advanced Hotspots*. Clicking on *Start* will start profiling of the application.
-
-## Remote Analysis
-
-VTune Amplifier also allows a form of remote analysis. In this mode, data for analysis is collected from the command line without GUI, and the results are then loaded to GUI on another machine. This allows profiling without interactive graphical jobs. To perform a remote analysis, launch the GUI somewhere, open the new analysis window and then click the *Command line* button in the bottom right corner. It will show the command line needed to perform the selected analysis.
-
-The command line will look like this:
-
-```console
-amplxe-cl -collect advanced-hotspots -app-working-dir /home/$USER/tmp -- /home/$USER/tmp/sgemm
-```
-
-Copy the line to clipboard and then you can paste it in your jobscript or in the command line. After the collection is run, open the GUI once again, click the menu button in the upper right corner, and select *Open > Result...*. The GUI will load the results from the run.
-
-## References
-
-1. [Intel® VTune™ Amplifier Support][a]
-1. [Amplifier Help Linux][b]
-
-[a]: https://software.intel.com/en-us/intel-vtune-amplifier-xe-support/documentation
-[b]: https://software.intel.com/en-us/amplifier_help_linux
diff --git a/content/docs/software/debuggers/intel-vtune-profiler.mdx b/content/docs/software/debuggers/intel-vtune-profiler.mdx
deleted file mode 100644
index 165d5ded0b3c2911bc1a20ed5661d8c31d5e5a4a..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/intel-vtune-profiler.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: "Intel VTune Profiler"
----
-## Introduction
-
-Intel® VTune™ Profiler, part of Intel Parallel studio, is a GUI profiling tool designed for Intel processors. It offers a graphical performance analysis of single-core and multithreaded applications. A highlight of the features:
-
-* Hotspot analysis
-* Locks and waits analysis
-* Low level specific counters, such as branch analysis and memory bandwidth
-* Power usage analysis - frequency and sleep states.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av VTune
-```
-
-## Usage
-
-To profile an application with VTune Profiler, special kernel modules need to be loaded. The modules are not loaded on the login nodes, thus direct profiling on login nodes is not possible. By default, the kernel modules are not loaded on compute nodes either. In order to have the modules loaded, you need to specify the `vtune:version` resource at job submission. The version is the same as for the environment module. For example, to use VTune/2020_update3:
-
-```console
-$ salloc -p qcpu_exp -A OPEN-0-0 --nodes=1 --gres=vtune:2020_update3
-```
-
-For VTune/2022.2.0-intel-2021b use `vtune:2022_2_0` parameter.
-
-After that, you can verify that the modules `sep*`, `pax`, and `vtsspp` are present in the kernel:
-
-```console
-$ lsmod | grep -e sep -e pax -e vtsspp
-vtsspp                367418  0
-sep5                  885333  0
-socperf3              595104  2 sep5,socwatch2_12
-pax                    13820  0
-```
-
-To launch the GUI, first load the module:
-
-```console
-$ ml VTune/2020_update3
-```
-
-and launch the GUI:
-
-```console
-$ vtune-gui
-```
-
-<Callout type=warn>
-    The command line `amplxe-gui` is deprecated. Use `vtune-gui` instead.
-</Callout>
-
-The GUI will open in a new window. Click on "New Project..." to create a new project. After clicking OK, a new window with project properties will appear.  At "Application:", select the path to your binary you want to profile (the binary should be compiled with the `-g` flag). You can also select some additional options such as command line arguments. Click OK to create the project.
-
-To run a new analysis, click "New analysis...". You will see a list of possible analyses. Some of them will not be possible on the current CPU, the GUI will show an error box if you select a wrong analysis. Clicking on Start will start profiling of the application.
-
-## Remote Analysis
-
-VTune Profiler also allows a form of remote analysis. In this mode, data for analysis is collected from the command line without GUI, and the results are then loaded to GUI on another machine. This allows profiling without interactive graphical jobs. To perform a remote analysis, launch a GUI somewhere, open the new analysis window and then click the "Command line" button in the bottom right corner. It will show the command line needed to perform the selected analysis.
-
-The command line will look like this:
-
-```console
-vtune -collect hotspots -app-working-dir /home/$USER/tmp -- /home/$USER/tmp/sgemm
-```
-
-<Callout type=warn>
-    The command line `amplxe-cl` is a relative link to command `vtune`.
-</Callout>
-
-Copy the line to clipboard and then you can paste it in your jobscript or in the command line. After the collection is run, open the GUI again, click the menu button in the upper right corner, and select "Open > Result...". The GUI will load the results from the run.
-
-## References
-
-1. [Intel® VTune™ Amplifier Support][a]
-1. [Amplifier Help Linux][b]
-
-[a]: https://software.intel.com/en-us/intel-vtune-amplifier-xe-support/documentation
-[b]: https://software.intel.com/en-us/amplifier_help_linux
diff --git a/content/docs/software/debuggers/introduction.mdx b/content/docs/software/debuggers/introduction.mdx
deleted file mode 100644
index 3356b0ddcff543b11cfecd80526b664b46336020..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/introduction.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Debuggers and Profilers Summary"
----
-## Introduction
-
-We provide state of the art programs and tools to develop, profile, and debug HPC codes at IT4Innovations. In this cestion, we provide an overview of the profiling and debugging tools available on IT4I clusters.
-
-## Allinea Forge (DDT/MAP)
-
-Allinea DDT is a commercial debugger primarily for debugging parallel MPI or OpenMP programs. It also has a support for GPU (CUDA) and Intel Xeon Phi accelerators. DDT provides all the standard debugging features (stack trace, breakpoints, watches, view variables, threads, etc.) for every thread running as part of your program, or for every process - even if these processes are distributed across a cluster using an MPI implementation.
-
-```console
-$ ml Forge/20.0.1
-$ forge
-```
-
-Read more at the [Allinea DDT][2] page.
-
-## Allinea Performance Reports
-
-Allinea Performance Reports characterize the performance of HPC application runs. After executing your application through the tool, a synthetic HTML report is generated automatically, containing information about several metrics along with clear behavior statements and hints to help you improve the efficiency of your runs. Our license is limited to 64 MPI processes.
-
-```console
-$ ml Forge/20.0.1
-$ perf-report mpirun -n 64 ./my_application argument01 argument02
-```
-
-Read more at the [Allinea Performance Reports][3] page.
-
-## RougeWave Totalview
-
-TotalView is a source- and machine-level debugger for multi-process, multi-threaded programs. Its wide range of tools provides ways to analyze, organize, and test programs, making it easy to isolate and identify problems in individual threads and processes in programs of great complexity.
-
-```console
-$ ml TotalView/2021.2.14
-$ totalview
-```
-
-Read more at the [Totalview][4] page.
-
-## Vampir Trace Analyzer
-
-Vampir is a GUI trace analyzer for traces in OTF format.
-
-```console
-$ ml Vampir/9.9.0
-$ vampir
-```
-
-Read more at the [Vampir][5] page.
-
-[2]: allinea-ddt.md
-[3]: allinea-performance-reports.md
-[4]: total-view.md
-[5]: vampir.md
diff --git a/content/docs/software/debuggers/meta.json b/content/docs/software/debuggers/meta.json
deleted file mode 100644
index 158d7e43f72fcec56c963beda4a950f929ffc86c..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/meta.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "title": "Debuggers",
-  "pages": [
-    "allinea-ddt",
-    "allinea-performance-reports",
-    "cube",
-    "intel-performance-counter-monitor",
-    "intel-vtune-amplifier",
-    "intel-vtune-profiler",
-    "introduction",
-    "papi",
-    "scalasca",
-    "score-p",
-    "total-view",
-    "valgrind",
-    "vampir"
-  ]
-}
diff --git a/content/docs/software/debuggers/papi.mdx b/content/docs/software/debuggers/papi.mdx
deleted file mode 100644
index ccfe0593329f08f74b477ac37d8b0833d92258d6..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/papi.mdx
+++ /dev/null
@@ -1,250 +0,0 @@
----
-title: "PAPI"
----
-## Introduction
-
-Performance Application Programming Interface (PAPI) is a portable interface to access hardware performance counters (such as instruction counts and cache misses) found in most modern architectures. With the new component framework, PAPI is not limited only to CPU counters, but offers also components for CUDA, network, Infiniband, etc.
-
-PAPI provides two levels of interface: a simpler high-level interface and more detailed low-level interface.
-
-PAPI can be used with parallel as well as serial programs.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av papi
-```
-
-## Utilities
-
-The bin directory of PAPI, which is automatically added to $PATH upon loading the module, contains various utilites.
-
-### Papi_avail
-
-Prints which preset events are available on the current CPU. The third column indicates whether the preset event is available on the current CPU.
-
-* Barbora cluster
-
-```console
-$ papi_avail
-Available PAPI preset and user defined events plus hardware information.
---------------------------------------------------------------------------------
-PAPI version             : 6.0.0.0
-Operating system         : Linux 3.10.0-1160.6.1.el7.x86_64
-Vendor string and code   : GenuineIntel (1, 0x1)
-Model string and code    : Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz (85, 0x55)
-CPU revision             : 7.000000
-CPUID                    : Family/Model/Stepping 6/85/7, 0x06/0x55/0x07
-CPU Max MHz              : 3900
-CPU Min MHz              : 1000
-Total cores              : 72
-SMT threads per core     : 2
-Cores per socket         : 18
-Sockets                  : 2
-Cores per NUMA region    : 36
-NUMA regions             : 2
-Running in a VM          : no
-Number Hardware Counters : 10
-Max Multiplex Counters   : 384
-Fast counter read (rdpmc): no
---------------------------------------------------------------------------------
-
-================================================================================
-  PAPI Preset Events
-================================================================================
-    Name        Code    Avail Deriv Description (Note)
-PAPI_L1_DCM  0x80000000  Yes   No   Level 1 data cache misses
-PAPI_L1_ICM  0x80000001  Yes   No   Level 1 instruction cache misses
-PAPI_L2_DCM  0x80000002  Yes   Yes  Level 2 data cache misses
-PAPI_L2_ICM  0x80000003  Yes   No   Level 2 instruction cache misses
-PAPI_L3_DCM  0x80000004  No    No   Level 3 data cache misses
-PAPI_L3_ICM  0x80000005  No    No   Level 3 instruction cache misses
-PAPI_L1_TCM  0x80000006  Yes   Yes  Level 1 cache misses
-PAPI_L2_TCM  0x80000007  Yes   No   Level 2 cache misses
-PAPI_L3_TCM  0x80000008  Yes   No   Level 3 cache misses
-    ....
-```
-
-* Karolina cluster
-
-```console
-Available PAPI preset and user defined events plus hardware information.
---------------------------------------------------------------------------------
-PAPI version             : 6.0.0.0
-Operating system         : Linux 3.10.0-1160.21.1.el7.x86_64
-Vendor string and code   : AuthenticAMD (2, 0x2)
-Model string and code    : AMD EPYC 7H12 64-Core Processor (49, 0x31)
-CPU revision             : 0.000000
-CPUID                    : Family/Model/Stepping 23/49/0, 0x17/0x31/0x00
-CPU Max MHz              : 2594
-CPU Min MHz              : 2594
-Total cores              : 128
-SMT threads per core     : 1
-Cores per socket         : 64
-Sockets                  : 2
-Cores per NUMA region    : 16
-NUMA regions             : 8
-Running in a VM          : no
-Number Hardware Counters : 5
-Max Multiplex Counters   : 384
-Fast counter read (rdpmc): no
---------------------------------------------------------------------------------
-
-================================================================================
-  PAPI Preset Events
-================================================================================
-    Name        Code    Avail Deriv Description (Note)
-PAPI_L1_DCM  0x80000000  No    No   Level 1 data cache misses
-PAPI_L1_ICM  0x80000001  No    No   Level 1 instruction cache misses
-PAPI_L2_DCM  0x80000002  No    No   Level 2 data cache misses
-PAPI_L2_ICM  0x80000003  No    No   Level 2 instruction cache misses
-PAPI_L3_DCM  0x80000004  No    No   Level 3 data cache misses
-PAPI_L3_ICM  0x80000005  No    No   Level 3 instruction cache misses
-PAPI_L1_TCM  0x80000006  No    No   Level 1 cache misses
-PAPI_L2_TCM  0x80000007  No    No   Level 2 cache misses
-PAPI_L3_TCM  0x80000008  No    No   Level 3 cache misses
-...
-```
-
-### Papi_native_avail
-
-Prints which native events are available on the current CPU.
-
-### Papi_cost
-
-Measures the cost (in cycles) of basic PAPI operations.
-
-### Papi_mem_info
-
-Prints information about the memory architecture of the current CPU.
-
-## PAPI API
-
-PAPI provides two kinds of events:
-
-* **Preset events** is a set of predefined common CPU events, standardized across platforms.
-* **Native events** is a set of all events supported by the current hardware. This is a larger set of features than preset. For other components than CPU, only native events are usually available.
-
-To use PAPI in your application, you need to link the appropriate include file.
-
-* papi.h for C
-* f77papi.h for Fortran 77
-* f90papi.h for Fortran 90
-* fpapi.h for Fortran with preprocessor
-
-The include path is automatically added by the `papi` module to `$INCLUDE`.
-
-### High-Level API
-
-Refer to [this description of the High-level API][a].
-
-### Low-Level API
-
-Please refer to [this description of the Low-level API][b].
-
-### Timers
-
-PAPI provides the most accurate timers the platform can support, [see][c].
-
-### System Information
-
-PAPI can be used to query some system information, such as CPU name and MHz, [see][d].
-
-## Example
-
-The following example prints MFLOPS rate of a naive matrix-matrix multiplication:
-
-```cpp
-    #include <stdlib.h>
-    #include <stdio.h>
-    #include "papi.h"
-    #define SIZE 1000
-
-    int main(int argc, char **argv) {
-     float matrixa[SIZE][SIZE], matrixb[SIZE][SIZE], mresult[SIZE][SIZE];
-     float real_time, proc_time, mflops;
-     long long flpins;
-     int retval;
-     int i,j,k;
-
-     /* Initialize the Matrix arrays */
-     for ( i=0; i<SIZE*SIZE; i++ ){
-     mresult[0][i] = 0.0;
-     matrixa[0][i] = matrixb[0][i] = rand()*(float)1.1;
-     }
-
-     /* Setup PAPI library and begin collecting data from the counters */
-     if((retval=PAPI_flops( &real_time, &proc_time, &flpins, &mflops))<PAPI_OK)
-     printf("Error!");
-
-     /* A naive Matrix-Matrix multiplication */
-     for (i=0;i<SIZE;i++)
-     for(j=0;j<SIZE;j++)
-     for(k=0;k<SIZE;k++)
-     mresult[i][j]=mresult[i][j] + matrixa[i][k]*matrixb[k][j];
-
-     /* Collect the data into the variables passed in */
-     if((retval=PAPI_flops( &real_time, &proc_time, &flpins, &mflops))<PAPI_OK)
-     printf("Error!");
-
-     printf("Real_time:t%fnProc_time:t%fnTotal flpins:t%lldnMFLOPS:tt%fn", real_time, proc_time, flpins, mflops);
-     PAPI_shutdown();
-     return 0;
-    }
-```
-
-Now compile and run the example:
-
-```console
-$ gcc matrix.c -o matrix -lpapi
-$ ./matrix
-    Real_time: 8.852785
-    Proc_time: 8.850000
-    Total flpins: 6012390908
-    MFLOPS: 679.366211
-```
-
-Let us try with optimizations enabled:
-
-```console
-$ gcc -O3 matrix.c -o matrix -lpapi
-$ ./matrix
-    Real_time: 0.000020
-    Proc_time: 0.000000
-    Total flpins: 6
-    MFLOPS: inf
-```
-
-Now we see a seemingly strange result - the multiplication took no time and only 6 floating point instructions were issued. This is because the compiler optimizations have completely removed the multiplication loop, as the result is actually not used anywhere in the program. We can fix this by adding some "dummy" code at the end of the Matrix-Matrix multiplication routine:
-
-```cpp
-    for (i=0; i<SIZE;i++)
-     for (j=0; j<SIZE; j++)
-       if (mresult[i][j] == -1.0) printf("x");
-```
-
-Now the compiler will not remove the multiplication loop. (However, it is still not that smart to see that the result will never be negative). Now run the code again:
-
-```console
-$ gcc -O3 matrix.c -o matrix -lpapi
-$ ./matrix
-    Real_time: 8.795956
-    Proc_time: 8.790000
-    Total flpins: 18700983160
-    MFLOPS: 2127.529297
-```
-
-## References
-
-1. [Main project page](http://icl.cs.utk.edu/papi/)
-1. [Wiki](http://icl.cs.utk.edu/projects/papi/wiki/Main_Page)
-1. [API Documentation](http://icl.cs.utk.edu/papi/docs/)
-
-[1]: ../../environment-and-modules.md
-
-[a]: http://icl.cs.utk.edu/projects/papi/wiki/PAPIC:High_Level
-[b]: http://icl.cs.utk.edu/projects/papi/wiki/PAPIC:Low_Level
-[c]: http://icl.cs.utk.edu/projects/papi/wiki/PAPIC:Timers
-[d]: http://icl.cs.utk.edu/projects/papi/wiki/PAPIC:System_Information
diff --git a/content/docs/software/debuggers/scalasca.mdx b/content/docs/software/debuggers/scalasca.mdx
deleted file mode 100644
index 5d2bfdb26a33909d8c02662406c6577c046574ae..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/scalasca.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: "Scalasca"
----
-## Introduction
-
-[Scalasca][a] is a software tool that supports the performance optimization of parallel programs by measuring and analyzing their runtime behavior. The analysis identifies potential performance bottlenecks – in particular those concerning communication and synchronization – and offers guidance in exploring their causes.
-
-Scalasca supports profiling of MPI, OpenMP and hybrid MPI+OpenMP applications.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Scalasca
-```
-
-## Usage
-
-Profiling a parallel application with Scalasca consists of three steps:
-
-1. Instrumentation, compiling the application such way, that the profiling data can be generated.
-1. Runtime measurement, running the application with the Scalasca profiler to collect performance data.
-1. Analysis of reports
-
-### Instrumentation
-
-Instrumentation via `scalasca -instrument` is discouraged. Use [Score-P instrumentation][5].
-
-### Runtime Measurement
-
-After the application is instrumented, runtime measurement can be performed with the `scalasca -analyze` command. The syntax is:
-
-`scalasca -analyze [scalasca options] [launcher] [launcher options] [program] [program options]`
-
-An example:
-
-```console
-$ scalasca -analyze mpirun -np 4 ./mympiprogram
-```
-
-Some notable Scalasca options are:
-
-* `-t` enables trace data collection. By default, only summary data are collected.
-* `-e <directory>` specifies a directory to which the collected data is saved. By default, Scalasca saves the data to a directory with the scorep\_ prefix, followed by the name of the executable and the launch configuration.
-
-<Callout>
-    Scalasca can generate a huge amount of data, especially if tracing is enabled. Consider saving the data to a scratch directory.
-</Callout>
-
-### Analysis of Reports
-
-For the analysis, you must have the [Score-P][5] and [CUBE][6] modules loaded. The analysis is done in two steps. First, the data is preprocessed and then, the CUBE GUI tool is launched.
-
-To launch the analysis, run:
-
-```console
-$ scalasca -examine [options] <experiment_directory>
-```
-
-If you do not wish to launch the GUI tool, use the `-s` option:
-
-```console
-$ scalasca -examine -s <experiment_directory>
-```
-
-Alternatively, you can open CUBE and load the data directly from here. Keep in mind that in this case, the pre-processing is not done and not all metrics will be shown in the viewer.
-
-Refer to the [CUBE documentation][6] on usage of the GUI viewer.
-
-## References
-
-1. [http://www.scalasca.org/][a]
-
-[1]: ../../modules-matrix.md
-[2]: ../compilers.md
-[5]: score-p.md
-[6]: cube.md
-
-[a]: http://www.scalasca.org/
diff --git a/content/docs/software/debuggers/score-p.mdx b/content/docs/software/debuggers/score-p.mdx
deleted file mode 100644
index 730559c1fca2f46be4d23179b3b4f5d0ac057caa..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/score-p.mdx
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: "Score-P"
----
-## Introduction
-
-The [Score-P measurement infrastructure][a] is a highly scalable and easy-to-use tool suite for profiling, event tracing, and online analysis of HPC applications.
-
-Score-P can be used as an instrumentation tool for [Scalasca][1].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Score-P
-```
-
-## Instrumentation
-
-There are three ways to instrument your parallel applications in order to enable performance data collection:
-
-1. Automated instrumentation using compiler
-1. Manual instrumentation using API calls
-1. Manual instrumentation using directives
-
-### Automated Instrumentation
-
-This the easiest method. Score-P will automatically add instrumentation to every routine entry and exit using compiler hooks, and will intercept MPI calls and OpenMP regions. However, this method might produce a large number of data. If you want to focus on profiling a specific regions of your code, consider using the manual instrumentation methods. To use automated instrumentation, simply prepend scorep to your compilation command. For example, replace:
-
-```console
-$ mpif90 -c foo.f90
-$ mpif90 -c bar.f90
-$ mpif90 -o myapp foo.o bar.o
-```
-
-with:
-
-```console
-$ scorep mpif90 -c foo.f90
-$ scorep mpif90 -c bar.f90
-$ scorep mpif90 -o myapp foo.o bar.o
-```
-
-Usually your program is compiled using a Makefile or similar script, so it is advisable to add the `scorep` command to your definition of variables CC, CXX, FCC, etc.
-
-It is important that scorep is prepended also to the linking command, in order to link with Score-P instrumentation libraries.
-
-### Manual Instrumentation Using API Calls
-
-To use this kind of instrumentation, use `scorep` with the `--user` switch. You will then mark regions to be instrumented by inserting API calls.
-
-An example in C/C++:
-
-```cpp
-#include <scorep/SCOREP_User.h>
-void foo()
-{
-    SCOREP_USER_REGION_DEFINE( my_region_handle )
-    // more declarations
-    SCOREP_USER_REGION_BEGIN( my_region_handle, "foo", SCOREP_USER_REGION_TYPE_COMMON )
-    // do something
-    SCOREP_USER_REGION_END( my_region_handle )
-}
-```
-
-and Fortran:
-
-```fortran
-#include "scorep/SCOREP_User.inc"
-subroutine foo
-    SCOREP_USER_REGION_DEFINE( my_region_handle )
-    ! more declarations
-    SCOREP_USER_REGION_BEGIN( my_region_handle, "foo", SCOREP_USER_REGION_TYPE_COMMON )
-    ! do something
-    SCOREP_USER_REGION_END( my_region_handle )
-end subroutine foo
-```
-
-Refer to the [documentation for description of the API][b].
-
-### Manual Instrumentation Using Directives
-
-This method uses POMP2 directives to mark regions to be instrumented. To use this method, use the `scorep --pomp` command.
-
-Example directives in C/C++:
-
-```cpp
-void foo(...)
-{
-    /* declarations */
-    #pragma pomp inst begin(foo)
-    ...
-    if (<condition>)
-    {
-        #pragma pomp inst altend(foo)
-        return;
-    }
-    ...
-    #pragma pomp inst end(foo)
-}
-```
-
-and in Fortran:
-
-```fortran
-subroutine foo(...)
-    !declarations
-    !POMP$ INST BEGIN(foo)
-    ...
-    if (<condition>) then
- !POMP$ INST ALTEND(foo)
- return
- end if
- ...
- !POMP$ INST END(foo)
-end subroutine foo
-```
-
-The directives are ignored if the program is compiled without Score-P. For details, refer to the [documentation][c].
-
-[1]: scalasca.md
-[2]: ../../modules-matrix.md
-[3]: ../compilers.md
-
-[a]: http://www.vi-hps.org/projects/score-p/
-[b]: https://silc.zih.tu-dresden.de/scorep-current/pdf/scorep.pdf
-[c]: https://silc.zih.tu-dresden.de/scorep-current/pdf/scorep.pdf
diff --git a/content/docs/software/debuggers/total-view.mdx b/content/docs/software/debuggers/total-view.mdx
deleted file mode 100644
index c2ecfddf1bf42a54bce794bbc75af2d3e0687f3d..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/total-view.mdx
+++ /dev/null
@@ -1,173 +0,0 @@
----
-title: "TotalView"
----
-## Introduction
-
-TotalView is a GUI-based source code multi-process, multi-thread debugger.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av TotalView
-```
-
-## License and Limitations for Cluster Users
-
-On the cluster, users can debug OpenMP or MPI code that runs up to 64 parallel processes. This limitation means that 1 user can debug up 64 processes, or 32 users can debug 2 processes, etc.
-
-Debugging of GPU accelerated codes is also supported.
-
-You can check the status of the licenses for [Karolina][a] or [Barbora][b]:
-
-```console
-$ cat /apps/user/licenses/totalview_features_state.txt
-
-    # totalview
-    # -------------------------------------------------
-    # FEATURE                       TOTAL   USED AVAIL
-    # -------------------------------------------------
-    TotalView_Team                     64      0     64
-    Replay                             64      0     64
-    CUDA                               64      0     64
-```
-
-## Compiling Code to Run With TotalView
-
-### Modules
-
-Load all necessary modules to compile the code. For example:
-
-```console
-$ ml intel/2020b
-```
-
-Load the TotalView module:
-
-```console
-$ ml TotalView/2021.2.14
-```
-
-Compile the code:
-
-```console
-$ mpicc -g -O0 -o test_debug test.c
-$ mpif90 -g -O0 -o test_debug test.f
-```
-
-### Compiler Flags
-
-Before debugging, you need to compile your code with theses flags:
-
-<Callout>
-    `-g` Generates extra debugging information usable by GDB. `-g3` includes additional debugging information. This option is available for GNU, Intel C/C++, and Fortran compilers.
-    `-O0` Suppresses all optimizations.
-</Callout>
-
-## Starting a Job With TotalView
-
-Be sure to log in with an X window forwarding enabled. This could mean using the `-X` in the `ssh`:
-
-```console
-local $ssh -X username@login1.karolina.it4i.cz
-```
-
-Another option is to access the login node using VNC.
-
-From the login node an interactive session with X windows forwarding (`--x11` option) can be started by the following command:
-
-```console
-$ salloc -A PROJECT_ID -p qcpu --nodes=1 --ntasks-per-node=128 --cpus-per-task=1 --time=01:00:00 --x11
-```
-
-Then launch the debugger with the totalview command followed by the name of the executable to debug.
-
-### Debugging a Serial Code
-
-To debug a serial code, use:
-
-```console
-$ totalview test_debug
-```
-
-### Debugging a Parallel Code - Option 1
-
-To debug a parallel code compiled with **OpenMPI**, you need to setup your TotalView environment:
-
-<Callout>
-    To be able to run a parallel debugging procedure from the command line without stopping the debugger in the mpiexec source code, you have to add the following function to your **~/.tvdrc** file.
-</Callout>
-
-```console
-proc mpi_auto_run_starter {loaded_id} {
-    set starter_programs {mpirun mpiexec orterun}
-    set executable_name [TV::symbol get $loaded_id full_pathname]
-    set file_component [file tail $executable_name]
-
-    if {[lsearch -exact $starter_programs $file_component] != -1} {
-        puts "*************************************"
-        puts "Automatically starting $file_component"
-        puts "*************************************"
-        dgo
-    }
-}
-
-# Append this function to TotalView's image load callbacks so that
-# TotalView run this program automatically.
-
-dlappend TV::image_load_callbacks mpi_auto_run_starter
-```
-
-The source code of this function can be also found in
-
-```console
-$ $EBROOTOPENMPI/etc/openmpi-totalview.tcl
-```
-
-You can also add only following line to your ~/.tvdrc file instead of
-the entire function:
-
-```console
-$ source $EBROOTOPENMPI/etc/openmpi-totalview.tcl
-```
-
-You need to do this step only once. See also [OpenMPI FAQ entry][c].
-
-Now you can run the parallel debugger using:
-
-```console
-$ mpirun -tv -n 5 ./test_debug
-```
-
-When the following dialog appears, click on "Yes"
-
-![](/it4i/img/totalview1.png)
-
-At this point, the main TotalView GUI window will appear and you can insert the breakpoints and start debugging:
-
-![](/it4i/img/totalview2.png)
-
-### Debugging a Parallel Code - Option 2
-
-Another option to start a new parallel debugging session from a command line is to let TotalView to execute mpirun by itself. In this case, the user has to specify an MPI implementation used to compile the source code.
-
-The following example shows how to start a debugging session with the Intel MPI:
-
-```console
-$ ml intel/2020b TotalView/2021.2.14
-$ totalview -mpi "Intel MPI-Hydra" -np 8 ./hello_debug_impi
-```
-
-After running the previous command, you will see the same window as shown in the screenshot above.
-
-More information regarding the command line parameters of the TotalView can be foundin the TotalView Reference Guide, Chapter 7: TotalView Command Syntax.
-
-## Documentation
-
-[1] The [TotalView documentation][d] web page is a good source for learning more about some of the advanced TotalView features.
-
-[a]: https://extranet.it4i.cz/rsweb/karolina/license/Totalview
-[b]: https://extranet.it4i.cz/rsweb/barbora/license/Totalview
-[c]: https://www.open-mpi.org/faq/?category=running#run-with-tv
-[d]: http://www.roguewave.com/support/product-documentation/totalview-family.aspx#totalview
diff --git a/content/docs/software/debuggers/valgrind.mdx b/content/docs/software/debuggers/valgrind.mdx
deleted file mode 100644
index 8e5a3fce8164b8cf6e56ebe9692bb61541d56d1b..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/valgrind.mdx
+++ /dev/null
@@ -1,271 +0,0 @@
----
-title: "Valgrind"
----
-## Introduction
-
-Valgrind is an open-source tool for memory debugging and profiling. It is used mainly for debugging memory-related problems, such as memory leaks, use of uninitalized memory, etc. in C/C++ applications. However, the toolchain has been extended over time with more functionality, such as debugging of threaded applications, cache profiling, not limited only to C/C++.
-
-Valgrind is an extremely useful tool for debugging memory errors such as [off-by-one][a]. Valgrind uses a virtual machine and dynamic recompilation of binary code, so you can expect that programs being debugged by Valgrind run 5-100 times slower.
-
-The main tools available in Valgrind are:
-
-* **Memcheck**, the original, most used and default tool. Verifies memory access in you program and can detect use of uninitialized memory, out of bounds memory access, memory leaks, double free, etc.
-* **Massif**, a heap profiler.
-* **Hellgrind** and **DRD** can detect race conditions in multi-threaded applications.
-* **Cachegrind**, a cache profiler.
-* **Callgrind**, a callgraph analyzer.
-* For more information, refer to the [official Valgrind documentation][b].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Valgrind
-```
-
-## Usage
-
-Compile the application which you want to debug as usual. It is advisable to add the compilation flags `-g` (to add debugging information to the binary so that you will see original source code lines in the output) and `-O0` (to disable compiler optimizations).
-
-For example, let us look at this C code, which has two problems:
-
-```cpp
-#include <stdlib.h>
-
-void f(void)
-{
-   int* x = malloc(10 * sizeof(int));
-   x[10] = 0; // problem 1: heap block overrun
-}             // problem 2: memory leak -- x not freed
-
-int main(void)
-{
-   f();
-   return 0;
-}
-```
-
-Now, compile it with the Intel compiler :
-
-```console
-$ ml intel/2020b
-$ icc -g valgrind-example.c -o valgrind-example
-```
-
-Now, let us run it with Valgrind:
-
-`valgrind [valgrind options] <your program binary> [your program options]`
-
-```console
-$ ml Valgrind/3.16.1-intel-2020b
-```
-
-If no Valgrind options are specified, Valgrind defaults to running the Memcheck tool. For the full description of command line options, refer to the Valgrind documentation.
-
-```console
-$ valgrind ./valgrind-example
-    ==12652== Memcheck, a memory error detector
-    ==12652== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
-    ==12652== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
-    ==12652== Command: ./valgrind-example
-    ==12652==
-    ==12652== Invalid write of size 4
-    ==12652== at 0x40053E: f (valgrind-example.c:6)
-    ==12652== by 0x40054E: main (valgrind-example.c:11)
-    ==12652== Address 0x5861068 is 0 bytes after a block of size 40 alloc'd
-    ==12652== at 0x4C27AAA: malloc (vg_replace_malloc.c:291)
-    ==12652== by 0x400528: f (valgrind-example.c:5)
-    ==12652== by 0x40054E: main (valgrind-example.c:11)
-    ==12652==
-    ==12652==
-    ==12652== HEAP SUMMARY:
-    ==12652== in use at exit: 40 bytes in 1 blocks
-    ==12652== total heap usage: 1 allocs, 0 frees, 40 bytes allocated
-    ==12652==
-    ==12652== LEAK SUMMARY:
-    ==12652== definitely lost: 40 bytes in 1 blocks
-    ==12652== indirectly lost: 0 bytes in 0 blocks
-    ==12652== possibly lost: 0 bytes in 0 blocks
-    ==12652== still reachable: 0 bytes in 0 blocks
-    ==12652== suppressed: 0 bytes in 0 blocks
-    ==12652== Rerun with --leak-check=full to see details of leaked memory
-    ==12652==
-    ==12652== For counts of detected and suppressed errors, rerun with: -v
-    ==12652== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 6 from 6)
-```
-
-In the output, we can see that Valgrind has detected both errors - the off-by-one memory access at line 5 and a memory leak of 40 bytes. If we want a detailed analysis of the memory leak, we need to run Valgrind with the  `--leak-check=full` option:
-
-```console
-$ valgrind --leak-check=full ./valgrind-example
-    ==23856== Memcheck, a memory error detector
-    ==23856== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
-    ==23856== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info
-    ==23856== Command: ./valgrind-example
-    ==23856==
-    ==23856== Invalid write of size 4
-    ==23856== at 0x40067E: f (valgrind-example.c:6)
-    ==23856== by 0x40068E: main (valgrind-example.c:11)
-    ==23856== Address 0x66e7068 is 0 bytes after a block of size 40 alloc'd
-    ==23856== at 0x4C26FDE: malloc (vg_replace_malloc.c:236)
-    ==23856== by 0x400668: f (valgrind-example.c:5)
-    ==23856== by 0x40068E: main (valgrind-example.c:11)
-    ==23856==
-    ==23856==
-    ==23856== HEAP SUMMARY:
-    ==23856== in use at exit: 40 bytes in 1 blocks
-    ==23856== total heap usage: 1 allocs, 0 frees, 40 bytes allocated
-    ==23856==
-    ==23856== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1
-    ==23856== at 0x4C26FDE: malloc (vg_replace_malloc.c:236)
-    ==23856== by 0x400668: f (valgrind-example.c:5)
-    ==23856== by 0x40068E: main (valgrind-example.c:11)
-    ==23856==
-    ==23856== LEAK SUMMARY:
-    ==23856== definitely lost: 40 bytes in 1 blocks
-    ==23856== indirectly lost: 0 bytes in 0 blocks
-    ==23856== possibly lost: 0 bytes in 0 blocks
-    ==23856== still reachable: 0 bytes in 0 blocks
-    ==23856== suppressed: 0 bytes in 0 blocks
-    ==23856==
-    ==23856== For counts of detected and suppressed errors, rerun with: -v
-    ==23856== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 6 from 6)
-```
-
-Now we can see that the memory leak is due to `malloc()` at line 6.
-
-## Usage With MPI
-
-Although Valgrind is not primarily a parallel debugger, it can be used to debug parallel applications as well. When launching your parallel applications, prepend the valgrind command. For example:
-
-```console
-$ mpirun -np 4 valgrind myapplication
-```
-
-The default version without MPI support will however report a large number of false errors in the MPI library, such as:
-
-```console
-    ==30166== Conditional jump or move depends on uninitialised value(s)
-    ==30166== at 0x4C287E8: strlen (mc_replace_strmem.c:282)
-    ==30166== by 0x55443BD: I_MPI_Processor_model_number (init_interface.c:427)
-    ==30166== by 0x55439E0: I_MPI_Processor_arch_code (init_interface.c:171)
-    ==30166== by 0x558D5AE: MPID_nem_impi_init_shm_configuration (mpid_nem_impi_extensions.c:1091)
-    ==30166== by 0x5598F4C: MPID_nem_init_ckpt (mpid_nem_init.c:566)
-    ==30166== by 0x5598B65: MPID_nem_init (mpid_nem_init.c:489)
-    ==30166== by 0x539BD75: MPIDI_CH3_Init (ch3_init.c:64)
-    ==30166== by 0x5578743: MPID_Init (mpid_init.c:193)
-    ==30166== by 0x554650A: MPIR_Init_thread (initthread.c:539)
-    ==30166== by 0x553369F: PMPI_Init (init.c:195)
-    ==30166== by 0x4008BD: main (valgrind-example-mpi.c:18)
-```
-
-So it is better to use the MPI-enabled Valgrind from the module. The MPI version requires the library `$EBROOTVALGRIND/lib/valgrind/libmpiwrap-amd64-linux.so`
-which must be included in the `LD_PRELOAD` environment variable.
-
-Let us look at this MPI example:
-
-```cpp
-#include <stdlib.h>
-#include <mpi.h>
-
-int main(int argc, char *argv[])
-{
-        int *data = malloc(sizeof(int)*99);
-
-        MPI_Init(&argc, &argv);
-        MPI_Bcast(data, 100, MPI_INT, 0, MPI_COMM_WORLD);
-        MPI_Finalize();
-
-        return 0;
-}
-```
-
-There are two errors - use of uninitialized memory and invalid length of the buffer. Let us debug it with Valgrind:
-
-```console
-$ ml intel/2020b Valgrind/3.16.1-intel-2020b
-$ mpicc -g valgrind-example-mpi.c -o valgrind-example-mpi
-$ mpirun -np 2 -env LD_PRELOAD $EBROOTVALGRIND/lib/valgrind/libmpiwrap-amd64-linux.so valgrind ./valgrind-example-mpi
-```
-
-Prints this output (note that there is an output printed for every launched MPI process):
-
-```console
-    ==31318== Memcheck, a memory error detector
-    ==31318== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
-    ==31318== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
-    ==31318== Command: ./valgrind-example-mpi
-    ==31318==
-    ==31319== Memcheck, a memory error detector
-    ==31319== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
-    ==31319== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
-    ==31319== Command: ./valgrind-example-mpi
-    ==31319==
-    valgrind MPI wrappers 31319: Active for pid 31319
-    valgrind MPI wrappers 31319: Try MPIWRAP_DEBUG=help for possible options
-    valgrind MPI wrappers 31318: Active for pid 31318
-    valgrind MPI wrappers 31318: Try MPIWRAP_DEBUG=help for possible options
-    ==31319== Unaddressable byte(s) found during client check request
-    ==31319== at 0x4E35974: check_mem_is_addressable_untyped (libmpiwrap.c:960)
-    ==31319== by 0x4E5D0FE: PMPI_Bcast (libmpiwrap.c:908)
-    ==31319== by 0x400911: main (valgrind-example-mpi.c:20)
-    ==31319== Address 0x69291cc is 0 bytes after a block of size 396 alloc'd
-    ==31319== at 0x4C27AAA: malloc (vg_replace_malloc.c:291)
-    ==31319== by 0x4007BC: main (valgrind-example-mpi.c:8)
-    ==31319==
-    ==31318== Uninitialised byte(s) found during client check request
-    ==31318== at 0x4E3591D: check_mem_is_defined_untyped (libmpiwrap.c:952)
-    ==31318== by 0x4E5D06D: PMPI_Bcast (libmpiwrap.c:908)
-    ==31318== by 0x400911: main (valgrind-example-mpi.c:20)
-    ==31318== Address 0x6929040 is 0 bytes inside a block of size 396 alloc'd
-    ==31318== at 0x4C27AAA: malloc (vg_replace_malloc.c:291)
-    ==31318== by 0x4007BC: main (valgrind-example-mpi.c:8)
-    ==31318==
-    ==31318== Unaddressable byte(s) found during client check request
-    ==31318== at 0x4E3591D: check_mem_is_defined_untyped (libmpiwrap.c:952)
-    ==31318== by 0x4E5D06D: PMPI_Bcast (libmpiwrap.c:908)
-    ==31318== by 0x400911: main (valgrind-example-mpi.c:20)
-    ==31318== Address 0x69291cc is 0 bytes after a block of size 396 alloc'd
-    ==31318== at 0x4C27AAA: malloc (vg_replace_malloc.c:291)
-    ==31318== by 0x4007BC: main (valgrind-example-mpi.c:8)
-    ==31318==
-    ==31318==
-    ==31318== HEAP SUMMARY:
-    ==31318== in use at exit: 3,172 bytes in 67 blocks
-    ==31318== total heap usage: 191 allocs, 124 frees, 81,203 bytes allocated
-    ==31318==
-    ==31319==
-    ==31319== HEAP SUMMARY:
-    ==31319== in use at exit: 3,172 bytes in 67 blocks
-    ==31319== total heap usage: 175 allocs, 108 frees, 48,435 bytes allocated
-    ==31319==
-    ==31318== LEAK SUMMARY:
-    ==31318== definitely lost: 408 bytes in 3 blocks
-    ==31318== indirectly lost: 256 bytes in 1 blocks
-    ==31318== possibly lost: 0 bytes in 0 blocks
-    ==31318== still reachable: 2,508 bytes in 63 blocks
-    ==31318== suppressed: 0 bytes in 0 blocks
-    ==31318== Rerun with --leak-check=full to see details of leaked memory
-    ==31318==
-    ==31318== For counts of detected and suppressed errors, rerun with: -v
-    ==31318== Use --track-origins=yes to see where uninitialised values come from
-    ==31318== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 4 from 4)
-    ==31319== LEAK SUMMARY:
-    ==31319== definitely lost: 408 bytes in 3 blocks
-    ==31319== indirectly lost: 256 bytes in 1 blocks
-    ==31319== possibly lost: 0 bytes in 0 blocks
-    ==31319== still reachable: 2,508 bytes in 63 blocks
-    ==31319== suppressed: 0 bytes in 0 blocks
-    ==31319== Rerun with --leak-check=full to see details of leaked memory
-    ==31319==
-    ==31319== For counts of detected and suppressed errors, rerun with: -v
-    ==31319== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)
-```
-
-We can see that Valgrind has reported use of the uninitialized memory on the master process (which reads the array to be broadcast) and use of the unaddressable memory on both processes.
-
-[1]: ../../modules-matrix.md
-
-[a]: http://en.wikipedia.org/wiki/Off-by-one_error
-[b]: http://valgrind.org/docs/
diff --git a/content/docs/software/debuggers/vampir.mdx b/content/docs/software/debuggers/vampir.mdx
deleted file mode 100644
index 8796e537a1f2632674ebb7ea98b006490413b03b..0000000000000000000000000000000000000000
--- a/content/docs/software/debuggers/vampir.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Vampir"
----
-## Introduction
-
-Vampir is a commercial trace analysis and visualization tool. It works with traces in OTF and OTF2 formats. It does not have the functionality to collect traces, so you need to use a trace collection tool (such as [Score-P][1]) first to collect the traces.
-
-![](/it4i/img/Snmekobrazovky20160708v12.33.35.png)
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Vampir
-```
-
-## User Manual
-
-To find the detailed user manual in PDF format, type
-
-```console
-$ ls $EBROOTVAMPIR/doc/vampir-manual.pdf
-```
-
-## References
-
-1. [Web site][a]
-
-[1]: score-p.md
-
-[a]: https://www.vampir.eu
diff --git a/content/docs/software/eessi.mdx b/content/docs/software/eessi.mdx
deleted file mode 100644
index 63f1d98353d9cd4c8bcd831fc320fa898bba0759..0000000000000000000000000000000000000000
--- a/content/docs/software/eessi.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: "EESSI"
----
-EESSI stands for the European Environment for Scientific Software Installations - a collaboration between different European partners in HPC community.
-
-The goal of this project is to build a common stack of scientific software installations for HPC systems and beyond, including laptops, personal workstations, and cloud infrastructure.
-
-For more information, see the [official EESSI documentation][1].
-
-## EESSI on IT4I
-
-The EESSI project is available on login, cn, and acn nodes on both Barbora and Karolina.
-
-To use the EESSI software installations, load the environment using the command:
-
-```console
-source /cvmfs/software.eessi.io/versions/2023.06/init/bash
-```
-
-You can then use the `ml av` command to see the list of all EESSI and IT4I modules. EESSI modules will be listed first:
-
-```console
-{EESSI 2023.06} $ ml av
-
----- /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/modules/all ----
-   Abseil/20230125.2-GCCcore-12.2.0
-   Abseil/20230125.3-GCCcore-12.3.0                 (D)
-   ALL/0.9.2-foss-2023a
-   AOFlagger/3.4.0-foss-2023b
-   archspec/0.2.1-GCCcore-12.3.0
-   Armadillo/11.4.3-foss-2022b
-   Armadillo/12.6.2-foss-2023a
-   Armadillo/12.8.0-foss-2023b                      (D)
-   arpack-ng/3.8.0-foss-2022b
-   arpack-ng/3.9.0-foss-2023a
-   arpack-ng/3.9.0-foss-2023b                       (D)
-   arrow-R/11.0.0.3-foss-2022b-R-4.2.2
-   arrow-R/14.0.1-foss-2023a-R-4.3.2                (D)
-   Arrow/11.0.0-gfbf-2022b
-   Arrow/14.0.1-gfbf-2023a                          (D)
-   ASE/3.22.1-gfbf-2022b
-   at-spi2-atk/2.38.0-GCCcore-12.2.0
-   at-spi2-atk/2.38.0-GCCcore-12.3.0                (D)
-   at-spi2-core/2.46.0-GCCcore-12.2.0
-   at-spi2-core/2.49.91-GCCcore-12.3.0              (D)
-lines 1-22
-```
-
-## Exiting EESSI Environment
-
-To exit EESSI environment, you must log out of the supercomputer.
-
-## Bugs & Issues
-
-You can see the list of issues and report bugs on the [project's issue GitHub page][2].
-
-[1]: https://www.eessi.io/docs/overview/
-[2]: https://github.com/EESSI/software-layer/issues
diff --git a/content/docs/software/intel/intel-suite/intel-advisor.mdx b/content/docs/software/intel/intel-suite/intel-advisor.mdx
deleted file mode 100644
index 9b8888b9d9b1b27ac72c12e723a610a37c2b8b72..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-advisor.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: "Intel Advisor"
----
-## Introduction
-
-Intel Advisor is a tool aiming to assist you in vectorization and threading of your code. You can use it to profile your application and identify loops that could benefit from vectorization and/or threading parallelism.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Advisor
-```
-
-## Usage
-
-Your program should be compiled with the `-g` switch to include symbol names. You should compile with `-O2` or higher to see code that is already vectorized by the compiler.
-
-Profiling is possible either directly from the GUI or from the command line.
-
-To profile from the GUI, launch Advisor:
-
-```console
-$ advixe-gui
-```
-
-Then select the menu *File -> New -> Project*. Choose a directory to which the project data is saved. After clicking OK, the *Project properties* window appears, where you can configure the path to your binary, launch arguments, working directory, etc. After clicking OK, the project is ready.
-
-In the left pane, you can switch between *Vectorization* and *Threading* workflows. Each has several possible steps, which you can execute by clicking the *Collect* button. Alternatively, you can click on *Command Line* to see the command line required to run the analysis directly from the command line.
-
-## References
-
-1. [Intel® Advisor 2022 Tutorial: Get Started with Intel® Advisor][a]
-1. [Product page][b]
-1. [Documentation][c]
-
-[a]: https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-advisor/top.html
-[b]: https://software.intel.com/en-us/intel-advisor-xe
-[c]: https://www.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top.html
diff --git a/content/docs/software/intel/intel-suite/intel-compilers.mdx b/content/docs/software/intel/intel-suite/intel-compilers.mdx
deleted file mode 100644
index 71ca4ba6976e751bac1b71d9112cf0b9e29bc7a1..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-compilers.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: "Intel Compilers"
----
-## Introduction
-
-Intel compilers are compilers for Intel processor-based systems, available for Microsoft Windows, Linux, and macOS operating systems.
-
-## Installed Versions
-
-<Callout type=warn>
-    An `intel/2023a` module has been installed on the Karolina and Barbora clusters.
-    This module contains new compilers `icx`, `icpx`, and `ifx`.<br>
-    See the porting guides for [ICC Users to DPCPP or ICX][b] or for [Intel® Fortran Compiler][c].
-</Callout>
-
-Intel compilers are available in multiple versions via the `intel` module. The compilers include the icc C and C++ compiler and the ifort Fortran 77/90/95 compiler.
-
-For the current list of installed versions, use:
-
-```console
-$ ml av intel/
-```
-
-```console
-$ ml intel/2020b
-$ icc -v
-icc version 19.1.3.304 (gcc version 10.2.0 compatibility)
-$ ifort -v
-ifort version 19.1.3.304
-```
-
-## Instructions Vectorization
-
-Intel compilers provide vectorization of the code via the AVX-2/AVX-512 instructions and support threading parallelization via OpenMP.
-
-For maximum performance on the Barbora cluster compute nodes, compile your programs using the AVX-512 instructions, with reporting where the vectorization was used. We recommend the following compilation options for high performance.
-
-<Callout>
-    Barbora non-accelerated nodes support AVX-512 instructions (cn1-cn192).
-</Callout>
-
-```console
-$ icc -ipo -O3 -xCORE-AVX512 -qopt-report1 -qopt-report-phase=vec myprog.c mysubroutines.c -o myprog.x
-```
-
-In this example, we compile the program enabling interprocedural optimizations between source files (`-ipo`), aggressive loop optimizations (`-O3`), and vectorization (`-xCORE-AVX512`).
-
-For maximum performance on the Barbora GPU nodes or Karolina cluster compute nodes, compile your programs using the AVX-2 instructions, with reporting where the vectorization was used. We recommend the following compilation options for high performance.
-
-```console
-$ icc -ipo -O3 -xCORE-AVX2 -qopt-report1 -qopt-report-phase=vec myprog.c mysubroutines.c -o myprog.x
-```
-
-<Callout type=warn>
-    Karolina cluster has AMD cpu, use compiler options `-march=core-avx2`.
-</Callout>
-
-In this example, we compile the program enabling interprocedural optimizations between source files (`-ipo`), aggressive loop optimizations (`-O3`), and vectorization (`-xCORE-AVX2`).
-
-The compiler recognizes the omp, simd, vector, and ivdep pragmas for OpenMP parallelization and AVX2 vectorization. Enable the OpenMP parallelization by the `-openmp` compiler switch.
-
-```console
-$ icc -ipo -O3 -xCORE-AVX2 -qopt-report1 -qopt-report-phase=vec -openmp myprog.c mysubroutines.c -o myprog.x
-```
-
-Read more [here][a].
-
-[a]: https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top.html
-[b]: https://www.intel.com/content/www/us/en/developer/articles/guide/porting-guide-for-icc-users-to-dpcpp-or-icx.html
-[c]: https://www.intel.com/content/www/us/en/developer/articles/guide/porting-guide-for-ifort-to-ifx.html?wapkw=ifx
diff --git a/content/docs/software/intel/intel-suite/intel-inspector.mdx b/content/docs/software/intel/intel-suite/intel-inspector.mdx
deleted file mode 100644
index 4b32f0494981b557a2fbb13885d65f625d5731ab..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-inspector.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: "Intel Inspector"
----
-## Introduction
-
-Intel Inspector is a dynamic memory and threading error-checking tool for C/C++/Fortran applications. It can detect issues such as memory leaks, invalid memory references, uninitialized variables, race conditions, deadlocks, etc.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av Inspector
-```
-
-## Usage
-
-Your program should be compiled with the `-g` switch to include symbol names. Optimizations can be turned on.
-
-Debugging is possible either directly from the GUI, or from command line.
-
-### GUI Mode
-
-To debug from GUI, launch Inspector:
-
-```console
-$ inspxe-gui &
-```
-
-Then select the *File -> New -> Project* menu. Choose a directory to which the project data is saved. After clicking OK, the *Project properties* window appears, where you can configure the path to your binary, launch arguments, working directory, etc. After clicking OK, the project is ready.
-
-In the main pane, you can start a predefined analysis type or define your own. Click *Start* to start the analysis. Alternatively, you can click on *Command Line*, to see the command line required to run the analysis directly from the command line.
-
-### Batch Mode
-
-Analysis can be also run from the command line in batch mode. Batch mode analysis is run with the `inspxe-cl` command. To obtain the required parameters, consult the documentation or configure the analysis in the GUI and then click the *Command Line* button in the lower right corner to the respective command line.
-
-Results obtained from batch mode can be then viewed in the GUI by selecting *File -> Open -> Result...*.
-
-## References
-
-1. [Product page, Documentation and Release Notes][a]
-1. [Tutorials][b]
-
-[a]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/inspector.html
-[c]: https://www.intel.com/content/www/us/en/developer/articles/training/inspector-tutorials.html
diff --git a/content/docs/software/intel/intel-suite/intel-integrated-performance-primitives.mdx b/content/docs/software/intel/intel-suite/intel-integrated-performance-primitives.mdx
deleted file mode 100644
index 185064c70a57fbad215f41c90efe1ee8b9289af7..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-integrated-performance-primitives.mdx
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: "Intel IPP"
----
-## Introduction
-
-Intel Integrated Performance Primitives is a very rich library of highly optimized algorithmic building blocks for media and data applications. This includes signal, image, and frame processing algorithms, such as FFT, FIR, Convolution, Optical Flow, Hough transform, Sum, MinMax, as well as cryptographic functions, linear algebra functions, and many more.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av ipp
-```
-
-## IPP Example
-
-```cpp
-#include "ipp.h"
-#include <stdio.h>
-int main(int argc, char* argv[])
-{
-    const IppLibraryVersion *lib;
-    Ipp64u fm;
-    IppStatus status;
-
-    status= ippInit();            //IPP initialization with the best optimization layer
-    if( status != ippStsNoErr ) {
-            printf("IppInit() Error:n");
-            printf("%sn", ippGetStatusString(status) );
-            return -1;
-    }
-
-    //Get version info
-    lib = ippiGetLibVersion();
-    printf("%s %sn", lib->Name, lib->Version);
-
-    //Get CPU features enabled with selected library level
-    fm=ippGetEnabledCpuFeatures();
-    printf("SSE    :%cn",(fm>1)&1?'Y':'N');
-    printf("SSE2   :%cn",(fm>2)&1?'Y':'N');
-    printf("SSE3   :%cn",(fm>3)&1?'Y':'N');
-    printf("SSSE3  :%cn",(fm>4)&1?'Y':'N');
-    printf("SSE41  :%cn",(fm>6)&1?'Y':'N');
-    printf("SSE42  :%cn",(fm>7)&1?'Y':'N');
-    printf("AVX    :%cn",(fm>8)&1 ?'Y':'N');
-    printf("AVX2   :%cn", (fm>15)&1 ?'Y':'N' );
-    printf("----------n");
-    printf("OS Enabled AVX :%cn", (fm>9)&1 ?'Y':'N');
-    printf("AES            :%cn", (fm>10)&1?'Y':'N');
-    printf("CLMUL          :%cn", (fm>11)&1?'Y':'N');
-    printf("RDRAND         :%cn", (fm>13)&1?'Y':'N');
-    printf("F16C           :%cn", (fm>14)&1?'Y':'N');
-
-    return 0;
-}
-```
-
-Compile the example above, using any compiler and the `ipp` module:
-
-```console
-$ ml intel/2020b ipp/2020.3.304
-$ icc testipp.c -o testipp.x -lippi -lipps -lippcore
-```
-
-You will need the `ipp` module loaded to run an IPP-enabled executable. This may be avoided, by compiling library search paths into the executable:
-
-```console
-$ ml intel/2020b ipp/2020.3.304
-$ icc testipp.c -o testipp.x -Wl,-rpath=$LIBRARY_PATH -lippi -lipps -lippcore
-```
-
-## Code Samples and Documentation
-
-Intel provides a number of [Code Samples for IPP][a], illustrating use of IPP.
-
-Read the full documentation on IPP on the [Intel website][b], in particular the [IPP Reference manual][c].
-
-[a]: https://software.intel.com/en-us/articles/code-samples-for-intel-integrated-performance-primitives-library
-[b]: http://software.intel.com/sites/products/search/search.php?q=&x=15&y=6&product=ipp&version=7.1&docos=lin
-[c]: http://software.intel.com/sites/products/documentation/doclib/ipp_sa/71/ipp_manual/index.htm
diff --git a/content/docs/software/intel/intel-suite/intel-mkl.mdx b/content/docs/software/intel/intel-suite/intel-mkl.mdx
deleted file mode 100644
index dd8d13441aca28f0be9310a2b4faaf105111d6b9..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-mkl.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: "Intel MKL"
----
-## Introduction
-
-Intel Math Kernel Library (Intel MKL) is a library of math kernel subroutines, extensively threaded and optimized for maximum performance. Intel MKL provides these basic math kernels:
-
-* BLAS (level 1, 2, and 3) and LAPACK linear algebra routines, offering vector, vector-matrix, and matrix-matrix operations.
-* The PARDISO direct sparse solver, an iterative sparse solver, and supporting sparse BLAS (level 1, 2, and 3) routines for solving sparse systems of equations.
-* ScaLAPACK distributed processing linear algebra routines for Linux and Windows operating systems, as well as the Basic Linear Algebra Communications Subprograms (BLACS) and the Parallel Basic Linear Algebra Subprograms (PBLAS).
-* Fast Fourier transform (FFT) functions in one, two, or three dimensions with support for mixed radices (not limited to sizes that are powers of 2), as well as distributed versions of these functions.
-* Vector Math Library (VML) routines for optimized mathematical operations on vectors.
-* Vector Statistical Library (VSL) routines, which offer high-performance vectorized random number generators (RNG) for several probability distributions, convolution and correlation routines, and summary statistics functions.
-* Data Fitting Library, which provides capabilities for spline-based approximation of functions, derivatives and integrals of functions, and search.
-* Extended Eigensolver, a shared memory version of an eigensolver based on the Feast Eigenvalue Solver.
-
-For details, see the [Intel MKL Reference Manual][a].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av imkl
-```
-
-The module sets up environment variables, required for linking and running MKL-enabled applications. The most important variables are the `$MKLROOT`, `$CPATH`, `$LD_LIBRARY_PATH`, and `$MKL_EXAMPLES`.
-
-The Intel MKL library may be linked using any compiler. With the Intel compiler, use the `-mkl` option to link default threaded MKL.
-
-### Interfaces
-
-The Intel MKL library provides a number of interfaces. The fundamental ones are LP64 and ILP64. The Intel MKL ILP64 libraries use the 64-bit integer type (necessary for indexing large arrays, with more than 231^-1 elements), whereas the LP64 libraries index arrays with the 32-bit integer type.
-
-| Interface | Integer type                                 |
-| --------- | -------------------------------------------- |
-| LP64      | 32-bit, int, integer(kind=4), MPI_INT        |
-| ILP64     | 64-bit, long int, integer(kind=8), MPI_INT64 |
-
-### Linking
-
-Linking the Intel MKL libraries may be complex. Intel [mkl link line advisor][b] helps. See also [examples][1] below.
-
-You will need the `mkl` module loaded to run the MKL-enabled executable. This may be avoided, by compiling library search paths into the executable. Include `-rpath` on the compile line:
-
-```console
-$ icc .... -Wl,-rpath=$LIBRARY_PATH ...
-```
-
-### Threading
-
-Advantage in using the Intel MKL library is that it brings threaded parallelization to applications that are otherwise not parallel.
-
-For this to work, the application must link the threaded MKL library (default). Number and behavior of MKL threads may be controlled via the OpenMP environment variables, such as `OMP_NUM_THREADS` and `KMP_AFFINITY`. `MKL_NUM_THREADS` takes precedence over `OMP_NUM_THREADS`.
-
-```console
-$ export OMP_NUM_THREADS=24
-$ export KMP_AFFINITY=granularity=fine,compact,1,0
-```
-
-The application will run with 24 threads with affinity optimized for fine grain parallelization.
-
-## Examples
-
-A number of examples demonstrating use of the Intel MKL library and its linking is available on clusters, in the $MKL_EXAMPLES directory. In the examples below, we demonstrate linking Intel MKL to Intel- and GNU-compiled program for multi-threaded matrix multiplication.
-
-### Working With Examples
-
-```console
-$ ml intel/2020b
-$ cp -a $MKL_EXAMPLES/cblas /tmp/
-$ cd /tmp/cblas
-$ make sointel64 function=cblas_dgemm
-```
-
-In this example, we compile, link, and run the cblas_dgemm example, demonstrating use of the MKL example suite installed on clusters.
-
-### Example: MKL and Intel Compiler
-
-```console
-$ ml intel/2020b
-$ cp -a $MKL_EXAMPLES/cblas /tmp/
-$ cd /tmp/cblas
-$ icc -w source/cblas_dgemmx.c source/common_func.c -mkl -o cblas_dgemmx.x
-$ ./cblas_dgemmx.x data/cblas_dgemmx.d
-```
-
-In this example, we compile, link, and run the cblas_dgemm example, demonstrating use of MKL with the `icc -mkl` option. Using the `-mkl` option is equivalent to:
-
-```console
-$ icc -w source/cblas_dgemmx.c source/common_func.c -o cblas_dgemmx.x -I$MKL_INC_DIR -L$MKL_LIB_DIR -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5
-```
-
-In this example, we compile and link the cblas_dgemm example, using LP64 interface to threaded MKL and Intel OMP threads implementation.
-
-#### Karolina AMD Threading
-
-Threading on Karolina AMD processors requires [TBB][2].
-
-**MKL threads**
-
-Example 1
-
-```code
-icpc -O2 -qopenmp -DMKL_ILP64 -I"${MKLROOT}/include" source.cpp -o program.x -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_core -ltbb -lstdc++ -lp
-thread -lm -ldl
-```
-
-Example 2
-
-```code
-icpc -qopenmp mkltest.cpp -o mkltest.x -lmkl_tbb_thread -ltbb -mkl
-```
-
-**Intel/GNU compilator**
-
-```code
-[Monday 10:23 AM] Krupcik Lukas
-g++ -fopenmp mkl_test.cpp -o test -lmkl_tbb_thread -lmkl_core -lmkl_intel_ilp64 -ltbb
-```
-
-## LAPACKE C Interface
-
-MKL includes LAPACKE C Interface to LAPACK. However, note that although Intel is the author of LAPACKE, the LAPACKE header files are not present in MKL. For this reason, we have prepared the LAPACKE module, which includes Intel's LAPACKE headers from official LAPACK, which you can use to compile code using the LAPACKE interface against MKL.
-
-## Further Reading
-
-Read more on [Intel website][c], in particular the [MKL user guide][d].
-
-[1]: #examples
-[2]: ../intel-tbb/
-
-[a]: http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mklman/index.htm
-[b]: http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor
-[c]: http://software.intel.com/en-us/intel-mkl
-[d]: https://software.intel.com/en-us/intel-mkl/documentation/linux
diff --git a/content/docs/software/intel/intel-suite/intel-parallel-studio-introduction.mdx b/content/docs/software/intel/intel-suite/intel-parallel-studio-introduction.mdx
deleted file mode 100644
index 1dba23aa3827138df578c067531c98f2900c6449..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-parallel-studio-introduction.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "Intel Parallel Studio"
----
-All clusters provide following elements of the Intel Parallel Studio XE
-
-Intel Parallel Studio XE
-
-* Intel Compilers
-* Intel Debugger
-* Intel MKL Library
-* Intel Integrated Performance Primitives Library
-* Intel Threading Building Blocks Library
-* Intel Trace Analyzer and Collector
-* Intel Advisor
-* Intel Inspector
-
-## Intel Compilers
-
-The Intel compilers are available via the intel module. The compilers include the icc C and C++ compiler and the ifort Fortran 77/90/95 compiler.
-
-```console
-$ ml intel/2020b
-$ icc -v
-icc version 19.1.3.304 (gcc version 10.2.0 compatibility)
-$ ifort -v
-ifort version 19.1.3.304
-```
-
-Read more at the [Intel Compilers][1] page.
-
-## Intel Math Kernel Library
-
-Intel Math Kernel Library (Intel MKL) is a library of math kernel subroutines, extensively threaded and optimized for maximum performance. Intel MKL unites and provides these basic components: BLAS, LAPACK, ScaLapack, PARDISO, FFT, VML, VSL, Data fitting, Feast Eigensolver, and many more.
-
-```console
-$ ml imkl/2020.4.304-iimpi-2020b
-```
-
-Read more at the [Intel MKL][3] page.
-
-## Intel Integrated Performance Primitives
-
-Intel Integrated Performance Primitives, version 7.1.1, compiled for AVX is available via the `ipp` module. IPP is a library of highly optimized algorithmic building blocks for media and data applications. This includes signal, image, and frame processing algorithms, such as FFT, FIR, Convolution, Optical Flow, Hough transform, Sum, MinMax, and many more.
-
-```console
-$ ml ipp/2020.3.304
-```
-
-Read more at the [Intel IPP][4] page.
-
-## Intel Threading Building Blocks
-
-Intel Threading Building Blocks (Intel TBB) is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers. It is designed to promote scalable data parallel programming. Additionally, it fully supports nested parallelism, so you can build larger parallel components from smaller parallel components. To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner.
-
-```console
-$ ml tbb/2020.3-GCCcore-10.2.0
-```
-
-Read more at the [Intel TBB][5] page.
-
-[1]: intel-compilers.md
-[2]: intel-debugger.md
-[3]: intel-mkl.md
-[4]: intel-integrated-performance-primitives.md
-[5]: intel-tbb.md
diff --git a/content/docs/software/intel/intel-suite/intel-tbb.mdx b/content/docs/software/intel/intel-suite/intel-tbb.mdx
deleted file mode 100644
index d62565524dbf789e294b524a7635f32ac62a4be0..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-tbb.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: "Intel TBB"
----
-## Introduction
-
-Intel Threading Building Blocks (Intel TBB) is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers.  To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av tbb
-```
-
-The module sets up environment variables, required for linking and running TBB-enabled applications.
-
-Link the TBB library using `-ltbb`.
-
-## Examples
-
-A number of examples demonstrating use of TBB and its built-in scheduler is available in the $TBB_EXAMPLES directory.
-
-```console
-$ ml intel/2020b tbb/2020.3-GCCcore-10.2.0
-$ cp -a $TBB_EXAMPLES/common $TBB_EXAMPLES/parallel_reduce /tmp/
-$ cd /tmp/parallel_reduce/primes
-$ icc -O2 -DNDEBUG -o primes.x main.cpp primes.cpp -ltbb
-$ ./primes.x
-```
-
-In this example, we compile, link, and run the primes example, demonstrating use of parallel task-based reduce in computation of prime numbers.
-
-You will need the `tbb` module loaded to run the TBB-enabled executable. This may be avoided by compiling library search paths into the executable.
-
-```console
-$ icc -O2 -o primes.x main.cpp primes.cpp -Wl,-rpath=$LIBRARY_PATH -ltbb
-```
-
-## Further Reading
-
-Read more on Intel [website][a].
-
-[a]: https://www.intel.com/content/www/us/en/developer/articles/guide/get-started-with-tbb.html?wapkw=tbb
diff --git a/content/docs/software/intel/intel-suite/intel-trace-analyzer-and-collector.mdx b/content/docs/software/intel/intel-suite/intel-trace-analyzer-and-collector.mdx
deleted file mode 100644
index dd19fc1fe5651e4dbe79832c73600d15eeb6d468..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/intel-trace-analyzer-and-collector.mdx
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: "Intel Trace Analyzer and Collector"
----
-## Introduction
-
-Intel Trace Analyzer and Collector (ITAC) is a tool to collect and graphically analyze behavior of MPI applications. It helps you to analyze communication patterns of your application, identify hotspots, perform correctness checking (identify deadlocks, data corruption, etc.), and simulate how your application would run on a different interconnect.
-
-ITAC is an offline analysis tool - first you run your application to collect a trace file, then you can open the trace in a GUI analyzer to view it.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av itac
-```
-
-## Collecting Traces
-
-ITAC can collect traces from applications that are using Intel MPI. To generate a trace, simply add the `-trace` option to your `mpirun` command:
-
-```console
-$ ml itac/2020.3.036
-$ mpirun -trace myapp
-```
-
-The trace will be saved in the myapp.stf file in the current directory.
-
-## Viewing Traces
-
-To view and analyze the trace, open the ITAC GUI in a [graphical environment][1]:
-
-```console
-$ ml itac/2020.3.036
-$ traceanalyzer
-```
-
-The GUI will launch and you can open the produced `*`.stf file.
-
-![](/it4i/img/Snmekobrazovky20151204v15.35.12.png)
-
-Refer to the Intel documenation about usage of the GUI tool.
-
-## References
-
-1. [Getting Started with Intel® Trace Analyzer and Collector][a]
-1. [Intel® Trace Analyzer and Collector - Documentation][b]
-
-[1]: ../../../general/accessing-the-clusters/graphical-user-interface/x-window-system.md
-
-[a]: https://software.intel.com/en-us/get-started-with-itac-for-linux
-[b]: https://software.intel.com/en-us/intel-trace-analyzer
diff --git a/content/docs/software/intel/intel-suite/meta.json b/content/docs/software/intel/intel-suite/meta.json
deleted file mode 100644
index e093e211147ab2420f1a5be184d29eb57cc6eeb3..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/intel-suite/meta.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "title": "Intel-suite",
-  "pages": [
-    "intel-advisor",
-    "intel-compilers",
-    "intel-inspector",
-    "intel-integrated-performance-primitives",
-    "intel-mkl",
-    "intel-parallel-studio-introduction",
-    "intel-tbb",
-    "intel-trace-analyzer-and-collector"
-  ]
-}
diff --git a/content/docs/software/intel/meta.json b/content/docs/software/intel/meta.json
deleted file mode 100644
index 130dfd403555256928496e828dbb611e435a4272..0000000000000000000000000000000000000000
--- a/content/docs/software/intel/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Intel",
-  "pages": [
-    "intel-suite"
-  ]
-}
diff --git a/content/docs/software/isv_licenses.mdx b/content/docs/software/isv_licenses.mdx
deleted file mode 100644
index 1d901b8609171f4c72e68d94a5792acc00b56f0f..0000000000000000000000000000000000000000
--- a/content/docs/software/isv_licenses.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: "ISV Licenses"
----
-## Guide to Managing Independent Software Vendor Licenses
-
-On IT4I clusters, there are also installed commercial software applications, also known as ISV (Independent Software Vendor), which are subjects to licensing. Licenses are limited and their usage may be restricted only to some users or user groups, or based on other conditions.
-
-Currently, [Flex License Manager][c] based licensing is supported on the cluster for products ANSYS, Comsol, and MATLAB. More information about the applications can be found in the general software section.
-
-If an ISV application was purchased for educational (research) purposes and also for commercial purposes, then there are always two separate versions maintained and suffix "edu" is used in the name of the non-commercial version.
-
-## Overview of the Licenses Usage
-
-<Callout>
-    The overview is generated every minute and is accessible from the web or command line interface.
-</Callout>
-
-### Web Interface
-
-For each license, there is a [table][a] providing the information about the name, number of available (purchased/licensed), number of used and number of free license features.
-
-### Command Line
-
-To check license usage via command line, use the `LicenseChecker` module with the `lmstat` utility:
-
-```console
-ml LicenseChecker/1.0
-```
-
-For example, to check usage of Ansys licenses, use:
-
-```console
-lmstat -a -c 1055@license.it4i.cz
-```
-
-or for a specific module (e.g. HPC):
-
-```console
-lmstat -f aa_r_hpc -c 1055@license.it4i.cz
-```
-
-To list all Ansys modules, use:
-
-```console
-lmstat -i -c 1055@license.it4i.cz
-```
-
-For other applications' licenses, change the port number in the command according to the **Port** column on the [licelin website][b] (requires IT4I VPN).
-
-[1]: #Licence
-
-[a]: https://extranet.it4i.cz/rsweb/karolina/licenses
-[b]: http://licelin.it4i.cz/list/
-[c]: https://www.revenera.com/software-monetization/products/software-licensing/flexnet-licensing
diff --git a/content/docs/software/karolina-compilation.mdx b/content/docs/software/karolina-compilation.mdx
deleted file mode 100644
index dc3d64463ed23af20f2a07d8ca73a06aa4012b40..0000000000000000000000000000000000000000
--- a/content/docs/software/karolina-compilation.mdx
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: "Karolina Compilation"
----
-Since Karolina's nodes are equipped with AMD Zen 2 and Zen 3 processors,
-we recommend to follow these instructions in order to avoid degraded performance when compiling your code:
-
-## 1. Select Compilers Flags
-
-When compiling your code, it is important to select right compiler flags;
-otherwise, the code will not be SIMD vectorized, resulting in severely degraded performance.
-Depending on the compiler, you should use these flags:
-
-<Callout type=warn>
-    `-Ofast` optimization may result in unpredictable behavior (e.g. a floating point overflow).
-</Callout>
-
-| Compiler | Module   | Command | Flags                   |
-| -------- |----------| --------|-------------------------|
-| AOCC     | ml AOCC  | clang   |-O3 -mavx2 -march=znver2 |
-| INTEL    | ml intel | icc     |-O3 -xCORE-AVX2          |
-| GCC      | ml GCC   | gcc     |-O3 -mavx2               |
-
-The compiler flags and the resulting compiler performance may be verified with our benchmark,
-see [Lorenz Compiler performance benchmark][a].
-
-## 2. Use BLAS Library
-
-It is important to use the BLAS library that performs well on AMD processors.
-To combine the optimizations for the general CPU code and have the most efficient BLAS routines we recommend the combination of lastest Intel Compiler suite, with Cray's Scientific Library bundle (LibSci). When using the Intel Compiler suite includes also support for efficient MPI implementation utilizing Intel MPI library over the Infiniband interconnect.
-
-For the compilation as well for the runtime of compiled code use:
-
-```code
-ml PrgEnv-intel
-ml cray-pmi/6.1.14
-
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CRAY_LD_LIBRARY_PATH:$CRAY_LIBSCI_PREFIX_DIR/lib:/opt/cray/pals/1.3.2/lib
-```
-
-There are usually two standard situation how to compile and run the code
-
-### OpenMP Without MPI
-
-To compile the code against the LibSci, without MPI, but still enabling OpenMP run over multiple cores use:
-
-```code
-icx -qopenmp -L$CRAY_LIBSCI_PREFIX_DIR/lib -I$CRAY_LIBSCI_PREFIX_DIR/include -o BINARY.x SOURCE_CODE.c  -lsci_intel_mp
-```
-
-To run the resulting binary use:
-
-```code
-OMP_NUM_THREADS=128 OMP_PROC_BIND=true BINARY.x
-```
-
-This enables effective run over all 128 cores available on a single Karlina compute node.
-
-### OpenMP With MPI
-
-To compile the code against the LibSci, with MPI, use:
-
-```code
-mpiicx -qopenmp -L$CRAY_LIBSCI_PREFIX_DIR/lib -I$CRAY_LIBSCI_PREFIX_DIR/include -o BINARY.x SOURCE_CODE.c  -lsci_intel_mp -lsci_intel_mpi_mp
-```
-
-To run the resulting binary use:
-
-```code
-OMP_NUM_THREADS=64 OMP_PROC_BIND=true mpirun -n 2 ${HOME}/BINARY.x
-```
-
-This example runs the BINARY.x, placed in ${HOME} as 2 MPI processes, each using 64 cores of a single socket of a single node.
-
-Another example would be to run a job on 2 full nodes, utilizing 128 cores on each (so 256 cores in total) and letting the LibSci efficiently placing the BLAS routines across the allocated CPU sockets:
-
-```code
-OMP_NUM_THREADS=128 OMP_PROC_BIND=true mpirun -n 2 ${HOME}/BINARY.x
-```
-
-This assumes you have allocated 2 full nodes on Karolina using SLURM's directives, e. g. in a submission script:
-
-```code
-#SBATCH --nodes 2
-#SBATCH --ntasks-per-node 128
-```
-
-**Don't forget** before the run to ensure you have the correct modules and loaded and that you have set up the LD_LIBRARY_PATH environment variable set as shown above (e.g. part of your submission script for SLURM).
-
-<Callout>
-    Most MPI libraries do the binding automatically. The binding of MPI ranks can be inspected for any MPI by running  `$ mpirun -n num_of_ranks numactl --show`. However, if the ranks spawn threads, binding of these threads should be done via the environment variables described above.
-</Callout>
-
-The choice of BLAS library and its performance may be verified with our benchmark,
-see  [Lorenz BLAS performance benchmark](https://code.it4i.cz/jansik/lorenz/-/blob/main/README.md).
diff --git a/content/docs/software/lang/conda.mdx b/content/docs/software/lang/conda.mdx
deleted file mode 100644
index f9bce758887af54171eaa9a6f16167367633fa5f..0000000000000000000000000000000000000000
--- a/content/docs/software/lang/conda.mdx
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: "Conda (Anaconda)"
----
-Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs, and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.
-
-Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because Conda is also an environment manager. With just a few commands, you can set up a completely separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.
-
-Conda treats Python the same as any other package, so it is easy to manage and update multiple installations.
-Anaconda supports Python 3.X. Default Python is 3.8, depending on which installer you used.
-
-## Conda on the IT4Innovations Clusters
-
-On the clusters, we have the Anaconda3 software installed. How to use these modules is shown below.
-
-<Callout>
-    Use the `ml av conda` command to get up-to-date versions of the modules.
-</Callout>
-
-```console
-$ ml av conda
-
-------------- /apps/modules/lang ---------------------------------
-Anaconda3/2021.05
-```
-
-## Anaconda3
-
-Default Python is 3.8.8.
-
-### First Usage Module Anaconda3
-
-```console
-$ ml Anaconda3/2021.05
-$ python --version
-Python 3.8.8
-$ conda install numpy
-Fetching package metadata .........
-Solving package specifications: .
-
-Package plan for installation in environment /apps/all/Anaconda3/2021.05:
-
-The following packages will be UPDATED:
-
-conda                               4.10.1-py38h06a4308_1 --> 4.10.3-py38h06a4308_0
-...
-...
-...
-CondaIOError: Missing write permissions in: /apps/all/Anaconda3/2021.05
-#
-# You don't appear to have the necessary permissions to install packages
-# into the install area '/apps/all/Anaconda3/2021.05'.
-# However you can clone this environment into your home directory and
-# then make changes to it.
-# This may be done using the command:
-#
-# $ conda create -n my_root --clone="/apps/all/Anaconda3/2021.05"
-$
-$ conda create -n anaconda3 --clone="/apps/all/Anaconda3/2021.05"
-Source: /apps/all/Anaconda3/2021.05
-Destination: /home/user/.conda/envs/anaconda3
-The following packages cannot be cloned out of the root environment:
- - defaults/linux-64::conda-env-2.6.0-1
- - defaults/linux-64::conda-4.10.3-py38h06a4308_0
- - defaults/noarch::conda-token-0.3.0-pyhd3eb1b0_0
- - defaults/linux-64::anaconda-navigator-2.0.3-py38_0
- - defaults/linux-64::conda-build-3.21.4-py38h06a4308_0
-Packages: 339
-Files: 50986
-...
-...
-...
-#
-# To activate this environment, use:
-# > source activate anaconda3
-#
-# To deactivate this environment, use:
-# > source deactivate anaconda3
-#
-$ source activate anaconda3
-(anaconda3) ~]$
-```
-
-### Usage Module Anaconda3
-
-```console
-$ ml Anaconda3/2021.05
-$ source activate anaconda3
-(anaconda3) ~]$
-```
diff --git a/content/docs/software/lang/csc.mdx b/content/docs/software/lang/csc.mdx
deleted file mode 100644
index 242aedce1acbe6b85ae75581da2f501614020920..0000000000000000000000000000000000000000
--- a/content/docs/software/lang/csc.mdx
+++ /dev/null
@@ -1,130 +0,0 @@
----
-title: "CSharp"
----
-C# is available on the cluster.
-
-```console
-$ ml av mono
-
--------------------- /apps/modules/lang ---------------
-   Mono/6.12.0.122
-```
-
-<Callout>
-    Use the `ml av mono` command to get up-to-date versions of the modules.
-</Callout>
-
-Activate C# by loading the Mono module:
-
-```console
-$ ml Mono/6.12.0.122
-```
-
-## Examples
-
-### Hello World
-
-Copy this code to a new file hello.cs:
-
-```csc
-using System;
-
-class HelloWorld {
-  static void Main() {
-    Console.WriteLine("Hello world!!!");
-  }
-}
-```
-
-Compile the program and make *Windows executable*.
-
-```console
-$ mcs -out:hello.exe hello.cs
-```
-
-Now run the program:
-
-```console
-$ mono hello.exe
-Hello world!!!
-```
-
-### Interactive Console
-
-Type:
-
-```console
-$ csharp
-Mono C# Shell, type "help;" for help
-
-Enter statements below.
-csharp>
-```
-
-Now you are in the interactive mode. You can try the following example:
-
-```csc
-csharp> using System;
-csharp> int a = 5;
-csharp> double b = 1.5;
-csharp> Console.WriteLine("{0}*{1} is equal to {2}", a,b,a*b);
-5*1.5 is equal to 7.5
-csharp> a == b
-false
-```
-
-Show all files modified in last 5 days:
-
-```csc
-csharp> using System.IO;
-csharp> from f in Directory.GetFiles ("mydirectory")
-      > let fi = new FileInfo (f)
-      > where fi.LastWriteTime > DateTime.Now-TimeSpan.FromDays(5) select f;
-{ "mydirectory/mynewfile.cs", "mydirectory/script.sh" }
-```
-
-<!--
-
-## MPI.NET
-
-MPI is available for mono:
-
-```csc
-using System;
-using MPI;
-
-class MPIHello
-{
-    static void Main(string[] args)
-    {
-        using (new MPI.Environment(ref args))
-        {
-           Console.WriteLine("Greetings from node {0} of {1} running on {2}",
-           Communicator.world.Rank, Communicator.world.Size,
-           MPI.Environment.ProcessorName);
-        }
-    }
-}
-```
-
-Compile and run the program:
-
-```console
-$ qsub -I -A PROJECT_ID -q qexp -l select=2:ncpus=128,walltime=00:30:00
-
-$ ml n.net
-
-$ mcs -out:csc.exe -reference:/apps/tools/mpi.net/1.0.0-mono-3.12.1/lib/MPI.dll csc.cs
-
-$ mpirun -n 4 mono csc.exe
-Greetings from node 2 of 4 running on cn204
-Greetings from node 0 of 4 running on cn204
-Greetings from node 3 of 4 running on cn199
-Greetings from node 1 of 4 running on cn199
-```
-
--->
-
-For more information, see the [Mono documentation page][a].
-
-[a]: http://www.mono-project.com/docs/
diff --git a/content/docs/software/lang/java.mdx b/content/docs/software/lang/java.mdx
deleted file mode 100644
index e796821e28ab9ec660459045ff74170cca7163a6..0000000000000000000000000000000000000000
--- a/content/docs/software/lang/java.mdx
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: "Java"
----
-Java is available on the cluster. Activate Java by loading the Java module:
-
-```console
-$ ml Java/1.8.0_221
-```
-
-Note that the Java module must be loaded on the compute nodes as well, in order to run Java on compute nodes.
-
-Check for Java version and path:
-
-```console
-$ java -version
-$ which java
-```
-
-With the module loaded, not only the runtime environment (JRE), but also the development environment (JDK) with the compiler is available.
-
-```console
-$ javac -version
-$ which javac
-```
-
-Java applications may use MPI for inter-process communication, in conjunction with OpenMPI. Read more [here][a]. This functionality is currently not supported. In case you require the Java interface to MPI, contact [support][b].
-
-## Java With OpenMPI
-
-Because there is an increasing interest in using Java for HPC. In addition, MPI can benefit from Java because its widespread use makes it likely to find new uses beyond traditional HPC applications.
-
-Java bindings are integrated into OpenMPI starting from the v1.7 series. Beginning with the v2.0 series, Java bindings include coverage of MPI-3.1.
-
-### Example (Hello.java)
-
-```java
-import mpi.*;
-
-class Hello {
-    static public void main(String[] args) throws MPIException {
-
-
-        MPI.Init(args);
-
-        int myrank = MPI.COMM_WORLD.getRank();
-        int size = MPI.COMM_WORLD.getSize() ;
-        System.out.println("Hello world from rank " + myrank + " of " + size);
-
-        MPI.Finalize();
-    }
-}
-```
-
-```console
-$ ml Java/1.8.0_221 OpenMPI/4.1.1-GCC-10.2.0-Java-1.8.0_221
-$ mpijavac Hello.java
-$ mpirun java Hello
-Hello world from rank 23 of 28
-Hello world from rank 25 of 28
-Hello world from rank 0 of 28
-Hello world from rank 4 of 28
-Hello world from rank 7 of 28
-Hello world from rank 8 of 28
-Hello world from rank 11 of 28
-Hello world from rank 12 of 28
-Hello world from rank 13 of 28
-Hello world from rank 18 of 28
-Hello world from rank 17 of 28
-Hello world from rank 24 of 28
-Hello world from rank 27 of 28
-Hello world from rank 2 of 28
-Hello world from rank 3 of 28
-Hello world from rank 1 of 28
-Hello world from rank 10 of 28
-Hello world from rank 14 of 28
-Hello world from rank 16 of 28
-Hello world from rank 19 of 28
-Hello world from rank 26 of 28
-Hello world from rank 6 of 28
-Hello world from rank 9 of 28
-Hello world from rank 15 of 28
-Hello world from rank 20 of 28
-Hello world from rank 5 of 28
-Hello world from rank 21 of 28
-Hello world from rank 22 of 28
-```
-
-[a]: http://www.open-mpi.org/faq/?category=java
-[b]: https://support.it4i.cz/rt/
diff --git a/content/docs/software/lang/julialang.mdx b/content/docs/software/lang/julialang.mdx
deleted file mode 100644
index 95a7ccd52e0a15d040b8d8c73ecdcbc25de38dd4..0000000000000000000000000000000000000000
--- a/content/docs/software/lang/julialang.mdx
+++ /dev/null
@@ -1,904 +0,0 @@
----
-title: "JuliaLang"
----
-A set of unofficial examples of Julia the high-level, high-performance dynamic programming language for technical computing.
-
-Julia is available on the clusters. Activate Julia by loading the Julia module:
-
-```console
-$ ml Julia/1.5.3-linux-x86_64
-```
-
-Check for Java version and path:
-
-```console
-$ julia -v
-julia version 1.5.3
-```
-
-Below are examples of common operations in Julia. They assume you already have Julia installed and working
-
-## Hello World
-
-The simplest possible script:
-
-```c
-println("hello world")
-```
-
-With Julia [installed and added to your path](http://julialang.org/downloads/)
-this script can be run by `julia hello_world.jl`, it can also be run from REPL by typing
-`include("hello_world.jl")`, which will evaluate all valid expressions in that file and return the last output.
-
-## Simple Functions
-
-The example below shows two simple functions, how to call them and print the results.
-Further examples of number formatting are shown below.
-
-```c
-# [function](http://docs.julialang.org:8000/en/latest/manual/functions/#functions) to calculate the volume of a sphere
-function sphere_vol(r)
-    # julia allows [Unicode names](http://docs.julialang.org/en/latest/manual/unicode-input/) (in UTF-8 encoding)
-    # so either "pi" or the symbol π can be used
-    return 4/3*pi*r^3
-end
-
-# functions can also be defined more succinctly
-quadratic(a, sqr_term, b) = (-b + sqr_term) / 2a
-
-# calculates x for 0 = a*x^2+b*x+c, [arguments types](TODO: links) can be defined in function definitions
-function quadratic2(a::Float64, b::Float64, c::Float64)
-    # unlike other languages 2a is equivalent to 2*a
-    # a^2 is used instead of a**2 or pow(a,2)
-    sqr_term = sqrt(b^2-4a*c)
-    r1 = quadratic(a, sqr_term, b)
-    r2 = quadratic(a, -sqr_term, b)
-    # multiple values can be returned from a function using tuples
-    # if the [return](http://docs.julialang.org:8000/en/latest/manual/functions/#the-return-keyword) keyword is omitted, the last term is returned
-    r1, r2
-end
-
-vol = sphere_vol(3)
-# @printf allows number formatting but does not automatically append the \n to statements, see below
-@printf "volume = %0.3f\n" vol
-#> volume = 113.097
-
-quad1, quad2 = quadratic2(2.0, -2.0, -12.0)
-println("result 1: ", quad1)
-#> result 1: 3.0
-println("result 2: ", quad2)
-#> result 2: -2.0
-```
-
-## Strings Basics
-
-Collection of different string examples (string indexing is the same as array indexing, see below):
-
-```c
-# strings are defined with double quotes
-# like variables, strings can contain any unicode character
-s1 = "The quick brown fox jumps over the lazy dog α,β,γ"
-println(s1)
-#> The quick brown fox jumps over the lazy dog α,β,γ
-
-# [println](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.println) adds a new line to the end of output
-# [print](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.print) can be used if you dont want that:
-print("this")
-#> this
-print(" and")
-#> and
-print(" that.\n")
-#> that.
-
-# chars are defined with single quotes
-c1 = 'a'
-println(c1)
-#> a
-# the ascii value of a char can be found with Int():
-println(c1, " ascii value = ", Int(c1))
-#> a ascii value = 97
-println("Int('α') == ", Int('α'))
-#> Int('α') == 945
-
-# so be aware that
-println(Int('1') == 1)
-#> false
-
-# strings can be converted to upper case or lower case:
-s1_caps = uppercase(s1)
-s1_lower = lowercase(s1)
-println(s1_caps, "\n", s1_lower)
-#> THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG Α,Β,Γ
-#> the quick brown fox jumps over the lazy dog α,β,γ
-
-# sub strings can be indexed like arrays:
-# ([show](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.show) prints the raw value)
-show(s1[11]); println()
-#> 'b'
-
-# or sub strings can be created:
-show(s1[1:10]); println()
-#> "The quick "
-
-# end is used for the end of the array or string
-show(s1[end-10:end]); println()
-#> "dog α,β,γ"
-
-# julia allows string [Interpolation](http://julia.readthedocs.org/en/latest/manual/strings/#interpolation):
-a = "wolcome"
-b = "julia"
-println("$a to $b.")
-#> wolcome to julia.
-
-# this can extend to evaluate statements:
-println("1 + 2 = $(1 + 2)")
-#> 1 + 2 = 3
-
-# strings can also be concatenated using the * operator
-# using * instead of + isn't intuitive when you start with Julia,
-# however [people think it makes more sense](https://groups.google.com/forum/#!msg/julia-users/nQg_d_n0t1Q/9PSt5aya5TsJ)
-s2 = "this" * " and" * " that"
-println(s2)
-#> this and that
-
-# as well as the string function
-s3 = string("this", " and", " that")
-println(s3)
-#> this and that
-```
-
-## String: Converting and Formatting
-
-```c
-# strings can be converted using [float](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.float) and [int](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.int):
-e_str1 = "2.718"
-e = float(e_str1)
-println(5e)
-#> 13.5914
-num_15 = parse(Int, "15")
-println(3num_15)
-#> 45
-
-# numbers can be converted to strings and formatted using [printf](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.@printf)
-@printf "e = %0.2f\n" e
-#> 2.718
-# or to create another string [sprintf](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.@sprintf)
-e_str2 = @sprintf("%0.3f", e)
-
-# to show that the 2 strings are the same
-println("e_str1 == e_str2: $(e_str1 == e_str2)")
-#> e_str1 == e_str2: true
-
-# available number format characters are [f, e, g, c, s, p, d](https://github.com/JuliaLang/julia/blob/master/base/printf.jl#L15):
-# (pi is a predefined constant; however, since its type is
-# "MathConst" it has to be converted to a float to be formatted)
-@printf "fix trailing precision: %0.3f\n" float(pi)
-#> fix trailing precision: 3.142
-@printf "scientific form: %0.6e\n" 1000pi
-#> scientific form: 3.141593e+03
-# g is not implemented yet
-@printf "a character: %c\n" 'α'
-#> a character: α
-@printf "a string: %s\n" "look I'm a string!"
-#> a string: look I'm a string!
-@printf "right justify a string: %50s\n" "width 50, text right justified!"
-#> right justify a string:                    width 50, text right justified!
-@printf "a pointer: %p\n" 100000000
-#> a pointer: 0x0000000005f5e100
-@printf "print a integer: %d\n" 1e10
-#> print an integer: 10000000000
-```
-
-## String Manipulations
-
-```c
-s1 = "The quick brown fox jumps over the lazy dog α,β,γ"
-
-# [search](http://docs.julialang.org/en/latest/stdlib/base/#Base.search) returns the first index of a char
-i = search(s1, 'b')
-println(i)
-#> 11
-# the second argument is equivalent to the second argument of split, see below
-
-# or a range if called with another string
-r = search(s1, "brown")
-println(r)
-#> 11:15
-
-
-# string [replace](http://docs.julialang.org/en/latest/stdlib/base/#Base.replace) is done thus:
-r = replace(s1, "brown", "red")
-show(r); println()
-#> "The quick red fox jumps over the lazy dog"
-
-# search and replace can also take a regular expressions by preceding the string with 'r'
-r = search(s1, r"b[\w]*n")
-println(r)
-#> 11:15
-
-# again with a regular expression
-r = replace(s1, r"b[\w]*n", "red")
-show(r); println()
-#> "The quick red fox jumps over the lazy dog"
-
-# there are also functions for regular expressions that return RegexMatch types
-# [match](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.match) scans left to right for the first match (specified starting index optional)
-r = match(r"b[\w]*n", s1)
-println(r)
-#> RegexMatch("brown")
-
-# RegexMatch types have a property match that holds the matched string
-show(r.match); println()
-#> "brown"
-
-# [matchall](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.matchall) returns a vector with RegexMatches for each match
-r = matchall(r"[\w]{4,}", s1)
-println(r)
-#> SubString{UTF8String}["quick","brown","jumps","over","lazy"]
-
-# [eachmatch](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.eachmatch) returns an iterator over all the matches
-r = eachmatch(r"[\w]{4,}", s1)
-for i in r print("\"$(i.match)\" ") end
-println()
-#> "quick" "brown" "jumps" "over" "lazy"
-
-# a string can be repeated using the [repeat](http://julia.readthedocs.org/en/latest/manual/strings/#common-operations) function,
-# or more succinctly with the [^ syntax](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.^):
-r = "hello "^3
-show(r); println() #> "hello hello hello "
-
-# the [strip](http://docs.julialang.org/en/latest/stdlib/base/#Base.strip) function works the same as python:
-# e.g., with one argument it strips the outer whitespace
-r = strip("hello ")
-show(r); println() #> "hello"
-# or with a second argument of an array of chars it strips any of them;
-r = strip("hello ", ['h', ' '])
-show(r); println() #> "ello"
-# (note the array is of chars and not strings)
-
-# similarly [split](http://docs.julialang.org/en/latest/stdlib/base/#Base.split) works in basically the same way as python:
-r = split("hello, there,bob", ',')
-show(r); println() #> ["hello"," there","bob"]
-r = split("hello, there,bob", ", ")
-show(r); println() #> ["hello","there,bob"]
-r = split("hello, there,bob", [',', ' '], limit=0, keep=false)
-show(r); println() #> ["hello","there","bob"]
-# (the last two arguements are limit and include_empty, see docs)
-
-# the opposite of split: [join](http://docs.julialang.org/en/latest/stdlib/base/#Base.join) is simply
-r = join(collect(1:10), ", ")
-println(r) #> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
-```
-
-## Arrays
-
-```c
-function printsum(a)
-    # [summary](http://julia.readthedocs.org/en/latest/stdlib/base/#Base.summary) generates a summary of an object
-    println(summary(a), ": ", repr(a))
-end
-
-# arrays can be initialised directly:
-a1 = [1,2,3]
-printsum(a1)
-#> 3-element Array{Int64,1}: [1,2,3]
-
-# or initialised empty:
-a2 = []
-printsum(a2)
-#> 0-element Array{None,1}: None[]
-
-# since this array has no type, functions like push! (see below) don't work
-# instead arrays can be initialised with a type:
-a3 = Int64[]
-printsum(a3)
-#> 0-element Array{Int64,1}: []
-
-# ranges are different from arrays:
-a4 = 1:20
-printsum(a4)
-#> 20-element UnitRange{Int64}: 1:20
-
-# however they can be used to create arrays thus:
-a4 = collect(1:20)
-printsum(a4)
-#> 20-element Array{Int64,1}: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
-
-# arrays can also be generated from [comprehensions](http://julia.readthedocs.org/en/latest/manual/arrays/#comprehensions):
-a5 = [2^i for i = 1:10]
-printsum(a5)
-#> 10-element Array{Int64,1}: [2,4,8,16,32,64,128,256,512,1024]
-
-# arrays can be any type, so arrays of arrays can be created:
-a6 = (Array{Int64, 1})[]
-printsum(a6)
-#> 0-element Array{Array{Int64,1},1}: []
-# (note this is a "jagged array" (i.e., an array of arrays), not a [multidimensional array](http://julia.readthedocs.org/en/latest/manual/arrays/),
-# these are not covered here)
-
-# Julia provided a number of ["Dequeue"](http://docs.julialang.org/en/latest/stdlib/base/#dequeues) functions, the most common for appending to the end of arrays
-# is [**push!**](http://docs.julialang.org/en/latest/stdlib/base/#Base.push!)
-# ! at the end of a function name indicates that the first argument is updated.
-
-push!(a1, 4)
-printsum(a1)
-#> 4-element Array{Int64,1}: [1,2,3,4]
-
-# push!(a2, 1) would cause error:
-
-push!(a3, 1)
-printsum(a3) #> 1-element Array{Int64,1}: [1]
-#> 1-element Array{Int64,1}: [1]
-
-push!(a6, [1,2,3])
-printsum(a6)
-#> 1-element Array{Array{Int64,1},1}: [[1,2,3]]
-
-# using repeat() to create arrays
-# you must use the keywords "inner" and "outer"
-# all arguments must be arrays (not ranges)
-a7 = repeat(a1,inner=[2],outer=[1])
-printsum(a7)
-#> 8-element Array{Int64,1}: [1,1,2,2,3,3,4,4]
-a8 = repeat(collect(4:-1:1),inner=[1],outer=[2])
-printsum(a8)
-#> 8-element Array{Int64,1}: [4,3,2,1,4,3,2,1]
-```
-
-## Error Handling
-
-```c
-a=[]
-# [try, catch](http://julia.readthedocs.org/en/latest/manual/control-flow/#the-try-catch-statement) can be used to deal with errors as with many other languages
-try
-    push!(a,1)
-catch err
-    showerror(STDOUT, err, backtrace());println()
-end
-println("Continuing after error")
-```
-
-## Multidimensional Arrays
-
-Julia has very good multidimensional array capabilities.
-See [the manual](http://julia.readthedocs.org/en/latest/manual/arrays/).
-
-```c
-# repeat can be useful to expand a grid
-# as in R's expand.grid() function:
-
-# <hide>
-function printsum(a)
-    println(summary(a), ": ", repr(a))
-end
-# </hide>
-
-m1 = hcat(repeat([1,2],inner=[1],outer=[3*2]),
-		  repeat([1,2,3],inner=[2],outer=[2]),
-		  repeat([1,2,3,4],inner=[3],outer=[1]))
-printsum(m1)
-#> 12Ă—3 Array{Int64,2}: [1 1 1; 2 1 1; 1 2 1; 2 2 2; 1 3 2; 2 3 2; 1 1 3; 2 1 3; 1 2 3; 2 2 4; 1 3 4; 2 3 4]
-
-# for simple repetitions of arrays,
-# use repmat
-m2 = repmat(m1,1,2) 	# replicate a9 once into dim1 and twice into dim2
-println("size: ", size(m2))
-#> size: (12,6)
-
-m3 = repmat(m1,2,1) 	# replicate a9 twice into dim1 and once into dim2
-println("size: ", size(m3))
-#> size: (24,3)
-
-# Julia comprehensions are another way to easily create
-# multidimensional arrays
-
-m4 = [i+j+k for i=1:2, j=1:3, k=1:2]	# creates a 2x3x2 array of Int64
-m5 = ["Hi Im # $(i+2*(j-1 + 3*(k-1)))" for i=1:2, j=1:3, k=1:2]
-# expressions are very flexible
-# you can specify the type of the array by just
-# placing it in front of the expression
-Pkg.add("LegacyStrings")
-import LegacyStrings
-m5 = LegacyStrings.ASCIIString["Hi Im element # $(i+2*(j-1 + 3*(k-1)))" for i=1:2, j=1:3, k=1:2]
-printsum(m5)
-#> 2x3x2 Array{LegacyStrings.ASCIIString,3}: LegacyStrings.ASCIIString["Hi Im element # 7"
-#> "Hi Im element # 9" "Hi Im element # 11"
-#>             "Hi Im element # 8" "Hi Im element # 10" "Hi Im element # 12"]
-#>
-#> LegacyStrings.ASCIIString["Hi Im element # 7" "Hi Im element # 9" "Hi Im element # 11"
-#>             "Hi Im element # 8" "Hi Im element # 10" "Hi Im element # 12"]
-
-# Array reductions
-# many functions in Julia have an array method
-# to be applied to specific dimensions of an array:
-
-sum(m4,3)		# takes the sum over the third dimension
-sum(m4,(1,3))	# sum over first and third dim
-
-maximum(m4,2)	# find the max elt along dim 2
-findmax(m4,3)	# find the max elt and its index along dim 3 (available only in very recent Julia versions)
-
-# Broadcasting
-# when you combine arrays of different sizes in an operation,
-# an attempt is made to "spread" or "broadcast" the smaller array
-# so that the sizes match up. broadcast operators are preceded by a dot:
-
-m4 .+ 3		# add 3 to all elements
-m4 .+ [1,2]		# adds vector [1,2] to all elements along first dim
-
-# slices and views
-m4=m4[:,:,1]	# holds dim 3 fixed
-m4[:,2,:]	# that's a 2x1x2 array. not very intuititive to look at
-
-# get rid of dimensions with size 1:
-squeeze(m4[:,2,:],2)	# that's better
-
-# assign new values to a certain view
-m4[:,:,1] = rand(1:6,2,3)
-printsum(m4)
-#> 2x3x2 Array{Int64,3}: [3 5 2
-#>  2 2 2]
-#>
-#> [4 5 6
-#>  5 6 7]
-
-# (for more examples of try, catch see Error Handling above)
-try
-	# this will cause an error, you have to assign the correct type
-	m4[:,:,1] = rand(2,3)
-catch err
-	println(err)
-end
-#> InexactError()
-
-try
-	# this will cause an error, you have to assign the right shape
-	m4[:,:,1] = rand(1:6,3,2)
-catch err
-	println(err)
-end
-#> DimensionMismatch("tried to assign 3x2 array to 2x3x1 destination")
-```
-
-## Dictionaries
-
-Julia uses [Dicts](http://docs.julialang.org/en/latest/stdlib/base/#associative-collections) as
-associative collections. Usage is similar to Python except for the `=>` definition syntax.
-
-```c
-# <hide>
-function printsum(a)
-    println(summary(a), ": ", repr(a))
-end
-# </hide>
-
-# dicts can be initialised directly:
-a1 = Dict(1=>"one", 2=>"two")
-printsum(a1) #> Dict{Int64,String}: {2=>"two",1=>"one"}
-
-# then added to:
-a1[3]="three"
-printsum(a1) #> Dict{Int64,String}: {2=>"two",3=>"three",1=>"one"}
-# (note dicts cannot be assumed to keep their original order)
-
-# dicts may also be created with the type explicitly set
-a2 = Dict{Int64, AbstractString}()
-a2[0]="zero"
-printsum(a2)
-#> Dict{Int64,AbstractString} with 1 entry: Dict{Int64,AbstractString}(Pair{Int64,AbstractString}(0,"zero"))
-
-# dicts, like arrays, may also be created from [comprehensions](http://julia.readthedocs.org/en/latest/manual/arrays/#comprehensions)
-a3 = Dict([i => @sprintf("%d", i) for i = 1:10])
-printsum(a3)
-#> Dict{Any,Any}: {5=>"5",4=>"4",6=>"6",7=>"7",2=>"2",10=>"10",9=>"9",8=>"8",3=>"3",1=>"1"}
-
-# as you would expect, Julia comes with all the normal helper functions
-# for dicts, e.g., [haskey](http://docs.julialang.org/en/latest/stdlib/base/#Base.haskey)
-println(haskey(a1,1)) #> true
-
-# which is equivalent to
-println(1 in keys(a1)) #> true
-# where [keys](http://docs.julialang.org/en/latest/stdlib/base/#Base.keys) creates an iterator over the keys of the dictionary
-
-# similar to keys, [values](http://docs.julialang.org/en/latest/stdlib/base/#Base.values) get iterators over the dict's values:
-printsum(values(a1))
-#> Base.ValueIterator for a Dict{Int64,String} with 3 entries: String["two","three","one"]
-
-# use [collect](http://docs.julialang.org/en/latest/stdlib/base/#Base.collect) to get an array:
-printsum(collect(values(a1)))
-#> 3-element Array{String,1}: String["two","three","one"]
-```
-
-## Loops and Map
-
-[For loops](http://julia.readthedocs.org/en/latest/manual/control-flow/#repeated-evaluation-loops)
-can be defined in a number of ways.
-
-```c
-# <hide>
-function printsum(a)
-    println(summary(a), ": ", repr(a))
-end
-# </hide>
-for i in 1:5
-    print(i, ", ")
-end
-#> 1, 2, 3, 4, 5,
-# In loop definitions "in" is equivilent to "=" (AFAIK, the two are interchangable in this context)
-for i = 1:5
-    print(i, ", ")
-end
-println() #> 1, 2, 3, 4, 5,
-
-# arrays can also be looped over directly:
-a1 = [1,2,3,4]
-for i in a1
-    print(i, ", ")
-end
-println() #> 1, 2, 3, 4,
-
-# **continue** and **break** work in the same way as python
-a2 = collect(1:20)
-for i in a2
-    if i % 2 != 0
-        continue
-    end
-    print(i, ", ")
-    if i >= 8
-        break
-    end
-end
-println() #> 2, 4, 6, 8,
-
-# if the array is being manipulated during evaluation a while loop shoud be used
-# [pop](http://docs.julialang.org/en/latest/stdlib/base/#Base.pop!) removes the last element from an array
-while !isempty(a1)
-    print(pop!(a1), ", ")
-end
-println() #> 4, 3, 2, 1,
-
-d1 = Dict(1=>"one", 2=>"two", 3=>"three")
-# dicts may be looped through using the keys function:
-for k in sort(collect(keys(d1)))
-    print(k, ": ", d1[k], ", ")
-end
-println() #> 1: one, 2: two, 3: three,
-
-# like python [enumerate](http://docs.julialang.org/en/latest/stdlib/base/#Base.enumerate) can be used to get both the index and value in a loop
-a3 = ["one", "two", "three"]
-for (i, v) in enumerate(a3)
-    print(i, ": ", v, ", ")
-end
-println() #> 1: one, 2: two, 3: three,
-
-# (note enumerate starts from 1 since Julia arrays are 1 indexed unlike python)
-
-# [map]() works as you might expect performing the given function on each member of an array or iter
-# much like comprehensions
-a4 = map((x) -> x^2, [1, 2, 3, 7])
-print(a4) #> [1, 4, 9, 49]
-```
-
-## Types
-
-Types are a key way of structuring data within Julia.
-
-```c
-# <hide>
-function printsum(a)
-    println(summary(a), ": ", repr(a))
-end
-# </hide>
-
-# Type Definitions are probably most similar to tyepdefs in c?
-# a simple type with no special constructor functions might look like this
-type Person
-	name::AbstractString
-	male::Bool
-	age::Float64
-	children::Int
-end
-
-p = Person("Julia", false, 4, 0)
-printsum(p)
-#> Person: Person("Julia",false,4.0,0)
-
-people = Person[]
-push!(people, Person("Steve", true, 42, 0))
-push!(people, Person("Jade", false, 17, 3))
-printsum(people)
-#> 2-element Array{Person,1}: [Person("Steve",true,42.0,0),Person("Jade",false,17.0,3)]
-
-# types may also contains arrays and dicts
-# constructor functions can be defined to easily create objects
-type Family
-	name::AbstractString
-	members::Array{AbstractString, 1}
-	extended::Bool
-	# constructor that takes one argument and generates a default
-	# for the other two values
-	Family(name::AbstractString) = new(name, AbstractString[], false)
-	# constructor that takes two arguements and infers the third
-	Family(name::AbstractString, members) = new(name, members, length(members) > 3)
-end
-
-fam1 = Family("blogs")
-println(fam1)
-#> Family("blogs",AbstractString[],false)
-fam2 = Family("jones", ["anna", "bob", "charlie", "dick"])
-println(fam2)
-#> Family("jones",AbstractString["anna","bob","charlie","dick"],true)
-```
-
-## Input & Output
-
-The basic syntax for reading and writing files in Julia is quite similar to Python.
-
-The `simple.dat` file used in this example is available
-[from github](https://github.com/samuelcolvin/JuliaByExample/blob/master/src/simple.dat).
-
-```c
-fname = "simple.dat"
-# using [do](http://julia.readthedocs.org/en/latest/manual/functions/#block-syntax-for-function-arguments) means the file is closed automatically
-# in the same way "with" does in python
-open(fname,"r") do f
-	for line in eachline(f)
-	    print(line)
-	end
-end
-#> this is a simple file containing
-#> text and numbers:
-#> 43.3
-#> 17
-
-f = open(fname,"r")
-showall(readlines(f))
-#> String["this is a simple file containing","text and numbers:","43.3","17"]
-close(f)
-
-f = open(fname,"r")
-fstring = readstring(f)
-close(f)
-println(summary(fstring))
-#> String
-print(fstring)
-#> this is a simple file containing
-#> text and numbers:
-#> 43.3
-#> 17
-
-outfile = "outfile.dat"
-# writing to files is very similar:
-f = open(outfile, "w")
-# both print and println can be used as usual but with f as their first arugment
-println(f, "some content")
-print(f, "more content")
-print(f, " more on the same line")
-close(f)
-
-# we can then check the content of the file written
-# "do" above just creates an anonymous function and passes it to open
-# we can use the same logic to pass readall and thereby succinctly
-# open, read and close a file in one line
-outfile_content = open(readstring, outfile, "r")
-println(repr(outfile_content))
-#> "some content\nmore content more on the same line"
-```
-
-## Packages and Including of Files
-
-[Packages](http://docs.julialang.org/en/latest/packages/packagelist/)
-extend the functionality of the Julia's standard library.
-
-```c
-# You might not want to run this file completely, as the Pkg-commands can take a
-# long time to complete.
-
-# list all available packages:
-Pkg.available()
-
-# install one package (e.g. [Calculus](https://github.com/johnmyleswhite/Calculus.jl)) and all its dependencies:
-Pkg.add("Calculus")
-
-# to list all installed packages
-Pkg.installed()
-
-# to update all packages to their newest version
-Pkg.update()
-
-# to use a package:
-using Calculus
-# will import all functions of that package into the current namespace, so that
-# it is possible to call
-derivative(x -> sin(x), 1.0)
-# without specifing the package it is included in.
-
-import Calculus
-# will enable you to specify which package the function is called from
-Calculus.derivative(x -> cos(x), 1.0)
-
-# Using `import` is especially useful if there are conflicts in function/type-names
-# between packages.
-```
-
-## Winston
-
-[Winston Package Page](https://github.com/nolta/Winston.jl)
-
-MATLAB-like plotting. Installed via `Pkg.add("Winston")`
-
-```c
-using Winston
-
-# plot some data
-pl = plot(cumsum(rand(500) .- 0.5), "r", cumsum(rand(500) .- 0.5), "b")
-# display the plot (not done automatically!)
-display(pl)
-
-# save the current figure
-savefig("winston.svg")
-# .eps, .pdf, & .png are also supported
-# we used svg here because it respects the width and height specified above
-```
-
-![](winston.svg)
-
-## DataFrames
-
-The [DataFrames.jl package](https://github.com/JuliaStats/DataFrames.jl) provides a tool for working with tabular data.
-
-The `iris.csv` file used in this example is available
-[from github](https://github.com/samuelcolvin/JuliaByExample/blob/master/common_usage/iris.csv).
-
-```c
-using DataFrames
-showln(x) = (show(x); println())
-# TODO: needs more links to docs.
-
-# A DataFrame is an in-memory database
-df = DataFrame(A = [1, 2], B = [e, pi], C = ["xx", "xy"])
-showln(df)
-#> 2x3 DataFrame
-#> |-------|---|---------|------|
-#> | Row # | A | B       | C    |
-#> | 1     | 1 | 2.71828 | "xx" |
-#> | 2     | 2 | 3.14159 | "xy" |
-
-# The columns of a DataFrame can be indexed using numbers or names
-showln(df[1])
-#> [1,2]
-showln(df[:A])
-#> [1,2]
-
-showln(df[2])
-#> [2.718281828459045,3.141592653589793]
-showln(df[:B])
-#> [2.718281828459045,3.141592653589793]
-
-showln(df[3])
-#> String["xx","xy"]
-showln(df[:C])
-#> String["xx","xy"]
-
-# The rows of a DataFrame can be indexed only by using numbers
-showln(df[1, :])
-#> 1x3 DataFrame
-#> |-------|---|---------|------|
-#> | Row # | A | B       | C    |
-#> | 1     | 1 | 2.71828 | "xx" |
-showln(df[1:2, :])
-#> 2x3 DataFrame
-#> |-------|---|---------|------|
-#> | Row # | A | B       | C    |
-#> | 1     | 1 | 2.71828 | "xx" |
-#> | 2     | 2 | 3.14159 | "xy" |
-
-# importing data into DataFrames
-# ------------------------------
-
-# DataFrames can be loaded from CSV files using readtable()
-iris = readtable("iris.csv")
-
-# the iris dataset (and plenty of others) is also available from
-using RData, RDatasets
-iris = dataset("datasets","iris")
-
-# you can directly import your own R .rda dataframe with
-# mydf = DataFrame(read_rda("path/to/your/df.rda")["name_of_df"]), e.g.
-diamonds = DataFrame(load(joinpath(Pkg.dir("RDatasets"),"data","ggplot2","diamonds.rda"))["diamonds"])
-
-# showing DataFrames
-# ------------------
-
-# Check the names and element types of the columns of our new DataFrame
-showln(names(iris))
-#> [:SepalLength,:SepalWidth,:PetalLength,:PetalWidth,:Species]
-showln(eltypes(iris))
-#> Type[Float64,Float64,Float64,Float64,UTF8String]
-
-# Subset the DataFrame to only include rows for one species
-showln(iris[iris[:Species] .== "setosa", :])
-#> 50x5 DataFrame
-#> |-------|-------------|------------|-------------|------------|----------|
-#> | Row # | SepalLength | SepalWidth | PetalLength | PetalWidth | Species  |
-#> | 1     | 5.1         | 3.5        | 1.4         | 0.2        | "setosa" |
-#> | 2     | 4.9         | 3.0        | 1.4         | 0.2        | "setosa" |
-#> | 3     | 4.7         | 3.2        | 1.3         | 0.2        | "setosa" |
-#> | 4     | 4.6         | 3.1        | 1.5         | 0.2        | "setosa" |
-#> | 5     | 5.0         | 3.6        | 1.4         | 0.2        | "setosa" |
-#> | 6     | 5.4         | 3.9        | 1.7         | 0.4        | "setosa" |
-#> | 7     | 4.6         | 3.4        | 1.4         | 0.3        | "setosa" |
-#> | 8     | 5.0         | 3.4        | 1.5         | 0.2        | "setosa" |
-#> | 9     | 4.4         | 2.9        | 1.4         | 0.2        | "setosa" |
-#> â‹®
-#> | 41    | 5.0         | 3.5        | 1.3         | 0.3        | "setosa" |
-#> | 42    | 4.5         | 2.3        | 1.3         | 0.3        | "setosa" |
-#> | 43    | 4.4         | 3.2        | 1.3         | 0.2        | "setosa" |
-#> | 44    | 5.0         | 3.5        | 1.6         | 0.6        | "setosa" |
-#> | 45    | 5.1         | 3.8        | 1.9         | 0.4        | "setosa" |
-#> | 46    | 4.8         | 3.0        | 1.4         | 0.3        | "setosa" |
-#> | 47    | 5.1         | 3.8        | 1.6         | 0.2        | "setosa" |
-#> | 48    | 4.6         | 3.2        | 1.4         | 0.2        | "setosa" |
-#> | 49    | 5.3         | 3.7        | 1.5         | 0.2        | "setosa" |
-#> | 50    | 5.0         | 3.3        | 1.4         | 0.2        | "setosa" |
-
-# Count the number of rows for each species
-showln(by(iris, :Species, df -> size(df, 1)))
-#> 3x2 DataFrame
-#> |-------|--------------|----|
-#> | Row # | Species      | x1 |
-#> | 1     | "setosa"     | 50 |
-#> | 2     | "versicolor" | 50 |
-#> | 3     | "virginica"  | 50 |
-
-# Discretize entire columns at a time
-iris[:SepalLength] = round.(Integer, iris[:SepalLength])
-iris[:SepalWidth] = round.(Integer, iris[:SepalWidth])
-
-
-# Tabulate data according to discretized columns to see "clusters"
-tabulated = by(
-    iris,
-    [:Species, :SepalLength, :SepalWidth],
-    df -> size(df, 1)
-)
-showln(tabulated)
-#> 17x4 DataFrame
-#> |-------|--------------|-------------|------------|----|
-#> | Row # | Species      | SepalLength | SepalWidth | x1 |
-#> | 1     | "setosa"     | 4           | 3          | 4  |
-#> | 2     | "setosa"     | 5           | 2          | 1  |
-#> | 3     | "setosa"     | 5           | 3          | 23 |
-#> | 4     | "setosa"     | 5           | 4          | 17 |
-#> | 5     | "setosa"     | 6           | 4          | 5  |
-#> | 6     | "versicolor" | 5           | 2          | 3  |
-#> | 7     | "versicolor" | 5           | 3          | 3  |
-#> | 8     | "versicolor" | 6           | 2          | 6  |
-#> | 9     | "versicolor" | 6           | 3          | 29 |
-#> | 10    | "versicolor" | 7           | 3          | 9  |
-#> | 11    | "virginica"  | 5           | 3          | 1  |
-#> | 12    | "virginica"  | 6           | 2          | 1  |
-#> | 13    | "virginica"  | 6           | 3          | 22 |
-#> | 14    | "virginica"  | 7           | 3          | 19 |
-#> | 15    | "virginica"  | 7           | 4          | 1  |
-#> | 16    | "virginica"  | 8           | 3          | 4  |
-#> | 17    | "virginica"  | 8           | 4          | 2  |
-
-# you can setup a grouped dataframe like this
-gdf = groupby(iris,[:Species, :SepalLength, :SepalWidth])
-
-# and then iterate over it
-for idf in gdf
-	println(size(idf,1))
-end
-
-# Adding/Removing columns
-# -----------------------
-
-# insert!(df::DataFrame,index::Int64,item::AbstractArray{T,1},name::Symbol)
-# insert random numbers at col 5:
-insert!(iris, 5, rand(nrow(iris)), :randCol)
-
-# remove it
-delete!(iris, :randCol)
-```
diff --git a/content/docs/software/lang/meta.json b/content/docs/software/lang/meta.json
deleted file mode 100644
index 7773a87cce3b98198aece7d70c935032d5bc9995..0000000000000000000000000000000000000000
--- a/content/docs/software/lang/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Lang",
-  "pages": [
-    "conda",
-    "csc",
-    "java",
-    "julialang",
-    "python"
-  ]
-}
diff --git a/content/docs/software/lang/python.mdx b/content/docs/software/lang/python.mdx
deleted file mode 100644
index 870349da913032a10981bccc4bef9ec8fd673315..0000000000000000000000000000000000000000
--- a/content/docs/software/lang/python.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: "Python"
----
-Python is a widely used high-level programming language for general-purpose programming, created by Guido van Rossum and first released in 1991. An interpreted language, Python has a design philosophy that emphasizes code readability (notably using whitespace indentation to delimit code blocks rather than curly brackets or keywords), and a syntax that allows programmers to express concepts in fewer lines of code than might be used in languages such as C++ or Java. The language provides constructs intended to enable writing clear programs on both a small and large scale.
-
-Python features a dynamic type system and automatic memory management and supports multiple programming paradigms, including object-oriented, imperative, functional programming, and procedural styles. It has a large and comprehensive standard library.
-
-* [Documentation for Python 3.X][a]
-* [PEP 8 -- Style Guide for Python Code][c]
-* [Get into Python -- Tutorial][d]
-
-## Python on the IT4Innovations Clusters
-
-On the clusters, we have the Python 3.X software installed. How to use these modules is shown below.
-
-<Callout>
-    Use the `ml av python/` command to get up-to-date versions of the modules.
-</Callout>
-
-<Callout type=error>
-    Python 2.7 is not supported - [EOL][b] January 1st, 2020.
-</Callout>
-
-```console
-$ ml av python/
-
------------------------------------------------------- /apps/modules/lang -------------------------------------------------------
-   Python/3.8.2-GCCcore-9.3.0    Python/3.8.6-GCCcore-10.2.0    Python/3.9.5-GCCcore-10.3.0 (D)
-
-  Where:
-   D:  Default Module
-
-  If you need software that is not listed, request it at support@it4i.cz.
-```
-
-## Python 3.X
-
-Python 3.0 (a.k.a. "Python 3000" or "Py3k") is a new version of the language that is incompatible with the 2.x line of releases. The language is mostly the same, but many details, especially how built-in objects like dictionaries and strings work, have changed considerably, and many deprecated features have been removed. In addition, the standard library has been reorganized in a few prominent places.
-
-```console
-$ ml av python3/
-
------------------------------------------------------- /apps/modules/lang -------------------------------------------------------
-   Python/3.8.2-GCCcore-9.3.0    Python/3.8.6-GCCcore-10.2.0    Python/3.9.5-GCCcore-10.3.0 (D)
-
-  Where:
-   D:  Default Module
-
-  If you need software that is not listed, request it at support@it4i.cz.
-
-```
-
-### Used Module Python/3.x
-
-```console
-$  python --version
-Python 2.7.5
-$ ml Python/3.8.6-GCCcore-10.2.0
-$ python --version
-Python 3.8.6
-```
-
-### Packages in Python/3.x
-
-```console
-$ pip3 list
-Package                       Version
------------------------------ ----------
-alabaster                     0.7.12
-appdirs                       1.4.4
-ase                           3.22.0
-asn1crypto                    1.4.0
-atomicwrites                  1.4.0
-attrs                         20.2.0
-Babel                         2.8.0
-...
-...
-$ pip3 list | wc -l
-138
-```
-
-### How to Install New Package to Python/3.x
-
-```console
-$ ml ml Python/3.8.6-GCCcore-10.2.0
-$ python --version
-Python 3.8.6
-$ pip3 install pandas --user
-Collecting pandas
-  Downloading pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB)
-     |████████████████████████████████| 11.5 MB 4.8 MB/s
-...
-Installing collected packages: pandas
-Successfully installed pandas-1.3.3
-```
-
-### How to Update Package in Python/3.x?
-
-```console
-$ pip3 install setuptools --upgrade --user
-Collecting setuptools
-  Downloading setuptools-58.0.4-py3-none-any.whl (816 kB)
-     |███████████████████████████████▎| 798 kB 5.4 MB/s eta 0:00:01
-     |███████████████████████████████▊| 808 kB 5.4 MB/s eta 0:00:01
-     |████████████████████████████████| 816 kB 5.4 MB/s
-Installing collected packages: setuptools
-Successfully installed setuptools-58.0.4
-```
-
-[a]: https://docs.python.org/3/
-[b]: https://www.python.org/doc/sunset-python-2/
-[c]: https://www.python.org/dev/peps/pep-0008/
-[d]: https://jobtensor.com/Tutorial/Python/en/Introduction
diff --git a/content/docs/software/machine-learning/alphafold.mdx b/content/docs/software/machine-learning/alphafold.mdx
deleted file mode 100644
index 85394cc477db4ba0584c181632c1d4bb94c647cd..0000000000000000000000000000000000000000
--- a/content/docs/software/machine-learning/alphafold.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: "AlphaFold"
----
-[AlphaFold][1] is an AI program designed as a deep learning system
-developed by DeepMind, a subsidiary of Alphabet,
-which performs predictions of protein structure.
-
-## Installed Versions
-
-AlphaFold is available on the Karolina cluster.
-For the current list of installed versions, use:
-
-```console
-ml av alphafold
-```
-
-## Loading Databases
-
-AlphaFold needs multiple genetic databases to run.
-These can be downloaded using AlphaFold scripts located in the `apps/all/AlphaFold/2.1.2-fosscuda-2020b-TensorFlow-2.5.0/scripts` directory.
-This step requires the `aria2c` program available as the `aria2/1.35.0-GCCcore-10.3.0` module.
-
-Once downloaded, you must specify the path to the directory on `/scratch` containing the databases.
-
-For more information, see the [AlphaFold documentation][2].
-
-[1]: https://www.deepmind.com/research/highlighted-research/alphafold
-[2]: https://github.com/deepmind/alphafold#genetic-databases
diff --git a/content/docs/software/machine-learning/deepdock.mdx b/content/docs/software/machine-learning/deepdock.mdx
deleted file mode 100644
index bf40a7ab91941eec3a1d27a1edfb1a63449ce449..0000000000000000000000000000000000000000
--- a/content/docs/software/machine-learning/deepdock.mdx
+++ /dev/null
@@ -1,191 +0,0 @@
----
-title: "DeepDock"
----
-Adapted from [https://github.com/OptiMaL-PSE-Lab/DeepDock](https://github.com/OptiMaL-PSE-Lab/DeepDock)
-
-Code related to: [O. Mendez-Lucio, M. Ahmad, E.A. del Rio-Chanona, J.K. Wegner,  A Geometric Deep Learning Approach to Predict Binding Conformations of Bioactive Molecules, Nature Machine Intelligence volume 3, pages1033–1039 (2021)](https://rdcu.be/cDy5f)
-
-Open access preprint [available here](https://doi.org/10.26434/chemrxiv.14453106.v1)
-
-## Getting Started
-
-### Main Requirements:
-
-* PyTorch = 1.10.0
-* CUDA Toolkit = 11.3
-* Python = 3.6.9
-* RDKIT = 2019.09.1
-
-### Prerequisites
-
-* create Conda environment
-
-  ```sh
-  conda create -n "current" python=3.6.9
-  ```
-
-* activate newly created Conda environment
-
-  ```sh
-  conda activate current
-  ```
-
-* install PyTorch 1.10.0 and other dependencies (more info at [https://pytorch.org/get-started/previous-versions/](https://pytorch.org/get-started/previous-versions/))
-
-  ```sh
-  conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge
-  ```
-
-* if not yet available in your system, load CUDA 11.3
-
-  ```sh
-  ml load CUDA/11.3.1
-  ```
-
-* install PyTorch scatter, sparse and geometric
-
-  ```sh
-  pip install torch-scatter -f https://data.pyg.org/whl/torch-1.10.0+cu113.html
-  pip install torch-sparse -f https://data.pyg.org/whl/torch-1.10.0+cu113.html
-  pip install torch-geometric
-  ```
-
-* uninstall PyTorch spline
-
-  ```sh
-  pip uninstall torch-spline-conv
-  ```
-
-* uninstall PyMesh (necessary to generate `.ply` files)
-
-  ```sh
-  wget --no-check-certificate https://github.com/PyMesh/PyMesh/releases/download/v0.2.0/pymesh2-0.2.0-cp36-cp36m-linux_x86_64.whl
-  pip install pymesh2-0.2.0-cp36-cp36m-linux_x86_64.whl
-  git clone https://github.com/shenwanxiang/ChemBench.git
-  cd ChemBench
-  pip install -e .
-  ```
-
-* install Trimesh
-
-  ```sh
-  conda install -c conda-forge trimesh
-  ```
-
-* if not yet available in your system, fixed issues with the version of `libstdc`
-
-  ```sh
-  module load GCC/9.3.0
-  ```
-
-* install other dependencies
-
-  ```sh
-  conda install Biopython
-  conda install cmake
-  conda install automake
-  conda install bison
-  conda install flex
-  conda install -c anaconda swig
-  conda install -c conda-forge apbs
-  conda install -c conda-forge pdb2pqry
-  ```
-
-* install AmberTools to replace reduce3.34 (for protonation) - since it is deprecated and no longer available, it is now included in AmberTools
-
-  ```sh
-  conda install -c conda-forge ambertools
-  ```
-
-* install requirements.txt
-
-  ```sh
-  pip install -r requirements.txt
-  ```
-
-* install RDKIT
-
-  ```sh
-  conda install -c conda-forge rdkit=2019.09.1
-  ```
-
-### Installation
-
-1. Clone the repo
-
-   ```sh
-   git clone https://github.com/paulo308/deepdock
-   ```
-
-2. Move into the project folder and update submodules
-
-   ```sh
-   cd DeepDock
-   git submodule update --init --recursive
-   ```
-
-3. Install prerequisite packages
-
-   ```sh
-   pip install -r requirements.txt
-   ```
-
-4. Install DeepDock pacakge
-
-   ```sh
-   pip install -e .
-   ```
-
-### Configuration
-
-* navigate to the location of your `apbs-pdb2pqr/pdb2pqr` installation and run the Python (2.7) script to link with your current Conda environment. For more information, refer to the Dockerfile (lines 60 to 72)
-
-  ```sh
-   [your conda environment WORK DIRECTORY]/install/apbs-pdb2pqr/pdb2pqr
-   python2.7 scons/scons.py install PREFIX="[your conda ENVIRONMENT PATH]/bin/pdb2pqr"
-   ```
-
-* move the "multivalue" file to your Conda envirnoment path
-
-  ```sh
-   cp multivalue [your conda environment path]/share/apbs/tools/mesh/multivalue
-  ```
-
-* setup necessary environment variables with the tools and respective paths
-
-  ```sh
-   export MSMS_BIN=[your conda environment path]/bin/msms
-   export APBS_BIN=[your conda environment path]/bin/apbs
-   export PDB2PQR_BIN=[your conda environment path]/bin/pdb2pqr/pdb2pqr.py
-   export MULTIVALUE_BIN=[your conda environment path]/share/apbs/tools/mesh/multivalue
-   ```
-
-## Data
-
-You can get training and testing data following the next steps.
-
-1. Move into the project data folder
-
-  ```sh
-   cd DeepDock/data
-  ```
-
-2. Use the following line to download the preprocessed data used to train and test the model. This will download two files, one containing PDBbind (2.3 GB) used for training and another containing CASF-2016 (32 MB) used for testing. These two files are enough to run all [examples](https://github.com/OptiMaL-PSE-Lab/DeepDock/blob/main/examples).
-
-  ```sh
-   source get_deepdock_data.sh
-  ```
-
-2. In case you want to reproduce all results of the paper you will need to download the complete CASF-2016 set (~1.5 GB). You can do so with this command line from the data folder.
-
-  ```sh
-   source get_CASF_2016.sh
-  ```
-
-## Example Usage
-
-Usage examples can be seen directly in the Jupyter Notebooks included in the repo. We added examples for:
-
-* [Training the model](https://github.com/OptiMaL-PSE-Lab/DeepDock/blob/main/examples/Train_DeepDock.ipynb)
-* [Score molecules](https://github.com/OptiMaL-PSE-Lab/DeepDock/blob/main/examples/Score_example.ipynb)
-* [Predict binding conformation (docking)](https://github.com/OptiMaL-PSE-Lab/DeepDock/blob/main/examples/Docking_example.ipynb)
diff --git a/content/docs/software/machine-learning/introduction.mdx b/content/docs/software/machine-learning/introduction.mdx
deleted file mode 100644
index 9dd56ffa0612da68f4f1ca7a00663c6c5dc6b523..0000000000000000000000000000000000000000
--- a/content/docs/software/machine-learning/introduction.mdx
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: "Machine Learning"
----
-This section overviews machine learning frameworks and libraries available on the clusters.
-
-## Keras
-
-Keras is an API designed for human beings, not machines. Keras follows best practices for reducing cognitive load: it offers consistent & simple APIs, it minimizes the number of user actions required for common use cases, and it provides clear & actionable error messages. It also has extensive documentation and developer guides. For more information, see the [official website][c].
-
-For the list of available versions, type:
-
-```console
-$ ml av Keras
-```
-
-## NetKet
-
-NetKet is an open-source project for the development of machine intelligence for many-body quantum systems.
-For more information, see the [official website][d] or [GitHub][e].
-
-## TensorFlow
-
-TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications. For more information, see the [official website][a].
-
-For more information see the [TensorFlow][1] section.
-
-## Theano
-
-Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It can use GPUs and perform efficient symbolic differentiation. For more information, see the [official webpage][b] (GitHub).
-
-For the list of available versions, type:
-
-```console
-$ ml av Theano
-```
-
-[1]: tensorflow.md
-
-[a]: https://www.tensorflow.org/
-[b]: https://github.com/Theano/
-[c]: https://keras.io/
-[d]: http://www.netket.org
-[e]: https://github.com/netket
-
-<!---
-2021-04-08
-It is necessary to load the correct NumPy / SciPy modules along with the Tensorflow one.
-
-Obsolete 2021-03-31
-## Todo
-Salomon -> Theano/0.9.0-Python-3.6.1 does NOT include several mandatory modules, like NumPy and SciPy
-Salomon -> Keras/2.0.5-Theano-1.2.0-Python-3.6.1 loads Theano/0.9.0-Python-3.6.1, meaning it also does not include mandatory librarie
-
-Salomon -> /apps/modules/math/Keras/2.3.0-Tensorflow-1.13.1-Python-3.7.2 works, others miss NumPy or other libraries
-
-What seems to work on Salomon:
-for theano:
-/apps/modules/python/Theano/1.0.1-Py-3.6, and Keras with this backend
-
-for keras:
-/apps/modules/math/Keras/2.3.0-Tensorflow-1.13.1-Python-3.7.2
-/apps/modules/python/Keras/2.1.4-Py-3.6-Tensorflow-1.6.0rc0
--->
diff --git a/content/docs/software/machine-learning/meta.json b/content/docs/software/machine-learning/meta.json
deleted file mode 100644
index 7a6ea8f6096e1b22df088599b8e9a091e94450c3..0000000000000000000000000000000000000000
--- a/content/docs/software/machine-learning/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Machine-learning",
-  "pages": [
-    "alphafold",
-    "deepdock",
-    "introduction",
-    "netket",
-    "tensorflow"
-  ]
-}
diff --git a/content/docs/software/machine-learning/netket.mdx b/content/docs/software/machine-learning/netket.mdx
deleted file mode 100644
index 51066052f92682fd78b7986afd2fe3e10077f693..0000000000000000000000000000000000000000
--- a/content/docs/software/machine-learning/netket.mdx
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: "NetKet"
----
-Open-source project for the development of machine intelligence for many-body quantum systems.
-
-## Introduction
-
-NetKet is a numerical framework written in Python to simulate many-body quantum systems using variational methods. In general, NetKet allows the user to parametrize quantum states using arbitrary functions, be it simple mean-field ansatz, Jastrow, MPS ansatz or convolutional neural networks. Those states can be sampled efficiently in order to estimate observables or other quantities. Stochastic optimization of the energy or a time-evolution are implemented on top of those samplers.
-
-NetKet tries to follow the functional programming paradigm, and is built around jax. While it is possible to run the examples without knowledge of jax, it is recommended that the users get familiar with it if they wish to extend NetKet.
-
-For more information, see the [NetKet documentation][1].
-
-## Running NetKet
-
-Load the `Python/3.8.6-GCC-10.2.0-NetKet` and `intel/2020b` modules.
-
-### Example for Multi-GPU Node
-
-<Callout type=warn>
-    Set the visible device in the environment variable before loading jax and NetKet, as NetKet loads jax.
-</Callout>
-
-```code
-# J1-J2 model
-# Version with complex Hamiltonian
-#
-################################################################################
-
-import os
-import sys
-
-# detect MPI rank
-from mpi4py import MPI
-rank = MPI.COMM_WORLD.Get_rank()
-
-# set only one visible device
-os.environ["CUDA_VISIBLE_DEVICES"] = f"{rank}"
-# force to use gpu
-os.environ["JAX_PLATFORM_NAME"] = "gpu"
-
-import jax
-import netket as nk
-import numpy as np
-import json
-import mpi4jax
-
-print("NetKet version: {}".format(nk.__version__))
-print("Jax devices: {}".format(jax.devices()))
-print("Jax version: {}".format(jax.__version__))
-print("MPI utils available: {}".format(nk.utils.mpi.available))
-
-# Parameters
-L  = 12   # length
-J1 = 1.0  # nearest-neighbours exchange interaction
-J2 = .50   # next-nearest-neighbours exchange interaction
-
-MSR = 1  # Marshall sign rule (+1/-1)
-
-# ## Hamiltonian
-
-# Hilbert space
-g = nk.graph.Chain(L, pbc=True)
-hilbert = nk.hilbert.Spin(s=0.5, total_sz=0.0, N=g.n_nodes)
-
-print("Number of graph nodes: {:d}".format(g.n_nodes))
-print("Hilbert size: {:d}".format(hilbert.size))
-
-# Pauli matrices
-def sigx(i):
-    return nk.operator.spin.sigmax(hilbert, i, dtype=np.complex128)
-
-def sigy(i):
-    return nk.operator.spin.sigmay(hilbert, i, dtype=np.complex128)
-
-def sigz(i):
-    return nk.operator.spin.sigmaz(hilbert, i, dtype=np.complex128)
-
-def heisenberg(i, j, sgn=1):
-    """Heisenberg two spin interaction including Marshall sign rule."""
-    return sgn * (sigx(i)*sigx(j) + sigy(i)*sigy(j)) + sigz(i)*sigz(j)
-
-# setup local Hamiltonian
-Ha = nk.operator.LocalOperator(hilbert, dtype=np.complex128)  # Hamiltonian
-
-# nearest neighbours
-for i in range(L - 1):
-    Ha += J1 * heisenberg(i, i+1, MSR)
-
-Ha += J1 * heisenberg(L-1, 0, MSR)
-
-# next nearest neighbours
-for i in range(L - 2):
-    Ha += J2 * heisenberg(i, i+2)
-
-Ha += J2 * ( heisenberg(L-1, 1) + heisenberg(L-2, 0) )
-
-# check Hamiltonian
-print("Hamiltonian is hemitian: {}".format(Ha.is_hermitian))
-print("Number of local operators: {:d}".format(len(Ha.operators)))
-print("Hamiltonian size: {}".format(Ha.to_dense().shape))
-
-# ## Exact diagonalization
-
-ED = nk.exact.lanczos_ed(Ha, compute_eigenvectors=False)
-E0 = ED[0]
-print("Exact ground state energy: {:.5f}".format(E0))
-
-# ## Restricted Boltzmann Machine
-
-# setup model
-model = nk.models.RBM(alpha=1,dtype=np.complex128)
-
-sa = nk.sampler.MetropolisExchange(hilbert, graph=g, d_max=2, n_chains_per_rank=1)
-vs = nk.vqs.MCState(sa, model, n_samples=3000)
-opt = nk.optimizer.Sgd(learning_rate=0.01)
-sr = nk.optimizer.SR(diag_shift=0.01)
-
-gs = nk.VMC(hamiltonian=Ha, optimizer=opt, variational_state=vs, preconditioner=sr)
-
-# run simulations
-output_files = "J1J2cplx_L{:d}_J{:.2f}_rbm".format(L, J2)
-gs.run(out=output_files, n_iter=3000)
-
-# print energy
-Data = json.load(open("{:s}.log".format(output_files)))
-E0rbm = np.mean(Data["Energy"]["Mean"]["real"][-500:-1])
-print("RBM ground state energy: {:.5f}".format(E0rbm))
-```
-
-[1]: https://www.netket.org/docs/getting_started.html#installation-and-requirements
diff --git a/content/docs/software/machine-learning/tensorflow.mdx b/content/docs/software/machine-learning/tensorflow.mdx
deleted file mode 100644
index 2bf00ecbd311c5f381a008fa29d63cf1a1d90d7b..0000000000000000000000000000000000000000
--- a/content/docs/software/machine-learning/tensorflow.mdx
+++ /dev/null
@@ -1,157 +0,0 @@
----
-title: "TensorFlow"
----
-TensorFlow (TF) is an open-source software library which can compile tensor operations to execute
-very quickly on both CPUs and GPUs. It is often used as a backend for machine learning libraries
-and models.
-
-We heavily recommend the usage of `TensorFlow 2.x`. TensorFlow 1 has been long deprecated and it
-will probably be difficult to make it run on GPUs on our clusters.
-
-## Installation
-
-For TensorFlow to work with GPUs, you have to use several libraries (CUDA, cuDNN, NCCL etc.)
-with versions that are compatible together.
-
-You can load the correct modules with the following command:
-
-```console
-$ ml TensorFlow
-```
-
-If you want to upgrade the TensorFlow version used in this package or install additional Python
-modules, you can simply create a virtual environment and install a different TensorFlow version
-inside it:
-
-```console
-$ python3 -m venv venv
-$ source venv/bin/activate
-(venv) $ python3 -m pip install -U setuptools wheel pip
-(venv) $ python3 -m pip install tensorflow
-```
-
-However, if you use a newer TensorFlow version than the one included in the `TensorFlow` module,
-you should make sure that it is still compatible with the CUDA version provided by the module.
-You can find the required `CUDA`/`cuDNN` versions for the latest TF
-[here](https://www.tensorflow.org/install/pip).
-
-## TensorFlow Example
-
-After loading TensorFlow, you can check its functionality by running the following Python script.
-
-```python
-import tensorflow as tf
-
-a = tf.constant([1, 2, 3])
-b = tf.constant([2, 4, 6])
-c = a + b
-print(c.numpy())
-```
-
-## Using TensorFlow With GPUs
-
-With TensorFlow, you can leverage either a single GPU or multiple GPUs in a single process, to e.g.
-train neural networks much faster.
-
-Using the available `TensorFlow` module should make sure that these modules will be loaded correctly.
-
-### Selecting GPUs
-
-You can select how many and which (NVIDIA) GPUs will be used by TensorFlow with the
-`CUDA_VISIBLE_DEVICES` environment variable.
-
-```console
-# Do not use any GPUs
-$ CUDA_VISIBLE_DEVICES=-1 python3 my_script.py
-# Use a single GPU with ID 0
-$ CUDA_VISIBLE_DEVICES=0 python3 my_script.py
-# Use multiple GPUs
-$ CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python3 my_script.py
-```
-
-By default, if you do not specify the environment variable, all available GPUs will be used by
-TensorFlow.
-
-### Multi-GPU TensorFlow Example
-
-This script uses `keras` and `TensorFlow` to train a simple neural network on the
-[MNIST](https://en.wikipedia.org/wiki/MNIST_database) dataset. It assumes that you have
-`tensorflow` (2.x), `keras` and `tensorflow_datasets` Python packages installed. The training
-is performed on multiple GPUs.
-
-```python
-import tensorflow_datasets as tfds
-import tensorflow as tf
-
-datasets, info = tfds.load(name='mnist', with_info=True, as_supervised=True)
-
-mnist_train, mnist_test = datasets['train'], datasets['test']
-
-# Use NCCL reduction if NCCL is available, it should be the most efficient strategy
-strategy = tf.distribute.MirroredStrategy(cross_device_ops=tf.distribute.NcclAllReduce())
-
-# Different reduction strategy, use if NCCL causes errors
-# strategy = tf.distribute.MirroredStrategy(cross_device_ops=tf.distribute.ReductionToOneDevice())
-print('Number of devices: {}'.format(strategy.num_replicas_in_sync))
-
-num_train_examples = info.splits['train'].num_examples
-num_test_examples = info.splits['test'].num_examples
-
-BUFFER_SIZE = 10000
-
-BATCH_SIZE_PER_REPLICA = 64
-BATCH_SIZE = BATCH_SIZE_PER_REPLICA * strategy.num_replicas_in_sync
-
-def scale(image, label):
-  image = tf.cast(image, tf.float32)
-  image /= 255
-
-  return image, label
-
-
-train_dataset = mnist_train.map(scale).cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE)
-eval_dataset = mnist_test.map(scale).batch(BATCH_SIZE)
-
-# The following line makes sure that the model will run on multiple GPUs (if they are available)
-# Without `strategy.scope()`, the model would only be trained on a single GPU
-with strategy.scope():
-  model = tf.keras.Sequential([
-      tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(28, 28, 1)),
-      tf.keras.layers.MaxPooling2D(),
-      tf.keras.layers.Flatten(),
-      tf.keras.layers.Dense(64, activation='relu'),
-      tf.keras.layers.Dense(10)
-  ])
-
-  model.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
-                optimizer=tf.keras.optimizers.Adam(),
-                metrics=['accuracy'])
-
-model.fit(train_dataset, epochs=100)
-```
-
-<Callout>
-    If using the `NCCL` strategy causes runtime errors, try to run your application with the
-    environment variable `TF_FORCE_GPU_ALLOW_GROWTH` set to `true`.
-</Callout>
-
-<Callout>
-    For real-world multi-GPU training, it might be better to use a dedicated multi-GPU framework such
-    as [Horovod](https://github.com/horovod/horovod).
-</Callout>
-
-<!---
-
-2022-10-14
-Add multi-GPU example script.
-
-2021-04-08
-It's necessary to load the correct NumPy module along with the Tensorflow one.
-
-2021-03-31
-## Notes
-As of 2021-03-23, TensorFlow is made available only on the Salomon cluster
-
-Tensorflow-tensorboard/1.5.1-Py-3.6 has not been not tested.
-
--->
diff --git a/content/docs/software/meta.json b/content/docs/software/meta.json
deleted file mode 100644
index cbddc62a2291256fba722a5f449ab64d9ff170e3..0000000000000000000000000000000000000000
--- a/content/docs/software/meta.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "title": "Software",
-  "pages": [
-    "bio",
-    "cae",
-    "chemistry",
-    "compilers",
-    "data-science",
-    "debuggers",
-    "eessi",
-    "intel",
-    "isv_licenses",
-    "karolina-compilation",
-    "lang",
-    "machine-learning",
-    "modules",
-    "mpi",
-    "numerical-languages",
-    "numerical-libraries",
-    "nvidia-cuda",
-    "nvidia-cuda-q",
-    "nvidia-hip",
-    "sdk",
-    "tools",
-    "viz"
-  ]
-}
diff --git a/content/docs/software/modules/lmod.mdx b/content/docs/software/modules/lmod.mdx
deleted file mode 100644
index b964446acf25013fcbf934f15072b30a914d9336..0000000000000000000000000000000000000000
--- a/content/docs/software/modules/lmod.mdx
+++ /dev/null
@@ -1,335 +0,0 @@
----
-title: "Lmod Environment"
----
-Lmod is a modules tool, a modern alternative to the outdated & no longer actively maintained Tcl-based environment modules tool.
-
-Detailed documentation on Lmod is available [here][a].
-
-## Benefits
-
-* significantly more responsive module commands, in particular `ml av`
-* easier to use interface
-* module files can be written in either the Tcl or Lua syntax (and both types of modules can be mixed together)
-
-## Introduction
-
-Below you will find more details and examples.
-
-| command                  | equivalent/explanation                                           |
-| ------------------------ | ---------------------------------------------------------------- |
-| ml                       | module list                                                      |
-| ml GCC/6.2.0-2.27        | ml GCC/6.2.0-2.27                                                |
-| ml -GCC/6.2.0-2.27       | module unload GCC/6.2.0-2.27                                     |
-| ml purge                 | module unload all modules                                        |
-| ml av                    | ml av                                                            |
-| ml show GCC/6.2.0-2.27   | module show GCC                                                  |
-| ml spider gcc            | searches (case-insensitive) for gcc in all available modules |
-| ml spider GCC/6.2.0-2.27 | show all information about the module GCC/6.2.0-2.27             |
-| ml save mycollection     | stores the currently loaded modules to a collection              |
-| ml restore mycollection  | restores a previously stored collection of modules               |
-
-## Listing Loaded Modules
-
-To get an overview of the currently loaded modules, use `module list` or `ml` (without specifying extra arguments):
-
-```console
-$ ml
-Currently Loaded Modules:
-   1) EasyBuild/3.0.0 (S)  2) lmod/7.2.2
-  Where:
-   S:  Module is Sticky, requires --force to unload or purge
-```
-
-<Callout>
-    For more details on sticky modules, see the section on [ml purge][1].
-</Callout>
-
-## Searching for Available Modules
-
-To get an overview of all available modules, you can use `ml avail` or simply `ml av`:
-
-```console
-$ ml av
----------------------------------------- /apps/modules/compiler ----------------------------------------------
-   GCC/5.2.0    GCCcore/6.2.0 (D)    icc/2013.5.192     ifort/2013.5.192    LLVM/3.9.0-intel-2017.00 (D)
-                                 ...                                  ...
-
----------------------------------------- /apps/modules/devel -------------------------------------------------
-   Autoconf/2.69-foss-2015g    CMake/3.0.0-intel-2016.01   M4/1.4.17-intel-2016.01   pkg-config/0.27.1-foss-2015g
-   Autoconf/2.69-foss-2016a    CMake/3.3.1-foss-2015g      M4/1.4.17-intel-2017.00   pkg-config/0.27.1-intel-2015b
-                                 ...                                  ...
-```
-
-In the current module naming scheme, each module name consists of two parts:
-
-* the part before the first /, corresponding to the software name
-* the remainder, corresponding to the software version, the compiler toolchain that was used to install the software, and a possible version suffix
-
-<Callout>
-    `(D)` indicates that this particular version of the module is the default, but we strongly recommend to not rely on this, as the default can change at any point. Usually, the default points to the latest version available.
-</Callout>
-
-## Searching for Modules
-
-If you just provide a software name, for example `gcc`, it prints an overview of all available modules for GCC.
-
-```console
-$ ml spider gcc
----------------------------------------------------------------------------------
-  GCC:
----------------------------------------------------------------------------------
-    Description:
-      The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...). - Homepage: http://gcc.gnu.org/
-
-     Versions:
-        GCC/4.4.7-system
-        GCC/4.7.4
-        GCC/4.8.3
-        GCC/4.9.2-binutils-2.25
-        GCC/4.9.2
-        GCC/4.9.3-binutils-2.25
-        GCC/4.9.3
-        GCC/4.9.3-2.25
-        GCC/5.1.0-binutils-2.25
-        GCC/5.2.0
-        GCC/5.3.0-binutils-2.25
-        GCC/5.3.0-2.25
-        GCC/5.3.0-2.26
-        GCC/5.3.1-snapshot-20160419-2.25
-        GCC/5.4.0-2.26
-        GCC/6.2.0-2.27
-
-     Other possible modules matches:
-        GCCcore
----------------------------------------------------------------------------------
-  To find other possible module matches do:
-      module -r spider '.*GCC.*'
----------------------------------------------------------------------------------
-  For detailed information about a specific "GCC" module (including how to load the modules) use the module's full name.
-  For example:
-     $ module spider GCC/6.2.0-2.27
----------------------------------------------------------------------------------
-```
-
-<Callout>
-    `spider` is case-insensitive.
-</Callout>
-
-If you use `spider` on a full module name like `GCC/6.2.0-2.27`, it will tell on which cluster(s) that module is available:
-
-```console
-$ module spider GCC/6.2.0-2.27
---------------------------------------------------------------------------------------------------------------
-  GCC: GCC/6.2.0-2.27
---------------------------------------------------------------------------------------------------------------
-    Description:
-      The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj...). - Homepage: http://gcc.gnu.org/
-
-    This module can be loaded directly: ml GCC/6.2.0-2.27
-
-    Help:
-      The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
-       as well as libraries for these languages (libstdc++, libgcj,...). - Homepage: http://gcc.gnu.org/
-```
-
-This tells you what the module contains and what the URL to the homepage of the software is.
-
-## Available Modules for a Particular Software Package
-
-To check which modules are available for a particular software package, you can provide the software name to `ml av`.
-For example, to check which versions of Git are available:
-
-```console
-$ ml av git
-
--------------------------------------- /apps/modules/tools ----------------------------------------
-   git/2.8.0-GNU-4.9.3-2.25    git/2.8.0-intel-2017.00    git/2.9.0    git/2.9.2    git/2.11.0 (D)
-
-  Where:
-   D:  Default Module
-
-Use "module spider" to find all possible modules.
-Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
-```
-
-<Callout>
-    The specified software name is case-insensitive.
-</Callout>
-
-Lmod does a partial match on the module name, so sometimes you need to specify the end of the software name you are interested in:
-
-```console
-$ ml av GCC/
-
------------------------------------------- /apps/modules/compiler -------------------------------------------
-GCC/4.4.7-system    GCC/4.8.3   GCC/4.9.2   GCC/4.9.3   GCC/5.1.0-binutils-2.25 GCC/5.3.0-binutils-2.25   GCC/5.3.0-2.26   GCC/5.4.0-2.26   GCC/4.7.4   GCC/4.9.2-binutils-2.25   GCC/4.9.3-binutils-2.25   GCC/4.9.3-2.25   GCC/5.2.0   GCC/5.3.0-2.25 GCC/6.2.0-2.27 (D)
-
-  Where:
-   D:  Default Module
-
-Use "module spider" to find all possible modules.
-Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
-```
-
-## Inspecting a Module
-
-To see how a module would change the environment, use `ml show`:
-
-```console
-$ ml show Python/3.5.2
-
-help([[Python is a programming language that lets you work more quickly and integrate your systems more effectively. - Homepage: http://python.org/]])
-whatis("Description: Python is a programming language that lets you work more quickly and integrate your systems more effectively. - Homepage: http://python.org/")
-conflict("Python")
-load("bzip2/1.0.6")
-load("zlib/1.2.8")
-load("libreadline/6.3")
-load("ncurses/5.9")
-load("SQLite/3.8.8.1")
-load("Tk/8.6.3")
-load("GMP/6.0.0a")
-load("XZ/5.2.2")
-prepend_path("CPATH","/apps/all/Python/3.5.2/include")
-prepend_path("LD_LIBRARY_PATH","/apps/all/Python/3.5.2/lib")
-prepend_path("LIBRARY_PATH","/apps/all/Python/3.5.2/lib")
-prepend_path("MANPATH","/apps/all/Python/3.5.2/share/man")
-prepend_path("PATH","/apps/all/Python/3.5.2/bin")
-prepend_path("PKG_CONFIG_PATH","/apps/all/Python/3.5.2/lib/pkgconfig")
-setenv("EBROOTPYTHON","/apps/all/Python/3.5.2")
-setenv("EBVERSIONPYTHON","3.5.2")
-setenv("EBDEVELPYTHON","/apps/all/Python/3.5.2/easybuild/Python-3.5.2-easybuild-devel")
-setenv("EBEXTSLISTPYTHON","setuptools-20.1.1,pip-8.0.2,nose-1.3.7")
-```
-
-<Callout>
-    Note that both the direct changes to the environment as well as other modules that will be loaded are shown.
-</Callout>
-
-## Loading Modules
-
-<Callout type=warn>
-    Always specify the name **and** the version when loading a module.
-    Loading a default module in your script (e.g. `$ ml intel`) will cause divergent results in the case the default module is upgraded.
-    **IT4Innovations is not responsible for any loss of allocated core- or node-hours resulting from the use of improper modules in your calculations.**
-</Callout>
-
-To effectively apply the changes to the environment that are specified by a module, use `ml` and specify the name of the module.
-For example, to set up your environment to use Intel:
-
-```console
-$ ml intel/2017.00
-$ ml
-Currently Loaded Modules:
-  1) GCCcore/5.4.0
-  2) binutils/2.26-GCCcore-5.4.0                        (H)
-  3) icc/2017.0.098-GCC-5.4.0-2.26
-  4) ifort/2017.0.098-GCC-5.4.0-2.26
-  5) iccifort/2017.0.098-GCC-5.4.0-2.26
-  6) impi/2017.0.098-iccifort-2017.0.098-GCC-5.4.0-2.26
-  7) iimpi/2017.00-GCC-5.4.0-2.26
-  8) imkl/2017.0.098-iimpi-2017.00-GCC-5.4.0-2.26
-  9) intel/2017.00
-
-  Where:
-   H:  Hidden Module
-```
-
-<Callout>
-    Note that even though we only loaded a single module, the output of `ml` shows that a whole set of modules was loaded. These are required dependencies for `intel/2017.00`.
-</Callout>
-
-## Conflicting Modules
-
-<Callout type=warn>
-    It is important to note that **only modules that are compatible with each other can be loaded together. In particular, modules must be installed either with the same toolchain as the modules that are already loaded, or with a compatible (sub)toolchain**.
-</Callout>
-
-For example, once you have loaded one or more modules that were installed with the `intel/2017.00` toolchain, all other modules that you load should have been installed with the same toolchain.
-
-In addition, only **one single version** of each software package can be loaded at a particular time. For example, once you have the `Python/3.5.2-intel-2017.00` module loaded, you cannot load a different version of Python in the same session/job script, neither directly, nor indirectly as a dependency of another module you want to load.
-
-## Unloading Modules
-
-To revert the changes to the environment that were made by a particular module, you can use `ml -<modname>`.
-For example:
-
-```console
-$ ml
-Currently Loaded Modules:
-  1) EasyBuild/3.0.0 (S)   2) lmod/7.2.2
-$ which gcc
-/usr/bin/gcc
-$ ml GCC/
-$ ml
-Currently Loaded Modules:
-  1) EasyBuild/3.0.0 (S)   2) lmod/7.2.2   3) GCCcore/6.2.0   4) binutils/2.27-GCCcore-6.2.0 (H)   5) GCC/6.2.0-2.27
-$ which gcc
-/apps/all/GCCcore/6.2.0/bin/gcc
-$ ml -GCC
-$ ml
-Currently Loaded Modules:
-  1) EasyBuild/3.0.0 (S)   2) lmod/7.2.2   3) GCCcore/6.2.0   4) binutils/2.27-GCCcore-6.2.0 (H)
-$ which gcc
-/usr/bin/gcc
-```
-
-## Resetting by Unloading All Modules
-
-To reset your environment back to a clean state, you can use `ml purge` or `ml purge --force`:
-
-```console
-$ ml
-Currently Loaded Modules:
-  1) EasyBuild/3.0.0 (S)   2) lmod/7.2.2   3) GCCcore/6.2.0   4) binutils/2.27-GCCcore-6.2.0 (H)
-$ ml purge
-The following modules were not unloaded:
-   (Use "module --force purge" to unload all):
- 1) EasyBuild/3.0.0
-$ ml
-Currently Loaded Modules:
- 1) EasyBuild/3.0.0 (S)
-$ ml purge --force
-$ ml
-No modules loaded
-```
-
-As such, you should not (re)load the cluster module anymore after running `ml purge`.
-
-## Module Collections
-
-If you have a set of modules that you need to load often, you can save these in a collection (only works with Lmod).
-
-First, load all the modules you need, for example:
-
-```console
-$ ml intel/2017.00 Python/3.5.2-intel-2017.00
-```
-
-Now store them in a collection using `ml save`:
-
-```console
-$ ml save my-collection
-```
-
-Later, for example in a job script, you can reload all these modules with `ml restore`:
-
-```console
-$ ml restore my-collection
-```
-
-With `ml savelist`, you can get a list of all saved collections:
-
-```console
-$ ml savelist
-Named collection list:
-  1) my-collection
-  2) my-test-collection
-```
-
-To inspect a collection, use `ml describe`.
-
-To remove a module collection, remove the corresponding entry in $HOME/.lmod.d.
-
-[1]: #resetting-by-unloading-all-modules
-
-[a]: http://lmod.readthedocs.io
diff --git a/content/docs/software/modules/meta.json b/content/docs/software/modules/meta.json
deleted file mode 100644
index 1b652db6e67b687f2c8db509c21e199eb6113826..0000000000000000000000000000000000000000
--- a/content/docs/software/modules/meta.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "title": "Modules",
-  "pages": [
-    "lmod",
-    "new-software"
-  ]
-}
diff --git a/content/docs/software/modules/new-software.mdx b/content/docs/software/modules/new-software.mdx
deleted file mode 100644
index dc1487a9910fabbb47627e60fe891b8d617a8b45..0000000000000000000000000000000000000000
--- a/content/docs/software/modules/new-software.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "New Software Installation Request"
----
-If you need to install new software on IT4Innovations' clusters, send your request to [support\[at\]it4i.cz][a].
-In the request, provide the following information:
-
-1. Software name **(required)**;
-1. Website **(required)**;
-1. Type of software (e.g. open-source, commercial, ...) **(required)**;
-1. Required software version (specific version or 'latest') **(required)**;
-1. Dependencies (both required and optional ones that are required for your use case);
-1. Pointer to installation guide **(required)**;
-1. Pointer to documentation on how to test installation;
-1. Details of license server, hostname and port(s) (if any);
-1. Instructions to run test case;
-1. Short motivation describing why you want to use this software **(required)**;
-1. When would you like to use this software? **(required)**;
-1. Toolchain preference (e.g. intel/2020a, ...);
-1. Does this software need to be made available to only a particular group of users? **(required)**
-    - No, installation can be public;
-    - Yes (specify the group of users).
-
-[a]: mailto:support@it4i.cz
diff --git a/content/docs/software/mpi/jupyter_mpi.mdx b/content/docs/software/mpi/jupyter_mpi.mdx
deleted file mode 100644
index 96933b7c7eeac698b9361ee4667c66539f94bcf6..0000000000000000000000000000000000000000
--- a/content/docs/software/mpi/jupyter_mpi.mdx
+++ /dev/null
@@ -1,333 +0,0 @@
----
-title: "SLURM and Parallel Processing in Jupyter-Lab via OOD"
----
-When working in Jupyter Lab, you can leverage session outputs or run parallel tasks, which is beneficial for efficient computation across multiple nodes. This guide shows way to run SLURM tasks from a Jupyter notebook using Open OnDemand (OOD).
-
-## Accessing OOD
-
-1. Open [this link to start a new OOD Jupyter Lab session](https://ood-karolina.it4i.cz/pun/sys/dashboard/batch_connect/sys/bc_it4i_jupyter/session_contexts/new).
-
-2. Start a job with 2 nodes and 256 cores.
-
-![](/it4i/software/mpi/img/ood_jupyter.png)
-
-3. A window with Jupyter Lab will open, where you can continue working.
-
-## Setting Up Jupyter Lab
-
-1. Once Jupyter Lab opens, select **File** → **New Launcher**.
-2. Select **Notebook** → **Python 3 (ipykernel)** to create a new notebook.
-
-![](/it4i/software/mpi/img/jupyter_new.png)
-![](/it4i/software/mpi/img/jupyter_ood_start.png)
-
-## Inserting the Sample Code
-
-Paste the following sample code into your new notebook to run a parallel task using MPI:
-
-```python
-import ipyparallel as ipp
-
-def mpi_example():
-    from mpi4py import MPI
-    comm = MPI.COMM_WORLD
-    return f"Hello World from rank {comm.Get_rank()}. total ranks={comm.Get_size()}. host={MPI.Get_processor_name()}"
-
-# Request an MPI cluster with 256 engines
-with ipp.Cluster(controller_ip="*", engines="mpi", n=256) as rc:
-    # Get a broadcast_view on the cluster which is best suited for MPI style computation
-    view = rc.broadcast_view()
-
-    # Run the mpi_example function on all engines in parallel
-    r = view.apply_sync(mpi_example)
-
-    # Retrieve and print the result from the engines
-    print("\n".join(r))
-# At this point, the cluster processes have been shutdown
-```
-
-![](/it4i/software/mpi/img/jupyter_run.png)
-
-## Explanation of the Code
-
-* ipyparallel: Used for parallel computations with multiple processes.
-* mpi4py: A library for working with MPI (Message Passing Interface), which is a method for efficient parallel processing across multiple nodes.
-* The function mpi_example() returns information about each process, such as its rank, total number of processes, and host name.
-* Using ipp.Cluster, we request a cluster with 256 cores and run the function on all nodes concurrently.
-
-## Job Output
-
-### After Execution
-
-When the code is executed, you will see an output similar to this
-
-```console
-Starting 256 engines with <class 'ipyparallel.cluster.launcher.MPIEngineSetLauncher'>
-  0%
- 0/256 [00:00<?, ?engine/s]
-```
-
-### After Completing the Calculation
-
-```console
-Starting 256 engines with <class 'ipyparallel.cluster.launcher.MPIEngineSetLauncher'>
-100%
- 256/256 [00:27<00:00,  2.64engine/s]
-Hello World from rank 0. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 1. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 2. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 3. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 4. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 5. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 6. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 7. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 8. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 9. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 10. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 11. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 12. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 13. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 14. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 15. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 16. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 17. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 18. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 19. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 20. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 21. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 22. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 23. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 24. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 25. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 26. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 27. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 28. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 29. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 30. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 31. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 32. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 33. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 34. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 35. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 36. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 37. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 38. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 39. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 40. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 41. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 42. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 43. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 44. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 45. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 46. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 47. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 48. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 49. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 50. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 51. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 52. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 53. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 54. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 55. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 56. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 57. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 58. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 59. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 60. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 61. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 62. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 63. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 64. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 65. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 66. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 67. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 68. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 69. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 70. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 71. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 72. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 73. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 74. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 75. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 76. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 77. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 78. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 79. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 80. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 81. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 82. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 83. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 84. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 85. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 86. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 87. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 88. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 89. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 90. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 91. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 92. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 93. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 94. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 95. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 96. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 97. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 98. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 99. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 100. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 101. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 102. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 103. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 104. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 105. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 106. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 107. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 108. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 109. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 110. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 111. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 112. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 113. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 114. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 115. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 116. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 117. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 118. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 119. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 120. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 121. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 122. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 123. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 124. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 125. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 126. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 127. total ranks=256. host=cn090.karolina.it4i.cz
-Hello World from rank 128. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 129. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 130. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 131. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 132. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 133. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 134. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 135. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 136. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 137. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 138. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 139. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 140. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 141. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 142. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 143. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 144. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 145. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 146. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 147. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 148. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 149. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 150. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 151. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 152. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 153. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 154. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 155. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 156. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 157. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 158. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 159. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 160. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 161. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 162. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 163. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 164. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 165. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 166. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 167. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 168. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 169. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 170. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 171. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 172. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 173. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 174. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 175. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 176. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 177. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 178. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 179. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 180. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 181. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 182. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 183. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 184. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 185. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 186. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 187. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 188. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 189. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 190. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 191. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 192. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 193. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 194. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 195. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 196. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 197. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 198. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 199. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 200. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 201. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 202. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 203. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 204. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 205. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 206. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 207. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 208. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 209. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 210. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 211. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 212. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 213. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 214. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 215. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 216. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 217. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 218. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 219. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 220. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 221. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 222. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 223. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 224. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 225. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 226. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 227. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 228. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 229. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 230. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 231. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 232. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 233. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 234. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 235. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 236. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 237. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 238. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 239. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 240. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 241. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 242. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 243. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 244. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 245. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 246. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 247. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 248. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 249. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 250. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 251. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 252. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 253. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 254. total ranks=256. host=cn091.karolina.it4i.cz
-Hello World from rank 255. total ranks=256. host=cn091.karolina.it4i.cz
-Stopping engine(s): 1733739848
-```
diff --git a/content/docs/software/mpi/meta.json b/content/docs/software/mpi/meta.json
deleted file mode 100644
index 496faf259ad3c27bceb915cc50b1558987aea73c..0000000000000000000000000000000000000000
--- a/content/docs/software/mpi/meta.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "title": "Mpi",
-  "pages": [
-    "jupyter_mpi",
-    "mpi",
-    "mpi4py-mpi-for-python",
-    "ompi-examples"
-  ]
-}
diff --git a/content/docs/software/mpi/mpi.mdx b/content/docs/software/mpi/mpi.mdx
deleted file mode 100644
index 7b0bca08ed4f80d8d3eedfcf0f9bcb157213c9d4..0000000000000000000000000000000000000000
--- a/content/docs/software/mpi/mpi.mdx
+++ /dev/null
@@ -1,180 +0,0 @@
----
-title: "MPI"
----
-## Setting Up MPI Environment
-
-The Karolina cluster provides several implementations of the MPI library:
-
-* OpenMPI
-* Intel MPI (impi)
-* MPICH
-
-MPI libraries are activated via the environment modules.
-
-<Callout>
-    All OpenMPI modules are configured with `setenv("SLURM_MPI_TYPE", "pmix_v4")`.
-</Callout>
-
-Look up the modulefiles/mpi section in `ml av`:
-
-```console
-$ ml av
-------------------------------------------------------- /apps/modules/mpi -------------------------------------------------------
-   OpenMPI/3.1.4-GCC-6.3.0-2.27               OpenMPI/4.1.1-GCC-10.2.0
-   OpenMPI/4.0.3-GCC-9.3.0                    OpenMPI/4.1.1-GCC-10.3.0                             (D)
-   OpenMPI/4.0.5-GCC-10.2.0                   impi/2017.4.239-iccifort-2017.8.262-GCC-6.3.0-2.27
-   OpenMPI/4.0.5-gcccuda-2020b                impi/2018.4.274-iccifort-2018.5.274-GCC-8.3.0-2.32
-   OpenMPI/4.0.5-iccifort-2020.4.304          impi/2018.4.274-iccifort-2019.1.144-GCC-8.2.0-2.31.1
-   OpenMPI/4.0.5-NVHPC-21.2-CUDA-11.2.2       impi/2019.9.304-iccifort-2020.1.217
-   OpenMPI/4.0.5-NVHPC-21.2-CUDA-11.3.0       impi/2019.9.304-iccifort-2020.4.304
-   OpenMPI/4.1.1-GCC-10.2.0-Java-1.8.0_221    impi/2021.2.0-intel-compilers-2021.2.0               (D)
-   MPICH/3.3.2-GCC-10.2.0
-```
-
-There are default compilers associated with any particular MPI implementation. The defaults may be changed; the MPI libraries may be used in conjunction with any compiler.
-
-Examples:
-
-```console
-$ ml gompi/2020b
-```
-
-In this example, we activate the OpenMPI with the GNU compilers (OpenMPI 4.0.5 and GCC 10.2.0). For more information about toolchains, see the [Environment and Modules][1] section.
-
-To use OpenMPI with the Intel compiler suite, use:
-
-```console
-$ ml iompi/2020b
-```
-
-In this example, the OpenMPI 4.0.5 using the Intel compilers 2020.4.304 is activated. It uses the `iompi` toolchain.
-
-## Compiling MPI Programs
-
-After setting up your MPI environment, compile your program using one of the MPI wrappers:
-
-For module `gompi/2020b`
-
-```console
-$ mpicc -v
-Using built-in specs.
-COLLECT_GCC=/apps/all/GCCcore/10.2.0/bin/gcc
-COLLECT_LTO_WRAPPER=/apps/all/GCCcore/10.2.0/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
-OFFLOAD_TARGET_NAMES=nvptx-none
-Target: x86_64-pc-linux-gnu
-Configured with: ../configure --enable-languages=c,c++,fortran --without-cuda-driver --enable-offload-targets=nvptx-none --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-plugins --enable-gold=default --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCCcore/10.2.0 --with-local-prefix=/apps/all/GCCcore/10.2.0 --enable-bootstrap --with-isl=/dev/shm/easybuild/build/GCCcore/10.2.0/system-system/gcc-10.2.0/stage2_stuff
-Thread model: posix
-Supported LTO compression algorithms: zlib
-gcc version 10.2.0 (GCC)
-$ mpif77 -v
-Using built-in specs.
-COLLECT_GCC=/apps/all/GCCcore/10.2.0/bin/gfortran
-COLLECT_LTO_WRAPPER=/apps/all/GCCcore/10.2.0/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
-OFFLOAD_TARGET_NAMES=nvptx-none
-Target: x86_64-pc-linux-gnu
-Configured with: ../configure --enable-languages=c,c++,fortran --without-cuda-driver --enable-offload-targets=nvptx-none --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-plugins --enable-gold=default --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCCcore/10.2.0 --with-local-prefix=/apps/all/GCCcore/10.2.0 --enable-bootstrap --with-isl=/dev/shm/easybuild/build/GCCcore/10.2.0/system-system/gcc-10.2.0/stage2_stuff
-Thread model: posix
-Supported LTO compression algorithms: zlib
-gcc version 10.2.0 (GCC)
-~$ mpif90 -v
-Using built-in specs.
-COLLECT_GCC=/apps/all/GCCcore/10.2.0/bin/gfortran
-COLLECT_LTO_WRAPPER=/apps/all/GCCcore/10.2.0/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
-OFFLOAD_TARGET_NAMES=nvptx-none
-Target: x86_64-pc-linux-gnu
-Configured with: ../configure --enable-languages=c,c++,fortran --without-cuda-driver --enable-offload-targets=nvptx-none --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-plugins --enable-gold=default --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCCcore/10.2.0 --with-local-prefix=/apps/all/GCCcore/10.2.0 --enable-bootstrap --with-isl=/dev/shm/easybuild/build/GCCcore/10.2.0/system-system/gcc-10.2.0/stage2_stuff
-Thread model: posix
-Supported LTO compression algorithms: zlib
-gcc version 10.2.0 (GCC)
-```
-
-When using Intel MPI, use the following MPI wrappers:
-
-For module `intel/2020b`
-
-```console
-$  mpiicc -v
-mpiicc for the Intel(R) MPI Library 2019 Update 9 for Linux*
-Copyright 2003-2020, Intel Corporation.
-icc version 19.1.3.304 (gcc version 10.2.0 compatibility)
-ld    /lib/../lib64/crt1.o /lib/../lib64/crti.o /apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/crtbegin.o --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 -m elf_x86_64 -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib -o a.out -L/apps/all/imkl/2020.4.304-iimpi-2020b/mkl/lib/intel64 -L/apps/all/imkl/2020.4.304-iimpi-2020b/lib/intel64 -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/libfabric/lib -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib -L/apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64/gcc4.8 -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib -L/apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib/../lib64 -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib/../lib64 -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib/../lib64 -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib/../lib64 -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/ -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../lib64 -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/apps/all/imkl/2020.4.304-iimpi-2020b/mkl/lib/intel64/ -L/apps/all/imkl/2020.4.304-iimpi-2020b/lib/intel64/ -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/libfabric/lib/ -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release/ -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/ -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib64 -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib/ -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib64 -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib/ -L/apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64/gcc4.8/ -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib64 -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib/ -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib64 -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib/ -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib --enable-new-dtags -rpath /apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release -rpath /apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib -lmpifort -lmpi -ldl -lrt -lpthread -Bdynamic -Bstatic -limf -lsvml -lirng -Bdynamic -lm -Bstatic -lipgo -ldecimal --as-needed -Bdynamic -lcilkrts -lstdc++ --no-as-needed -lgcc -lgcc_s -Bstatic -lirc -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/crtend.o /lib/../lib64/crtn.o
-$ mpiifort -v
-mpiifort for the Intel(R) MPI Library 2019 Update 9 for Linux*
-Copyright 2003-2020, Intel Corporation.
-ifort version 19.1.3.304
-ld    /lib/../lib64/crt1.o /lib/../lib64/crti.o /apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/crtbegin.o --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 -m elf_x86_64 -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib -o a.out /apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin/for_main.o -L/apps/all/imkl/2020.4.304-iimpi-2020b/mkl/lib/intel64 -L/apps/all/imkl/2020.4.304-iimpi-2020b/lib/intel64 -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/libfabric/lib -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib -L/apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64/gcc4.8 -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib -L/apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib/../lib64 -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib/../lib64 -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib/../lib64 -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib/../lib64 -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib/../lib64/ -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/ -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../lib64 -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/apps/all/imkl/2020.4.304-iimpi-2020b/mkl/lib/intel64/ -L/apps/all/imkl/2020.4.304-iimpi-2020b/lib/intel64/ -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/libfabric/lib/ -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release/ -L/apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/ -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib64 -L/apps/all/UCX/1.9.0-GCCcore-10.2.0/lib/ -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib64 -L/apps/all/numactl/2.0.13-GCCcore-10.2.0/lib/ -L/apps/all/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64/gcc4.8/ -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib64 -L/apps/all/binutils/2.35-GCCcore-10.2.0/lib/ -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib64 -L/apps/all/zlib/1.2.11-GCCcore-10.2.0/lib/ -L/apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib --enable-new-dtags -rpath /apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib/release -rpath /apps/all/impi/2019.9.304-iccifort-2020.4.304/intel64/lib -lmpifort -lmpi -ldl -lrt -lpthread -Bdynamic -Bstatic -lifport -lifcoremt -limf -lsvml -Bdynamic -lm -Bstatic -lipgo -lirc -Bdynamic -lpthread -Bstatic -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /apps/all/GCCcore/10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/crtend.o /lib/../lib64/crtn.o
-```
-
-Wrappers `mpif90` and `mpif77` provided by Intel MPI are designed for GCC and GFortran. You might be able to compile MPI code by them even with Intel compilers, but you might run into problems.
-
-Example program:
-
-```cpp
-// helloworld_mpi.c
-#include <stdio.h>
-
-#include<mpi.h>
-
-int main(int argc, char **argv) {
-
-int len;
-int rank, size;
-char node[MPI_MAX_PROCESSOR_NAME];
-
-// Initiate MPI
-MPI_Init(&argc, &argv);
-MPI_Comm_rank(MPI_COMM_WORLD,&rank);
-MPI_Comm_size(MPI_COMM_WORLD,&size);
-
-// Get hostame and print
-MPI_Get_processor_name(node,&len);
-printf("Hello world! from rank %d of %d on host %sn",rank,size,node);
-
-// Finalize and exit
-MPI_Finalize();
-
-return 0;
-}
-```
-
-Compile the above example with:
-
-```console
-$ mpicc helloworld_mpi.c -o helloworld_mpi.x
-```
-
-## Running MPI Programs
-
-The MPI program executable must be compatible with the loaded MPI module.
-Always compile and execute using the very same MPI module.
-
-It is strongly discouraged to mix MPI implementations. Linking an application with one MPI implementation and running `mpirun`/`mpiexec` from another implementation may result in unexpected errors.
-
-The MPI program executable must be available within the same path on all nodes. This is automatically fulfilled on the /home and /scratch filesystem. You need to preload the executable if running on the local scratch /lscratch filesystem.
-
-### Ways to Run MPI Programs
-
-The optimal way to run an MPI program depends on its memory requirements, memory access pattern and communication pattern.
-
-<Callout>
-    Consider these ways to run an MPI program:
-    1. One MPI process per node, 128 threads per process
-    2. Two MPI processes per node, 64 threads per process
-    3. 128 MPI processes per node, 1 thread per process.
-</Callout>
-
-**One MPI** process per node, using 128 threads, is most useful for memory demanding applications that make good use of processor cache memory and are not memory-bound. This is also a preferred way for communication intensive applications as one process per node enjoys full bandwidth access to the network interface.
-
-**Two MPI** processes per node, using 64 threads each, bound to processor socket is most useful for memory bandwidth-bound applications such as BLAS1 or FFT with scalable memory demand. However, note that the two processes will share access to the network interface. The 64 threads and socket binding should ensure maximum memory access bandwidth and minimize communication, migration, and NUMA effect overheads.
-
-<Callout type=warn>
-    Important! Bind every OpenMP thread to a core!
-</Callout>
-
-In the previous two cases with one or two MPI processes per node, the operating system might still migrate OpenMP threads between cores. You want to avoid this by setting the `KMP_AFFINITY` or `GOMP_CPU_AFFINITY` environment variables.
-
-**128 MPI** processes per node, using 1 thread each bound to a processor core is most suitable for highly scalable applications with low communication demand.
-
-[1]: ../../modules-matrix.md
-
-[a]: http://www.open-mpi.org/
diff --git a/content/docs/software/mpi/mpi4py-mpi-for-python.mdx b/content/docs/software/mpi/mpi4py-mpi-for-python.mdx
deleted file mode 100644
index 24c28dd79f2ea375c99e82f3123e81d6d2542a61..0000000000000000000000000000000000000000
--- a/content/docs/software/mpi/mpi4py-mpi-for-python.mdx
+++ /dev/null
@@ -1,217 +0,0 @@
----
-title: "MPI4Py (MPI for Python)"
----
-## Introduction
-
-MPI for Python provides bindings of the Message Passing Interface (MPI) standard for the Python programming language, allowing any Python program to exploit multiple processors.
-
-This package is constructed on top of the MPI-1/2 specifications and provides an object-oriented interface, which closely follows MPI-2 C++ bindings. It supports point-to-point (sends, receives) and collective (broadcasts, scatters, gathers) communications of any picklable Python object, as well as optimized communications of Python object exposing the single-segment buffer interface (NumPy arrays, builtin bytes/string/array objects).
-
-MPI4Py is available in standard Python modules on the clusters.
-
-## Modules
-
-MPI4Py is built for OpenMPI or Intel MPI. Before you start with MPI4Py, you need to load the mpi4py module.
-
-```console
-$  ml av mpi4py
-
--------------------------------------- /apps/modules/lib ---------------------------------------
-   mpi4py/3.1.4-gompi-2022b    mpi4py/3.1.4-gompi-2023a    mpi4py/3.1.5-gompi-2023b (D)
-```
-
-## Execution
-
-You need to import MPI to your Python program. Include the following line to the Python script:
-
-```python
-from mpi4py import MPI
-```
-
-The MPI4Py-enabled Python programs execute as any other OpenMPI code. The simpliest way is to run:
-
-```console
-$ mpirun python <script>.py
-```
-
-For example:
-
-```console
-$ mpirun python hello_world.py
-```
-
-## Examples
-
-Execute the above code as:
-
-```console
-$ salloc -p qcpu -A PROJECT_ID --nodes=4 --ntasks-per-node=128 --cpus-per-task=1
-$ ml mpi4py/3.1.5-gompi-2023b
-```
-
-### Hello World!
-
-```python
-#!/usr/bin/env python
-"""
-Parallel Hello World
-"""
-
-from mpi4py import MPI
-import sys
-
-size = MPI.COMM_WORLD.Get_size()
-rank = MPI.COMM_WORLD.Get_rank()
-name = MPI.Get_processor_name()
-
-sys.stdout.write(
-    "Hello, World! I am process %d of %d on %s.\n"
-    % (rank, size, name))
-```
-
-```console
-mpirun python ./hello_world.py
-...
-Hello, World! I am process 81 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 91 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 15 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 105 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 112 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 11 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 83 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 58 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 103 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 4 of 512 on cn041.karolina.it4i.cz.
-Hello, World! I am process 28 of 512 on cn041.karolina.it4i.cz.
-```
-
-### Mandelbrot
-
-```python
-from mpi4py import MPI
-import numpy as np
-
-tic = MPI.Wtime()
-
-x1 = -2.0
-x2 =  1.0
-y1 = -1.0
-y2 =  1.0
-
-w = 150
-h = 100
-maxit = 127
-
-def mandelbrot(x, y, maxit):
-    c = x + y*1j
-    z = 0 + 0j
-    it = 0
-    while abs(z) < 2 and it < maxit:
-        z = z**2 + c
-        it += 1
-    return it
-
-comm = MPI.COMM_WORLD
-size = comm.Get_size()
-rank = comm.Get_rank()
-
-rmsg = np.empty(4, dtype='f')
-imsg = np.empty(3, dtype='i')
-
-if rank == 0:
-    rmsg[:] = [x1, x2, y1, y2]
-    imsg[:] = [w, h, maxit]
-
-comm.Bcast([rmsg, MPI.FLOAT], root=0)
-comm.Bcast([imsg, MPI.INT], root=0)
-
-x1, x2, y1, y2 = [float(r) for r in rmsg]
-w, h, maxit    = [int(i) for i in imsg]
-dx = (x2 - x1) / w
-dy = (y2 - y1) / h
-
-# number of lines to compute here
-N = h // size + (h % size > rank)
-N = np.array(N, dtype='i')
-# indices of lines to compute here
-I = np.arange(rank, h, size, dtype='i')
-# compute local lines
-C = np.empty([N, w], dtype='i')
-for k in np.arange(N):
-    y = y1 + I[k] * dy
-    for j in np.arange(w):
-        x = x1 + j * dx
-        C[k, j] = mandelbrot(x, y, maxit)
-# gather results at root
-counts = 0
-indices = None
-cdata = None
-if rank == 0:
-    counts = np.empty(size, dtype='i')
-    indices = np.empty(h, dtype='i')
-    cdata = np.empty([h, w], dtype='i')
-comm.Gather(sendbuf=[N, MPI.INT],
-            recvbuf=[counts, MPI.INT],
-            root=0)
-comm.Gatherv(sendbuf=[I, MPI.INT],
-             recvbuf=[indices, (counts, None), MPI.INT],
-             root=0)
-comm.Gatherv(sendbuf=[C, MPI.INT],
-             recvbuf=[cdata, (counts*w, None), MPI.INT],
-             root=0)
-# reconstruct full result at root
-if rank == 0:
-    M = np.zeros([h,w], dtype='i')
-    M[indices, :] = cdata
-
-toc = MPI.Wtime()
-wct = comm.gather(toc-tic, root=0)
-if rank == 0:
-    for task, time in enumerate(wct):
-        print('wall clock time: %8.2f seconds (task %d)' % (time, task))
-    def mean(seq): return sum(seq)/len(seq)
-    print    ('all tasks, mean: %8.2f seconds' % mean(wct))
-    print    ('all tasks, min:  %8.2f seconds' % min(wct))
-    print    ('all tasks, max:  %8.2f seconds' % max(wct))
-    print    ('all tasks, sum:  %8.2f seconds' % sum(wct))
-
-# eye candy (requires matplotlib)
-if rank == 0:
-    try:
-        from matplotlib import pyplot as plt
-        plt.imshow(M, aspect='equal')
-        plt.spectral()
-        try:
-            import signal
-            def action(*args): raise SystemExit
-            signal.signal(signal.SIGALRM, action)
-            signal.alarm(2)
-        except:
-            pass
-        plt.show()
-    except:
-        pass
-MPI.COMM_WORLD.Barrier()
-```
-
-```console
-mpirun python mandelbrot.py
-...
-wall clock time:     0.26 seconds (task 505)
-wall clock time:     0.25 seconds (task 506)
-wall clock time:     0.24 seconds (task 507)
-wall clock time:     0.25 seconds (task 508)
-wall clock time:     0.25 seconds (task 509)
-wall clock time:     0.26 seconds (task 510)
-wall clock time:     0.25 seconds (task 511)
-all tasks, mean:     0.19 seconds
-all tasks, min:      0.00 seconds
-all tasks, max:      0.73 seconds
-all tasks, sum:     96.82 seconds
-```
-
-In this example, we run MPI4Py-enabled code on 4 nodes, 128 cores per node (total of 512 processes), each Python process is bound to a different core. More examples and documentation can be found on [MPI for Python webpage][a].
-
-You can increase `n` and watch the time lowering.
-
-[a]: https://pypi.python.org/pypi/mpi4py
diff --git a/content/docs/software/mpi/ompi-examples.mdx b/content/docs/software/mpi/ompi-examples.mdx
deleted file mode 100644
index f7101f0c94f92688263d4712dd336fddcea6b895..0000000000000000000000000000000000000000
--- a/content/docs/software/mpi/ompi-examples.mdx
+++ /dev/null
@@ -1,283 +0,0 @@
----
-title: "OpenMPI Sample Applications"
----
-Sample MPI applications provided both as a trivial primer to MPI as well as simple tests to ensure that your OpenMPI installation is working properly.
-
-## Examples
-
-There are two MPI examples, each using one of six different MPI interfaces:
-
-### Hello World
-
-```
-/*
- * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
- *                         University Research and Technology
- *                         Corporation.  All rights reserved.
- * Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
- *
- * Sample MPI "hello world" application in C
- */
-
-<!-- markdownlint-disable MD018 MD025 -->
-#include <stdio.h>
-#include "mpi.h"
-
-int main(int argc, char* argv[])
-{
-    int rank, size, len;
-    char version[MPI_MAX_LIBRARY_VERSION_STRING];
-
-    MPI_Init(&argc, &argv);
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    MPI_Comm_size(MPI_COMM_WORLD, &size);
-    MPI_Get_library_version(version, &len);
-    printf("Hello, world, I am %d of %d, (%s, %d)\n",
-           rank, size, version, len);
-    MPI_Finalize();
-
-    return 0;
-}
-```
-
-```
-//
-// Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-//                         University Research and Technology
-//                         Corporation.  All rights reserved.
-// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
-//
-// Sample MPI "hello world" application in C++
-//
-// NOTE: The MPI C++ bindings were deprecated in MPI-2.2 and removed
-// from the standard in MPI-3.  Open MPI still provides C++ MPI
-// bindings, but they are no longer built by default (and may be
-// removed in a future version of Open MPI).  You must
-// --enable-mpi-cxx when configuring Open MPI to enable the MPI C++
-// bindings.
-//
-
-<!-- markdownlint-disable MD018 MD025 -->
-#include "mpi.h"
-<!-- markdownlint-disable MD022 -->
-#include <iostream>
-
-int main(int argc, char **argv)
-{
-    int rank, size, len;
-    char version[MPI_MAX_LIBRARY_VERSION_STRING];
-
-    MPI::Init();
-    rank = MPI::COMM_WORLD.Get_rank();
-    size = MPI::COMM_WORLD.Get_size();
-    MPI_Get_library_version(version, &len);
-    std::cout << "Hello, world!  I am " << rank << " of " << size
-              << "(" << version << ", " << len << ")" << std::endl;
-    MPI::Finalize();
-
-    return 0;
-}
-```
-
-```
-C
-C Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-C                         University Research and Technology
-C                         Corporation.  All rights reserved.
-C Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-C $COPYRIGHT$
-C
-C Sample MPI "hello world" application using the Fortran mpif.h
-C bindings.
-C
-        program main
-        implicit none
-        include 'mpif.h'
-        integer ierr, rank, size, len
-        character(len=MPI_MAX_LIBRARY_VERSION_STRING) version
-
-        call MPI_INIT(ierr)
-        call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
-        call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
-        call MPI_GET_LIBRARY_VERSION(version, len, ierr)
-
-        write(*, '("Hello, world, I am ", i2, " of ", i2, ": ", a)')
-     &        rank, size, version
-
-        call MPI_FINALIZE(ierr)
-
-        end
-```
-
-```
-!
-! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-!                         University Research and Technology
-!                         Corporation.  All rights reserved.
-! Copyright (c) 2004-2005 The Regents of the University of California.
-!                         All rights reserved.
-! Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-! $COPYRIGHT$
-!
-! Sample MPI "hello world" application using the Fortran mpi module
-! bindings.
-!
-program main
-    use mpi
-    implicit none
-    integer :: ierr, rank, size, len
-    character(len=MPI_MAX_LIBRARY_VERSION_STRING) :: version
-
-    call MPI_INIT(ierr)
-    call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
-    call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
-    call MPI_GET_LIBRARY_VERSION(version, len, ierr)
-
-    write(*, '("Hello, world, I am ", i2, " of ", i2, ": ", a)') &
-          rank, size, version
-
-    call MPI_FINALIZE(ierr)
-end
-```
-
-```
-/*
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-*/
-/*
- * Author of revised version: Franklyn Pinedo
- *
- * Adapted from Source Code in C of Tutorial/User's Guide for MPI by
- * Peter Pacheco.
- */
-/*
- * Copyright (c) 2011      Cisco Systems, Inc.  All rights reserved.
- *
- */
-
-import mpi.*;
-
-class Hello {
-    static public void main(String[] args) throws MPIException {
-
-	MPI.Init(args);
-
-	int myrank = MPI.COMM_WORLD.getRank();
-	int size = MPI.COMM_WORLD.getSize() ;
-	System.out.println("Hello world from rank " + myrank + " of " + size);
-
-	MPI.Finalize();
-    }
-}
-```
-
-* C:                   [hello_c.c](/it4i/src/ompi/hello_c.c)
-* C++:                 [hello_cxx.cc](/it4i/src/ompi/hello_cxx.cc)
-* Fortran mpif.h:      [hello_mpifh.f](/it4i/src/ompi/hello_mpifh.f)
-* Fortran use mpi:     [hello_usempi.f90](/it4i/src/ompi/hello_usempi.f90)
-* Fortran use mpi_f08: [hello_usempif08.f90](/it4i/src/ompi/hello_usempif08.f90)
-* Java:                [Hello.java](/it4i/src/ompi/Hello.java)
-* C shmem.h:           [hello_oshmem_c.c](/it4i/src/ompi/hello_oshmem_c.c)
-* Fortran shmem.fh:    [hello_oshmemfh.f90](/it4i/src/ompi/hello_oshmemfh.f90)
-
-<!-- markdownlint-disable MD001 -->
-### Send a Trivial Message Around in a Ring
-
-* C:                   [ring_c.c](/it4i/src/ompi/ring_c.c)
-* C++:                 [ring_cxx.cc](/it4i/src/ompi/ring_cxx.cc)
-* Fortran mpif.h:      [ring_mpifh.f](/it4i/src/ompi/ring_mpifh.f)
-* Fortran use mpi:     [ring_usempi.f90](/it4i/src/ompi/ring_usempi.f90)
-* Fortran use mpi_f08: [ring_usempif08.f90](/it4i/src/ompi/ring_usempif08.f90)
-* Java:                [Ring.java](/it4i/src/ompi/Ring.java)
-* C shmem.h:           [ring_oshmem_c.c](/it4i/src/ompi/ring_oshmem_c.c)
-* Fortran shmem.fh:    [ring_oshmemfh.f90](/it4i/src/ompi/ring_oshmemfh.f90)
-
-Additionally, there's one further example application, but this one only uses the MPI C bindings:
-
-<!-- markdownlint-disable MD001 -->
-### Test the Connectivity Between All Pross
-
-* C:   [connectivity_c.c](/it4i/src/ompi/connectivity_c.c)
-
-## Build Examples
-
-Download [examples](/it4i/src/ompi/ompi.tar.gz).
-
-The Makefile in this directory will build the examples for the supported languages (e.g., if you do not have the Fortran "use mpi" bindings compiled as part of OpenMPI, those examples will be skipped).
-
-The Makefile assumes that the wrapper compilers mpicc, mpic++, and mpifort are in your path.
-
-Although the Makefile is tailored for OpenMPI (e.g., it checks the *mpi_info* command to see if you have support for C++, mpif.h, use mpi, and use mpi_f08 F90), all of the example programs are pure MPI, and therefore not specific to OpenMPI.  Hence, you can use a different MPI implementation to compile and run these programs if you wish.
-
-```console
-$ tar xvf ompi.tar.gz
-ompi/
-ompi/ring_usempif08.f90
-ompi/hello_c.c
-ompi/oshmem_max_reduction.c
-...
-...
-ompi/hello_usempi.f90
-$ cd ompi
-$ ml OpenMPI/4.1.4-GCC-11.3.0
-$ make
-mpicc -g  hello_c.c  -o hello_c
-mpicc -g  ring_c.c  -o ring_c
-mpicc -g  connectivity_c.c  -o connectivity_c
-mpicc -g  spc_example.c  -o spc_example
-mpic++ -g  hello_cxx.cc  -o hello_cxx
-mpic++ -g  ring_cxx.cc  -o ring_cxx
-mpifort -g  hello_mpifh.f  -o hello_mpifh
-mpifort -g  ring_mpifh.f  -o ring_mpifh
-mpifort -g  hello_usempi.f90  -o hello_usempi
-mpifort -g  ring_usempi.f90  -o ring_usempi
-mpifort -g  hello_usempif08.f90  -o hello_usempif08
-mpifort -g  ring_usempif08.f90  -o ring_usempif08
-mpijavac Hello.java
-mpijavac Ring.java
-shmemcc -g  hello_oshmem_c.c  -o hello_oshmem
-shmemc++ -g  hello_oshmem_cxx.cc  -o hello_oshmemcxx
-shmemcc -g  ring_oshmem_c.c  -o ring_oshmem
-shmemcc -g  oshmem_shmalloc.c  -o oshmem_shmalloc
-shmemcc -g  oshmem_circular_shift.c  -o oshmem_circular_shift
-shmemcc -g  oshmem_max_reduction.c  -o oshmem_max_reduction
-shmemcc -g  oshmem_strided_puts.c  -o oshmem_strided_puts
-shmemcc -g  oshmem_strided_puts.c  -o oshmem_strided_puts
-shmemcc -g  oshmem_symmetric_data.c  -o oshmem_symmetric_data
-shmemfort -g  hello_oshmemfh.f90  -o hello_oshmemfh
-shmemfort -g  ring_oshmemfh.f90  -o ring_oshmemfh
-$ find . -executable -type f
-./hello_oshmem
-./dtrace/myppriv.sh
-./dtrace/partrace.sh
-./oshmem_shmalloc
-./ring_cxx
-./ring_usempi
-./hello_mpifh
-./hello_cxx
-./oshmem_max_reduction
-./oshmem_symmetric_data
-./oshmem_strided_puts
-./hello_usempif08
-./ring_usempif08
-./spc_example
-./hello_oshmemfh
-./ring_oshmem
-./oshmem_circular_shift
-./hello_c
-./ring_c
-./hello_usempi
-./ring_oshmemfh
-./connectivity_c
-./ring_mpifh
-```
diff --git a/content/docs/software/numerical-languages/introduction.mdx b/content/docs/software/numerical-languages/introduction.mdx
deleted file mode 100644
index c9df267202b51d90db2b55a6ebd8f5c66240e797..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-languages/introduction.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: "Numerical Languages"
----
-Interpreted languages for numerical computations and analysis
-
-## Introduction
-
-This section contains a collection of high-level interpreted languages, primarily intended for numerical computations.
-
-## MATLAB
-
-MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming.
-
-```console
-$ ml av MATLAB
--------------- /apps/modules/math --------------
-   MATLAB/2021a
-$ ml MATLAB/2021a
-$ matlab
-```
-
-Read more at the [MATLAB page][1].
-
-## Octave
-
-GNU Octave is a high-level interpreted language, primarily intended for numerical computations. The Octave language is quite similar to MATLAB so that most programs are easily portable.
-
-```console
-$ ml av Octave
--------------- /apps/modules/math --------------
-Octave/6.3.0-intel-2020b-without-X11
-$ ml Octave/6.3.0-intel-2020b-without-X11
-$ octave
-```
-
-Read more at the [Octave page][2].
-
-## R
-
-The R is an interpreted language and environment for statistical computing and graphics.
-
-```console
-$ ml av R/
--------------- /apps/modules/math --------------
-
-$ ml R
-$ R
-```
-
-Read more at the [R page][3].
-
-[1]: matlab.md
-[2]: octave.md
-[3]: r.md
diff --git a/content/docs/software/numerical-languages/matlab.mdx b/content/docs/software/numerical-languages/matlab.mdx
deleted file mode 100644
index 95725c12b5f486dc8d16fc7b5815d00477707189..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-languages/matlab.mdx
+++ /dev/null
@@ -1,359 +0,0 @@
----
-title: "MATLAB"
----
-## Introduction
-
-MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language
-and numeric computing environment developed by MathWorks.
-MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms,
-creation of user interfaces, and interfacing with programs written in other languages.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av MATLAB
-```
-
-## MATLAB GUI
-
-If you need to use the MATLAB GUI to prepare your MATLAB programs, you can use MATLAB directly on the login nodes.
-However, for all computations, use MATLAB on the compute nodes via Slurm workload manager.
-
-If you require the MATLAB GUI, follow the general information about [running graphical applications][1].
-
-MATLAB GUI is quite slow using the X forwarding built in the Slurm (`srun --x11`),
-so using X11 display redirection either via SSH or directly by `xauth`
-(see the [GUI Applications on Compute Nodes over VNC][1] section) is recommended.
-
-To run MATLAB with GUI, use:
-
-```console
-$ matlab
-```
-
-To run MATLAB in text mode, without the MATLAB Desktop GUI environment, use:
-
-```console
-$ matlab -nodesktop -nosplash
-```
-
-plots, images, etc. will be still available.
-
-## MATLAB Configuration
-
-### Client Configuration
-
-After logging into the cluster, start MATLAB.
-On the Home tab, click Parallel > Discover Clusters… to discover the profile.
-
-![](/it4i/img/dis_clluster.png)
-
-Jobs will now default to the cluster rather than submit to the local machine.
-
-### Job Configuration
-
-Prior to submitting the job, various parameters can be assigned, such as queue, e-mail,walltime, etc.
-The following is a partial list of parameters.
-See `AdditionalProperties` for the complete list.
-Only the `ProjectName` is required.
-
-```
->> % Get a handle to the cluster
->> c = parcluster;
-
-[REQUIRED]
-
->> % Specify the project name
->> c.AdditionalProperties.ProjectName = 'project-name';
-
-[OPTIONAL]
-
->> % Specify a constraint
->> c.AdditionalProperties.Constraint = 'feature-name';
-
->> % Request email notification of job status
->> c.AdditionalProperties.EmailAddress = 'user-id@university.edu';
-
-
->> % Specify number of GPUs
->> c.AdditionalProperties.GpusPerNode = 1;
->> c.AdditionalProperties.GpuCard = 'gpu-card';
-
->> % Specify memory to use, per core (default: 4gb) [FOR GPU NODES]
->> c.AdditionalProperties.MemPerCPU = '6gb';
-
->> % Specify the partition
->> c.AdditionalProperties.Partition = 'partition-name';
-
->> % Specify cores per node
->> c.AdditionalProperties.ProcsPerNode = 4;
-
->> % Specify QoS
->> c.AdditionalProperties.QoS = 'qos-name';
-
->> % Use reservation
->> c.AdditionalProperties.Reservation = 'reservation-name';
-
->> % Specify the wall time (e.g., 1 day, 5 hours, 30 minutes)
->> c.AdditionalProperties.WallTime = '1-05:30';
-```
-
-Save changes after modifying AdditionalProperties for the above changes to persist between MATLAB sessions.
-
-```
->> c.saveProfile
-```
-
-To see the values of the current configuration options, display AdditionalProperties.
-
-```
->> % To view current properties
->> c.AdditionalProperties
-```
-
-Unset a value when no longer needed.
-
-```
->> % Turn off email notifications
->> c.AdditionalProperties.EmailAddress = '';
->> c.saveProfile
-```
-
-## Running Job
-
-### Interactive Jobs
-
-To run an interactive pool job on the cluster, continue to use `parpool` as before.
-
-```
->> % Get a handle to the cluster
->> c = parcluster;
-
->> % Open a pool of 64 workers on the cluster
->> pool = c.parpool(64);
-```
-
-Rather than running local on the local machine, the pool can now run across multiple nodes on the cluster.
-
-```
->> % Run a parfor over 1000 iterations
->> parfor idx = 1:1000
-      a(idx) = rand;
-   end
-```
-
-Delete the pool when it’s no longer needed.
-
-```
->> % Delete the pool
->> pool.delete
-```
-
-### Independent Batch Job
-
-Use the batch command to submit asynchronous jobs to the cluster.
-The batch command will return a job object which is used to access the output of the submitted job.
-See the MATLAB documentation for more help on batch.
-
-```
->> % Get a handle to the cluster
->> c = parcluster;
-
->> % Submit job to query where MATLAB is running on the cluster
->> job = c.batch(@pwd, 1, {});
-
->> % Query job for state
->> job.State
-
->> % If state is finished, fetch the results
->> job.fetchOutputs{:}
-
->> % Delete the job after results are no longer needed
->> job.delete
-```
-
-To retrieve a list of running or completed jobs, call `parcluster` to return the cluster object.
-The cluster object stores an array of jobs that are queued to run, are running, have run, or have failed.
-Retrieve and view the list of jobs as shown below.
-
-```
->> c = parcluster;
->> jobs = c.Jobs
->>
->> % Get a handle to the second job in the list
->> job2 = c.Jobs(2);
-```
-
-Once the job has been selected, fetch the results as previously done.
-
-`fetchOutputs` is used to retrieve function output arguments; if calling `batch` with a script, use `load` instead.
-Data that has been written to files on the cluster needs be retrieved directly from the file system (e.g., via SFTP).
-
-```
->> % Fetch all results from the second job in the list
->> job2.fetchOutputs{:}
-```
-
-### Parallel Batch Job
-
-`batch` can also submit parallel workflows.
-Let’s use the following example for a parallel job, which is saved as `parallel_example.m`.
-
-```
-function [sim_t, A] = parallel_example(iter)
-
-if nargin==0
-    iter = 8;
-end
-
-disp('Start sim')
-
-t0 = tic;
-parfor idx = 1:iter
-    A(idx) = idx;
-    pause(2)
-    idx
-end
-sim_t = toc(t0);
-
-disp('Sim completed')
-
-save RESULTS A
-
-end
-```
-
-This time when using the `batch` command, also specify a MATLAB `Pool` argument.
-
-```
->> % Get a handle to the cluster
->> c = parcluster;
-
->> % Submit a batch pool job using 4 workers for 16 simulations
->> job = c.batch(@parallel_example, 1, {16}, 'Pool',4);
-
->> % View current job status
->> job.State
-
->> % Fetch the results after a finished state is retrieved
->> job.fetchOutputs{:}
-
-ans =
-	8.8872
-```
-
-The job ran in 8.89 seconds using four workers.
-Note that these jobs will always request N+1 CPU cores, since one worker is required to manage the batch job and pool of workers.
-For example, a job that needs eight workers will request nine CPU cores.
-
-Run the same simulation but increase the Pool size. This time, to retrieve the results later, keep track of the job ID.
-
-<Callout>
-    For some applications, there will be a diminishing return when allocating too many workers,
-    as the overhead may exceed computation time.
-</Callout>
-
-```
->> % Get a handle to the cluster
->> c = parcluster;
-
->> % Submit a batch pool job using 8 workers for 16 simulations
->> job = c.batch(@parallel_example, 1, {16}, 'Pool',8);
-
->> % Get the job ID
->> id = job.ID
-id =
-	4
->> % Clear job from workspace (as though MATLAB exited)
->> clear job
-```
-
-With a handle to the cluster, the `findJob` method searches for the job with the specified job ID.
-
-```
->> % Get a handle to the cluster
->> c = parcluster;
-
->> % Find the old job
->> job = c.findJob('ID', 4);
-
->> % Retrieve the state of the job
->> job.State
-
-ans =
-finished
-
->> % Fetch the results
->> job.fetchOutputs{:};
-
-ans =
-4.7270
-```
-
-The job now runs in 4.73 seconds using eight workers.
-Run code with different number of workers to determine the ideal number to use.
-
-Alternatively, to retrieve job results via a graphical user interface, use the Job Monitor (Parallel > Monitor Jobs).
-
-![](/it4i/img/monitor_job.png)
-
-## Helper Functions
-
-| Function              | Description                          |
-| --------------------- | ------------------------------------ |
-| clusterFeatures       | List of cluster features/constraints |
-| clusterGpuCards       | List of cluster GPU cards            |
-| clusterPartitionNames | List of cluster partition            |
-| willRun               | Explain why job is queued            |
-
-### Debugging
-
-If a serial job produces an error, call the `getDebugLog` method to view the error log file.
-When submitting an independent job, specify the task.
-
-```
->> c.getDebugLog(job.Tasks)
-```
-
-For Pool jobs, only specify the job object.
-
-```
->> c.getDebugLog(job)
-```
-
-When troubleshooting a job, the cluster admin may request the scheduler ID of the job.
-This can be derived by calling `getTaskSchedulerIDs`).
-
-```
->> job.getTaskSchedulerIDs()
-ans =
-25539
-```
-
-## Additional Information
-
-For more information about the MATLAB Parallel Computing Toolbox,
-see the following resources:
-
-* [Parallel Computing Overview][c]
-* [Parallel Computing Documentation][d]
-* [Parallel Computing Coding Examples][e]
-* [Parallel Computing Tutorials][f]
-* [Parallel Computing Videos][g]
-* [Parallel Computing Webinars][h]
-
-[1]: ../../general/accessing-the-clusters/graphical-user-interface/vnc.md#gui-applications-on-compute-nodes-over-vnc
-[2]: #running-parallel-matlab-using-distributed-computing-toolbox---engine
-[3]: ../isv_licenses.md
-[4]: #parallel-matlab-batch-job-in-local-mode
-
-[a]: https://www.mathworks.com/help/parallel-computing/release-notes.html
-[b]: https://www.e-infra.cz/en
-[c]: https://www.mathworks.com/products/parallel-computing.html
-[d]: https://www.mathworks.com/help/parallel-computing/index.html
-[e]: https://www.mathworks.com/help/parallel-computing/examples.html
-[f]: https://www.mathworks.com/videos/series/parallel-and-gpu-computing-tutorials-97719.html
-[g]: https://www.mathworks.com/videos/search.html?q=&fq%5B%5D=product:DM&page=1
-[h]: https://www.mathworks.com/videos/search.html?q=&fq%5B%5D=product:DM&fq%5B%5D=video-external-category:recwebinar&page=1
diff --git a/content/docs/software/numerical-languages/meta.json b/content/docs/software/numerical-languages/meta.json
deleted file mode 100644
index 6b9c5e4264632ba53ff805b46ecb5ab6c54cfadc..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-languages/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Numerical-languages",
-  "pages": [
-    "introduction",
-    "matlab",
-    "octave",
-    "opencoarrays",
-    "r"
-  ]
-}
diff --git a/content/docs/software/numerical-languages/octave.mdx b/content/docs/software/numerical-languages/octave.mdx
deleted file mode 100644
index 1c77658cc75b4600be0181588673d4809bacfec5..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-languages/octave.mdx
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "Octave"
----
-## Introduction
-
-GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable. Read more [here][a].
-
-For a list of available modules, type:
-
-```console
-$ ml av octave
-------------------------------- /apps/modules/math -------------------------------
-   Octave/6.3.0-intel-2020b-without-X11
-```
-
-## Modules and Execution
-
-To load the latest version of Octave load the module:
-
-```console
-$ ml Octave
-```
-
-Octave on clusters is linked to a highly optimized MKL mathematical library. This provides threaded parallelization to many Octave kernels, notably the linear algebra subroutines. Octave runs these heavy calculation kernels without any penalty. By default, Octave would parallelize to 128 threads on Karolina. You may control the threads by setting the `OMP_NUM_THREADS` environment variable.
-
-To run Octave interactively, log in with the `ssh -X` parameter for X11 forwarding. Run Octave:
-
-```console
-$ octave
-```
-
-To run Octave in batch mode, write an Octave script, then write a bash jobscript and execute via the `salloc` command. By default, Octave will use 128 threads on Karolina when running MKL kernels.
-
-```bash
-#!/bin/bash
-
-# change to local scratch directory
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOB_ID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-# copy input file to scratch
-cp $SLURM_SUBMIT_DIR/octcode.m .
-
-# load octave module
-ml  Octave/6.3.0-intel-2020b-without-X11
-
-# execute the calculation
-octave -q --eval octcode > output.out
-
-# copy output file to home
-cp output.out $SLURM_SUBMIT_DIR/.
-
-#exit
-exit
-```
-
-This script may be submitted directly to Slurm via the `salloc` command. The inputs are in the octcode.m file, outputs in the output.out file. See the single node jobscript example in the [Job execution section][1].
-
-The Octave c compiler `mkoctfile` calls the GNU GCC 6.3.0 for compiling native C code. This is very useful for running native C subroutines in Octave environment.
-
-```console
-$ mkoctfile -v
-mkoctfile, version 6.3.0
-```
-
-Octave may use MPI for interprocess communication This functionality is currently not supported on the clusters. In case you require the Octave interface to MPI, contact [support][b].
-
-[1]: ../../general/job-submission-and-execution.md
-
-[a]: https://www.gnu.org/software/octave/
-[b]: https://support.it4i.cz/rt/
-[c]: https://octave.sourceforge.net/parallel/
diff --git a/content/docs/software/numerical-languages/opencoarrays.mdx b/content/docs/software/numerical-languages/opencoarrays.mdx
deleted file mode 100644
index 4414201f6a83bc5ad1b812b06be29cf2fbb7764f..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-languages/opencoarrays.mdx
+++ /dev/null
@@ -1,130 +0,0 @@
----
-title: "OpenCoarrays"
----
-## Introduction
-
-Coarray Fortran (CAF) is an extension of Fortran language and offers a simple interface for parallel processing and memory sharing.
-The advantage is that only small changes are required to convert existing Fortran code to support a robust and potentially efficient parallelism.
-
-A CAF program is interpreted as if it was replicated a number of times and all copies were executed asynchronously.
-The number of copies is decided at execution time. Each copy (called *image*) has its own private variables.
-The variable syntax of Fortran language is extended with indexes in square brackets (called *co-dimension*) representing a reference to data distributed across images.
-
-By default, the CAF is using Message Passing Interface (MPI) for lower-level communication, so there are some similarities with MPI.
-
-Read more [here][a].
-
-## Coarray Basics
-
-### Indexing of Coarray Images
-
-Indexing of individual images can be shown on the simple *Hello World* program:
-
-```fortran
-program hello_world
-  implicit none
-  print *, 'Hello world from image ', this_image() , 'of', num_images()
-end program hello_world
-```
-
-* `num_images()` - returns the number of all images
-* `this_image()` - returns the image index - numbered from 1 to `num_images()`
-
-### Co-Dimension Variables Declaration
-
-Coarray variables can be declared with the `codimension[*]` attribute or by adding a trailing index `[*]` after the variable name.
-Notice, the `*` character always has to be in the square brackets.
-
-```fortran
-integer, codimension[*] :: scalar
-integer :: scalar[*]
-real, dimension(64), codimension[*] :: vector
-real :: vector(64)[*]
-```
-
-### Images Synchronization
-
-Because each image is running on its own, the image synchronization is needed to ensure, that all altered data is distributed to all images.
-Synchronization can be done across all images or only between selected images. Be aware, that selective synchronization can lead to the race condition problems like deadlock.
-
-Example program:
-
-```fortran
-program synchronization_test
-  implicit none
-  integer :: i          ! Local variable
-  integer :: numbers[*] ! Scalar coarray
-
-  ! Genereate random number on image 1
-  if (this_image() == 1) then
-    numbers = floor(rand(1) * 1000)
-    ! Distribute information to other images
-    do i = 2, num_images()
-      numbers[i] = numbers
-    end do
-  end if
-
-  sync all ! Barrier to synchronize all images
-
-  print *, 'The random number is', numbers
-end program synchronization_test
-```
-
-* `sync all` - Synchronize all images between each other
-* `sync images(*)` - Synchronize this image to all other
-* `sync images(index)` - Synchronize this image to image with `index`
-
-<Callout>
-    `number` is the local variable while `number[index]` accesses the variable in the specific image.
-    `number[this_image()]` is the same as `number`.
-</Callout>
-
-## Compile and Run
-
-Currently, version 2.9.2 compiled with the OpenMPI 4.0.5 library is installed on the cluster. To load the `OpenCoarrays` module, type:
-
-```console
-$ ml OpenCoarrays/2.9.2-gompi-2020b
-```
-
-### Compile CAF Program
-
-The preferred method for compiling a CAF program is by invoking the `caf` compiler wrapper.
-The above mentioned *Hello World* program can be compiled as follows:
-
-```console
-$ caf hello_world.f90 -o hello_world.x
-```
-
-<Callout type=warn>
-    The input file extension **.f90** or **.F90** are to be interpreted as *Fortran 90*.
-    If the input file extension is **.f** or **.F** the source code will be interpreted as *Fortran 77*.
-</Callout>
-
-Another method for compiling is by invoking the `mpif90` compiler wrapper directly:
-
-```console
-$ mpif90 hello_world.f90 -o hello_world.x -fcoarray=lib -lcaf_mpi
-```
-
-### Run CAF Program
-
-A CAF program can be run by invoking the `cafrun` wrapper or directly by the `mpirun`:
-
-```console
-$ cafrun -np 4 ./hello_world.x
-    Hello world from image            1 of           4
-    Hello world from image            2 of           4
-    Hello world from image            3 of           4
-    Hello world from image            4 of           4
-
-$ mpirun -np 4 ./synchronization_test.x
-    The random number is         242
-    The random number is         242
-    The random number is         242
-    The random number is         242
-```
-
-`-np 4` is the number of images to run. The parameters of `cafrun` and `mpirun` are the same.
-
-[a]: http://www.opencoarrays.org/
diff --git a/content/docs/software/numerical-languages/r.mdx b/content/docs/software/numerical-languages/r.mdx
deleted file mode 100644
index b39721ad5980b477dde2f363b5c59a4ead0a2c09..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-languages/r.mdx
+++ /dev/null
@@ -1,406 +0,0 @@
----
-title: "R"
----
-## Introduction
-
-R is a language and environment for statistical computing and graphics. R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, etc.) and graphical techniques, and is highly extensible.
-
-One of R's strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.
-
-Another convenience is the ease with which the C code or third party libraries may be integrated within R.
-
-Extensive support for parallel computing is available within R.
-
-Read more on [http://www.r-project.org/][a] and [http://cran.r-project.org/doc/manuals/r-release/R-lang.html][b].
-
-## Modules
-
-R version 3.1.1 is available on the cluster, along with GUI interface RStudio
-
-| Application | Version           | module              |
-| ----------- | ----------------- | ------------------- |
-| **R**       | R 3.1.1           | R/3.1.1-intel-2015b |
-
-```console
-$ ml R
-```
-
-## Execution
-
-R on cluster is linked to a highly optimized MKL mathematical library. This provides threaded parallelization to many R kernels, notably the linear algebra subroutines. R runs these heavy calculation kernels without any penalty. You may control the threads by setting the `OMP_NUM_THREADS` environment variable.
-
-### Interactive Execution
-
-To run R interactively, using RStudio GUI, log in with the `ssh -X` parameter for X11 forwarding. Run RStudio:
-
-```console
-$ ml RStudio
-$ rstudio
-```
-
-### Batch Execution
-
-To run R in batch mode, write an R script, then write a bash jobscript and execute via the `sbatch` command. By default, R will use 24 threads on Salomon when running MKL kernels.
-
-Example jobscript:
-
-```bash
-#!/bin/bash
-
-# change to local scratch directory
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOBID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-# copy input file to scratch
-cp $SLURM_SUBMIT_DIR/rscript.R .
-
-# load R module
-ml R
-
-# execute the calculation
-R CMD BATCH rscript.R routput.out
-
-# copy output file to home
-cp routput.out $SLURM_SUBMIT_DIR/.
-
-#exit
-exit
-```
-
-The inputs are in the `rscript.R` file, the outputs in the `routput.out` file.
-See the single node jobscript example in the [Job execution section][1].
-
-## Parallel R
-
-Parallel execution of R may be achieved in many ways. One approach is the implied parallelization due to linked libraries or specially enabled functions, as [described above][2]. In the following sections, we focus on explicit parallelization, where parallel constructs are directly stated within the R script.
-
-## Package Parallel
-
-The package parallel provides support for parallel computation, including by forking (taken from package multicore), by sockets (taken from package snow) and random-number generation.
-
-The package is activated this way:
-
-```console
-$ R
-> library(parallel)
-```
-
-More information and examples may be obtained directly by reading the documentation available in R:
-
-```r
-> ?parallel
-> library(help = "parallel")
-> vignette("parallel")
-```
-
-Forking is the most simple to use. Forking family of functions provide parallelized, drop-in replacement for the serial `apply()` family of functions.
-
-<Callout type=warn>
-    Forking via package parallel provides functionality similar to OpenMP construct omp parallel for
-
-    Only cores of single node can be utilized this way!
-
-Forking example:
-
-```r
-library(parallel)
-
-#integrand function
-f <- function(i,h) {
-x <- h*(i-0.5)
-return (4/(1 + x*x))
-}
-
-#initialize
-size <- detectCores()
-
-while (TRUE)
-{
-  #read number of intervals
-  cat("Enter the number of intervals: (0 quits) ")
-  fp<-file("stdin"); n<-scan(fp,nmax=1); close(fp)
-
-  if(n<=0) break
-
-  #run the calculation
-  n <- max(n,size)
-  h <-   1.0/n
-
-  i <- seq(1,n);
-  pi3 <- h*sum(simplify2array(mclapply(i,f,h,mc.cores=size)));
-
-  #print results
-  cat(sprintf("Value of PI %16.14f, diff= %16.14fn",pi3,pi3-pi))
-}
-```
-
-The above example is the classic parallel example for calculating the number π. Note the `detectCores()` and `mclapply()` functions. Execute the example as:
-
-```console
-$ R --slave --no-save --no-restore -f pi3p.R
-```
-
-Every evaluation of the integrad function runs in parallel on different process.
-
-## Package Rmpi
-
-The Rmpi package provides an interface (wrapper) to MPI APIs.
-
-It also provides interactive R slave environment. On the cluster, Rmpi provides interface to the [OpenMPI][3].
-
-Read more on Rmpi [here][c], reference manual is available [here][d].
-
-When using the Rmpi package, both the `openmpi` and `R` modules must be loaded:
-
-```console
-$ ml OpenMPI
-$ ml R
-```
-
-Rmpi may be used in three basic ways. The static approach is identical to executing any other MPI program. In addition, there is the Rslaves dynamic MPI approach and the mpi.apply approach. In the following section, we will use the number π integration example, to illustrate all these concepts.
-
-### Static Rmpi
-
-Static Rmpi programs are executed via `mpiexec`, as any other MPI programs. The number of processes is static - given at the launch time.
-
-Static Rmpi example:
-
-```r
-library(Rmpi)
-
-#integrand function
-f <- function(i,h) {
-x <- h*(i-0.5)
-return (4/(1 + x*x))
-}
-
-#initialize
-invisible(mpi.comm.dup(0,1))
-rank <- mpi.comm.rank()
-size <- mpi.comm.size()
-n<-0
-
-while (TRUE)
-{
-  #read number of intervals
-  if (rank==0) {
-   cat("Enter the number of intervals: (0 quits) ")
-   fp<-file("stdin"); n<-scan(fp,nmax=1); close(fp)
-  }
-
-  #broadcat the intervals
-  n <- mpi.bcast(as.integer(n),type=1)
-
-  if(n<=0) break
-
-  #run the calculation
-  n <- max(n,size)
-  h <-   1.0/n
-
-  i <- seq(rank+1,n,size);
-  mypi <- h*sum(sapply(i,f,h));
-
-  pi3 <- mpi.reduce(mypi)
-
-  #print results
-  if (rank==0) cat(sprintf("Value of PI %16.14f, diff= %16.14fn",pi3,pi3-pi))
-}
-
-mpi.quit()
-```
-
-The above is the static MPI example for calculating the number π. Note the `library(Rmpi)` and `mpi.comm.dup()` function calls. Execute the example as:
-
-```console
-$ mpirun R --slave --no-save --no-restore -f pi3.R
-```
-
-### Dynamic Rmpi
-
-Dynamic Rmpi programs are executed by calling the R directly. The `OpenMPI` module must still be loaded. The R slave processes will be spawned by a function call within the Rmpi program.
-
-Dynamic Rmpi example:
-
-```r
-#integrand function
-f <- function(i,h) {
-x <- h*(i-0.5)
-return (4/(1 + x*x))
-}
-
-#the worker function
-workerpi <- function()
-{
-#initialize
-rank <- mpi.comm.rank()
-size <- mpi.comm.size()
-n<-0
-
-while (TRUE)
-{
-  #read number of intervals
-  if (rank==0) {
-   cat("Enter the number of intervals: (0 quits) ")
-   fp<-file("stdin"); n<-scan(fp,nmax=1); close(fp)
-  }
-
-  #broadcat the intervals
-  n <- mpi.bcast(as.integer(n),type=1)
-
-  if(n<=0) break
-
-  #run the calculation
-  n <- max(n,size)
-  h <-   1.0/n
-
-  i <- seq(rank+1,n,size);
-  mypi <- h*sum(sapply(i,f,h));
-
-  pi3 <- mpi.reduce(mypi)
-
-  #print results
-  if (rank==0) cat(sprintf("Value of PI %16.14f, diff= %16.14fn",pi3,pi3-pi))
-}
-}
-
-#main
-library(Rmpi)
-
-cat("Enter the number of slaves: ")
-fp<-file("stdin"); ns<-scan(fp,nmax=1); close(fp)
-
-mpi.spawn.Rslaves(nslaves=ns)
-mpi.bcast.Robj2slave(f)
-mpi.bcast.Robj2slave(workerpi)
-
-mpi.bcast.cmd(workerpi())
-workerpi()
-
-mpi.quit()
-```
-
-The above example is the dynamic MPI example for calculating the number π. Both master and slave processes carry out the calculation. Note the `mpi.spawn.Rslaves()`, `mpi.bcast.Robj2slave()`, **and the `mpi.bcast.cmd()`** function calls.
-
-Execute the example as:
-
-```console
-$ mpirun -np 1 R --slave --no-save --no-restore -f pi3Rslaves.R
-```
-
-Note that this method uses `MPI_Comm_spawn` (Dynamic process feature of MPI-2) to start the slave processes - the master process needs to be launched with MPI. In general, Dynamic processes are not well supported among MPI implementations, some issues might arise. In addition, environment variables are not propagated to spawned processes, so they will not see paths from modules.
-
-### mpi.apply Rmpi
-
-`mpi.apply` is a specific way of executing Dynamic Rmpi programs.
-
-`mpi.apply()` family of functions provide MPI parallelized, drop in replacement for the serial `apply()` family of functions.
-
-Execution is identical to other dynamic Rmpi programs.
-
-mpi.apply Rmpi example:
-
-```r
-#integrand function
-f <- function(i,h) {
-x <- h*(i-0.5)
-return (4/(1 + x*x))
-}
-
-#the worker function
-workerpi <- function(rank,size,n)
-{
-  #run the calculation
-  n <- max(n,size)
-  h <- 1.0/n
-
-  i <- seq(rank,n,size);
-  mypi <- h*sum(sapply(i,f,h));
-
-  return(mypi)
-}
-
-#main
-library(Rmpi)
-
-cat("Enter the number of slaves: ")
-fp<-file("stdin"); ns<-scan(fp,nmax=1); close(fp)
-
-mpi.spawn.Rslaves(nslaves=ns)
-mpi.bcast.Robj2slave(f)
-mpi.bcast.Robj2slave(workerpi)
-
-while (TRUE)
-{
-  #read number of intervals
-  cat("Enter the number of intervals: (0 quits) ")
-  fp<-file("stdin"); n<-scan(fp,nmax=1); close(fp)
-  if(n<=0) break
-
-  #run workerpi
-  i=seq(1,2*ns)
-  pi3=sum(mpi.parSapply(i,workerpi,2*ns,n))
-
-  #print results
-  cat(sprintf("Value of PI %16.14f, diff= %16.14fn",pi3,pi3-pi))
-}
-
-mpi.quit()
-```
-
-The above is the mpi.apply MPI example for calculating the number π. Only the slave processes carry out the calculation. Note the `mpi.parSapply()`, function call. The package parallel example above may be trivially adapted (for much better performance) to this structure using the `mclapply()` in place of `mpi.parSapply()`.
-
-Execute the example as:
-
-```console
-$ mpirun -np 1 R --slave --no-save --no-restore -f pi3parSapply.R
-```
-
-## Combining Parallel and Rmpi
-
-Currently, the two packages cannot be combined for hybrid calculations.
-
-## Parallel Execution
-
-R parallel jobs are executed via the SLURM partition system exactly as any other parallel jobs. The user must create an appropriate jobscript and submit it via `sbatch`
-
-An example jobscript for [static Rmpi][4] parallel R execution, running 1 process per core:
-
-```bash
-#!/bin/bash
-#SBATCH -q qprod
-#SBATCH -N Rjob
-#SBATCH --nodes=100 --ntasks-per-node=24 --cpus-per-task=1
-
-# change to scratch directory
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOBID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-# copy input file to scratch
-cp $SLURM_SUBMIT_DIR/rscript.R .
-
-# load R and openmpi module
-ml R OpenMPI
-
-# execute the calculation
-mpirun -bycore -bind-to-core R --slave --no-save --no-restore -f rscript.R
-
-# copy output file to home
-cp routput.out $SLURM_SUBMIT_DIR/.
-
-#exit
-exit
-```
-
-For more information about jobscripts and MPI execution, refer to the [Job submission][1] and general [MPI][5] sections.
-
-[1]: ../../general/job-submission-and-execution.md
-[2]: #interactive-execution
-[4]: #static-rmpi
-[5]: ../mpi/mpi.md
-
-[a]: http://www.r-project.org/
-[b]: http://cran.r-project.org/doc/manuals/r-release/R-lang.html
-[c]: http://cran.r-project.org/web/packages/Rmpi/
-[d]: http://cran.r-project.org/web/packages/Rmpi/Rmpi.pdf
diff --git a/content/docs/software/numerical-libraries/fftw.mdx b/content/docs/software/numerical-libraries/fftw.mdx
deleted file mode 100644
index c5bfef911a5c8845a67e1cabc97e6d2d4507f4e4..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-libraries/fftw.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: "FFTW"
----
-The discrete Fourier transform in one or more dimensions, MPI parallel
-
-FFTW is a C subroutine library for computing the discrete Fourier transform in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, e.g. the discrete cosine/sine transforms or DCT/DST). The FFTW library allows for MPI parallel, in-place discrete Fourier transform, with data distributed over number of nodes.
-
-```console
-$ ml av FFTW
-
----------------------------------------------------- /apps/modules/numlib -----------------------------------------------------
-   FFTW/3.3.7-gompi-2018a        FFTW/3.3.8-gompi-2020a    FFTW/3.3.8-gompic-2020b           FFTW/3.3.8
-   FFTW/3.3.8-gompi-2020a-amd    FFTW/3.3.8-gompi-2020b    FFTW/3.3.8-iccifort-2020.4.304    FFTW/3.3.9-gompi-2021a (D)
-```
-
-To load the latest version of Octave load the module:
-
-```console
-$ ml FFTW
-```
-
-The module sets up environment variables, required for linking and running FFTW enabled applications. Make sure that the choice of FFTW module is consistent with your choice of MPI library. Mixing MPI of different implementations may have unpredictable results.
-
-## Example
-
-```cpp
-    #include <fftw3-mpi.h>
-    int main(int argc, char **argv)
-    {
-        const ptrdiff_t N0 = 100, N1 = 1000;
-        fftw_plan plan;
-        fftw_complex *data;
-        ptrdiff_t alloc_local, local_n0, local_0_start, i, j;
-
-        MPI_Init(&argc, &argv);
-        fftw_mpi_init();
-
-        /* get local data size and allocate */
-        alloc_local = fftw_mpi_local_size_2d(N0, N1, MPI_COMM_WORLD,
-                                             &local_n0, &local_0_start);
-        data = fftw_alloc_complex(alloc_local);
-
-        /* create plan for in-place forward DFT */
-        plan = fftw_mpi_plan_dft_2d(N0, N1, data, data, MPI_COMM_WORLD,
-                                    FFTW_FORWARD, FFTW_ESTIMATE);
-
-        /* initialize data  */
-        for (i = 0; i < local_n0; ++i) for (j = 0; j < N1; ++j)
-        {   data[i*N1 + j][0] = i;
-            data[i*N1 + j][1] = j; }
-
-        /* compute transforms, in-place, as many times as desired */
-        fftw_execute(plan);
-
-        fftw_destroy_plan(plan);
-
-        MPI_Finalize();
-    }
-```
-
-Load modules and compile:
-
-```console
-$ ml intel/2020b 3.3.8-iccifort-2020.4.304
-$ mpicc testfftw3mpi.c -o testfftw3mpi.x -Wl,-rpath=$LIBRARY_PATH -lfftw3_mpi
-```
-
-Read more on FFTW usage on the [FFTW website][a].
-
-[a]: http://www.fftw.org/fftw3_doc/
\ No newline at end of file
diff --git a/content/docs/software/numerical-libraries/gsl.mdx b/content/docs/software/numerical-libraries/gsl.mdx
deleted file mode 100644
index 7a50cd12ae9ab4aea94e491b046345af70cbee95..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-libraries/gsl.mdx
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: "GSL"
----
-The GNU Scientific Library. Provides a wide range of mathematical routines.
-
-## Introduction
-
-The GNU Scientific Library (GSL) provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total. The routines have been written from scratch in C, and present a modern API for C programmers, allowing wrappers to be written for very high level languages.
-
-The library covers a wide range of topics in numerical computing. Routines are available for the following areas:
-
-Complex Numbers              Roots of Polynomials
-
-Special Functions            Vectors and Matrices
-
-Permutations                 Combinations
-
-Sorting                      BLAS Support
-
-Linear Algebra               CBLAS Library
-
-Fast Fourier Transforms      Eigensystems
-
-Random Numbers               Quadrature
-
-Random Distributions         Quasi-Random Sequences
-
-Histograms                   Statistics
-
-Monte Carlo Integration      N-Tuples
-
-Differential Equations       Simulated Annealing
-
-Numerical Differentiation    Interpolation
-
-Series Acceleration          Chebyshev Approximations
-
-Root-Finding                 Discrete Hankel Transforms
-
-Least-Squares Fitting        Minimization
-
-IEEE Floating-Point          Physical Constants
-
-Basis Splines                Wavelets
-
-## Modules
-
-For the list of available gsl modules, use the command:
-
-```console
-$ ml av gsl
----------------- /apps/modules/numlib -------------------
-   GSL/2.5-intel-2017c    GSL/2.6-iccifort-2020.1.217    GSL/2.7-GCC-10.3.0 (D)
-   GSL/2.6-GCC-10.2.0     GSL/2.6-iccifort-2020.4.304
-```
-
-## Linking
-
-Load an appropriate `gsl` module. Use the `-lgsl` switch to link your code against GSL. The GSL depends on cblas API to BLAS library, which must be supplied for linking. The BLAS may be provided, for example from the MKL library, as well as from the BLAS GSL library (`-lgslcblas`). Using the MKL is recommended.
-
-### Compiling and Linking With Intel Compilers
-
-```console
-$ ml intel/2020b gsl/2.6-iccifort-2020.4.304
-$ icc myprog.c -o myprog.x -Wl,-rpath=$LIBRARY_PATH -mkl -lgsl
-```
-
-### Compiling and Linking With GNU Compilers
-
-```console
-$ ml ml GCC/10.2.0 imkl/2020.4.304-iimpi-2020b GSL/2.6-iccifort-2020.4.304
-$ gcc myprog.c -o myprog.x -Wl,-rpath=$LIBRARY_PATH -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lgsl
-```
-
-## Example
-
-Following is an example of a discrete wavelet transform implemented by GSL:
-
-```cpp
-    #include <stdio.h>
-    #include <math.h>
-    #include <gsl/gsl_sort.h>
-    #include <gsl/gsl_wavelet.h>
-
-    int
-    main (int argc, char **argv)
-    {
-      int i, n = 256, nc = 20;
-      double *data = malloc (n * sizeof (double));
-      double *abscoeff = malloc (n * sizeof (double));
-      size_t *p = malloc (n * sizeof (size_t));
-
-      gsl_wavelet *w;
-      gsl_wavelet_workspace *work;
-
-      w = gsl_wavelet_alloc (gsl_wavelet_daubechies, 4);
-      work = gsl_wavelet_workspace_alloc (n);
-
-      for (i=0; i<n; i++)
-      data[i] = sin (3.141592654*(double)i/256.0);
-
-      gsl_wavelet_transform_forward (w, data, 1, n, work);
-
-      for (i = 0; i < n; i++)
-        {
-          abscoeff[i] = fabs (data[i]);
-        }
-
-      gsl_sort_index (p, abscoeff, 1, n);
-
-      for (i = 0; (i + nc) < n; i++)
-        data[p[i]] = 0;
-
-      gsl_wavelet_transform_inverse (w, data, 1, n, work);
-
-      for (i = 0; i < n; i++)
-        {
-          printf ("%gn", data[i]);
-        }
-
-      gsl_wavelet_free (w);
-      gsl_wavelet_workspace_free (work);
-
-      free (data);
-      free (abscoeff);
-      free (p);
-      return 0;
-    }
-```
-
-Load modules and compile:
-
-```console
-$ ml intel/2020b gsl/GSL/2.6-iccifort-2020.4.304
-$ icc dwt.c -o dwt.x -Wl,-rpath=$LIBRARY_PATH -mkl -lgsl
-```
-
-In this example, we compile the dwt.c code using the Intel compiler and link it to the MKL and GSL library, note the `-mkl` and `-lgsl` options. The library search path is compiled in, so that no modules are necessary to run the code.
diff --git a/content/docs/software/numerical-libraries/hdf5.mdx b/content/docs/software/numerical-libraries/hdf5.mdx
deleted file mode 100644
index 3dceb2f1653518dd9bb70509ceb3489242c8c7d5..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-libraries/hdf5.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: "HDF5"
----
-Hierarchical Data Format library. Serial and MPI parallel version.
-
-[HDF5 (Hierarchical Data Format)][a] is a general purpose library and file format for storing scientific data. HDF5 can store two primary objects: datasets and groups. A dataset is essentially a multidimensional array of data elements, and a group is a structure for organizing objects in an HDF5 file. Using these two basic objects, one can create and store almost any kind of scientific data structure, such as images, arrays of vectors, and structured and unstructured grids. You can also mix and match them in HDF5 files according to your needs.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av HDF5
------------------------------------------------------ /apps/modules/data ------------------------------------------------------
-   HDF5/1.10.6-foss-2020b-parallel     HDF5/1.10.6-intel-2020a             HDF5/1.10.7-gompi-2021a
-   HDF5/1.10.6-iimpi-2020a             HDF5/1.10.6-intel-2020b-parallel    HDF5/1.10.7-gompic-2020b
-   HDF5/1.10.6-intel-2020a-parallel    HDF5/1.10.7-gompi-2020b             HDF5/1.10.7-iimpi-2020b  (D)
-
-```
-
-To load the module, use the `ml` command.
-
-The module sets up environment variables required for linking and running HDF5 enabled applications. Make sure that the choice of the HDF5 module is consistent with your choice of the MPI library. Mixing MPI of different implementations may cause unexpected results.
-
-## Example
-
-```cpp
-    #include "hdf5.h"
-    #define FILE "dset.h5"
-
-    int main() {
-
-       hid_t       file_id, dataset_id, dataspace_id;  /* identifiers */
-       hsize_t     dims[2];
-       herr_t      status;
-       int         i, j, dset_data[4][6];
-
-       /* Create a new file using default properties. */
-       file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-       /* Create the data space for the dataset. */
-       dims[0] = 4;
-       dims[1] = 6;
-       dataspace_id = H5Screate_simple(2, dims, NULL);
-
-       /* Initialize the dataset. */
-       for (i = 0; i < 4; i++)
-          for (j = 0; j < 6; j++)
-             dset_data[i][j] = i * 6 + j + 1;
-
-       /* Create the dataset. */
-       dataset_id = H5Dcreate2(file_id, "/dset", H5T_STD_I32BE, dataspace_id,
-                              H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-       /* Write the dataset. */
-       status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
-                         dset_data);
-
-       status = H5Dread(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
-                        dset_data);
-
-       /* End access to the dataset and release resources used by it. */
-       status = H5Dclose(dataset_id);
-
-       /* Terminate access to the data space. */
-       status = H5Sclose(dataspace_id);
-
-       /* Close the file. */
-       status = H5Fclose(file_id);
-    }
-```
-
-Load modules and compile:
-
-```console
-$ ml intel/2020b HDF5/1.10.6-intel-2020b-parallel
-$ mpicc hdf5test.c -o hdf5test.x -Wl,-rpath=$LIBRARY_PATH $HDF5_INC $HDF5_SHLIB
-```
-
-For further information, see the [website][a].
-
-[a]: http://www.hdfgroup.org/HDF5/
diff --git a/content/docs/software/numerical-libraries/intel-numerical-libraries.mdx b/content/docs/software/numerical-libraries/intel-numerical-libraries.mdx
deleted file mode 100644
index fb1755c54cca03d7f407f6bdacee7798bce10534..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-libraries/intel-numerical-libraries.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "Intel Numerical Libraries"
----
-Intel libraries for high performance in numerical computing.
-
-## Intel Math Kernel Library
-
-Intel Math Kernel Library (Intel MKL) is a library of math kernel subroutines, extensively threaded and optimized for maximum performance. Intel MKL unites and provides these basic components: BLAS, LAPACK, ScaLapack, PARDISO, FFT, VML, VSL, Data fitting, Feast Eigensolver, and many more.
-
-```console
-$ ml av mkl
-------------------- /apps/modules/numlib -------------------
-   imkl/2017.4.239-iimpi-2017c    imkl/2020.1.217-iimpi-2020a        imkl/2021.2.0-iimpi-2021a (D)
-   imkl/2018.4.274-iimpi-2018a    imkl/2020.4.304-iimpi-2020b (L)    mkl/2020.4.304
-   imkl/2019.1.144-iimpi-2019a    imkl/2020.4.304-iompi-2020b
-```
-
-<Callout>
-    `imkl` ... with intel toolchain. `mkl` with system toolchain.
-</Callout>
-
-For more information, see the [Intel MKL][1] section.
-
-## Intel Integrated Performance Primitives
-
-Intel Integrated Performance Primitives version 7.1.1, compiled for AVX is available via the `ipp` module. IPP is a library of highly optimized algorithmic building blocks for media and data applications. This includes signal, image, and frame processing algorithms, such as FFT, FIR, Convolution, Optical Flow, Hough transform, Sum, MinMax, and many more.
-
-```console
-$ ml av ipp
-------------------- /apps/modules/perf -------------------
-   ipp/2020.3.304
-```
-
-For more information, see the [Intel IPP][2] section.
-
-## Intel Threading Building Blocks
-
-Intel Threading Building Blocks (Intel TBB) is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers. It is designed to promote scalable data parallel programming. Additionally, it fully supports nested parallelism, so you can build larger parallel components from smaller parallel components. To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner.
-
-```console
-$ ml av tbb
-------------------- /apps/modules/lib -------------------
-   tbb/2020.3-GCCcore-10.2.0
-
-```
-
-Read more at the [Intel TBB][3].
-
-## Python Hooks for Intel Math Kernel Library
-
-Python hooks for Intel(R) Math Kernel Library runtime control settings.
-
-```console
-$ ml av mkl-service
-------------------- /apps/modules/data -------------------
-   mkl-service/2.3.0-intel-2020b
-```
-
-Read more at the [hooks][a].
-
-[1]: ../intel/intel-suite/intel-mkl.md
-[2]: ../intel/intel-suite/intel-integrated-performance-primitives.md
-[3]: ../intel/intel-suite/intel-tbb.md
-
-[a]: https://github.com/IntelPython/mkl-service
diff --git a/content/docs/software/numerical-libraries/meta.json b/content/docs/software/numerical-libraries/meta.json
deleted file mode 100644
index 579610ec6acd9136e2ed1ffbfe34618e2865da93..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-libraries/meta.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "title": "Numerical-libraries",
-  "pages": [
-    "fftw",
-    "gsl",
-    "hdf5",
-    "intel-numerical-libraries",
-    "petsc"
-  ]
-}
diff --git a/content/docs/software/numerical-libraries/petsc.mdx b/content/docs/software/numerical-libraries/petsc.mdx
deleted file mode 100644
index fd6d6d0136e5bbb46d03d566d4da7d894b1a7fec..0000000000000000000000000000000000000000
--- a/content/docs/software/numerical-libraries/petsc.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: "PETSc"
----
-PETSc is a suite of building blocks for the scalable solution of scientific and engineering applications modeled by partial differential equations. It supports MPI, shared memory, and GPU through CUDA or OpenCL, as well as hybrid MPI-shared memory or MPI-GPU parallelism.
-
-## Introduction
-
-PETSc (Portable, Extensible Toolkit for Scientific Computation) is a suite of building blocks (data structures and routines) for the scalable solution of scientific and engineering applications modelled by partial differential equations. It allows thinking in terms of high-level objects (matrices) instead of low-level objects (raw arrays). Written in C language but can also be called from FORTRAN, C++, Python, and Java codes. It supports MPI, shared memory, and GPUs through CUDA or OpenCL, as well as hybrid MPI-shared memory or MPI-GPU parallelism.
-
-## Resources
-
-* [project webpage][a]
-* [documentation][b]
-  * [PETSc Users Manual (PDF)][c]
-  * [index of all manual pages][d]
-* PRACE Video Tutorial [part1][e], [part2][f], [part3][g], [part4][h], [part5][i]
-
-## Modules
-
-For the current list of installed versions, use:
-
-```console
-$ ml av petsc
-
-```
-
-## External Libraries
-
-PETSc needs at least MPI, BLAS, and LAPACK. These dependencies are currently satisfied with Intel MPI and Intel MKL in `petsc` modules.
-
-PETSc can be linked with a plethora of [external numerical libraries][k], extending PETSc functionality, e.g. direct linear system solvers, preconditioners, or partitioners. See below the list of libraries currently included in `petsc` modules.
-
-All these libraries can also be used alone, without PETSc. Their static or shared program libraries are available in
-`$PETSC_DIR/$PETSC_ARCH/lib` and header files in `$PETSC_DIR/$PETSC_ARCH/include`. `PETSC_DIR` and `PETSC_ARCH` are environment variables pointing to a specific PETSc instance based on the PETSc module loaded.
-
-* dense linear algebra
-  * [Elemental][l]
-* sparse linear system solvers
-  * [Intel MKL Pardiso][m]
-  * [MUMPS][n]
-  * [PaStiX][o]
-  * [SuiteSparse][p]
-  * [SuperLU][q]
-  * [SuperLU_Dist][r]
-* input/output
-  * [ExodusII][s]
-  * [HDF5][t]
-  * [NetCDF][u]
-* partitioning
-  * [Chaco][v]
-  * [METIS][w]
-  * [ParMETIS][x]
-  * [PT-Scotch][y]
-* preconditioners & multigrid
-  * [Hypre][z]
-  * [SPAI - Sparse Approximate Inverse][aa]
-
-[a]: http://www.mcs.anl.gov/petsc/
-[b]: http://www.mcs.anl.gov/petsc/documentation/
-[c]: http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf
-[d]: http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/singleindex.html
-[e]: http://www.youtube.com/watch?v=asVaFg1NDqY
-[f]: http://www.youtube.com/watch?v=ubp_cSibb9I
-[g]: http://www.youtube.com/watch?v=vJAAAQv-aaw
-[h]: http://www.youtube.com/watch?v=BKVlqWNh8jY
-[i]: http://www.youtube.com/watch?v=iXkbLEBFjlM
-[j]: https://www.mcs.anl.gov/petsc/miscellaneous/petscthreads.html
-[k]: http://www.mcs.anl.gov/petsc/miscellaneous/external.html
-[l]: http://libelemental.org/
-[m]: https://software.intel.com/en-us/node/470282
-[n]: http://mumps.enseeiht.fr/
-[o]: http://pastix.gforge.inria.fr/
-[p]: http://faculty.cse.tamu.edu/davis/suitesparse.html
-[q]: http://crd.lbl.gov/~xiaoye/SuperLU/#superlu
-[r]: http://crd.lbl.gov/~xiaoye/SuperLU/#superlu_dist
-[s]: http://sourceforge.net/projects/exodusii/
-[t]: http://www.hdfgroup.org/HDF5/
-[u]: http://www.unidata.ucar.edu/software/netcdf/
-[v]: http://www.cs.sandia.gov/CRF/chac.html
-[w]: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
-[x]: http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview
-[y]: http://www.labri.fr/perso/pelegrin/scotch/
-[z]: http://www.nersc.gov/users/software/programming-libraries/math-libraries/petsc/
-[aa]: https://bitbucket.org/petsc/pkg-spai
diff --git a/content/docs/software/nvidia-cuda-q.mdx b/content/docs/software/nvidia-cuda-q.mdx
deleted file mode 100644
index c622052799a38560f20290cede068d7af5f30bcf..0000000000000000000000000000000000000000
--- a/content/docs/software/nvidia-cuda-q.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: "CUDA Quantum for Python"
----
-## What Is CUDA Quantum?
-
-CUDA Quantum streamlines hybrid application development and promotes productivity and scalability in quantum computing. It offers a unified programming model designed for a hybrid setting—that is, CPUs, GPUs, and QPUs working together.
-
-For more information, see the [official documentation][1].
-
-## How to Install Version Without GPU Acceleration
-
-Use (preferably in conda environment)
-
-```bash
-pip install cuda-quantum
-```
-
-## How to Install Version With GPU Acceleration Using Conda
-
-Run:
-
-```bash
-conda create -y -n cuda-quantum python=3.10 pip
-conda install -y -n cuda-quantum -c "nvidia/label/cuda-11.8.0" cuda
-conda install -y -n cuda-quantum -c conda-forge mpi4py openmpi cxx-compiler cuquantum
-conda env config vars set -n cuda-quantum
-LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$CONDA_PREFIX/envs/cuda-quantum/lib"
-conda env config vars set -n cuda-quantum
-MPI_PATH=$CONDA_PREFIX/envs/cuda-quantum
-conda run -n cuda-quantum pip install cuda-quantum
-conda activate cuda-quantum
-source $CONDA_PREFIX/lib/python3.10/site-packages/distributed_interfaces/activate_custom_mpi.sh
-```
-
-Then configure the MPI:
-
-``` bash
-export OMPI_MCA_opal_cuda_support=true OMPI_MCA_btl='^openib'
-```
-
-## How to Test Your Installation?
-
-You can test your installation by running the following script:
-
-```bash
-import cudaq
-
-kernel = cudaq.make_kernel()
-qubit = kernel.qalloc()
-kernel.x(qubit)
-kernel.mz(qubit)
-
-result = cudaq.sample(kernel)
-```
-
-## Further Questions Considering the Installation?
-
-See the Cuda Quantum PyPI website at [https://pypi.org/project/cuda-quantum/][2].
-
-## Example QNN
-
-In the *qnn_example.py* you find a script that loads FashionMNIST dataset, chooses two data type (shirts and pants), then we create a Neural Network with quantum layer.This network is then trained on our data and later tested on the test dataset. You are free to try it on your own. Download the [QNN example][a] and rename it to `qnn_example.py`.
-
-![](/it4i/img/cudaq.png)
-
-[1]: https://nvidia.github.io/cuda-quantum/latest/index.html
-[2]: https://pypi.org/project/cuda-quantum/
-
-[a]: ../src/qnn_example.txt
diff --git a/content/docs/software/nvidia-cuda.mdx b/content/docs/software/nvidia-cuda.mdx
deleted file mode 100644
index 7d5433be10b98f888ac375b9906fda05327207bf..0000000000000000000000000000000000000000
--- a/content/docs/software/nvidia-cuda.mdx
+++ /dev/null
@@ -1,319 +0,0 @@
----
-title: "NVIDIA CUDA"
----
-## Introduction
-
-CUDA® is a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs).
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av CUDA
-```
-
-## CUDA Programming
-
-The default programming model for GPU accelerators is NVIDIA CUDA. To set up the environment for CUDA, use:
-
-```console
-$ ml CUDA
-```
-
-CUDA code can be compiled directly on login nodes. The user does not have to use compute nodes with GPU accelerators for compilation. To compile CUDA source code, use the NVCC compiler:
-
-```console
-$ nvcc --version
-```
-
-The CUDA Toolkit comes with a large number of examples, which can be a helpful reference to start with. To compile and test these examples, users should copy them to their home directory:
-
-```console
-$ cd ~
-$ mkdir cuda-samples
-$ cp -R /apps/nvidia/cuda/VERSION_CUDA/samples/* ~/cuda-samples/
-```
-
-To compile examples, change directory to the particular example (here the example used is deviceQuery) and run `make` to start the compilation;
-
-```console
-$ cd ~/cuda-samples/1_Utilities/deviceQuery
-$ make
-```
-
-Request an interactive session on the `qgpu` queue and execute the binary file:
-
-```console
-$ salloc -p qgpu -A PROJECT_ID
-$ ml CUDA
-$ ~/cuda-samples/1_Utilities/deviceQuery/deviceQuery
-```
-
-The expected output of the deviceQuery example executed on a node with a Tesla K20m is:
-
-```console
-    CUDA Device Query (Runtime API) version (CUDART static linking)
-
-    Detected 1 CUDA Capable device(s)
-
-    Device 0: "Tesla K20m"
-    CUDA Driver Version / Runtime Version 5.0 / 5.0
-    CUDA Capability Major/Minor version number: 3.5
-    Total amount of global memory: 4800 MBytes (5032706048 bytes)
-    (13) Multiprocessors x (192) CUDA Cores/MP: 2496 CUDA Cores
-    GPU Clock rate: 706 MHz (0.71 GHz)
-    Memory Clock rate: 2600 Mhz
-    Memory Bus Width: 320-bit
-    L2 Cache Size: 1310720 bytes
-    Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65536), 3D=(4096,4096,4096)
-    Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048
-    Total amount of constant memory: 65536 bytes
-    Total amount of shared memory per block: 49152 bytes
-    Total number of registers available per block: 65536
-    Warp size: 32
-    Maximum number of threads per multiprocessor: 2048
-    Maximum number of threads per block: 1024
-    Maximum sizes of each dimension of a block: 1024 x 1024 x 64
-    Maximum sizes of each dimension of a grid: 2147483647 x 65535 x 65535
-    Maximum memory pitch: 2147483647 bytes
-    Texture alignment: 512 bytes
-    Concurrent copy and kernel execution: Yes with 2 copy engine(s)
-    Run time limit on kernels: No
-    Integrated GPU sharing Host Memory: No
-    Support host page-locked memory mapping: Yes
-    Alignment requirement for Surfaces: Yes
-    Device has ECC support: Enabled
-    Device supports Unified Addressing (UVA): Yes
-    Device PCI Bus ID / PCI location ID: 2 / 0
-    Compute Mode:
-    < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
-    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 5.0, CUDA Runtime Version = 5.0, NumDevs = 1, Device0 = Tesla K20m
-```
-
-### Code Example
-
-In this section, we provide a basic CUDA based vector addition code example. You can directly copy and paste the code to test it:
-
-```cpp
-$ vim test.cu
-
-#define N (2048*2048)
-#define THREADS_PER_BLOCK 512
-
-#include <stdio.h>
-#include <stdlib.h>
-
-// GPU kernel function to add two vectors
-__global__ void add_gpu( int *a, int *b, int *c, int n){
-  int index = threadIdx.x + blockIdx.x * blockDim.x;
-  if (index < n)
-    c[index] = a[index] + b[index];
-}
-
-// CPU function to add two vectors
-void add_cpu (int *a, int *b, int *c, int n) {
-  for (int i=0; i < n; i++)
-    c[i] = a[i] + b[i];
-}
-
-// CPU function to generate a vector of random integers
-void random_ints (int *a, int n) {
-  for (int i = 0; i < n; i++)
-  a[i] = rand() % 10000; // random number between 0 and 9999
-}
-
-// CPU function to compare two vectors
-int compare_ints( int *a, int *b, int n ){
-  int pass = 0;
-  for (int i = 0; i < N; i++){
-    if (a[i] != b[i]) {
-      printf("Value mismatch at location %d, values %d and %dn",i, a[i], b[i]);
-      pass = 1;
-    }
-  }
-  if (pass == 0) printf ("Test passedn"); else printf ("Test Failedn");
-  return pass;
-}
-
-int main( void ) {
-
-  int *a, *b, *c; // host copies of a, b, c
-  int *dev_a, *dev_b, *dev_c; // device copies of a, b, c
-  int size = N * sizeof( int ); // we need space for N integers
-
-  // Allocate GPU/device copies of dev_a, dev_b, dev_c
-  cudaMalloc( (void**)&dev_a, size );
-  cudaMalloc( (void**)&dev_b, size );
-  cudaMalloc( (void**)&dev_c, size );
-
-  // Allocate CPU/host copies of a, b, c
-  a = (int*)malloc( size );
-  b = (int*)malloc( size );
-  c = (int*)malloc( size );
-
-  // Fill input vectors with random integer numbers
-  random_ints( a, N );
-  random_ints( b, N );
-
-  // copy inputs to device
-  cudaMemcpy( dev_a, a, size, cudaMemcpyHostToDevice );
-  cudaMemcpy( dev_b, b, size, cudaMemcpyHostToDevice );
-
-  // launch add_gpu() kernel with blocks and threads
-  add_gpu<<< N/THREADS_PER_BLOCK, THREADS_PER_BLOCK >>( dev_a, dev_b, dev_c, N );
-
-  // copy device result back to host copy of c
-  cudaMemcpy( c, dev_c, size, cudaMemcpyDeviceToHost );
-
-  //Check the results with CPU implementation
-  int *c_h; c_h = (int*)malloc( size );
-  add_cpu (a, b, c_h, N);
-  compare_ints(c, c_h, N);
-
-  // Clean CPU memory allocations
-  free( a ); free( b ); free( c ); free (c_h);
-
-  // Clean GPU memory allocations
-  cudaFree( dev_a );
-  cudaFree( dev_b );
-  cudaFree( dev_c );
-
-  return 0;
-}
-```
-
-This code can be compiled using the following command:
-
-```console
-$ nvcc test.cu -o test_cuda
-```
-
-To run the code, request an interactive session to get access to one of the GPU accelerated nodes:
-
-```console
-$ salloc -p qgpu -A PROJECT_ID
-$ ml cuda
-$ ./test.cuda
-```
-
-## CUDA Libraries
-
-### cuBLAS
-
-The NVIDIA CUDA Basic Linear Algebra Subroutines (cuBLAS) library is a GPU-accelerated version of the complete standard BLAS library with 152 standard BLAS routines. A basic description of the library together with basic performance comparisons with MKL can be found [here][a].
-
-#### cuBLAS Example: SAXPY
-
-The SAXPY function multiplies the vector x by the scalar alpha and adds it to the vector y, overwriting the latest vector with the result. A description of the cuBLAS function can be found in the [NVIDIA CUDA documentation][b]. The code can be pasted in the file and compiled without any modification:
-
-```cpp
-/* Includes, system */
-#include <stdio.h>
-#include <stdlib.h>
-
-/* Includes, cuda */
-#include <cuda_runtime.h>
-#include <cublas_v2.h>
-
-/* Vector size */
-#define N  (32)
-
-/* Host implementation of a simple version of saxpi */
-void saxpy(int n, float alpha, const float *x, float *y)
-{
-    for (int i = 0; i < n; ++i)
-    y[i] = alpha*x[i] + y[i];
-}
-
-/* Main */
-int main(int argc, char **argv)
-{
-    float *h_X, *h_Y, *h_Y_ref;
-    float *d_X = 0;
-    float *d_Y = 0;
-
-    const float alpha = 1.0f;
-    int i;
-
-    cublasHandle_t handle;
-
-    /* Initialize CUBLAS */
-    printf("simpleCUBLAS test running..n");
-    cublasCreate(&handle);
-
-    /* Allocate host memory for the matrices */
-    h_X = (float *)malloc(N * sizeof(h_X[0]));
-    h_Y = (float *)malloc(N * sizeof(h_Y[0]));
-    h_Y_ref = (float *)malloc(N * sizeof(h_Y_ref[0]));
-
-    /* Fill the matrices with test data */
-    for (i = 0; i < N; i++)
-    {
-        h_X[i] = rand() / (float)RAND_MAX;
-        h_Y[i] = rand() / (float)RAND_MAX;
-        h_Y_ref[i] = h_Y[i];
-    }
-
-    /* Allocate device memory for the matrices */
-    cudaMalloc((void **)&d_X, N * sizeof(d_X[0]));
-    cudaMalloc((void **)&d_Y, N * sizeof(d_Y[0]));
-
-    /* Initialize the device matrices with the host matrices */
-    cublasSetVector(N, sizeof(h_X[0]), h_X, 1, d_X, 1);
-    cublasSetVector(N, sizeof(h_Y[0]), h_Y, 1, d_Y, 1);
-
-    /* Performs operation using plain C code */
-    saxpy(N, alpha, h_X, h_Y_ref);
-
-    /* Performs operation using cublas */
-    cublasSaxpy(handle, N, &alpha, d_X, 1, d_Y, 1);
-
-    /* Read the result back */
-    cublasGetVector(N, sizeof(h_Y[0]), d_Y, 1, h_Y, 1);
-
-    /* Check result against reference */
-    for (i = 0; i < N; ++i)
-        printf("CPU res = %f t GPU res = %f t diff = %f n", h_Y_ref[i], h_Y[i], h_Y_ref[i] - h_Y[i]);
-
-    /* Memory clean up */
-    free(h_X); free(h_Y); free(h_Y_ref);
-    cudaFree(d_X); cudaFree(d_Y);
-
-    /* Shutdown */
-    cublasDestroy(handle);
-}
-```
-
-<Callout>
-    cuBLAS has its own function for data transfers between CPU and GPU memory:
-    - [cublasSetVector][c] - transfers data from CPU to GPU memory
-    - [cublasGetVector][d] - transfers data from GPU to CPU memory
-</Callout>
-
-To compile the code using the NVCC compiler, the `-lcublas` compiler flag has to be specified:
-
-```console
-$ ml cuda
-$ nvcc -lcublas test_cublas.cu -o test_cublas_nvcc
-```
-
-To compile the same code with GCC:
-
-```console
-$ ml cuda
-$ gcc -std=c99 test_cublas.c -o test_cublas_icc -lcublas -lcudart
-```
-
-To compile the same code with the Intel compiler:
-
-```console
-$ ml cuda
-$ ml intel
-$ icc -std=c99 test_cublas.c -o test_cublas_icc -lcublas -lcudart
-```
-
-[a]: https://developer.nvidia.com/cublas
-[b]: http://docs.nvidia.com/cuda/cublas/index.html#cublas-lt-t-gt-axpy
-[c]: http://docs.nvidia.com/cuda/cublas/index.html#cublassetvector
-[d]: http://docs.nvidia.com/cuda/cublas/index.html#cublasgetvector
diff --git a/content/docs/software/nvidia-hip.mdx b/content/docs/software/nvidia-hip.mdx
deleted file mode 100644
index d7223a2cdb2c14d11ec6429191daca06c3afb653..0000000000000000000000000000000000000000
--- a/content/docs/software/nvidia-hip.mdx
+++ /dev/null
@@ -1,225 +0,0 @@
----
-title: "ROCm HIP"
----
-## Introduction
-
-ROCm HIP allows developers to convert [CUDA code][a] to portable C++. The same source code can be compiled to run on NVIDIA or AMD GPUs.
-
-This page documents the use of pre-built Apptainer (previously Singularity) image on Karolina Accelerated nodes (acn).
-
-## Get Into GPU Node
-
-```console
-$ salloc -p qgpu -A PROJECT_ID -t 01:00:00
-salloc: Granted job allocation 1543777
-salloc: Waiting for resource configuration
-salloc: Nodes acn41 are ready for job
-```
-
-## Installed Versions of Apptainer
-
-For the current list of installed versions, use:
-
-```console
-module avail apptainer
-# ----------------- /apps/modules/tools ------------------
-#   apptainer-wrappers/1.0 (A)    apptainer/1.1.5
-```
-
-Load the required module:
-
-```console
-module load apptainer/1.1.5
-```
-
-## Launch Apptainer
-
-Run the container:
-
-```console
-singularity  shell  /home/username/rocm/centos7-nvidia-rocm.sif
-```
-
-The above gives you Apptainer shell prompt:
-
-```console
-Singularity>
-```
-
-## Inside Container
-
-Verify that you have GPUs active and accessible on the given node:
-
-```console
-nvidia-smi
-```
-
-You should get output similar to:
-
-```console
-+-----------------------------------------------------------------------------+
-| NVIDIA-SMI 515.65.07    Driver Version: 515.65.07    CUDA Version: 11.7     |
-|-------------------------------+----------------------+----------------------+
-| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
-| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
-|                               |                      |               MIG M. |
-|===============================+======================+======================|
-|   0  NVIDIA A100-SXM...  Off  | 00000000:07:00.0 Off |                    0 |
-| N/A   26C    P0    50W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   1  NVIDIA A100-SXM...  Off  | 00000000:0B:00.0 Off |                    0 |
-| N/A   26C    P0    51W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   2  NVIDIA A100-SXM...  Off  | 00000000:48:00.0 Off |                    0 |
-| N/A   22C    P0    51W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   3  NVIDIA A100-SXM...  Off  | 00000000:4C:00.0 Off |                    0 |
-| N/A   25C    P0    52W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   4  NVIDIA A100-SXM...  Off  | 00000000:88:00.0 Off |                    0 |
-| N/A   22C    P0    51W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   5  NVIDIA A100-SXM...  Off  | 00000000:8B:00.0 Off |                    0 |
-| N/A   26C    P0    54W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   6  NVIDIA A100-SXM...  Off  | 00000000:C8:00.0 Off |                    0 |
-| N/A   25C    P0    52W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-|   7  NVIDIA A100-SXM...  Off  | 00000000:CB:00.0 Off |                    0 |
-| N/A   26C    P0    51W / 400W |      0MiB / 40960MiB |      0%      Default |
-|                               |                      |             Disabled |
-+-------------------------------+----------------------+----------------------+
-
-+-----------------------------------------------------------------------------+
-| Processes:                                                                  |
-|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
-|        ID   ID                                                   Usage      |
-|=============================================================================|
-|  No running processes found                                                 |
-+-----------------------------------------------------------------------------+
-```
-
-### Code Example
-
-In this section, we show a basic code example. You can directly copy and paste the code to test it:
-
-```cpp
-// filename : /tmp/sample.cu
-
-#include <stdio.h>
-#include <cuda_runtime.h>
-
-#define CHECK(cmd) \
-{\
-    cudaError_t error  = cmd;\
-    if (error != cudaSuccess) { \
-        fprintf(stderr, "error: '%s'(%d) at %s:%d\n", cudaGetErrorString(error), error,__FILE__, __LINE__); \
-        exit(EXIT_FAILURE);\
-          }\
-}
-
-
-/*
- * Square each element in the array A and write to array C.
- */
-template <typename T>
-__global__ void
-vector_square(T *C_d, T *A_d, size_t N)
-{
-    size_t offset = (blockIdx.x * blockDim.x + threadIdx.x);
-    size_t stride = blockDim.x * gridDim.x ;
-
-    for (size_t i=offset; i<N; i+=stride) {
-        C_d[i] = A_d[i] * A_d[i];
-    }
-}
-
-
-int main(int argc, char *argv[])
-{
-    float *A_d, *C_d;
-    float *A_h, *C_h;
-    size_t N = 1000000;
-    size_t Nbytes = N * sizeof(float);
-
-    cudaDeviceProp props;
-    CHECK(cudaGetDeviceProperties(&props, 0/*deviceID*/));
-    printf ("info: running on device %s\n", props.name);
-
-    printf ("info: allocate host mem (%6.2f MB)\n", 2*Nbytes/1024.0/1024.0);
-    A_h = (float*)malloc(Nbytes);
-    CHECK(A_h == 0 ? cudaErrorMemoryAllocation : cudaSuccess );
-    C_h = (float*)malloc(Nbytes);
-    CHECK(C_h == 0 ? cudaErrorMemoryAllocation : cudaSuccess );
-    // Fill with Phi + i
-    for (size_t i=0; i<N; i++)
-    {
-        A_h[i] = 1.618f + i;
-    }
-
-    printf ("info: allocate device mem (%6.2f MB)\n", 2*Nbytes/1024.0/1024.0);
-    CHECK(cudaMalloc(&A_d, Nbytes));
-    CHECK(cudaMalloc(&C_d, Nbytes));
-
-
-    printf ("info: copy Host2Device\n");
-    CHECK ( cudaMemcpy(A_d, A_h, Nbytes, cudaMemcpyHostToDevice));
-
-    const unsigned blocks = 512;
-    const unsigned threadsPerBlock = 256;
-
-    printf ("info: launch 'vector_square' kernel\n");
-    vector_square <<<blocks, threadsPerBlock>>> (C_d, A_d, N);
-
-    printf ("info: copy Device2Host\n");
-    CHECK ( cudaMemcpy(C_h, C_d, Nbytes, cudaMemcpyDeviceToHost));
-
-    printf ("info: check result\n");
-    for (size_t i=0; i<N; i++)  {
-        if (C_h[i] != A_h[i] * A_h[i]) {
-            CHECK(cudaErrorUnknown);
-        }
-    }
-    printf ("PASSED!\n");
-}
-```
-
-First convert the CUDA sample code into HIP code:
-
-```console
-cd /tmp
-/opt/rocm/hip/bin/hipify-perl sample.cu > sample.cpp
-```
-
-This code can then be compiled using the following commands:
-
-```console
-cd /tmp
-export HIP_PLATFORM=$( /opt/rocm/hip/bin/hipconfig --platform )
-export HIPCC=/opt/rocm/hip/bin/hipcc
-$HIPCC sample.cpp -o sample
-```
-
-Running it, you should get the following output:
-
-```console
-Singularity> cd /tmp
-Singularity> ./sample
-info: running on device NVIDIA A100-SXM4-40GB
-info: allocate host mem (  7.63 MB)
-info: allocate device mem (  7.63 MB)
-info: copy Host2Device
-info: launch 'vector_square' kernel
-info: copy Device2Host
-info: check result
-PASSED!
-```
-
-[a]: nvidia-cuda.md
diff --git a/content/docs/software/sdk/meta.json b/content/docs/software/sdk/meta.json
deleted file mode 100644
index 4f36824f68fdce64a2ff491574026ff6060a53db..0000000000000000000000000000000000000000
--- a/content/docs/software/sdk/meta.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "title": "Sdk",
-  "pages": [
-    "nvhpc",
-    "openacc-mpi"
-  ]
-}
diff --git a/content/docs/software/sdk/nvhpc.mdx b/content/docs/software/sdk/nvhpc.mdx
deleted file mode 100644
index a56cf986aa2b3144b13a5e0796df07a495f35612..0000000000000000000000000000000000000000
--- a/content/docs/software/sdk/nvhpc.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: "NVIDIA HPC SDK"
----
-<style type="text/css">
-.tg  {border-collapse:collapse;border-spacing:0;}
-.tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:12px;
-  overflow:hidden;padding:10px 5px;word-break:normal;}
-.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:12px;
-  font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
-.tg .tg-lzqt{background-color:#656565;border-color:inherit;color:#ffffff;font-weight:bold;text-align:center;vertical-align:top}
-.tg .tg-c3ow{border-color:inherit;text-align:center;vertical-align:top}
-.tg .tg-7btt{border-color:inherit;font-weight:bold;text-align:center;vertical-align:top}
-</style>
-The NVIDIA HPC Software Development Kit includes the proven compilers, libraries, and software tools
-essential to maximizing developer productivity and the performance and portability of HPC applications.
-
-## Installed Versions
-
-Different versions are available on Karolina, Barbora, and DGX-2.
-For the current version use the command:
-
-```console
-ml av nvhpc
-```
-
-## Components
-
-Below is the list of components in the NVIDIA HPC SDK.
-
-<table class="tg">
-<thead>
-  <tr>
-    <th class="tg-lzqt" colspan="7">Development</th>
-    <th class="tg-lzqt" colspan="2">Analysis</th>
-  </tr>
-</thead>
-<tbody>
-  <tr>
-    <td class="tg-7btt">Programming<br>Models</td>
-    <td class="tg-7btt" colspan="2">Compilers</td>
-    <td class="tg-7btt">Core<br>Libraries</td>
-    <td class="tg-7btt" colspan="2">Math<br>Libraries</td>
-    <td class="tg-7btt">Communication<br>Libraries</td>
-    <td class="tg-7btt">Profilers</td>
-    <td class="tg-7btt">Debuggers</td>
-  </tr>
-  <tr>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/hpc-sdk/compilers/c++-parallel-algorithms/index.html" target="blank">Standard C++</a> &amp; <a href="https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html" target="">Fortran</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html" target="blank">nvcc</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/hpc-sdk/compilers/hpc-compilers-user-guide/index.html" target="blank">nvc</a></td>
-    <td class="tg-c3ow"><a href="https://nvidia.github.io/libcudacxx/" target="blank">libcu++</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cublas/index.html#abstract" target="blank">cuBLAS</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cutensor/index.html" target="blank">cuTENSOR</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/hpc-sdk/compilers/hpc-compilers-user-guide/index.html#mpi-use" target="blank">Open MPI</a></td>
-    <td class="tg-c3ow">Nsight</td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cuda-gdb/index.html" target="blank">Cuda-gdb</a></td>
-  </tr>
-  <tr>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/hpc-sdk/compilers/openacc-gs/index.html" target="blank">OpenACC</a> &amp; <a href="https://docs.nvidia.com/hpc-sdk/compilers/hpc-compilers-user-guide/index.html#openmp-use" target="blank">OpenMP</a></td>
-    <td class="tg-c3ow" colspan="2"><a href="https://docs.nvidia.com/hpc-sdk/compilers/hpc-compilers-user-guide/index.html" target="blank">nvc++</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/thrust/" target="blank">Thrust</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cusparse/index.html#abstract" target="blank">cuSPARSE</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cusolver/index.html#abstract" target="blank">cuSOLVER</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/nvshmem/" target="blank">NVSHMEM</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/nsight-systems/" target="blank">Systems</a></td>
-    <td class="tg-c3ow">Host</td>
-  </tr>
-  <tr>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html" target="blank">CUDA</a></td>
-    <td class="tg-c3ow" colspan="2"><a href="https://docs.nvidia.com/hpc-sdk/compilers/hpc-compilers-user-guide/index.html" target="blank">nvfortran</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cub/index.html" target="blank">CUB</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/cufft/index.html#abstract" target="blank">cuFFT</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/cuda/curand/index.html" target="blank">cuRAND</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/index.html" target="blank">NCCL</a></td>
-    <td class="tg-c3ow"><a href="https://docs.nvidia.com/nsight-compute/" target="blank">Compute</a></td>
-    <td class="tg-c3ow">Device</td>
-  </tr>
-</tbody>
-</table>
-
-## References
-
-[NVIDIA HPC SDK homepage][1]<br>
-[Documentation][2]
-
-[1]: https://developer.nvidia.com/hpc-sdk
-[2]: https://docs.nvidia.com/hpc-sdk/index.html
diff --git a/content/docs/software/sdk/openacc-mpi.mdx b/content/docs/software/sdk/openacc-mpi.mdx
deleted file mode 100644
index 0886b28bd7df11f23c27dcf7c35e5d8faf777850..0000000000000000000000000000000000000000
--- a/content/docs/software/sdk/openacc-mpi.mdx
+++ /dev/null
@@ -1,531 +0,0 @@
----
-title: "OpenACC MPI Tutorial"
----
-This tutorial is an excerpt from Nvidia's [5Ă— in 5 Hours: Porting a 3D Elastic Wave Simulator to GPUs Using OpenACC][1] tutorial.
-All source code for this tutorial can be downloaded as part of this [tarball][2].
-`SEISMIC_CPML`, developed by Dimitri Komatitsch and Roland Martin from University of Pau, France,
-is a set of ten open-source Fortran 90 programs.
-
-<Callout>
-    Before building and running each step,
-    make sure that the compiler (`pgfortran`) and MPI wrappers (`mpif90`) are in your path.
-</Callout>
-
-## Step 0: Evaluation
-
-Before you start, you should evaluate the code to determine
-whether it is worth accelerating.
-Using the compiler flag `-⁠Minfo=intensity`, you can see
-that the average compute intensity of the various loops is between 2.5 and 2.64.
-As a rule, anything below 1.0 is generally not worth accelerating
-unless it is part of a larger program.
-
-To build and run the original MPI/OpenMP code on your system, do the following:
-
-```console
-cd step0
-make build
-make run
-make verify
-```
-
-## Step 1: Adding Setup Code
-
-Because this is an MPI code where each process will use its own GPU,
-you need to add some utility code to ensure that happens.
-The `setDevice` routine first determines which node the process is on
-(via a call to `hostid`) and then gathers the hostids from all other processes.
-It then determines how many GPUs are available on the node
-and assigns the devices to each process.
-
-Note that in order to maintain portability with the CPU version,
-this section of code is guarded by the preprocessor macro `_OPENACC`,
-which is defined when the OpenACC directives are enabled in the HPC Fortran compiler
-through the use of the `-⁠acc` command-line compiler option.
-
-```code
-#ifdef _OPENACC
-#
-function setDevice(nprocs,myrank)
-
-  use iso_c_binding
-  use openacc
-  implicit none
-  include 'mpif.h'
-
-  interface
-    function gethostid() BIND(C)
-      use iso_c_binding
-      integer (C_INT) :: gethostid
-    end function gethostid
-  end interface
-
-  integer :: nprocs, myrank
-  integer, dimension(nprocs) :: hostids, localprocs
-  integer :: hostid, ierr, numdev, mydev, i, numlocal
-  integer :: setDevice
-
-! get the hostids so we can determine what other processes are on this node
-  hostid = gethostid()
-  CALL mpi_allgather(hostid,1,MPI_INTEGER,hostids,1,MPI_INTEGER, &
-                     MPI_COMM_WORLD,ierr)
-
-! determine which processors are on this node
-  numlocal=0
-  localprocs=0
-  do i=1,nprocs
-    if (hostid .eq. hostids(i)) then
-      localprocs(i)=numlocal
-      numlocal = numlocal+1
-    endif
-  enddo
-
-! get the number of devices on this node
-  numdev = acc_get_num_devices(ACC_DEVICE_NVIDIA)
-
-  if (numdev .lt. 1) then
-    print *, 'ERROR: There are no devices available on this host.  &
-              ABORTING.', myrank
-    stop
-  endif
-
-! print a warning if the number of devices is less then the number
-! of processes on this node.  Having multiple processes share devices is not
-! recommended.
-  if (numdev .lt. numlocal) then
-   if (localprocs(myrank+1).eq.1) then
-     ! print the message only once per node
-   print *, 'WARNING: The number of process is greater then the number  &
-             of GPUs.', myrank
-   endif
-   mydev = mod(localprocs(myrank+1),numdev)
-  else
-   mydev = localprocs(myrank+1)
-  endif
-
- call acc_set_device_num(mydev,ACC_DEVICE_NVIDIA)
- call acc_init(ACC_DEVICE_NVIDIA)
- setDevice = mydev
-
-end function setDevice
-#endif
-```
-
-To build and run the step1 code on your system do the following:
-
-```console
-cd step1
-make build
-make run
-make verify
-```
-
-## Step 2: Adding Compute Regions
-
-Next, you add six compute regions around the eight parallel loops.
-For example, here's the final reduction loop.
-
-```code
-!$acc kernels
-  do k = kmin,kmax
-    do j = NPOINTS_PML+1, NY-NPOINTS_PML
-      do i = NPOINTS_PML+1, NX-NPOINTS_PML
-
-! compute kinetic energy first, defined as 1/2 rho ||v||^2
-! in principle we should use rho_half_x_half_y instead of rho for vy
-! in order to interpolate density at the right location in the staggered grid
-! cell but in a homogeneous medium we can safely ignore it
-
-      total_energy_kinetic = total_energy_kinetic + 0.5d0 * rho*( &
-              vx(i,j,k)**2 + vy(i,j,k)**2 + vz(i,j,k)**2)
-
-! add potential energy, defined as 1/2 epsilon_ij sigma_ij
-! in principle we should interpolate the medium parameters at the right location
-! in the staggered grid cell but in a homogeneous medium we can safely ignore it
-
-! compute total field from split components
-      epsilon_xx = ((lambda + 2.d0*mu) * sigmaxx(i,j,k) - lambda *  &
-      sigmayy(i,j,k) - lambda*sigmazz(i,j,k)) / (4.d0 * mu * (lambda + mu))
-      epsilon_yy = ((lambda + 2.d0*mu) * sigmayy(i,j,k) - lambda *  &
-          sigmaxx(i,j,k) - lambda*sigmazz(i,j,k)) / (4.d0 * mu * (lambda + mu))
-      epsilon_zz = ((lambda + 2.d0*mu) * sigmazz(i,j,k) - lambda *  &
-          sigmaxx(i,j,k) - lambda*sigmayy(i,j,k)) / (4.d0 * mu * (lambda + mu))
-      epsilon_xy = sigmaxy(i,j,k) / (2.d0 * mu)
-      epsilon_xz = sigmaxz(i,j,k) / (2.d0 * mu)
-      epsilon_yz = sigmayz(i,j,k) / (2.d0 * mu)
-
-      total_energy_potential = total_energy_potential + &
-        0.5d0 * (epsilon_xx * sigmaxx(i,j,k) + epsilon_yy * sigmayy(i,j,k) + &
-        epsilon_yy * sigmayy(i,j,k)+ 2.d0 * epsilon_xy * sigmaxy(i,j,k) + &
-        2.d0*epsilon_xz * sigmaxz(i,j,k)+2.d0*epsilon_yz * sigmayz(i,j,k))
-
-      enddo
-    enddo
-  enddo
-!$acc end kernels
-```
-
-The `-⁠acc` command line option to the HPC Accelerator Fortran compiler enables OpenACC directives. Note that OpenACC is meant to model a generic class of devices.
-
-Another compiler option you'll want to use during development is `-⁠Minfo`,
-which provides feedback on optimizations and transformations performed on your code.
-For accelerator-specific information, use the `-⁠Minfo=accel` sub-option.
-
-Examples of feedback messages produced when compiling `SEISMIC_CPML` include:
-
-```console
-   1113, Generating copyin(vz(11:91,11:631,kmin:kmax))
-         Generating copyin(vy(11:91,11:631,kmin:kmax))
-         Generating copyin(vx(11:91,11:631,kmin:kmax))
-         Generating copyin(sigmaxx(11:91,11:631,kmin:kmax))
-         Generating copyin(sigmayy(11:91,11:631,kmin:kmax))
-         Generating copyin(sigmazz(11:91,11:631,kmin:kmax))
-         Generating copyin(sigmaxy(11:91,11:631,kmin:kmax))
-         Generating copyin(sigmaxz(11:91,11:631,kmin:kmax))
-         Generating copyin(sigmayz(11:91,11:631,kmin:kmax))
-```
-
-To compute on a GPU, the first step is to move data from host memory to GPU memory.
-In the example above, the compiler tells you that it is copying over nine arrays.
-
-Note the `copyin` statements.
-These mean that the compiler will only copy the data to the GPU
-but not copy it back to the host.
-This is because line 1113 corresponds to the start of the reduction loop compute region,
-where these arrays are used but never modified.
-
-Data movement clauses:
-
-* `copyin` - the data is copied only to the GPU;
-* `copy` - the data is copied to the device at the beginning of the region and copied back at the end of the region;
-* `copyout` - the data is only copied back to the host.
-
-The compiler is conservative and only copies the data
-that's actually required to perform the necessary computations.
-Unfortunately, because the interior sub-arrays are not contiguous in host memory,
-the compiler needs to generate multiple data transfers for each array.
-
-```console
-   1114, Loop is parallelizable
-   1115, Loop is parallelizable
-   1116, Loop is parallelizable
-         Accelerator kernel generated
-```
-
-Here the compiler has performed dependence analysis
-on the loops at lines 1114, 1115, and 1116 (the reduction loop shown earlier).
-It finds that all three loops are parallelizable so it generates an accelerator kernel.
-
-The compiler may attempt to work around dependences that prevent parallelization by interchanging loops (i.e changing the order) where it's safe to do so. At least one outer or interchanged loop must be parallel for an accelerator kernel to be generated.
-
-How the threads are organized is called the loop schedule.
-Below you can see the loop schedule for our reduction loop.
-The do loops have been replaced with a three-dimensional gang,
-which in turn is composed of a two-dimensional vector section.
-
-```console
-       1114, !$acc loop gang ! blockidx%y
-       1115, !$acc loop gang, vector(4) ! blockidx%z threadidx%y
-       1116, !$acc loop gang, vector(32) ! blockidx%x threadidx%x
-```
-
-In CUDA terminology, the gang clause corresponds to a grid dimension
-and the vector clause corresponds to a thread block dimension.
-
-So here we have a 3-D array that's being grouped into blocks of 32Ă—4 elements
-where a single thread is working on a specific element.
-Because the number of gangs is not specified in the loop schedule,
-it will be determined dynamically when the kernel is launched.
-If the gang clause had a fixed width, such as gang(16),
-then each kernel would be written to loop over multiple elements.
-
-With CUDA, programming reductions and managing shared memory can be a fairly difficult task.
-In the example below, the compiler has automatically generated optimal code using these features.
-
-```console
-       1122, Sum reduction generated for total_energy_kinetic
-       1140, Sum reduction generated for total_energy_potential
-```
-
-To build and run the step2 code on your system do the following:
-
-```console
-cd step2
-make build
-make run
-make verify
-```
-
-## Step 3: Adding Data Regions
-
-<Callout>
-    Set the environment variable `PGI_ACC_TIME=1` and run your executable.
-    This option prints basic profile information such as the kernel execution time,
-    data transfer time, initialization time, the actual launch configuration,
-    and total time spent in a compute region.
-    Note that the total time is measured from the host and includes time spent executing host code within a region.
-<\Callout>
-
-To improve performance, you should minimize the amount of time transferring data,
-i.e. the data directive.
-You can use a data region to specify exact points in your program
-where data should be copied from host memory to GPU memory, and back again.
-Any compute region enclosed within a data region will use the previously copied data,
-without the need to copy at the boundaries of the compute region.
-A data region can span across host code and multiple compute regions,
-and even across subroutine boundaries.
-
-In looking at the arrays in `SEISMIC_CMPL`, there are 18 arrays with constant values.
-Another 21 are used only within compute regions so are never needed on the host.
-Let's start by adding a data region around the outer time step loop.
-The final three arrays do need to be copied back to the host to pass their halos.
-
-For those cases, we use the update directive.
-
-```code
-!---
-!---  beginning of time loop
-!---
-!$acc data &
-!$acc copyin(a_x_half,b_x_half,k_x_half,                       &
-!$acc        a_y_half,b_y_half,k_y_half,                       &
-!$acc        a_z_half,b_z_half,k_z_half,                       &
-!$acc        a_x,a_y,a_z,b_x,b_y,b_z,k_x,k_y,k_z,              &
-!$acc        sigmaxx,sigmaxz,sigmaxy,sigmayy,sigmayz,sigmazz,  &
-!$acc        memory_dvx_dx,memory_dvy_dx,memory_dvz_dx,        &
-!$acc        memory_dvx_dy,memory_dvy_dy,memory_dvz_dy,        &
-!$acc        memory_dvx_dz,memory_dvy_dz,memory_dvz_dz,        &
-!$acc        memory_dsigmaxx_dx, memory_dsigmaxy_dy,           &
-!$acc        memory_dsigmaxz_dz, memory_dsigmaxy_dx,           &
-!$acc        memory_dsigmaxz_dx, memory_dsigmayz_dy,           &
-!$acc        memory_dsigmayy_dy, memory_dsigmayz_dz,           &
-!$acc        memory_dsigmazz_dz)
-
-  do it = 1,NSTEP
-
-...
-
-!$acc update host(sigmazz,sigmayz,sigmaxz)
-! sigmazz(k+1), left shift
-  call MPI_SENDRECV(sigmazz(:,:,1),number_of_values,MPI_DOUBLE_PRECISION, &
-         receiver_left_shift,message_tag,sigmazz(:,:,NZ_LOCAL+1), &
-         number_of_values,
-
-...
-
-!$acc update device(sigmazz,sigmayz,sigmaxz)
-
-...
-
-  ! --- end of time loop
-  enddo
-!$acc end data
-```
-
-Data regions can be nested, and in fact we used this feature
-in the time loop body for the arrays vx, vy and vz as shown below.
-While these arrays are copied back and forth at the inner data region boundary,
-and so are moved more often than the arrays moved in the outer data region,
-they are used across multiple compute regions
-instead of being copied at each compute region boundary.
-
-Note that we do not specify any array dimensions in the copy clause.
-This instructs the compiler to copy each array in its entirety as a contiguous block,
-and eliminates the inefficiency we noted earlier
-when interior sub-arrays were being copied in multiple blocks.
-
-```code
-!$acc data copy(vx,vy,vz)
-
-... data region spans over 5 compute regions and host code
-
-!$acc kernels
-
-...
-
-!$acc end kernels
-
-!$acc end data
-```
-
-To build and run the step3 code on your system do the following:
-
-```console
-cd step3
-make build
-make run
-make verify
-```
-
-## Step 4: Optimizing Data Transfers
-
-The next steps further optimizes the data transfers
-by migrating as much of the computation as we can over to the GPU
-and moving only the absolute minimum amount of data required.
-The first step is to move the start of the outer data region up
-so that it occurs earlier in the code, and to put the data initialization loops into compute kernels.
-This includes the `vx`, `vy`, and `vz` arrays.
-This approach enables you to remove the inner data region used in the previous optimization step.
-
-In the following example code, notice the use of the `create` clause.
-This instructs the compiler to allocate space for variables in GPU memory for local use
-but to perform no data movement on those variables.
-Essentially they are used as scratch variables in GPU memory.
-
-```console
-!$acc data                                                     &
-!$acc copyin(a_x_half,b_x_half,k_x_half,                       &
-!$acc        a_y_half,b_y_half,k_y_half,                       &
-!$acc        a_z_half,b_z_half,k_z_half,                       &
-!$acc        ix_rec,iy_rec,                                    &
-!$acc        a_x,a_y,a_z,b_x,b_y,b_z,k_x,k_y,k_z),             &
-!$acc copyout(sisvx,sisvy),                                    &
-!$acc create(memory_dvx_dx,memory_dvy_dx,memory_dvz_dx,        &
-!$acc        memory_dvx_dy,memory_dvy_dy,memory_dvz_dy,        &
-!$acc        memory_dvx_dz,memory_dvy_dz,memory_dvz_dz,        &
-!$acc        memory_dsigmaxx_dx, memory_dsigmaxy_dy,           &
-!$acc        memory_dsigmaxz_dz, memory_dsigmaxy_dx,           &
-!$acc        memory_dsigmaxz_dx, memory_dsigmayz_dy,           &
-!$acc        memory_dsigmayy_dy, memory_dsigmayz_dz,           &
-!$acc        memory_dsigmazz_dz,                               &
-!$acc        vx,vy,vz,vx1,vy1,vz1,vx2,vy2,vz2,                 &
-!$acc        sigmazz1,sigmaxz1,sigmayz1,                       &
-!$acc        sigmazz2,sigmaxz2,sigmayz2)                       &
-!$acc copyin(sigmaxx,sigmaxz,sigmaxy,sigmayy,sigmayz,sigmazz)
-
-...
-
-! Initialize vx, vy and vz arrays on the device
-!$acc kernels
-  vx(:,:,:) = ZERO
-  vy(:,:,:) = ZERO
-  vz(:,:,:) = ZERO
-!$acc end kernels
-
-...
-```
-
-One caveat to using data regions is that you must be aware of which copy
-(host or device) of the data you are actually using in a given loop or computation.
-For example, any update to the copy of a variable in device memory
-won't be reflected in the host copy until you specified
-using either an update directive or a `copy` clause at a data or compute region boundary.
-
-<Callout type=warn>
-    Unintentional loss of coherence between the host and device copy of a variable is one of the most common causes of validation errors in OpenACC programs.
-</Callout>
-
-After making the above change to `SEISMIC_CPML`, the code generated incorrect results. After debugging, it was determined that the section of the time step loop
-that initializes boundary conditions was omitted from an OpenACC compute region.
-As a result, we were initializing the host copy of the data,
-rather than the device copy as intended, which resulted in uninitialized variables in device memory.
-
-The next challenge in optimizing the data transfers related to the handling of the halo regions.
-`SEISMIC_CPML` passes halos from six 3-D arrays between MPI processes during the course of the computations.
-
-After some experimentation, we settled on an approach whereby we added six new temporary 2-D arrays to hold the halo data.
-Within a compute region we gathered the 2-D halos from the main 3-D arrays
-into the new temp arrays, copied the temporaries back to the host in one contiguous block,
-passed the halos between MPI processes, and finally copied the exchanged values
-back to device memory and scattered the halos back into the 3-D arrays.
-While this approach does add to the kernel execution time, it saves a considerable amount of data transfer time.
-
-In the example code below, note that the source code added to support the halo
-gathers and transfers is guarded by the preprocessor `_OPENACC` macro
-and will only be executed if the code is compiled by an OpenACC-enabled compiler.
-
-```code
-#ifdef _OPENACC
-#
-! Gather the sigma 3D arrays to a 2D slice to allow for faster
-! copy from the device to host
-!$acc kernels
-   do i=1,NX
-    do j=1,NY
-      vx1(i,j)=vx(i,j,1)
-      vy1(i,j)=vy(i,j,1)
-      vz1(i,j)=vz(i,j,NZ_LOCAL)
-    enddo
-  enddo
-!$acc end kernels
-!$acc update host(vxl,vyl,vzl)
-
-! vx(k+1), left shift
-  call MPI_SENDRECV(vx1(:,:), number_of_values, MPI_DOUBLE_PRECISION, &
-       receiver_left_shift, message_tag, vx2(:,:), number_of_values, &
-       MPI_DOUBLE_PRECISION, sender_left_shift, message_tag, MPI_COMM_WORLD,&
-       message_status, code)
-
-! vy(k+1), left shift
-  call MPI_SENDRECV(vy1(:,:), number_of_values, MPI_DOUBLE_PRECISION, &
-       receiver_left_shift,message_tag, vy2(:,:),number_of_values,   &
-       MPI_DOUBLE_PRECISION, sender_left_shift, message_tag, MPI_COMM_WORLD,&
-       message_status, code)
-
-! vz(k-1), right shift
-  call MPI_SENDRECV(vz1(:,:), number_of_values, MPI_DOUBLE_PRECISION, &
-       receiver_right_shift, message_tag, vz2(:,:), number_of_values, &
-       MPI_DOUBLE_PRECISION, sender_right_shift, message_tag, MPI_COMM_WORLD, &
-       message_status, code)
-
-!$acc update device(vx2,vy2,vz2)
-!$acc kernels
-  do i=1,NX
-    do j=1,NY
-      vx(i,j,NZ_LOCAL+1)=vx2(i,j)
-      vy(i,j,NZ_LOCAL+1)=vy2(i,j)
-      vz(i,j,0)=vz2(i,j)
-    enddo
-  enddo
-!$acc end kernels
-
-#else
-```
-
-To build and run the step4 code on your system do the following:
-
-```console
-cd step4
-make build
-make run
-make verify
-```
-
-## Step 5: Loop Schedule Tuning
-
-The final step is to tune the OpenACC compute region loop schedules
-using the gang, worker, and vector clauses.
-The default kernel schedules chosen by the NVIDIA OpenACC compiler are usually quite good.
-Manual tuning efforts often don't improve timings significantly,
-but it's always worthwhile to spend a little time examining
-whether you can do better by overriding compiler-generated loop schedules
-using explicit loop scheduling clauses.
-You can usually tell fairly quickly if the clauses are having an effect.
-
-Note that there is no well-defined method for finding an optimal kernel schedule.
-The best advice is to start with the compiler's default schedule and try small adjustments
-to see if and how they affect execution time.
-The kernel schedule you choose will affect whether and how shared memory is used,
-global array accesses, and various types of optimizations.
-Typically, it's better to perform gang scheduling of loops with large iteration counts.
-
-```code
-!$acc loop gang
-  do k = k2begin,NZ_LOCAL
-    kglobal = k + offset_k
-!$acc loop worker vector collapse(2)
-    do j = 2,NY
-      do i = 2,NX
-```
-
-To build and run the step5 code on your system do the following:
-
-```console
-cd step5
-make build
-make run
-make verify
-```
-
-[1]: https://docs.nvidia.com/hpc-sdk/compilers/openacc-mpi-tutorial/index.html
-[2]: https://docs.nvidia.com/hpc-sdk/compilers/openacc-mpi-tutorial/openacc-mpi-tutorial.tar.gz
diff --git a/content/docs/software/tools/ansys/ansys-cfx.mdx b/content/docs/software/tools/ansys/ansys-cfx.mdx
deleted file mode 100644
index f32cb84842bcba3bd02da2090983e9470b5f8cd1..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/ansys-cfx.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: "ANSYS CFX"
----
-[ANSYS CFX][a] is a high-performance, general purpose fluid dynamics program
-that has been applied to solve wide-ranging fluid flow problems for over 20 years.
-At the heart of ANSYS CFX is its advanced solver technology,
-the key to achieving reliable and accurate solutions quickly and robustly.
-The modern, highly parallelized solver is the foundation for an abundant choice of physical models
-to capture virtually any type of phenomena related to fluid flow.
-The solver and its many physical models are wrapped in a modern, intuitive, and flexible GUI and user environment,
-with extensive capabilities for customization and automation using session files, scripting and a powerful expression language.
-
-To run ANSYS CFX in batch mode, you can utilize/modify the default `cfx.slurm` script and execute it via the `sbatch` command:
-
-```bash
-#!/bin/bash
-#SBATCH --nodes=5             # Request 5 nodes
-#SBATCH --ntasks-per-node=128 # Request 128 MPI processes per node
-#SBATCH --job-name=ANSYS-test # Job name
-#SBATCH --partition=qcpu      # Partition name
-#SBATCH --account=ACCOUNT_ID  # Account/project ID
-#SBATCH --output=%x-%j.out    # Output log file with job name and job ID
-#SBATCH --time=04:00:00       # Walltime
-
-#!change the working directory (default is home directory)
-#cd <working directory> (working directory must exists)
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOB_ID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-echo Running on host `hostname`
-echo Time is `date`
-echo Directory is `pwd`
-echo This jobs runs on the following processors:
-echo `$SLURM_NODELIST`
-
-ml ANSYS/2023R2-intel-2022.12
-
-#### Set number of processors per host listing
-procs_per_host=1
-#### Create host list
-hl=""
-for host in $(scontrol show hostname $SLURM_NODELIST)
-do
- if [ "$hl" = "" ]
- then hl="$host:$procs_per_host"
- else hl="${hl}:$host:$procs_per_host"
- fi
-done
-
-echo Machines: $hl
-
-#-dev input.def includes the input of CFX analysis in DEF format
-#-P the name of prefered license feature (aa_r=ANSYS Academic Research, ane3fl=Multiphysics(commercial))
-cfx5solve -def input.def -size 4 -size-ni 4x -part-large -start-method "Platform MPI Distributed Parallel" -par-dist $hl -P aa_r
-```
-
-SVS FEM recommends utilizing sources by keywords: nodes, ppn.
-These keywords allow addressing directly the number of nodes (computers) and cores (ppn) utilized in the job.
-In addition, the rest of the code assumes such structure of allocated resources.
-
-A working directory has to be created before sending the Slurm job into the queue.
-The input file should be in the working directory or a full path to the input file has to be specified.
-The input file has to be defined by a common CFX def file which is attached to the CFX solver via the `-def` parameter.
-
-The **license** should be selected by the `-P` parameter.
-Licensed products are: `aa_r` (ANSYS **Academic** Research) and `ane3fl` (ANSYS Multiphysics-**Commercial**).
-
-[a]: http://www.ansys.com/products/fluids/ansys-cfx
diff --git a/content/docs/software/tools/ansys/ansys-fluent.mdx b/content/docs/software/tools/ansys/ansys-fluent.mdx
deleted file mode 100644
index 59efbae351fadf7246c7d9029d7ca534afd667e2..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/ansys-fluent.mdx
+++ /dev/null
@@ -1,188 +0,0 @@
----
-title: "ANSYS Fluent"
----
-[ANSYS Fluent][a] software contains the broad physical modeling capabilities needed to model flow,
-turbulence, heat transfer, and reactions for industrial applications ranging
-from air flow over an aircraft wing to combustion in a furnace, from bubble columns to oil platforms,
-from blood flow to semiconductor manufacturing, and from clean room design to wastewater treatment plants.
-Special models that give the software the ability to model in-cylinder combustion,
-aeroacoustics, turbomachinery, and multiphase systems have served to broaden its reach.
-
-## Common Way to Run Fluent
-
-To run ANSYS Fluent in a batch mode, you can utilize/modify the default `fluent.slurm` script and execute it via the `sbatch` command:
-
-```bash
-#!/bin/bash
-#SBATCH --nodes=5             # Request 5 nodes
-#SBATCH --ntasks-per-node=128 # 128 MPI processes per node
-#SBATCH --job-name=ANSYS-test # Job name
-#SBATCH --partition=qcpu      # Partition name
-#SBATCH --account=ACCOUNT_ID  # Account/project ID
-#SBATCH --output=%x-%j.out    # Output log file with job name and job ID
-#SBATCH --time=04:00:00       # Walltime
-
-#!change the working directory (default is home directory)
-#cd <working directory> (working directory must exists)
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOB_ID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-echo Running on host `hostname`
-echo Time is `date`
-echo Directory is `pwd`
-echo This jobs runs on the following processors:
-echo $SLURM_NODELIST
-
-#### Load ansys module so that we find the cfx5solve command
-ml ANSYS/2023R2-intel-2022.12
-
-# Count the total number of cores allocated
-NCORES=$SLURM_NTASKS
-
-fluent 3d -t$NCORES -cnf=$SLURM_NODELIST -g -i fluent.jou
-```
-
-[SVS FEM][b] recommends utilizing sources by keywords: nodes, ppn.
-These keywords allows addressing directly the number of nodes (computers) and cores (ppn) utilized in the job.
-In addition, the rest of the code assumes such structure of allocated resources.
-
-A working directory has to be created before sending the job into the queue.
-The input file should be in the working directory or a full path to the input file has to be specified.
-The input file has to be defined by a common Fluent journal file
-which is attached to the Fluent solver via the `-i fluent.jou` parameter.
-
-A journal file with the definition of the input geometry and boundary conditions
-and defined process of solution has, for example, the following structure:
-
-```console
-    /file/read-case aircraft_2m.cas.gz
-    /solve/init
-    init
-    /solve/iterate
-    10
-    /file/write-case-dat aircraft_2m-solution
-    /exit yes
-```
-
-The appropriate dimension of the problem has to be set by a parameter (`2d`/`3d`).
-
-## Fast Way to Run Fluent From Command Line
-
-```console
-fluent solver_version [FLUENT_options] -i journal_file -slurm
-```
-
-This syntax will start the ANSYS FLUENT job under Slurm using the sbatch commnad.
-When resources are available, Slurm will start the job and return the job ID, usually in the form of `_job_ID.hostname_`.
-This job ID can then be used to query, control, or stop the job using standard Slurm commands, such as `squeue` or `scancel`.
-The job will be run out of the current working directory and all output will be written to the fluent.o `_job_ID_` file.
-
-## Running Fluent via User's Config File
-
-If no command line arguments are present, the sample script uses a configuration file called slurm_fluent.conf.
-This configuration file should be present in the directory from which the jobs are submitted
-(which is also the directory in which the jobs are executed).
-The following is an example of what the content of slurm_fluent.conf can be:
-
-```console
-input="example_small.flin"
-case="Small-1.65m.cas"
-fluent_args="3d -pmyrinet"
-outfile="fluent_test.out"
-mpp="true"
-```
-
-The following is an explanation of the parameters:
-
-`input` is the name of the input file.
-
-`case` is the name of the .cas file that the input file will utilize.
-
-`fluent_args` are extra ANSYS FLUENT arguments. As shown in the previous example, you can specify the interconnect by using the `-p interconnect` command. The available interconnects include ethernet (default), Myrinet, InfiniBand, Vendor, Altix, and Crayx. MPI is selected automatically, based on the specified interconnect.
-
-`outfile` is the name of the file to which the standard output will be sent.
-
-`mpp="true"` will tell the job script to execute the job across multiple processors.
-
-To run ANSYS Fluent in batch mode with the user's config file, you can utilize/modify the following script and execute it via the `sbatch` command:
-
-```bash
-#!/bin/sh
-#SBATCH --nodes=2                       # Request 2 nodes
-#SBATCH --ntasks-per-node=4             # 4 MPI processes per node
-#SBATCH --cpus-per-task=128             # 128 CPUs (threads) per MPI process
-#SBATCH --job-name=$USE-Fluent-Project  # Job name
-#SBATCH --partition=qprod               # Partition name
-#SBATCH --account=XX-YY-ZZ              # Account/project ID
-#SBATCH --output=%x-%j.out              # Output file name with job name and job ID
-#SBATCH --time=04:00:00                 # Walltime
-
- cd $SLURM_SUBMIT_DIR
-
- #We assume that if they didn’t specify arguments then they should use the
- #config file if ["xx${input}${case}${mpp}${fluent_args}zz" = "xxzz" ]; then
-   if [ -f slurm_fluent.conf ]; then
-     . slurm_fluent.conf
-   else
-     printf "No command line arguments specified, "
-     printf "and no configuration file found.  Exiting n"
-   fi
- fi
-
-
- #Augment the ANSYS FLUENT command line arguments case "$mpp" in
-   true)
-     #MPI job execution scenario
-     num_nodes=‘$SLURM_NODELIST | sort -u | wc -l‘
-     cpus=‘expr $num_nodes * $NCPUS‘
-     #Default arguments for mpp jobs, these should be changed to suit your
-     #needs.
-     fluent_args="-t${cpus} $fluent_args -cnf=$SLURM_NODELIST"
-     ;;
-   *)
-     #SMP case
-     #Default arguments for smp jobs, should be adjusted to suit your
-     #needs.
-     fluent_args="-t$NCPUS $fluent_args"
-     ;;
- esac
- #Default arguments for all jobs
- fluent_args="-ssh -g -i $input $fluent_args"
-
- echo "---------- Going to start a fluent job with the following settings:
- Input: $input
- Case: $case
- Output: $outfile
- Fluent arguments: $fluent_args"
-
- #run the solver
- fluent $fluent_args  > $outfile
-```
-
-It runs the jobs out of the directory from which they are submitted (SLURM_SUBMIT_DIR).
-
-## Running Fluent in Parralel
-
-Fluent could be run in parallel only under the Academic Research license.
-To do this, the ANSYS Academic Research license must be placed before the ANSYS CFD license in user preferences.
-To make this change, the anslic_admin utility should be run:
-
-```console
-/ansys_inc/shared_les/licensing/lic_admin/anslic_admin
-```
-
-The ANSLIC_ADMIN utility will be run:
-
-![](/it4i/img/Fluent_Licence_1.jpg)
-
-![](/it4i/img/Fluent_Licence_2.jpg)
-
-![](/it4i/img/Fluent_Licence_3.jpg)
-
-The ANSYS Academic Research license should be moved up to the top of the list:
-
-![](/it4i/img/Fluent_Licence_4.jpg)
-
-[a]: http://www.ansys.com/products/fluids/ansys-fluent
-[b]: http://www.svsfem.cz
diff --git a/content/docs/software/tools/ansys/ansys-ls-dyna.mdx b/content/docs/software/tools/ansys/ansys-ls-dyna.mdx
deleted file mode 100644
index 85f338adb69a0c7a8ebfab966cfd1aa82b0c7441..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/ansys-ls-dyna.mdx
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "ANSYS LS-DYNA"
----
-[ANSYSLS-DYNA][a] provides convenient and easy-to-use access to the technology-rich,
-time-tested explicit solver without the need to contend
-with the complex input requirements of this sophisticated program.
-Introduced in 1996, ANSYS LS-DYNA capabilities have helped customers in numerous industries
-to resolve highly intricate design issues.
-ANSYS Mechanical users have been able to take advantage of complex explicit solutions
-for a long time utilizing the traditional ANSYS Parametric Design Language (APDL) environment.
-These explicit capabilities are available to ANSYS Workbench users as well.
-The Workbench platform is a powerful, comprehensive, easy-to-use environment for engineering simulation.
-CAD import from all sources, geometry cleanup, automatic meshing, solution,
-parametric optimization, result visualization, and comprehensive report generation
-are all available within a single fully interactive modern graphical user environment.
-
-To run ANSYS LS-DYNA in batch mode, you can utilize/modify the default `ansysdyna.slurm` script
-and execute it via the `sbatch` command:
-
-```bash
-#!/bin/bash
-#SBATCH --nodes=5             # Request 5 nodes
-#SBATCH --ntasks-per-node=128 # Request 128 MPI processes per node
-#SBATCH --job-name=ANSYS-test # Job name
-#SBATCH --partition=qcpu      # Partition name
-#SBATCH --account=PROJECT_ID  # Account/project ID
-#SBATCH --output=%x-%j.out    # Output log file with job name and job ID
-#SBATCH --time=04:00:00       # Walltime
-
-
-#!change the working directory (default is home directory)
-#cd <working directory>
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOB_ID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-echo Running on host `hostname`
-echo Time is `date`
-echo Directory is `pwd`
-echo This jobs runs on the following processors:
-echo $SLURM_NODELIST
-
-#! Counts the number of processors
-NPROCS=$(scontrol show hostname $SLURM_NODELIST | wc -l)
-
-echo This job has allocated $NPROCS nodes
-
-ml ANSYS/2023R2-intel-2022.12
-
-#### Set number of processors per host listing
-procs_per_host=1
-#### Create host list
-hl=""
-for host in $(scontrol show hostname $SLURM_NODELIST)
-do
- if [ "$hl" = "" ]
- then hl="$host:$procs_per_host"
- else hl="${hl}:$host:$procs_per_host"
- fi
-done
-
-echo Machines: $hl
-
-ansys211 -dis -lsdynampp i=input.k -machines $hl
-```
-
-[SVS FEM][b] recommends to utilize sources by keywords: nodes, ppn.
-These keywords allows addressing directly the number of nodes (computers)
-and cores (ppn) utilized in the job.
-In addition, the rest of the code assumes such structure of allocated resources.
-
-[a]: http://www.ansys.com/products/structures/ansys-ls-dyna
-[b]: http://www.svsfem.cz
diff --git a/content/docs/software/tools/ansys/ansys-mechanical-apdl.mdx b/content/docs/software/tools/ansys/ansys-mechanical-apdl.mdx
deleted file mode 100644
index aad5a9d8aabe2af0786d39848e860b9d3afd0091..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/ansys-mechanical-apdl.mdx
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: "ANSYS MAPDL"
----
-[ANSYS Multiphysics][a] offers a comprehensive product solution for both multiphysics and single-physics analysis.
-The product includes structural, thermal, fluid, and both high- and low-frequency electromagnetic analysis.
-The product also contains solutions for both direct and sequentially coupled physics problems
-including direct coupled-field elements and the ANSYS multi-field solver.
-
-To run ANSYS MAPDL in batch mode you can utilize/modify the default `mapdl.slurm` script and execute it via the `sbatch` command:
-
-```bash
-#!/bin/bash
-#SBATCH --nodes=5             # Request 5 nodes
-#SBATCH --ntasks-per-node=128 # Request 128 MPI processes per node
-#SBATCH --job-name=ANSYS-test # Job name
-#SBATCH --partition=qcpu      # Partition name
-#SBATCH --account=PROJECT_ID  # Account/project ID
-#SBATCH --output=%x-%j.out    # Output log file with job name and job ID
-#SBATCH --time=04:00:00       # Walltime
-
-#!change the working directory (default is home directory)
-#cd <working directory> (working directory must exists)
-DIR=/scratch/project/PROJECT_ID/$SLURM_JOB_ID
-mkdir -p "$DIR"
-cd "$DIR" || exit
-
-echo Running on host `hostname`
-echo Time is `date`
-echo Directory is `pwd`
-echo This jobs runs on the following processors:
-echo $SLURM_NODELIST
-
-ml ANSYS/2023R2-intel-2022.12
-
-#### Set number of processors per host listing
-procs_per_host=1
-
-#### Create host list
-hl=""
-for host in $(scontrol show hostname $SLURM_NODELIST)
-do
- if [ "$hl" = "" ]
- then hl="$host:$procs_per_host"
- else hl="${hl}:$host:$procs_per_host"
- fi
-done
-
-echo Machines: $hl
-
-#-i input.dat includes the input of analysis in APDL format
-#-o file.out is output file from ansys where all text outputs will be redirected
-#-p the name of license feature (aa_r=ANSYS Academic Research, ane3fl=Multiphysics(commercial), aa_r_dy=Academic AUTODYN)
-ansys211 -b -dis -p aa_r -i input.dat -o file.out -machines $hl -dir $WORK_DIR
-```
-
-[SVS FEM][b] recommends utilizing sources by keywords: nodes, ppn.
-These keywords allow addressing directly the number of nodes (computers) and cores (ppn) utilized in the job.
-In addition the rest of the code assumes such structure of allocated resources.
-
-A working directory has to be created before sending the Slurm job into the queue.
-The input file should be in the working directory or a full path to the input file has to be specified.
-The input file has to be defined by a common APDL file which is attached to the ANSYS solver via the `-i` parameter.
-
-The **license** should be selected by the `-p` parameter.
-Licensed products are the following: `aa_r` (ANSYS **Academic** Research),
-`ane3fl` (ANSYS Multiphysics-**Commercial**), and `aa_r_dy` (ANSYS **Academic** AUTODYN)
-
-[1]: ../../../general/resources-allocation-policy.md
-
-[a]: http://www.ansys.com/products/multiphysics
-[b]: http://www.svsfem.cz
diff --git a/content/docs/software/tools/ansys/ansys.mdx b/content/docs/software/tools/ansys/ansys.mdx
deleted file mode 100644
index 44cd27713755bcd3ead10ab748e73735c360aa34..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/ansys.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Overview of ANSYS Products"
----
-[SVS FEM][a] as [ANSYS Channel partner][b] for the Czech Republic provided all ANSYS licenses for our clusters and supports all ANSYS Products (Multiphysics, Mechanical, MAPDL, CFX, Fluent, Maxwell, LS-DYNA, etc.) to IT staff and ANSYS users. In case of a problem with ANSYS functionality, contact [hotline@svsfem.cz][c].
-
-We provides commercial as well as academic variants. Academic variants are distinguished by the "**Academic...**" word in the license name or by the two letter preposition "**aa\_**" in the license feature name. Change of license is realized on command line or directly in the user's Slurm file (see individual products).
-
-To load the latest version of any ANSYS product (Mechanical, Fluent, CFX, MAPDL, etc.) load the module:
-
-```console
-$ ml ANSYS
-```
-
-ANSYS supports interactive mode, but due to assumed solution of extremely difficult tasks it is not recommended.
-
-If the user needs to work in the interactive mode, we recommend to configure the RSM service on the client machine which allows to forward the solution to the cluster directly from the client's Workbench project (see ANSYS RSM service).
-
-[a]: http://www.svsfem.cz/
-[b]: http://www.ansys.com/
-[c]: mailto:hotline@svsfem.cz
diff --git a/content/docs/software/tools/ansys/licensing.mdx b/content/docs/software/tools/ansys/licensing.mdx
deleted file mode 100644
index cdb1fde34abc24b70155c05de36137569101373a..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/licensing.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "Licensing and Available Versions"
----
-## ANSYS License Can Be Used By:
-
-* all persons in the carrying out of the CE IT4Innovations Project (In addition to the primary licensee, which is VSB - Technical University of Ostrava, users are CE IT4Innovations third parties - CE IT4Innovations project partners, particularly the University of Ostrava, the Brno University of Technology - Faculty of Informatics, the Silesian University in Opava, Institute of Geonics AS CR.)
-* all persons who have a valid license
-* students of the Technical University
-
-## ANSYS Academic Research
-
-The license intended to be used for science and research, publications, students’ projects (academic license).
-
-## ANSYS COM
-
-The license intended to be used for science and research, publications, students’ projects, and commercial research with no commercial use restrictions.
-
-## Server / Port
-
-lic-ansys.vsb.cz / 1055 (2325)
-
-![](/it4i/img/Ansys-lic-admin.jpg)
-
-## Available Versions
-
-* 21.1
-
-``` console
-$ ml av ANSYS
----------------- /apps/modules/tools -----------------------
-   ANSYS/21.1-intel-2018a (D)
-
-  Where:
-   D:   Default Module
-```
diff --git a/content/docs/software/tools/ansys/meta.json b/content/docs/software/tools/ansys/meta.json
deleted file mode 100644
index 8352cc16fb10f43a9503ba2a8b4925725ec5ec0e..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/meta.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "title": "Ansys",
-  "pages": [
-    "ansys",
-    "ansys-cfx",
-    "ansys-fluent",
-    "ansys-ls-dyna",
-    "ansys-mechanical-apdl",
-    "licensing",
-    "setting-license-preferences",
-    "workbench"
-  ]
-}
diff --git a/content/docs/software/tools/ansys/setting-license-preferences.mdx b/content/docs/software/tools/ansys/setting-license-preferences.mdx
deleted file mode 100644
index 1d33a9ac62a208eec4d03fac96ea6c412b243b0b..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/setting-license-preferences.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Setting License Preferences"
----
-Some ANSYS tools allow you to explicitly specify usage of academic or commercial licenses in the command line (e.g. ansys211 -p aa_r to select the Academic Research license). However, we have observed that not all tools obey this option and choose the commercial license.
-
-Thus you need to configure preferred license order with ANSLIC_ADMIN. Follow these steps and move the Academic Research license to the top or bottom of the list accordingly.
-
-Launch the ANSLIC_ADMIN utility in a graphical environment:
-
-```console
-$ANSYSLIC_DIR/lic_admin/anslic_admin
-```
-
-ANSLIC_ADMIN Utility will be run
-
-![](/it4i/img/Fluent_Licence_1.jpg)
-
-![](/it4i/img/Fluent_Licence_2.jpg)
-
-![](/it4i/img/Fluent_Licence_3.jpg)
-
-The ANSYS Academic Research license should be moved up to the top or down to the bottom of the list.
-
-![](/it4i/img/Fluent_Licence_4.jpg)
diff --git a/content/docs/software/tools/ansys/workbench.mdx b/content/docs/software/tools/ansys/workbench.mdx
deleted file mode 100644
index dd64c440c4501be13b16d53ca8452d543a2d156c..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/ansys/workbench.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: "Workbench"
----
-## Workbench Batch Mode
-
-It is possible to run Workbench scripts in a batch mode.
-You need to configure solvers of individual components to run in parallel mode.
-Open your project in Workbench.
-Then, for example, in *Mechanical*, go to *Tools - Solve Process Settings...*.
-
-![](/it4i/img/AMsetPar1.png)
-
-Enable the *Distribute Solution* checkbox and enter the number of cores (e.g. 72 to run on two Barbora nodes).
-If you want the job to run on more than 1 node, you must also provide a so called MPI appfile.
-In the *Additional Command Line Arguments* input field, enter:
-
-```console
-    -mpifile /path/to/my/job/mpifile.txt
-```
-
-Where `/path/to/my/job` is the directory where your project is saved.
-We will create the file `mpifile.txt` programmatically later in the batch script.
-For more information, refer to \*ANSYS Mechanical APDL Parallel Processing\* \*Guide\*.
-
-Now, save the project and close Workbench.
-We will use this script to launch the job:
-
-```bash
-    #!/bin/bash
-    #SBATCH --nodes=2
-    #SBATCH --ntasks-per-node=128
-    #SBATCH --job-name=test9_mpi_2
-    #SBATCH --partition=qcpu
-    #SBATCH --account=ACCOUNT_ID
-
-    # change the working directory
-    DIR=/scratch/project/PROJECT_ID/$SLURM_JOB_ID
-    mkdir -p "$DIR"
-    cd "$DIR" || exit
-
-    echo Running on host `hostname`
-    echo Time is `date`
-    echo Directory is `pwd`
-    echo This jobs runs on the following nodes:
-    echo `$SLURM_NODELIST`
-
-    ml ANSYS/2023R2-intel-2022.12
-
-    #### Set number of processors per host listing
-    procs_per_host=24
-    #### Create MPI appfile
-    echo -n "" > mpifile.txt
-    for host in `$SLURM_NODELIST`
-    do
-      echo "-h $host -np $procs_per_host $ANSYS160_DIR/bin/ansysdis161 -dis" > mpifile.txt
-    done
-
-    #-i input.dat includes the input of analysis in APDL format
-    #-o file.out is output file from ansys where all text outputs will be redirected
-    #-p the name of license feature (aa_r=ANSYS Academic Research, ane3fl=Multiphysics(commercial), aa_r_dy=Academic AUTODYN)
-
-    # prevent using scsif0 interface on accelerated nodes
-    export MPI_IC_ORDER="UDAPL"
-    # spawn remote process using SSH (default is RSH)
-    export MPI_REMSH="/usr/bin/ssh"
-
-    runwb2 -R jou6.wbjn -B -F test9.wbpj
-```
-
-The solver settings are saved in the `solvehandlers.xml` file,
-which is not located in the project directory.
-Verify your solved settings when uploading a project from your local computer.
diff --git a/content/docs/software/tools/apptainer.mdx b/content/docs/software/tools/apptainer.mdx
deleted file mode 100644
index 97f4912474cdd704984fc41cc617cfe87fba8ffb..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/apptainer.mdx
+++ /dev/null
@@ -1,228 +0,0 @@
----
-title: "Apptainer on IT4Innovations"
----
-On our clusters, the Apptainer images of main Linux distributions are prepared.
-
-```console
-Barbora             Karolina
- ├── CentOS          ├── CentOS
- |    └── 7          |    └── 7
- ├── Rocky           ├── Rocky
- |    ├── 8          |    ├── 8
- │    └── 9          │    └── 9
- ├── Fedora          ├── Fedora
- │    └── latest     │    └── latest
- └── Ubuntu          └── Ubuntu
-      └── latest          └── latest
-```
-
-<Callout>
-    Current information about available Apptainer images can be obtained by the `ml av` command. The images are listed in the `OS` section.
-</Callout>
-
-The bootstrap scripts, wrappers, features, etc. are located on [it4i-singularity GitLab page][a].
-
-## IT4Innovations Apptainer Wrappers
-
-For better user experience with Apptainer containers, we prepared several wrappers:
-
-* image-exec
-* image-mpi
-* image-run
-* image-shell
-* image-update
-
-Listed wrappers help you to use prepared Apptainer images loaded as modules.
-You can easily load a Apptainer image like any other module on the cluster by the `ml OS/version` command.
-After the module is loaded for the first time, the prepared image is copied into your home folder and is ready for use.
-When you load the module next time, the version of the image is checked and an image update (if exists) is offered.
-Then you can update your copy of the image by the `image-update` command.
-
-<Callout type=warn>
-    With an image update, all user changes to the image will be overridden.
-</Callout>
-
-The runscript inside the Apptainer image can be run by the `image-run` command.
-
-<Callout>
-    This command automatically mounts the `/scratch` and `/apps` storage and invokes the image as writable, so user changes can be made.
-</Callout>
-
-Very similar to `image-run` is the `image-exec` command.
-The only difference is that `image-exec` runs a user-defined command instead of a runscript.
-In this case, the command to be run is specified as a parameter.
-
-Using the interactive shell inside the Apptainer container is very useful for development.
-In this interactive shell, you can make any changes to the image you want,
-but be aware that you can not use the `sudo` privileged commands directly on the cluster.
-To simply invoke interactive shell, use the `image-shell` command.
-
-Another useful feature of the Apptainer is the direct support of OpenMPI.
-For proper MPI function, you have to install the same version of OpenMPI inside the image as you use on the cluster.
-OpenMPI/4.1.2 is installed in prepared images  (CentOS 7, Rocky 8).
-The MPI must be started outside the container.
-The easiest way to start the MPI is to use the `image-mpi` command.
-This command has the same parameters as `mpirun`, so there is no difference between running normal MPI application
-and MPI application in a Apptainer container.
-
-## Examples
-
-In the examples, we will use prepared Apptainer images.
-
-### Load Image
-
-```console
-$ ml CentOS/7
-Preparing image CentOS-7_20230116143612.sif
-        261.20M 100%  412.36MB/s    0:00:00 (xfr#1, to-chk=0/1)
-Your image of CentOS/7 is at location: /home/username/.apptainer/images/CentOS-7_20230116143612.sif
-```
-
-<Callout>
-    After the module is loaded for the first time, the prepared image is copied into your home folder to the *.apptainer/images* subfolder.
-</Callout>
-
-### Wrappers
-
-**image-exec**
-
-Executes the given command inside the Apptainer image. The container is in this case started, then the command is executed and the container is stopped.
-
-```console
-$ ml CentOS/7
-$ image-exec cat /etc/redhat-release
-CentOS Linux release 7.9.2009 (Core)
-```
-
-**image-mpi**
-
-MPI wrapper - see more in the [Examples MPI][1] section.
-
-**image-run**
-
-This command runs the runscript inside the Apptainer image. Note, that the prepared images do not contain a runscript.
-
-**image-shell**
-
-Invokes an interactive shell inside the Apptainer image.
-
-```console
-$ ml CentOS/7
-$ image-shell
-Apptainer>
-```
-
-### Update Image
-
-This command is for updating your local Apptainer image copy.
-The local copy is overridden in this case.
-
-```console
-$ ml CentOS/7
-New version of CentOS image was found. (New: CentOS-7_20230116143612.sif Old: CentOS-7_20230115143612.sif)
-For updating image use: image-update
-Your image of CentOS/7 is at location: /home/username/.apptainer/images/CentOS-7_20230115143612.sif
-$ image-update
-New version of CentOS image was found. (New: CentOS-7_20230116143612.sif Old: CentOS-7_20230115143612.sif)
-Do you want to update local copy? (WARNING all user modification will be deleted) [y/N]: y
-Updating image  CentOS-7_20230116143612.sif
-       2.71G 100%  199.49MB/s    0:00:12 (xfer#1, to-check=0/1)
-
-sent 2.71G bytes  received 31 bytes  163.98M bytes/sec
-total size is 2.71G  speedup is 1.00
-New version is ready. (/home/username/.apptainer/images/CentOS-7_20230116143612.sif)
-```
-
-### MPI
-
-In the following example, we are using a job submitted by the command:
-
-```bash
-$ salloc -A PROJECT_ID -p qcpu --nodes=2 --ntasks-per-node=128 --time=00:30:00
-```
-
-<Callout>
-    We have seen no major performance impact for a job running in a Apptainer container.
-</Callout>
-
-With Apptainer, the MPI usage model is to call `mpirun` from outside the container
-and reference the container from your `mpirun` command.
-Usage would look like this:
-
-```console
-$ mpirun -np 128 apptainer exec container.img /path/to/contained_mpi_prog
-```
-
-By calling `mpirun` outside of the container, we solve several very complicated work-flow aspects.
-For example, if `mpirun` is called from within the container, it must have a method for spawning processes on remote nodes.
-Historically the SSH is used for this, which means that there must be an `sshd` running within the container on the remote nodes
-and this `sshd` process must not conflict with the `sshd` running on that host.
-It is also possible for the resource manager to launch the job
-and (in OpenMPI’s case) the Orted (Open RTE User-Level Daemon) processes on the remote system,
-but that then requires resource manager modification and container awareness.
-
-In the end, we do not gain anything by calling `mpirun` from within the container
-except for increasing the complexity levels and possibly losing out on some added
-performance benefits (e.g. if a container was not built with the proper OFED as the host).
-
-#### MPI Inside Apptainer Image
-
-```console
-$ ml CentOS/7
-$ image-shell
-Apptainer> mpirun hostname | wc -l
-128
-```
-
-As you can see in this example, we allocated two nodes, but MPI can use only one node (128 processes) when used inside the Apptainer image.
-
-#### MPI Outside Apptainer Image
-
-```console
-$ ml CentOS/7
-Your image of CentOS/7 is at location: /home/username/.apptainer/images/CentOS-7_20230116143612.sif
-$ image-mpi hostname | wc -l
-256
-```
-
-In this case, the MPI wrapper behaves like the `mpirun` command.
-The `mpirun` command is called outside the container
-and the communication between nodes are propagated into the container automatically.
-
-## How to Use Own Image on Cluster?
-
-* Prepare the image on your computer
-* Transfer the images to your `/home` directory on the cluster (for example `.apptainer/image`)
-
-```console
-local:$ scp container.img login@login2.clustername.it4i.cz:~/.apptainer/image/container.img
-```
-
-* Load module Apptainer (`ml apptainer`)
-* Use your image
-
-<Callout>
-    If you want to use the Apptainer wrappers with your own images, load the `apptainer-wrappers/1.0` module and set the environment variable `IMAGE_PATH_LOCAL=/path/to/container.img`.
-</Callout>
-
-## How to Edit IT4Innovations Image?
-
-* Transfer the image to your computer
-
-```console
-local:$ scp login@login2.clustername.it4i.cz:/home/username/.apptainer/image/container.img container.img
-```
-
-* Modify the image
-* Transfer the image from your computer to your `/home` directory on the cluster
-
-```console
-local:$ scp container.img login@login2.clustername.it4i.cz:/home/username/.apptainer/image/container.img
-```
-
-* Load module Apptainer (`ml apptainer`)
-* Use your image
-
-[1]: #mpi
-
-[a]: https://code.it4i.cz/sccs/it4i-singularity
diff --git a/content/docs/software/tools/easybuild-images.mdx b/content/docs/software/tools/easybuild-images.mdx
deleted file mode 100644
index 6ce75d22d87f1c4d8883baa7559342179357b216..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/easybuild-images.mdx
+++ /dev/null
@@ -1,252 +0,0 @@
----
-title: "Generating Container Recipes & Images"
----
-EasyBuild has support for generating container recipes that will use EasyBuild to build and install a specified software stack. In addition, EasyBuild can (optionally) leverage the build tool provided by the container software of choice to create container images.
-
-## Generating Container Recipes
-
-To generate container recipes, use `eb --containerize`, or `eb -C` for short.
-
-The resulting container recipe will leverage EasyBuild to build and install the software that corresponds to the easyconfig files that are specified as arguments to the eb command (and all required dependencies, if needed).
-
-<Callout>
-    EasyBuild will refuse to overwrite existing container recipes.
-    To re-generate an already existing recipe file, use the `--force` command line option.
-</Callout>
-
-## Base Container Image
-
-In order to let EasyBuild generate a container recipe, it is required to specify which container image should be used as a base, via the `--container-base` configuration option.
-
-Currently, three types of container base images can be specified:
-
-* **localimage: *path***: the location of an existing container image file
-* **docker:*name***: the name of a Docker container image (to be downloaded from [Docker Hub][a].
-* **shub:*name***: the name of a Apptainer/Singularity container image (to be downloaded from [Singularity Hub][b].
-
-## Building Container Images
-
-To instruct EasyBuild to also build a container image from the generated container recipe, use `--container-build-image` (in combination with `-C` or `--containerize`).
-
-EasyBuild will leverage functionality provided by the container software of choice (see containers_cfg_image_type) to build the container image.
-
-For example, in the case of Apptainer/Singularity, EasyBuild will run `sudo /path/to/singularity build` on the generated container recipe.
-
-The container image will be placed in the location specified by the `--containerpath` configuration option (see Location for generated container recipes & images (`--containerpath`)), next to the generated container recipe that was used to build the image.
-
-## Example Usage
-
-In this example, we will use a pre-built base container image located at `/tmp/example.simg` (see also Base container image (`--container-base`)).
-
-To let EasyBuild generate a container recipe for GCC 6.4.0 + binutils 2.28:
-
-```console
-eb GCC-6.4.0-2.28.eb --containerize --container-base localimage:/tmp/example.simg --experimental
-```
-
-With other configuration options left to default (see the output of `eb --show-config`), this will result in a Apptainer/Singularity container recipe using example.simg as a base image, which will be stored in `$HOME/.local/easybuild/containers`:
-
-```console
-$ eb GCC-6.4.0-2.28.eb --containerize --container-base localimage:/tmp/example.simg --experimental
-== temporary log file in case of crash /tmp/eb-dLZTNF/easybuild-LPLeG0.log
-== Singularity definition file created at /home/example/.local/easybuild/containers/Singularity.GCC-6.4.0-2.28
-== Temporary log file(s) /tmp/eb-dLZTNF/easybuild-LPLeG0.log* have been removed.
-== Temporary directory /tmp/eb-dLZTNF has been removed.
-```
-
-## Example of a Generated Container Recipe
-
-Below is an example of container recipe generated by EasyBuild, using the following command:
-
-```console
-eb Python-3.6.4-foss-2018a.eb OpenMPI-2.1.2-GCC-6.4.0-2.28.eb -C --container-base shub:shahzebsiddiqui/eb-singularity:centos-7.4.1708 --experimental
-```
-
-It uses the *shahzebsiddiqui/eb-singularity:centos-7.4.1708* base container image that is available from the Apptainer/Singularity hub ([see this webpage][c]).
-
-```
-Bootstrap: shub
-From: shahzebsiddiqui/eb-singularity:centos-7.4.1708
-
-%post
-yum --skip-broken -y install openssl-devel libssl-dev libopenssl-devel
-yum --skip-broken -y install libibverbs-dev libibverbs-devel rdma-core-devel
-
-
-# upgrade easybuild package automatically to latest version
-pip install -U easybuild
-
-# change to 'easybuild' user
-su - easybuild
-
-eb Python-3.6.4-foss-2018a.eb OpenMPI-2.1.2-GCC-6.4.0-2.28.eb --robot --installpath=/app/ --prefix=/scratch --tmpdir=/scratch/tmp
-
-# exit from 'easybuild' user
-exit
-
-# cleanup
-rm -rf /scratch/tmp/* /scratch/build /scratch/sources /scratch/ebfiles_repo
-
-%runscript
-eval "$@"
-
-%environment
-source /etc/profile
-module use /app/modules/all
-ml Python/3.6.4-foss-2018a OpenMPI/2.1.2-GCC-6.4.0-2.28
-
-%labels
-```
-
-<Callout>
-    We also specify the easyconfig file for the OpenMPI component of `foss/2018a` here, because it requires specific OS dependencies to be installed (see the second `yum ... install` line in the generated container recipe).
-    We intend to let EasyBuild take into account the OS dependencies of the entire software stack automatically in a future update.
-
-    The generated container recipe includes `pip install -U easybuild` to ensure that the latest version of EasyBuild is used to build the software in the container image, regardless of whether EasyBuild was already present in the container and which version it was.
-
-    In addition, the generated module files will follow the default module-naming scheme (EasyBuildMNS). The modules that correspond to the easyconfig files that were specified on the command line will be loaded automatically; see the statements in the %environment section of the generated container recipe.
-</Callout>
-
-## Example of Building Container Image
-
-You can instruct EasyBuild to also build the container image by using `--container-build-image`.
-
-Note that you will need to enter your sudo password (unless you recently executed a sudo command in the same shell session):
-
-```console
-$ eb GCC-6.4.0-2.28.eb --containerize --container-base localimage:/tmp/example.simg --container-build-image --experimental
-== temporary log file in case of crash /tmp/eb-aYXYC8/easybuild-8uXhvu.log
-== Singularity tool found at /usr/bin/singularity
-== Singularity version '2.4.6' is 2.4 or higher ... OK
-== Singularity definition file created at /home/example/.local/easybuild/containers/Singularity.GCC-6.4.0-2.28
-== Running 'sudo /usr/bin/singularity build  /home/example/.local/easybuild/containers/GCC-6.4.0-2.28.simg /home/example/.local/easybuild/containers/Singularity.GCC-6.4.0-2.28', you may need to enter your 'sudo' password...
-== (streaming) output for command 'sudo /usr/bin/singularity build  /home/example/.local/easybuild/containers/GCC-6.4.0-2.28.simg /home/example/.local/easybuild/containers/Singularity.GCC-6.4.0-2.28':
-Using container recipe deffile: /home/example/.local/easybuild/containers/Singularity.GCC-6.4.0-2.28
-Sanitizing environment
-Adding base Singularity environment to container
-...
-== temporary log file in case of crash /scratch/tmp/eb-WnmCI_/easybuild-GcKyY9.log
-== resolving dependencies ...
-...
-== building and installing GCCcore/6.4.0...
-...
-== building and installing binutils/2.28-GCCcore-6.4.0...
-...
-== building and installing GCC/6.4.0-2.28...
-...
-== COMPLETED: Installation ended successfully
-== Results of the build can be found in the log file(s) /app/software/GCC/6.4.0-2.28/easybuild/easybuild-GCC-6.4.0-20180424.084946.log
-== Build succeeded for 15 out of 15
-...
-Building Singularity image...
-Singularity container built: /home/example/.local/easybuild/containers/GCC-6.4.0-2.28.simg
-Cleaning up...
-== Singularity image created at /home/example/.local/easybuild/containers/GCC-6.4.0-2.28.simg
-== Temporary log file(s) /tmp/eb-aYXYC8/easybuild-8uXhvu.log* have been removed.
-== Temporary directory /tmp/eb-aYXYC8 has been removed.
-```
-
-To inspect the container image, you can use `singularity shell` to start a shell session in the container:
-
-```console
-$ singularity shell --shell "/bin/bash --norc" $HOME/.local/easybuild/containers/GCC-6.4.0-2.28.simg
-
-Singularity GCC-6.4.0-2.28.simg:~> source /etc/profile
-
-Singularity GCC-6.4.0-2.28.simg:~> module list
-
-Currently Loaded Modules:
-  1) GCCcore/6.4.0   2) binutils/2.28-GCCcore-6.4.0   3) GCC/6.4.0-2.28
-
-Singularity GCC-6.4.0-2.28.simg:~> which gcc
-/app/software/GCCcore/6.4.0/bin/gcc
-
-Singularity GCC-6.4.0-2.28.simg:~> gcc --version
-gcc (GCC) 6.4.0
-...
-```
-
-Or, you can use `singularity exec` to execute a command in the container.
-
-Compare the output of running which gcc and `gcc --version` locally:
-
-```console
-$ which gcc
-/usr/bin/gcc
-$ gcc --version
-gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
-...
-```
-
-and the output when running the same commands in the container:
-
-```console
-$ singularity exec GCC-6.4.0-2.28.simg which gcc
-/app/software/GCCcore/6.4.0/bin/gcc
-
-$ singularity exec GCC-6.4.0-2.28.simg gcc --version
-gcc (GCC) 6.4.0
-...
-```
-
-## Configuration
-
-### Location for Generated Container Recipes & Images
-
-To control the location where EasyBuild will put generated container recipes & images, use the `--containerpath` configuration setting. Next to providing this as an option to the eb command, you can also define the `$EASYBUILD_CONTAINERPATH` environment variable or specify containerpath in an EasyBuild configuration file.
-
-The default value for this location is `$HOME/.local/easybuild/containers`, unless the `--prefix` configuration setting was provided, in which case it becomes <prefix>/containers (see Overall prefix path (`--prefix`)).
-
-Use `eb --show-full-config | grep containerpath` to determine the currently active setting.
-
-### Container Image Format
-
-The format for container images that EasyBuild produces via the functionality provided by the container software can be controlled via the `--container-image-format` configuration setting.
-
-For Apptainer/Singularity containers (see Type of container recipe/image to generate (`--container-type`)), three image formats are supported:
-
-* squashfs (default): compressed images using squashfs read-only file system
-* ext3: writable image file using ext3 file system
-* sandbox: container image in a regular directory
-
-See also official user guide on [Image Mounts format][d] and [Building a Container][e].
-
-## Name for Container Recipe & Image
-
-By default, EasyBuild will use the name of the first easyconfig file (without the .eb suffix) as a name for both the container recipe and the image.
-
-You can specify an alternate name using the `--container-image-name` configuration setting.
-
-The filename of the generated container recipe will be `Singularity`.<name>.
-
-The filename of the container image will be `<name><extension>`, where the value for `<extension>` depends on the image format (see Container image format (`--container-image-format`)):
-
-* ‘.simg’ for squashfs container images
-* ‘.img’ for ext3 container images
-* empty for sandbox container images (in which case the container image is actually a directory rather than a file)
-
-### Temporary Directory for Creating Container Images
-
-The container software that EasyBuild leverages to build container images may be using a temporary directory in a location that does not have sufficient free space.
-
-You can instruct EasyBuild to pass an alternate location via the `--container-tmpdir` configuration setting.
-
-For Apptainer/Singularity, the default is to use /tmp, [see][f]. If `--container-tmpdir` is specified, the `$SINGULARITY_TMPDIR` environment variable will be defined accordingly to let Apptainer/Singularity use that location instead.
-
-Type of container recipe/image to generate (`--container-type`).
-With the `--container-type` configuration option, you can specify what type of container recipe/image EasyBuild should generate. Possible values are:
-
-* singularity (default): [Singularity][g] container recipes & images
-* docker: [Docker][h] container recipe & images
-
-For detailed documentation, see the [webpage][i].
-
-[a]: https://hub.docker.com/
-[b]: https://singularity-hub.org/
-[c]: https://singularity-hub.org/collections/143
-[d]: https://apptainer.org/docs/user/latest/bind_paths_and_mounts.html#image-mounts
-[e]: https://apptainer.org/docs/user/latest/build_a_container.html
-[f]: https://apptainer.org/docs/user/latest/build_env.html#temporary-folders
-[g]: https://singularity.lbl.gov
-[h]: https://docs.docker.com/
-[i]: http://easybuild.readthedocs.io/en/latest/Containers.html
diff --git a/content/docs/software/tools/easybuild.mdx b/content/docs/software/tools/easybuild.mdx
deleted file mode 100644
index cf7d70d63b420a23adf72c076af5fb5366c65a33..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/easybuild.mdx
+++ /dev/null
@@ -1,482 +0,0 @@
----
-title: "EasyBuild"
----
-The objective of this tutorial is to show how EasyBuild can be used to ease, automate, and script the build of software on the IT4Innovations clusters. Two use-cases are considered. First, we are going to build a software that is supported by EasyBuild. Then, we will see through a simple example how to add support for a new software in EasyBuild.
-
-The benefit of using EasyBuild for your builds is that it allows automated and reproducible build of software. Once a build has been made, the build script (via the EasyConfig file) or the installed software (via the module file) can be shared with other users.
-
-## Short Introduction
-
-EasyBuild is a tool that allows performing automated and reproducible software compilation and installation.
-
-All builds and installations are performed at user level, so you do not need the admin rights. The software is installed in your home directory (by default in `$HOME/.local/easybuild/software/`) and a module file is generated (by default in `$HOME/.local/easybuild/modules/`) to use the software.
-
-EasyBuild relies on two main concepts:
-
-* Toolchains
-* EasyConfig file (our easyconfigs are [here][a])
-
-A detailed documentation is available [here][b].
-
-## Toolchains
-
-A toolchain corresponds to a compiler and a set of libraries, which are commonly used to build a software. The two main toolchains frequently used on the IT4Innovations clusters are the **foss** and **intel**.
-
-* **foss** is based on the GCC compiler and on open-source libraries (OpenMPI, OpenBLAS, etc.).
-* **intel** is based on the Intel compiler and on Intel libraries (Intel MPI, Intel Math Kernel Library, etc.).
-
-Additional details are available [here][c].
-
-## EasyConfig File
-
-The EasyConfig file is a simple text file that describes the build process of a software. For most software that uses standard procedure (like configure, make, and make install), this file is very simple. Many EasyConfig files are already provided with EasyBuild.
-
-By default, EasyConfig files and generated modules are named using the following convention:
-
-`software-name-software-version-toolchain-name-toolchain-version(-suffix).eb`
-
-Additional details are available [here][d].
-
-## EasyBuild on IT4Innovations Clusters
-
-To use EasyBuild on a compute node, load the `EasyBuild` module:
-
-```console
-$ml av easybuild
-
------------------------------------------- /apps/modules/tools -------------------------------------------
-   EasyBuild/4.3.3 (S)    EasyBuild/4.4.2 (S)    EasyBuild/4.5.4 (S)    EasyBuild/4.6.2 (S)
-   EasyBuild/4.3.4 (S)    EasyBuild/4.5.0 (S)    EasyBuild/4.5.5 (S)    EasyBuild/4.7.0 (S,D)
-   EasyBuild/4.4.0 (S)    EasyBuild/4.5.1 (S)    EasyBuild/4.6.0 (S)
-   EasyBuild/4.4.1 (S)    EasyBuild/4.5.3 (S)    EasyBuild/4.6.1 (S)
-
-  Where:
-   S:  Module is Sticky, requires --force to unload or purge
-   D:  Default Module
-
-Use "module spider" to find all possible modules and extensions.
-Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
-
-$ ml EasyBuild
-```
-
-The EasyBuild command is `eb`. Check the version you have loaded:
-
-```console
-$ eb --version
-This is EasyBuild 4.7.0 (framework: 4.7.0, easyblocks: 4.7.0) on host login1.karolina.it4i.cz.
-```
-
-To get help on the EasyBuild options, use the `-h` or `-H` option flags:
-
-```console
-$ eb -h
-Usage: eb [options] easyconfig [...]
-
-Builds software based on easyconfig (or parse a directory). Provide one or more easyconfigs or
-directories, use -H or --help more information.
-
-Options:
-  -h                show short help message and exit
-  -H OUTPUT_FORMAT  show full help message and exit
-
-  Debug and logging options (configfile section MAIN):
-    -d              Enable debug log mode (default: False)
-
-  Basic options:
-    Basic runtime options for EasyBuild. (configfile section basic)
-...
-```
-
-## Build Software Using Provided EasyConfig File
-
-### Search for Available Easyconfig
-
-Searching for available easyconfig files can be done using the `--search` (long output) and `-S` (short output) command line options. All easyconfig files available in the robot search path are considered and searching is done case-insensitive.
-
-```console
-$ eb -S git
-CFGS1=/apps/easybuild/easyconfigs-it4i
-CFGS2=/apps/easybuild/easyconfigs-master/easybuild/easyconfigs
-CFGS3=/apps/easybuild/easyconfigs-develop/easybuild/easyconfigs
- * $CFGS1/.gitignore
- * $CFGS1/.gitlab-ci.yml
- * $CFGS1/g/git-lfs/git-lfs-1.1.1.eb
- * $CFGS1/g/git-lfs/git-lfs-2.11.0.eb
- * $CFGS1/g/git-lfs/git-lfs-3.1.2.eb
- * $CFGS1/g/git/git-2.19.1.eb
- * $CFGS1/g/git/git-2.21.0.eb
- * $CFGS1/g/git/git-2.23.0.eb
- * $CFGS1/g/git/git-2.25.1.eb
- * $CFGS1/g/git/git-2.30.1.eb
- * $CFGS1/g/git/git-2.31.1.eb
- * $CFGS1/g/git/git-2.32.0-GCCcore-10.3.0-nodocs-test.eb
- * $CFGS2/b/BCALM/BCALM-2.2.0-fix-nogit.patch
- * $CFGS2/d/dagitty/dagitty-0.2-2-foss-2018b-R-3.5.1.eb
- * $CFGS2/e/EMAN2/EMAN2-2.3_fix_broken_githash_regex_replace.patch
- * $CFGS2/g/GIMIC/GIMIC-2018.04.20_git.patch
- * $CFGS2/g/GitPython/GitPython-2.1.11-foss-2018b-Python-3.6.6.eb
- * $CFGS2/g/GitPython/GitPython-2.1.11-intel-2018b-Python-3.6.6.eb
- * $CFGS2/g/GitPython/GitPython-2.1.15.eb
- * $CFGS2/g/GitPython/GitPython-3.0.3-GCCcore-8.2.0-Python-3.7.2.eb
- * $CFGS2/g/GitPython/GitPython-3.1.0-GCCcore-8.3.0-Python-3.7.4.eb
- * $CFGS2/g/GitPython/GitPython-3.1.9-GCCcore-9.3.0-Python-3.8.2.eb
- * $CFGS2/g/GitPython/GitPython-3.1.14-GCCcore-10.2.0.eb
- * $CFGS2/g/GitPython/GitPython-3.1.18-GCCcore-10.3.0.eb
- * $CFGS2/g/GitPython/GitPython-3.1.24-GCCcore-11.2.0.eb
- * $CFGS2/g/GitPython/GitPython-3.1.27-GCCcore-11.3.0.eb
- * $CFGS2/g/gettext/gettext-0.19.8_fix-git-config.patch
- * $CFGS2/g/git-extras/git-extras-5.1.0-foss-2016a.eb
-...
-```
-
-### Get an Overview of Planned Installations
-
-You can do a “dry-run” overview by supplying `-D`/`--dry-run` (typically combined with `--robot`, in the form of `-Dr`):
-
-```console
-$ eb git-2.30.1.eb -Dr
-== Temporary log file in case of crash /tmp/eb-6vwvor2_/easybuild-vg82aat4.log
-Dry run: printing build status of easyconfigs and dependencies
-CFGS=/apps/easybuild
- * [x] $CFGS/easyconfigs-master/easybuild/easyconfigs/m/M4/M4-1.4.18.eb (module: M4/1.4.18)
- * [x] $CFGS/easyconfigs-it4i/a/Autoconf/Autoconf-2.69.eb (module: Autoconf/2.69)
- * [ ] $CFGS/easyconfigs-it4i/g/git/git-2.30.1.eb (module: git/2.30.1)
-== Temporary log file(s) /tmp/eb-6vwvor2_/easybuild-vg82aat4.log* have been removed.
-== Temporary directory /tmp/eb-6vwvor2_ has been removed.
-```
-
-### Compile and Install Module
-
-If we try to build *git-2.31.1.eb*, nothing will happen as it is already installed on the cluster. To enable dependency resolution, use the `--robot` command line option (or `-r` for short):
-
-```console
-$ eb git-2.31.1.eb -r
-== Temporary log file in case of crash /tmp/eb-11d_kpht/easybuild-jmygqpqr.log
-== git/2.31.1 is already installed (module found), skipping
-== No easyconfigs left to be built.
-
-== Build succeeded for 0 out of 0
-== Temporary log file(s) /tmp/eb-11d_kpht/easybuild-jmygqpqr.log* have been removed.
-== Temporary directory /tmp/eb-11d_kpht has been removed.
-```
-
-Rebuild *git-2.31.1.eb*. Use `eb --rebuild` to rebuild a given easyconfig/module or use `eb --force`/`-f` to force the reinstallation of a given easyconfig/module. The behavior of `--force` is the same as `--rebuild` and `--ignore-osdeps`.
-
-```console
-$ eb git-2.31.1.eb -r -f
-== Temporary log file in case of crash /tmp/eb-wbzf_rxh/easybuild-umq1_01u.log
-== resolving dependencies ...
-== processing EasyBuild easyconfig /apps/easybuild/easyconfigs-it4i/g/git/git-2.31.1.eb
-== building and installing git/2.31.1...
-== fetching files...
-== creating build dir, resetting environment...
-== ... (took 3 secs)
-== unpacking...
-== ... (took 9 secs)
-== patching...
-== preparing...
-== configuring...
-== ... (took 4 secs)
-== building...
-== ... (took 4 secs)
-== testing...
-== installing...
-== ... (took 2 secs)
-== taking care of extensions...
-== restore after iterating...
-== postprocessing...
-== sanity checking...
-== cleaning up...
-== ... (took 3 secs)
-== creating module...
-== permissions...
-== packaging...
-== COMPLETED: Installation ended successfully (took 30 secs)
-== Results of the build can be found in the log file(s)
-/home/username/.local/easybuild/software/git/2.31.1/easybuild/easybuild-git-2.31.1-20230315.092001.log
-
-== Build succeeded for 1 out of 1
-== Temporary log file(s) /tmp/eb-wbzf_rxh/easybuild-umq1_01u.log* have been removed.
-== Temporary directory /tmp/eb-wbzf_rxh has been removed.
-```
-
-If we try to build *git-2.30.1.eb*:
-
-```console
-$ eb git-2.30.1.eb -r
-== Temporary log file in case of crash /tmp/eb-s3t9lwk_/easybuild-cvx5kpna.log
-== resolving dependencies ...
-== processing EasyBuild easyconfig /apps/easybuild/easyconfigs-it4i/g/git/git-2.30.1.eb
-== building and installing git/2.30.1...
-== fetching files...
-== creating build dir, resetting environment...
-== unpacking...
-== ... (took 10 secs)
-== patching...
-== preparing...
-== configuring...
-== ... (took 4 secs)
-== building...
-== ... (took 4 secs)
-== testing...
-== installing...
-== ... (took 3 secs)
-== taking care of extensions...
-== restore after iterating...
-== postprocessing...
-== sanity checking...
-== cleaning up...
-== ... (took 3 secs)
-== creating module...
-== permissions...
-== packaging...
-== COMPLETED: Installation ended successfully (took 29 secs)
-== Results of the build can be found in the log file(s)
-/home/username/.local/easybuild/software/git/2.30.1/easybuild/easybuild-git-2.30.1-20230315.092117.log
-
-== Build succeeded for 1 out of 1
-== Temporary log file(s) /tmp/eb-s3t9lwk_/easybuild-cvx5kpna.log* have been removed.
-== Temporary directory /tmp/eb-s3t9lwk_ has been removed.
-```
-
-If we try to build *git-2.30.1*, but we used easyconfig *git-2.25.1.eb*, change the version command `--try-software-version=2.30.1`:
-
-```console
-$ eb git-2.25.1.eb -r --try-software-version=2.30.1
-== Temporary log file in case of crash /tmp/eb-lw9itci8/easybuild-qzb7j64j.log
-== resolving dependencies ...
-== processing EasyBuild easyconfig /tmp/eb-lw9itci8/tweaked_easyconfigs/git-2.30.1.eb
-== building and installing git/2.30.1...
-== fetching files...
-== ... (took 4 secs)
-== creating build dir, resetting environment...
-== unpacking...
-== ... (took 9 secs)
-== patching...
-== preparing...
-== configuring...
-== ... (took 4 secs)
-== building...
-== ... (took 4 secs)
-== testing...
-== installing...
-== ... (took 4 secs)
-== taking care of extensions...
-== restore after iterating...
-== postprocessing...
-== sanity checking...
-== cleaning up...
-== ... (took 3 secs)
-== creating module...
-== permissions...
-== packaging...
-== COMPLETED: Installation ended successfully (took 33 secs)
-== Results of the build can be found in the log file(s)
-/home/username/.local/easybuild/software/git/2.30.1/easybuild/easybuild-git-2.30.1-20230315.092313.log
-
-== Build succeeded for 1 out of 1
-== Temporary log file(s) /tmp/eb-lw9itci8/easybuild-qzb7j64j.log* have been removed.
-== Temporary directory /tmp/eb-lw9itci8 has been removed.
-```
-
-### MODULEPATH
-
-To see the newly installed modules, you need to add the path where they were installed to the MODULEPATH. On the cluster, you have to use the `module use` command:
-
-```console
-$ module use $HOME/.local/easybuild/modules/all/
-```
-
-or modify your `.bash_profile`:
-
-```console
-$ cat ~/.bash_profile
-# .bash_profile
-
-# Get the aliases and functions
-if [ -f ~/.bashrc ]; then
-. ~/.bashrc
-fi
-
-# User specific environment and startup programs
-
-module use $HOME/.local/easybuild/modules/all/
-
-PATH=$PATH:$HOME/bin
-
-export PATH
-```
-
-## Build Software Using Your Own EasyConfig File
-
-For this example, we create an EasyConfig file to build Git 2.38.1 with the *foss* toolchain. Open your favorite editor and create a file named *git-2.18.1-foss-2022b.eb* with the following content:
-
-```console
-$ vim git-2.38.1-foss-2022b.eb
-```
-
-```python
-easyblock = 'ConfigureMake'
-
-name = 'git'
-version = '2.38.1'
-
-homepage = 'https://git-scm.com/'
-description = """Git is a free and open source distributed version control system designed
-to handle everything from small to very large projects with speed and efficiency."""
-
-toolchain = {'name': 'foss', 'version': '2022b'}
-
-source_urls = ['https://github.com/git/git/archive']
-sources = ['v%(version)s.tar.gz']
-
-builddependencies = [
-    ('binutils', '2.39'),
-    ('Autotools', '20220317'),
-]
-
-dependencies = [
-    ('cURL', '7.86.0'),
-    ('expat', '2.4.9'),
-    ('gettext', '0.21.1'),
-    ('Perl', '5.36.0'),
-]
-
-preconfigopts = 'make configure && '
-
-# Work around git build system bug.  If LIBS contains -lpthread, then configure
-# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS.
-configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'"
-
-postinstallcmds = ['cd contrib/subtree; make install']
-
-sanity_check_paths = {
-    'files': ['bin/git'],
-    'dirs': ['libexec/git-core', 'share'],
-}
-
-moduleclass = 'tools'
-```
-
-This is a simple EasyConfig. Most of the fields are self-descriptive. No build method is explicitly defined, so it uses by default the standard configure/make/make install approach.
-
-Let us build Git with this EasyConfig file:
-
-```console
-$ eb git-2.38.1-foss-2022b.eb -r
-== Temporary log file in case of crash /tmp/eb-2aiq9qr8/easybuild-eb4zenze.log
-== resolving dependencies ...
-== processing EasyBuild easyconfig /home/username/git-2.38.1-foss-2022b.eb
-== building and installing git/2.38.1-foss-2022b...
-== fetching files...
-== ... (took 3 secs)
-== creating build dir, resetting environment...
-== unpacking...
-== ... (took 11 secs)
-== patching...
-== preparing...
-== ... (took 2 secs)
-== configuring...
-== ... (took 7 secs)
-== building...
-== ... (took 7 secs)
-== testing...
-== installing...
-== ... (took 2 secs)
-== taking care of extensions...
-== restore after iterating...
-== postprocessing...
-== sanity checking...
-== ... (took 1 secs)
-== cleaning up...
-== ... (took 4 secs)
-== creating module...
-== ... (took 1 secs)
-== permissions...
-== packaging...
-== COMPLETED: Installation ended successfully (took 41 secs)
-== Results of the build can be found in the log file(s)
-/home/username/.local/easybuild/software/git/2.38.1-foss-2022b/easybuild/easybuild-git-2.38.1-20230315.0957
-22.log
-
-== Build succeeded for 1 out of 1
-== Temporary log file(s) /tmp/eb-2aiq9qr8/easybuild-eb4zenze.log* have been removed.
-== Temporary directory /tmp/eb-2aiq9qr8 has been removed.
-```
-
-We can now check that our version of Git is available via the modules:
-
-```console
-$ ml av git
-
-------------------------------- /home/username/.local/easybuild/modules/all -------------------------------
-   git/2.38.1-foss-2022b
-
------------------------------------------- /apps/modules/devel -------------------------------------------
-   libgit2/1.1.0-GCCcore-10.3.0
-
------------------------------------------- /apps/modules/tools -------------------------------------------
-   git-lfs/3.1.2                            git/2.32.0-GCCcore-10.3.0-nodocs
-   git/2.28.0-GCCcore-10.2.0-nodocs         git/2.33.1-GCCcore-11.2.0-nodocs
-   git/2.31.1                               git/2.36.0-GCCcore-11.3.0-nodocs
-   git/2.32.0-GCCcore-10.3.0-nodocs-test    git/2.38.1-GCCcore-12.2.0-nodocs (D)
-
-  Where:
-   D:  Default Module
-
-Use "module spider" to find all possible modules and extensions.
-Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
-```
-
-## Advanced EasyBuild Configuration
-
-By creating the `~/.config/easybuild/config.cfg` file, you can easily specify the desired location of your software, CUDA compute capabilities, and other options that you would usually have to specify within your easyconfig or from the command line. To get an overview of all available options, use `eb --confighelp` command.
-
-You can use our template to set all of the usual EasyBuild variables:
-
-```console
-[MAIN]
-
-[basic]
-locks-dir=EASYBUILD_ROOT/.locks/
-robot=/apps/easybuild/easyconfigs-it4i:/apps/easybuild/easyconfigs-master/easybuild/easyconfigs:/apps/easybuild/easyconfigs-develop/easybuild/easyconfigs
-robot-paths=/apps/easybuild/easyconfigs-it4i:/apps/easybuild/easyconfigs-master/easybuild/easyconfigs:/apps/easybuild/easyconfigs-develop/easybuild/easyconfigs
-
-[config]
-buildpath=/dev/shm/USER/build
-installpath=EASYBUILD_ROOT
-installpath-modules=EASYBUILD_ROOT/modules
-installpath-software=EASYBUILD_ROOT/all
-moduleclasses=python
-repository=FileRepository
-repositorypath=EASYBUILD_ROOT/file-repository
-sourcepath=EASYBUILD_ROOT/sources
-
-[easyconfig]
-local-var-naming-check=error
-
-[override]
-# 8.0 for Karolina, 7.0 for Barbora
-cuda-compute-capabilities=CUDA_CC
-detect-loaded-modules=purge
-enforce-checksums=True
-silence-deprecation-warnings=True
-trace=True
-```
-
-<Callout>
-    Do not forget to add the path to your modules to MODULEPATH using the `module use` command in your `~/.bashrc` to be able to lookup and use your installed modules.
-</Callout>
-
-Template requires you to fill in the `EASYBUILD_ROOT`, `CUDA_CC`, and `USER` variables. `EASYBUILD_ROOT` is the top level directory which will hold all of your EasyBuild related data. `CUDA_CC` defines the CUDA compute capabilities of graphics cards, and `USER` should preferably be set to your username.
-
-If you plan on writing more than one or two of your own easyconfigs, it might be useful to setup a custom easyconfig repository. Simply prepend it's path to the `robot` and `robot-paths` variables.
-
-A detailed documentation regarding EasyBuild configuration is available [here][e].
-
-[a]: https://code.it4i.cz/sccs/easyconfigs-it4i
-[b]: https://docs.easybuild.io/
-[c]: https://github.com/easybuilders/easybuild/wiki/Compiler-toolchains
-[d]: https://github.com/easybuilders/easybuild-easyconfigs
-[e]: https://docs.easybuild.io/configuration/
diff --git a/content/docs/software/tools/meta.json b/content/docs/software/tools/meta.json
deleted file mode 100644
index 8c595f7ea77bcf133f40d140125ef155916c9a65..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/meta.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "title": "Tools",
-  "pages": [
-    "ansys",
-    "apptainer",
-    "easybuild",
-    "easybuild-images",
-    "singularity",
-    "spack",
-    "virtualization"
-  ]
-}
diff --git a/content/docs/software/tools/singularity.mdx b/content/docs/software/tools/singularity.mdx
deleted file mode 100644
index f665e895af53c96a8b5b403543da3abb793df486..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/singularity.mdx
+++ /dev/null
@@ -1,152 +0,0 @@
----
-title: "Apptainer Container"
----
-[Apptainer][a] is a container platform. It allows you to create and run containers that package up pieces of software in a way that is portable and reproducible. You can build a container using Apptainer on your laptop, and then run it on many of the largest HPC clusters in the world, local university or company clusters, a single server, in the cloud, or on a workstation down the hall. Your container is a single file, and you don’t have to worry about how to install all the software you need on each different operating system.
-
-## Using Docker Images
-
-Apptainer can import, bootstrap, and even run Docker images directly from [Docker Hub][b]. You can easily run an CentOS container like this:
-
-```console
-$ cat /etc/redhat-release
-CentOS Linux release 7.9.2009 (Core)
-$ ml apptainer
-$ apptainer shell docker://centos:latest
-INFO:    Converting OCI blobs to SIF format
-INFO:    Starting build...
-Getting image source signatures
-Copying blob a1d0c7532777 done
-Copying config 8c1402b22a done
-Writing manifest to image destination
-Storing signatures
-2023/01/17 12:55:08  info unpack layer: sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1
-2023/01/17 12:55:09  warn rootless{usr/bin/newgidmap} ignoring (usually) harmless EPERM on setxattr "security.capability"
-2023/01/17 12:55:09  warn rootless{usr/bin/newuidmap} ignoring (usually) harmless EPERM on setxattr "security.capability"
-2023/01/17 12:55:09  warn rootless{usr/bin/ping} ignoring (usually) harmless EPERM on setxattr "security.capability"
-2023/01/17 12:55:10  warn rootless{usr/sbin/arping} ignoring (usually) harmless EPERM on setxattr "security.capability"
-2023/01/17 12:55:10  warn rootless{usr/sbin/clockdiff} ignoring (usually) harmless EPERM on setxattr "security.capability"
-INFO:    Creating SIF file...
-Apptainer> cat /etc/redhat-release
-CentOS Linux release 8.4.2105
-```
-
-In this case, the image is downloaded from Docker Hub, extracted to a temporary directory, and Apptainer interactive shell is invoked. This procedure can take a lot of time, especially with large images.
-
-## Importing Docker Image
-
-Apptainer containers can be in three different formats:
-
-* read-only **squashfs** (default) - best for production
-* writable **ext3** (--writable option)
-* writable **(ch)root directory** (--sandbox option) - best for development
-
-Squashfs and (ch)root directory images can be built from Docker source directly on the cluster, no root privileges are needed. It is strongly recommended to create a native Apptainer image to speed up the launch of the container.
-
-```console
-$ ml apptainer
-$ apptainer build ubuntu.sif docker://ubuntu:latest
-INFO:    Starting build...
-Getting image source signatures
-Copying blob 6e3729cf69e0 done
-Copying config 415250ec06 done
-Writing manifest to image destination
-Storing signatures
-2023/01/17 12:58:04  info unpack layer: sha256:6e3729cf69e0ce2de9e779575a1fec8b7fb5efdfa822829290ab6d5d1bc3e797
-INFO:    Creating SIF file...
-INFO:    Build complete: ubuntu.sif
-```
-
-alternatively, you can create your own docker image and import it to Apptainer.
-For example, we show how to create and run ubuntu docker image with gvim installed:
-
-```console
-your_local_machine $  docker pull ubuntu
-your_local_machine $  docker run --rm -it ubuntu bash
-# apt update
-# apt install vim-gtk
-your_local_machine $  docker ps -a
-your_local_machine $  docker commit 837a575cf8dc
-your_local_machine $  docker image  ls
-your_local_machine $  docker tag 4dd97cefde62 ubuntu_gvim
-your_local_machine $  docker save -o ubuntu_gvim.tar ubuntu_gvim
-```
-
-copy the `ubuntu_gvim.tar` archive to IT4I supercomputers, convert to Apptainer image and run:
-
-```console
-$ ml Apptainer
-$ apptainer build ubuntu_givm.sif docker-archive://ubuntu_gvim.tar
-$ apptainer shell -B /usr/user/$ID ubuntu_gvim.sif
-```
-
-Note the bind to `/usr/user/$ID` directory.
-
-## Launching the Container
-
-The interactive shell can be invoked by the `apptainer shell` command. This is useful for development purposes. Use the `-w | --writable` option to make changes inside the container permanent.
-
-```console
-$ apptainer shell ubuntu.sif
-
-Apptainer> cat /etc/lsb-release
-DISTRIB_ID=Ubuntu
-DISTRIB_RELEASE=22.04
-DISTRIB_CODENAME=jammy
-DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
-```
-
-A command can be run inside the container (without an interactive shell) by invoking the `apptainer exec` command.
-
-```
-$ apptainer exec ubuntu.sif cat /etc/lsb-release
-DISTRIB_ID=Ubuntu
-DISTRIB_RELEASE=22.04
-DISTRIB_CODENAME=jammy
-DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS""
-```
-
-An Apptainer image can contain a runscript. This script is executed inside the container after the `apptainer run` command is used. The runscript is mostly used to run an application for which the container is built. In the following example, it is the `fortune | cowsay` command:
-
-```
-$ apptainer build lolcow.sif docker://ghcr.io/apptainer/lolcow
-INFO:    Starting build...
-Getting image source signatures
-Copying blob 5ca731fc36c2 skipped: already exists
-Copying blob 16ec32c2132b skipped: already exists
-Copying config fd0daa4d89 done
-Writing manifest to image destination
-Storing signatures
-2023/01/17 13:06:01  info unpack layer: sha256:16ec32c2132b43494832a05f2b02f7a822479f8250c173d0ab27b3de78b2f058
-2023/01/17 13:06:01  info unpack layer: sha256:5ca731fc36c28789c5ddc3216563e8bfca2ab3ea10347e07554ebba1c953242e
-INFO:    Creating SIF file...
-INFO:    Build complete: lolcow.sif
-$ apptainer exec lolcow.sif cowsay moo
- _____
-< moo >
- -----
-        \   ^__^
-         \  (oo)\_______
-            (__)\       )\/\
-                ||----w |
-                ||     ||
-```
-
-## Accessing /HOME and /SCRATCH Within Container
-
-A user home directory is mounted inside the container automatically. If you need access to the **/SCRATCH** storage for your computation, this must be mounted by the `-B | --bind` option.
-
-<Callout type=warn>
-      The mounted folder has to exist inside the container or the container image has to be writable!
-</Callout>
-
-```console
-$ apptainer shell -B /scratch ubuntu.sif
-Apptainer> ls /scratch
-ddn  sys  temp  work
-```
-
-A comprehensive documentation can be found at the [Apptainer Quick Start][c] website.
-
-[a]: https://apptainer.org/docs/user/latest/introduction.html
-[b]: https://hub.docker.com/
-[c]: https://apptainer.org/docs/user/latest/quick_start.html
diff --git a/content/docs/software/tools/spack.mdx b/content/docs/software/tools/spack.mdx
deleted file mode 100644
index 2758c64b260fbf1a4f0e77c85369e3322daaa76e..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/spack.mdx
+++ /dev/null
@@ -1,450 +0,0 @@
----
-title: "Spack"
----
-Spack is a package manager for supercomputers, Linux, and macOS. It makes installing scientific software easy. With Spack, you can build a package with multiple versions, configurations, platforms, and compilers, and all of these builds can coexist on the same machine.
-
-For more information, see Spack's [documentation][a].
-
-## Spack on IT4Innovations Clusters
-
-```console
-
-$ ml av Spack
-
----------------------- /apps/modules/devel ------------------------------
-   Spack/0.16.2 (D)
-```
-
-<Callout>
-    Spack/default is the rule for setting up local installation
-</Callout>
-
-## First Usage Module Spack/Default
-
-Spack will be installed into the ~/Spack folder. You can set the configuration by modifying ~/.spack/configure.yml.
-
-```console
-$ ml Spack
-== Settings for first use
-Couldn't import dot_parser, loading of dot files will not be possible.
-== temporary log file in case of crash /tmp/eb-wLh1RT/easybuild-54vEn3.log
-== processing EasyBuild easyconfig /apps/easybuild/easyconfigs-master/easybuild/easyconfigs/s/Spack/Spack-0.16.2.eb
-== building and installing Spack/0.16.2...
-== fetching files...
-== creating build dir, resetting environment...
-== unpacking...
-== patching...
-== preparing...
-== configuring...
-== building...
-== testing...
-== installing...
-== taking care of extensions...
-== postprocessing...
-== sanity checking...
-== cleaning up...
-== creating module...
-== permissions...
-== packaging...
-== COMPLETED: Installation ended successfully
-== Results of the build can be found in the log file(s) /home/user/.local/easybuild/software/Spack/0.16.2/easybuild/easybuild-Spack-0.16.2-20210922.123022.log
-== Build succeeded for 1 out of 1
-== Temporary log file(s) /tmp/eb-wLh1RT/easybuild-54vEn3.log* have been removed.
-== Temporary directory /tmp/eb-wLh1RT has been removed.
-== Create folder ~/Spack
-
-The following have been reloaded with a version change:
-  1) Spack/default => Spack/0.16.2
-
-$ spack --version
-0.16.2
-```
-
-## Usage Module Spack/Default
-
-```console
-$ ml Spack
-$ ml
-
-Currently Loaded Modules:
-  1) Spack/0.16.2
-```
-
-## Build Software Package
-
-Packages in Spack are written in pure Python, so you can do anything in Spack that you can do in Python. Python was chosen as the implementation language for two reasons. First, Python is becoming ubiquitous in the scientific software community. Second, it is a modern language and has many powerful features to help make package writing easy.
-
-### Search for Available Software
-
-To install software with Spack, you need to know what software is available. Use the `spack list` command.
-
-```console
-$ spack list
-==> 1114 packages.
-abinit                    font-bh-100dpi                   libffi             npm                                    py-ply                     r-maptools       tetgen
-ack                       font-bh-75dpi                    libfontenc         numdiff                                py-pmw                     r-markdown       tethex
-activeharmony             font-bh-lucidatypewriter-100dpi  libfs              nwchem                                 py-prettytable             r-mass           texinfo
-adept-utils               font-bh-lucidatypewriter-75dpi   libgcrypt          ocaml                                  py-proj                    r-matrix         texlive
-adios                     font-bh-ttf                      libgd              oce                                    py-prompt-toolkit          r-matrixmodels   the-platinum-searcher
-adol-c                    font-bh-type1                    libgpg-error       oclock                                 py-protobuf                r-memoise        the-silver-searcher
-allinea-forge             font-bitstream-100dpi            libgtextutils      octave                                 py-psutil                  r-mgcv           thrift
-allinea-reports           font-bitstream-75dpi             libhio             octave-splines                         py-ptyprocess              r-mime           tinyxml
-ant                       font-bitstream-speedo            libice             octopus                                py-pudb                    r-minqa          tinyxml2
-antlr                     font-bitstream-type1             libiconv           ompss                                  py-py                      r-multcomp       tk
-ape                       font-cronyx-cyrillic             libint             ompt-openmp                            py-py2cairo                r-munsell        tmux
-apex                      font-cursor-misc                 libjpeg-turbo      opari2                                 py-py2neo                  r-mvtnorm        tmuxinator
-applewmproto              font-daewoo-misc                 libjson-c          openblas                               py-pychecker               r-ncdf4          transset
-appres                    font-dec-misc                    liblbxutil         opencoarrays                           py-pycodestyle             r-networkd3      trapproto
-apr                       font-ibm-type1                   libmesh            opencv                                 py-pycparser               r-nlme           tree
-...
-```
-
-#### Specify Software Version (For Package)
-
-To see more available versions of a package, run `spack versions`.
-
-```console
-$ spack versions git
-==> Safe versions (already checksummed):
-  2.29.0  2.27.0  2.25.0  2.20.1  2.19.1  2.17.1  2.15.1  2.13.0  2.12.1  2.11.1  2.9.3  2.9.1  2.8.4  2.8.2  2.8.0  2.7.1
-  2.28.0  2.26.0  2.21.0  2.19.2  2.18.0  2.17.0  2.14.1  2.12.2  2.12.0  2.11.0  2.9.2  2.9.0  2.8.3  2.8.1  2.7.3
-==> Remote versions (not yet checksummed):
-  2.33.0  2.26.2  2.23.3  2.21.1  2.18.3  2.16.1  2.13.6  2.10.4  2.7.0  2.5.2   2.4.2   2.3.0  2.0.2    1.8.5.2    1.8.3.1
-  2.32.0  2.26.1  2.23.2  2.20.5  2.18.2  2.16.0  2.13.5  2.10.3  2.6.7  2.5.1   2.4.1   2.2.3  2.0.1    1.8.5.1    1.8.3
-  2.31.1  2.25.5  2.23.1  2.20.4  2.18.1  2.15.4  2.13.4  2.10.2  2.6.6  2.5.0   2.4.0   2.2.2  2.0.0    1.8.5      1.8.2.3
-  2.31.0  2.25.4  2.23.0  2.20.3  2.17.6  2.15.3  2.13.3  2.10.1  2.6.5  2.4.12  2.3.10  2.2.1  1.9.5    1.8.4.5    0.7
-  2.30.2  2.25.3  2.22.5  2.20.2  2.17.5  2.15.2  2.13.2  2.10.0  2.6.4  2.4.11  2.3.9   2.2.0  1.9.4    1.8.4.4    0.6
-  2.30.1  2.25.2  2.22.4  2.20.0  2.17.4  2.15.0  2.13.1  2.9.5   2.6.3  2.4.10  2.3.8   2.1.4  1.9.3    1.8.4.3    0.5
-  2.30.0  2.25.1  2.22.3  2.19.6  2.17.3  2.14.6  2.12.5  2.9.4   2.6.2  2.4.9   2.3.7   2.1.3  1.9.2    1.8.4.2    0.04
-  2.29.3  2.24.4  2.22.2  2.19.5  2.17.2  2.14.5  2.12.4  2.8.6   2.6.1  2.4.8   2.3.6   2.1.2  1.9.1    1.8.4.1    0.03
-  2.29.2  2.24.3  2.22.1  2.19.4  2.16.6  2.14.4  2.12.3  2.8.5   2.6.0  2.4.7   2.3.5   2.1.1  1.9.0    1.8.4.rc0  0.02
-  2.29.1  2.24.2  2.22.0  2.19.3  2.16.5  2.14.3  2.11.4  2.7.6   2.5.6  2.4.6   2.3.4   2.1.0  1.8.5.6  1.8.4      0.01
-  2.28.1  2.24.1  2.21.4  2.19.0  2.16.4  2.14.2  2.11.3  2.7.5   2.5.5  2.4.5   2.3.3   2.0.5  1.8.5.5  1.8.3.4
-  2.27.1  2.24.0  2.21.3  2.18.5  2.16.3  2.14.0  2.11.2  2.7.4   2.5.4  2.4.4   2.3.2   2.0.4  1.8.5.4  1.8.3.3
-  2.26.3  2.23.4  2.21.2  2.18.4  2.16.2  2.13.7  2.10.5  2.7.2   2.5.3  2.4.3   2.3.1   2.0.3  1.8.5.3  1.8.3.2
-```
-
-## Graph for Software Package
-
-Spack provides the `spack graph` command to display the dependency graph. By default, the command generates an ASCII rendering of a spec’s dependency graph.
-
-```console
-$ spack graph git
-==> Warning: gcc@4.8.5 cannot build optimized binaries for "zen2". Using best target possible: "x86_64"
-o  git
-|\
-| |\
-| | |\
-| | | |\
-| | | | |\
-| | | | | |\
-| | | | | | |\
-| | | | | | | |\
-| | | | | | | | |\
-| | | | | | | | | |\
-| | | | | | | | | | |\
-| | | | | | | | | | | |\
-| | | | | | | | | | | | |\
-| | | | o | | | | | | | | |  openssh
-| |_|_|/| | | | | | | | | |
-|/| | |/| | | | | | | | | |
-| | | | |\ \ \ \ \ \ \ \ \ \
-| | | | | | | | | | | | o | |  curl
-| |_|_|_|_|_|_|_|_|_|_|/| | |
-|/| | | |_|_|_|_|_|_|_|/| | |
-| | | |/| | | | | |_|_|/ / /
-| | | | | | | | |/| | | | |
-| | | o | | | | | | | | | |  openssl
-| |_|/| | | | | | | | | | |
-|/| |/ / / / / / / / / / /
-| |/| | | | | | | | | | |
-| | | | | | | | | o | | |  gettext
-| | | | |_|_|_|_|/| | | |
-| | | |/| | | | |/| | | |
-| | | | | | | | | |\ \ \ \
-| | | | | | | | | | |\ \ \ \
-| | | | | | | | | | | |\ \ \ \
-| | | | | | | | | | | o | | | |  libxml2
-| |_|_|_|_|_|_|_|_|_|/| | | | |
-|/| | | | | | | | |_|/| | | | |
-| | | | | | | | |/| |/| | | | |
-| | | | | | | | | |/| | | | | |
-o | | | | | | | | | | | | | | |  zlib
- / / / / / / / / / / / / / / /
-| | | | | | | | o | | | | | |  xz
-| | | | | | | |  / / / / / /
-| | | | | | | | o | | | | |  tar
-| | | | | | | |/ / / / / /
-| | | | | | | | | | | o |  automake
-| |_|_|_|_|_|_|_|_|_|/| |
-|/| | | | | | | | | | | |
-| | | | | | | | | | | |/
-| | | | | | | | | | | o  autoconf
-| |_|_|_|_|_|_|_|_|_|/|
-|/| | | | |_|_|_|_|_|/
-| | | | |/| | | | | |
-o | | | | | | | | | |  perl
-|\ \ \ \ \ \ \ \ \ \ \
-o | | | | | | | | | | |  gdbm
-o | | | | | | | | | | |  readline
-| |_|/ / / / / / / / /
-|/| | | | | | | | | |
-| | | o | | | | | | |  libedit
-| |_|/ / / / / / / /
-|/| | | | | | | | |
-o | | | | | | | | |  ncurses
-| |_|_|_|_|_|/ / /
-|/| | | | | | | |
-o | | | | | | | |  pkgconf
- / / / / / / / /
-| o | | | | | |  pcre2
-|  / / / / / /
-| | o | | | |  libtool
-| |/ / / / /
-| o | | | |  m4
-| | o | | |  libidn2
-| | o | | |  libunistring
-| | |/ / /
-| o | | |  libsigsegv
-|  / / /
-| | o |  bzip2
-| | o |  diffutils
-| |/ /
-| o |  libiconv
-|  /
-| o  expat
-| o  libbsd
-|
-o  berkeley-db
-```
-
-### Information for Software Package
-
-To get more information on a particular package from `spack list`, use `spack info`.
-
-```console
-$ spack info git
-AutotoolsPackage:   git
-
-Description:
-    Git is a free and open source distributed version control system
-    designed to handle everything from small to very large projects with
-    speed and efficiency.
-
-Homepage: http://git-scm.com
-
-Tags:
-    None
-
-Preferred version:
-    2.29.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz
-
-Safe versions:
-    2.29.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz
-    2.28.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz
-    2.27.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.27.0.tar.gz
-    2.26.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz
-    2.25.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.25.0.tar.gz
-    2.21.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz
-    2.20.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.20.1.tar.gz
-    2.19.2    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz
-    2.19.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
-    2.18.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz
-    2.17.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.17.1.tar.gz
-    2.17.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.17.0.tar.gz
-    2.15.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.15.1.tar.gz
-    2.14.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.14.1.tar.gz
-    2.13.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.13.0.tar.gz
-    2.12.2    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.12.2.tar.gz
-    2.12.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.12.1.tar.gz
-    2.12.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.12.0.tar.gz
-    2.11.1    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.11.1.tar.gz
-    2.11.0    https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz
-    2.9.3     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz
-    2.9.2     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.2.tar.gz
-    2.9.1     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.1.tar.gz
-    2.9.0     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz
-    2.8.4     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.4.tar.gz
-    2.8.3     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz
-    2.8.2     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.2.tar.gz
-    2.8.1     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz
-    2.8.0     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.0.tar.gz
-    2.7.3     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz
-    2.7.1     https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.7.1.tar.gz
-
-Variants:
-    Name [Default]    Allowed values    Description
-    ==============    ==============    ===========================================
-
-    tcltk [off]       on, off           Gitk: provide Tcl/Tk in the run environment
-
-Installation Phases:
-    autoreconf    configure    build    install
-
-Build Dependencies:
-    autoconf  automake  curl  expat  gettext  iconv  libidn2  libtool  m4  openssl  pcre  pcre2  perl  tk  zlib
-
-Link Dependencies:
-    curl  expat  gettext  iconv  libidn2  openssl  pcre  pcre2  perl  tk  zlib
-
-Run Dependencies:
-    openssh
-
-Virtual Packages:
-    None
-```
-
-### Install Software Package
-
-`spack install` will install any package shown by `spack list`. For example, to install the latest version of the `git` package, you might type `spack install git` for default version or `spack install git@version` to chose a particular one.
-
-```console
-$ spack install git@2.29.0
-==> Warning: specifying a "dotkit" module root has no effect [support for "dotkit" has been dropped in v0.13.0]
-==> Warning: gcc@4.8.5 cannot build optimized binaries for "zen2". Using best target possible: "x86_64"
-==> Installing libsigsegv-2.12-lctnabj6w4bmnyxo7q6ct4wewke2bqin
-==> No binary for libsigsegv-2.12-lctnabj6w4bmnyxo7q6ct4wewke2bqin found: installing from source
-==> Fetching https://spack-llnl-mirror.s3-us-west-2.amazonaws.com/_source-cache/archive/3a/3ae1af359eebaa4ffc5896a1aee3568c052c99879316a1ab57f8fe1789c390b6.tar.gz
-######################################################################## 100.0%
-==> libsigsegv: Executing phase: 'autoreconf'
-==> libsigsegv: Executing phase: 'configure'
-==> libsigsegv: Executing phase: 'build'
-==> libsigsegv: Executing phase: 'install'
-[+] /home/kru0052/Spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/libsigsegv-2.12-lctnabj6w4bmnyxo7q6ct4wewke2bqin
-==> Installing berkeley-db-18.1.40-bwuaqjex546zw3bimt23bgokfctnt46y
-==> No binary for berkeley-db-18.1.40-bwuaqjex546zw3bimt23bgokfctnt46y found: installing from source
-==> Fetching https://spack-llnl-mirror.s3-us-west-2.amazonaws.com/_source-cache/archive/0c/0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8.tar.gz
-######################################################################## 100.0%
-...
-...
-==> Fetching https://spack-llnl-mirror.s3-us-west-2.amazonaws.com/_source-cache/archive/8f/8f3bf70ddb515674ce2e19572920a39b1be96af12032b77f1dd57898981fb151.tar.gz
-################################################################################################################################################################################################################################ 100.0%
-==> Moving resource stage
-        source : /tmp/kru0052/resource-git-manpages-cabbbb7qozeijgspy2wl3hf6on6f4b4c/spack-src/
-        destination : /tmp/kru0052/spack-stage-git-2.29.0-cabbbb7qozeijgspy2wl3hf6on6f4b4c/spack-src/git-manpages
-==> git: Executing phase: 'autoreconf'
-==> git: Executing phase: 'configure'
-==> git: Executing phase: 'build'
-==> git: Executing phase: 'install'
-[+] /home/kru0052/Spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/git-2.29.0-cabbbb7qozeijgspy2wl3hf6on6f4b4c
-```
-
-<Callout type=warn>
-    `FTP` on cluster is not allowed, you must edit the source link.
-</Callout>
-
-### Edit Rule
-
-```console
-$ spack edit git
-```
-
-<Callout>
-    To change the source link (`ftp://` to `http://`), use `spack create URL -f` to regenerate rules.
-</Callout>
-
-## Available Spack Module
-
-We know that `spack list` shows you the names of available packages, but how do you figure out which are already installed?
-
-```console
-==> 19 installed packages.
--- linux-centos6-x86_64 / gcc@4.4.7 -----------------------------
-autoconf@2.69  cmake@3.7.1  expat@2.2.0       git@2.11.0     libsigsegv@2.10  m4@1.4.17    openssl@1.0.2j  perl@5.24.0        tar@1.29  zlib@1.2.10
-bzip2@1.0.6    curl@7.50.3  gettext@0.19.8.1  libiconv@1.14  libxml2@2.9.4    ncurses@6.0  pcre@8.41       pkg-config@0.29.1  xz@5.2.2
-```
-
-Spack colorizes output.
-
-```console
-$ spack find | less -R
--- linux-centos7-x86_64 / gcc@4.8.5 -----------------------------
-autoconf@2.69
-automake@1.16.2
-berkeley-db@18.1.40
-bzip2@1.0.8
-curl@7.72.0
-diffutils@3.7
-expat@2.2.10
-gdbm@1.18.1
-gettext@0.21
-git@2.29.0
-libbsd@0.10.0
-libedit@3.1-20191231
-libiconv@1.16
-libidn2@2.3.0
-libsigsegv@2.12
-libtool@2.4.6
-libunistring@0.9.10
-libxml2@2.9.10
-m4@1.4.18
-ncurses@6.2
-openssh@8.4p1
-openssl@1.1.1h
-pcre2@10.35
-perl@5.32.0
-pkgconf@1.7.3
-readline@8.0
-tar@1.32
-xz@5.2.5
-zlib@1.2.11
-```
-
-`spack find` shows the specs of installed packages. A spec is like a name, but it has a version, compiler, architecture, and build options associated with it. In Spack, you can have many installations of the same package with different specs.
-
-## Load and Unload Module
-
-Neither of these is particularly pretty, easy to remember, or easy to type. Luckily, Spack has its own interface for using modules and dotkits.
-
-```console
-$ spack load git
-==> This command requires spack's shell integration.
-
-  To initialize spack's shell commands, you must run one of
-  the commands below.  Choose the right command for your shell.
-
-  For bash and zsh:
-      . ~/.local/easybuild/software/Spack/0.16.2/share/spack/setup-env.sh
-
-  For csh and tcsh:
-      setenv SPACK_ROOT ~/.local/easybuild/software/Spack/0.16.2
-      source ~/.local/easybuild/software/Spack/0.16.2/share/spack/setup-env.csh
-```
-
-### First Usage
-
-```console
-$ . ~/.local/easybuild/software/Spack/0.16.2/share/spack/setup-env.sh
-```
-
-```console
-$ git version 1.7.1
-$ spack load git
-$ git --version
-git version 2.29.0
-$ spack unload git
-$ git --version
-git version 1.7.1
-```
-
-## Uninstall Software Package
-
-Spack will ask you either to provide a version number to remove the ambiguity or use the `--all` option to uninstall all of the matching packages.
-
-You may force uninstall a package with the `--force` option.
-
-```console
-$ spack uninstall git
-==> The following packages will be uninstalled :
-
--- linux-centos7-x86_64 / gcc@4.4.7 -----------------------------
-xmh3hmb git@2.29.0%gcc
-
-
-==> Do you want to proceed ? [y/n]
-y
-==> Successfully uninstalled git@2.29.00%gcc@4.8.5 arch=linux-centos6-x86_64 -xmh3hmb
-
-```
-
-[a]: https://spack.readthedocs.io/en/latest/
diff --git a/content/docs/software/tools/virtualization.mdx b/content/docs/software/tools/virtualization.mdx
deleted file mode 100644
index 3ae8ea0f5a5a64afbd649fdd2fe7f3cd44e509c4..0000000000000000000000000000000000000000
--- a/content/docs/software/tools/virtualization.mdx
+++ /dev/null
@@ -1,433 +0,0 @@
----
-title: "Virtualization"
----
-<!--
-musime proverit
--->
-
-Running virtual machines on compute nodes.
-
-## Introduction
-
-There are situations when our clusters' environment is not suitable for user's needs:
-
-* Application requires a different operating system (e.g. Windows) or it is not available for Linux;
-* Application requires a different versions of base system libraries and tools;
-* Application requires specific setup (installation, configuration) of a complex software stack;
-* Application requires privileged access to the operating system;
-* ... and combinations of the above cases.
-
-The solution for these cases is **virtualization**. Clusters' environment allows to run virtual machines on compute nodes. Users can create their own images of the operating system with a specific software stack and run instances of these images as virtual machines on compute nodes. Run of virtual machines is provided by the standard mechanism of [Resource Allocation and Job Execution][1].
-
-Solution is based on QEMU-KVM software stack and provides hardware-assisted x86 virtualization.
-
-## Limitations
-
-Clusters' infrastructure and environment were s not designed for virtualization. Compute nodes, storages, and infrastructure is intended and optimized for running HPC jobs. This implies suboptimal configuration of virtualization and limitations.
-
-Clusters' virtualization does not provide the performance and all features of a native environment. There is significant a performance hit (degradation) in I/O performance (storage, network). The virtualization is not suitable for I/O (disk, network) intensive workloads.
-
-Virtualization has some drawbacks, as well. It is not so easy to set up an efficient solution.
-
-The solution described in the [HOWTO][2] section is suitable for single node tasks; it does not introduce virtual machine clustering.
-
-<Callout>
-    Consider virtualization as a last resort solution for your needs.
-</Callout>
-
-<Callout type=warn>
-    Consult use of virtualization with IT4Innovations' support.
-</Callout>
-
-For running a Windows application (when the source code and Linux native application are not available), consider use of Wine, Windows compatibility layer. Many Windows applications can be run using Wine with less effort and better performance than when using virtualization.
-
-## Licensing
-
-IT4Innovations does not provide any licenses for operating systems and software of virtual machines. Users are (in accordance with [Acceptable use policy document][a]) fully responsible for licensing all software running on virtual machines on clusters. Be aware of complex conditions of licensing software in virtual environments.
-
-<Callout>
-    Users are responsible for licensing OS (e.g. MS Windows) and all software running on their virtual machines.
-</Callout>
-
-## Howto
-
-### Virtual Machine Job Workflow
-
-We propose this job workflow:
-
-![Workflow](/it4i/img/virtualization-job-workflow.png)
-
-Our recommended solution is that the job script creates a distinct shared job directory, which makes a central point for data exchange between cluster's environment, compute node (host) (e.g. HOME, SCRATCH, local scratch, and other local or cluster file systems), and virtual machine (guest). The job script links or copies input data and instructions on what to do (run script) for the virtual machine to the job directory and the virtual machine process input data according to the instructions in the job directory and store output back to the job directory. We recommend that the virtual machine is running in a so called [snapshot mode][3], the image is immutable - it does not change, so one image can be used for many concurrent jobs.
-
-### Procedure
-
-1. Prepare the image of your virtual machine
-1. Optimize the image of your virtual machine for cluster's virtualization
-1. Modify your image for running jobs
-1. Create a job script for executing the virtual machine
-1. Run jobs
-
-### Prepare Image of Your Virtual Machine
-
-You can either use your existing image or create a new image from scratch.
-
-QEMU currently supports these image types or formats:
-
-* raw
-* cloop
-* cow
-* qcow
-* qcow2
-* vmdk - VMware 3 & 4, or 6 image format, for exchanging images with that product
-* vdi - VirtualBox 1.1 compatible image format, for exchanging images with VirtualBox.
-
-You can convert your existing image using the `qemu-img convert` command. Supported formats of this command are: `blkdebug blkverify bochs cloop cow dmg file ftp ftps host_cdrom host_device host_floppy http https nbd parallels qcow qcow2 qed raw sheepdog tftp vdi vhdx vmdk vpc vvfat`.
-
-We recommend using an advanced QEMU native image format qcow2.
-
-More about QEMU images [here][b].
-
-### Optimize Image of Your Virtual Machine
-
-Use virtio devices (for the disk/drive and the network adapter) and install virtio drivers (paravirtualized drivers) into the virtual machine. There is a significant performance gain when using virtio drivers. For more information, see [Virtio Linux][c] and [Virtio Windows][d].
-
-Disable all unnecessary services and tasks. Restrict all unnecessary operating system operations.
-
-Remove all unnecessary software and files.
-
-Remove all paging space, swap files, partitions, etc.
-
-Shrink your image. (It is recommended to zero all free space and reconvert the image using `qemu-img`.)
-
-### Modify Your Image for Running Jobs
-
-Your image should contian an operating system startup script. The startup script should run the application and when the application exits, run shutdown or quit the virtual machine.
-
-We recommend that the startup script:
-
-* maps Job Directory from host (from compute node);
-* runs script (we call it "run script") from Job Directory and waits for application's exit;
-  * for management purposes if the run script does not exist wait for some time period (few minutes);
-* shutdowns/quits OS.
-
-For Windows operating systems, we suggest using a Local Group Policy Startup script; for Linux operating systems, use the rc.local, runlevel init script, or similar service.
-
-Example startup script for the Windows virtual machine:
-
-```bat
-@echo off
-set LOG=c:\startup.log
-set MAPDRIVE=z:
-set SCRIPT=%MAPDRIVE%\run.bat
-set TIMEOUT=300
-
-echo %DATE% %TIME% Running startup script>%LOG%
-
-rem Mount share
-echo %DATE% %TIME% Mounting shared drive>>%LOG%
-net use z: \\10.0.2.4\qemu >>%LOG% 2>&1
-dir z:\ >>%LOG% 2>&1
-echo. >>%LOG%
-
-
-if exist %MAPDRIVE%\ (
-  echo %DATE% %TIME% The drive "%MAPDRIVE%" exists>>%LOG%
-
-  if exist %SCRIPT% (
-    echo %DATE% %TIME% The script file "%SCRIPT%"exists>>%LOG%
-    echo %DATE% %TIME% Running script %SCRIPT%>>%LOG%
-    set TIMEOUT=0
-    call %SCRIPT%
-  ) else (
-    echo %DATE% %TIME% The script file "%SCRIPT%"does not exist>>%LOG%
-  )
-
-) else (
-  echo %DATE% %TIME% The drive "%MAPDRIVE%" does not exist>>%LOG%
-)
-echo. >>%LOG%
-
-timeout /T %TIMEOUT%
-
-echo %DATE% %TIME% Shut down>>%LOG%
-shutdown /s /t 0
-```
-
-The example startup script maps a shared job script as a drive z: and looks for a run script called run.bat. If the run script is found, it is run, otherwise it waits for 5 minutes, then shuts down the virtual machine.
-
-### Create Job Script for Executing Virtual Machine
-
-Create the job script according to the recommended [Virtual Machine Job Workflow][4].
-
-Example job for the Windows virtual machine:
-
-```bat
-    #/bin/sh
-
-    JOB_DIR=/scratch/$USER/win/${$SLURM_JOBID}
-
-    #Virtual machine settings
-    VM_IMAGE=~/work/img/win.img
-    VM_MEMORY=49152
-    VM_SMP=16
-
-    # Prepare job dir
-    mkdir -p ${JOB_DIR} && cd ${JOB_DIR} || exit 1
-    ln -s ~/work/win .
-    ln -s /scratch/$USER/data .
-    ln -s ~/work/win/script/run/run-appl.bat run.bat
-
-    # Run virtual machine
-    export TMPDIR=/lscratch/${$SLURM_JOBID}
-    module add qemu
-    qemu-system-x86_64
-      -enable-kvm
-      -cpu host
-      -smp ${VM_SMP}
-      -m ${VM_MEMORY}
-      -vga std
-      -localtime
-      -usb -usbdevice tablet
-      -device virtio-net-pci,netdev=net0
-      -netdev user,id=net0,smb=${JOB_DIR},hostfwd=tcp::3389-:3389
-      -drive file=${VM_IMAGE},media=disk,if=virtio
-      -snapshot
-      -nographic
-```
-
-The job script links application data (win), input data (data), and run script (run.bat) into the job directory and runs the virtual machine.
-
-Example run script (run.bat) for the Windows virtual machine:
-
-```doscon
-    z:
-    cd winappl
-    call application.bat z:data z:output
-```
-
-The run script runs the application from the shared job directory (mapped as drive z:), processes the input data (z:data) from the job directory, and stores output to the job directory (z:output).
-
-### Run Jobs
-
-Run jobs as usual, see [Resource Allocation and Job Execution][1]. Use only full node allocation for virtualization jobs.
-
-### Running Virtual Machines
-
-Virtualization is enabled only on compute nodes, virtualization does not work on login nodes.
-
-Load the QEMU environment module:
-
-```console
-$ module add qemu
-```
-
-Get help:
-
-```console
-$ man qemu
-```
-
-Run the virtual machine (simple):
-
-```console
-$ qemu-system-x86_64 -hda linux.img -enable-kvm -cpu host -smp 16 -m 32768 -vga std -vnc :0
-$ qemu-system-x86_64 -hda win.img   -enable-kvm -cpu host -smp 16 -m 32768 -vga std -localtime -usb -usbdevice tablet -vnc :0
-```
-
-You can access the virtual machine via the VNC viewer (the `-vnc` option) connecting to the IP address of the compute node. For VNC, you must use a VPN network.
-
-Install the virtual machine from the ISO file:
-
-```console
-$ qemu-system-x86_64 -hda linux.img -enable-kvm -cpu host -smp 16 -m 32768 -vga std -cdrom linux-install.iso -boot d -vnc :0
-$ qemu-system-x86_64 -hda win.img   -enable-kvm -cpu host -smp 16 -m 32768 -vga std -localtime -usb -usbdevice tablet -cdrom win-install.iso -boot d -vnc :0
-```
-
-Run the virtual machine using optimized devices, user network back-end with sharing and port forwarding, in snapshot mode
-
-```console
-$ qemu-system-x86_64 -drive file=linux.img,media=disk,if=virtio -enable-kvm -cpu host -smp 16 -m 32768 -vga std -device virtio-net-pci,netdev=net0 -netdev user,id=net0,smb=/scratch/$USER/tmp,hostfwd=tcp::2222-:22 -vnc :0 -snapshot
-$ qemu-system-x86_64 -drive file=win.img,media=disk,if=virtio -enable-kvm -cpu host -smp 16 -m 32768 -vga std -localtime -usb -usbdevice tablet -device virtio-net-pci,netdev=net0 -netdev user,id=net0,smb=/scratch/$USER/tmp,hostfwd=tcp::3389-:3389 -vnc :0 -snapshot
-```
-
-Port forwarding allows you to access the virtual machine via SSH (Linux) or RDP (Windows) connecting to the IP address of the compute node (and port 2222 for SSH). You must use a VPN network).
-
-<Callout>
-    Keep in mind, that if you use virtio devices, you must have virtio drivers installed on your virtual machine.
-</Callout>
-
-### Networking and Data Sharing
-
-For a networking virtual machine, we suggest using a (default) user network back-end (sometimes called slirp). This network back-end NATs virtual machines and provides useful services for virtual machines as DHCP, DNS, SMB sharing, port forwarding.
-
-In default configuration, IP network 10.0.2.0/24 is used, host has IP address 10.0.2.2, DNS server 10.0.2.3, SMB server 10.0.2.4 and virtual machines obtain address from range 10.0.2.15-10.0.2.31. Virtual machines have access to cluster's network via NAT on the compute node (host).
-
-Simple network setup:
-
-```console
-$ qemu-system-x86_64 ... -net nic -net user
-```
-
-(It is default when no `-net` options are given.)
-
-Simple network setup with sharing and port forwarding (obsolete but simpler syntax, lower performance):
-
-```console
-$ qemu-system-x86_64 ... -net nic -net user,smb=/scratch/$USER/tmp,hostfwd=tcp::3389-:3389
-```
-
-Optimized network setup with sharing and port forwarding:
-
-```console
-$ qemu-system-x86_64 ... -device virtio-net-pci,netdev=net0 -netdev user,id=net0,smb=/scratch/$USER/tmp,hostfwd=tcp::2222-:22
-```
-
-### Advanced Networking
-
-#### Internet Access
-
-Sometimes, your virtual machine needs an access to internet (install software, updates, software activation, etc.). We suggest using Virtual Distributed Ethernet (VDE) enabled QEMU with SLIRP running on the login node tunneled to the compute node. Note that this setup has very low performance, the worst performance of all described solutions.
-
-Load the VDE enabled QEMU environment module (unload the standard QEMU module first if necessary):
-
-```console
-$ module add qemu/2.1.2-vde2
-```
-
-Create a virtual network switch:
-
-```console
-$ vde_switch -sock /tmp/sw0 -mgmt /tmp/sw0.mgmt -daemon
-```
-
-Run a SLIRP daemon over the SSH tunnel on the login node and connect it to the virtual network switch:
-
-```console
-$ dpipe vde_plug /tmp/sw0 = ssh login1 $VDE2_DIR/bin/slirpvde -s - --dhcp &
-```
-
-Run QEMU using the VDE network back-end, connect to the created virtual switch.
-
-Basic setup (obsolete syntax)
-
-```console
-$ qemu-system-x86_64 ... -net nic -net vde,sock=/tmp/sw0
-```
-
-Setup using a Virtio device (obsolete syntax):
-
-```console
-$ qemu-system-x86_64 ... -net nic,model=virtio -net vde,sock=/tmp/sw0
-```
-
-Optimized setup:
-
-```console
-$ qemu-system-x86_64 ... -device virtio-net-pci,netdev=net0 -netdev vde,id=net0,sock=/tmp/sw0
-```
-
-#### TAP Interconnect
-
-Both the user and the VDE network back-end have low performance. For fast interconnect (10 Gbit/s and more) of the compute node (host) and the virtual machine (guest), we suggest using the Linux kernel TAP device.
-
-Clusters provide the TAP device tap0 for your job. TAP interconnect does not provide any services (like NAT, DHCP, DNS, SMB, etc.) just raw networking, so you should provide your services if you need them.
-
-To enable the TAP interconect feature, you need to specify the `virt_network:1` Slurm resource at job submit.
-
-```console
-$ salloc ... --gres=virt_network:1
-```
-
-Run QEMU with TAP network back-end:
-
-```console
-$ qemu-system-x86_64 ... -device virtio-net-pci,netdev=net1 -netdev tap,id=net1,ifname=tap0,script=no,downscript=no
-```
-
-Interface tap0 has IP address 192.168.1.1 and network mask 255.255.255.0 (/24). In the virtual machine, use an IP address from range 192.168.1.2-192.168.1.254. For your convenience, some ports on tap0 interface are redirected to a higher numbered ports, so you as a non-privileged user can provide services on these ports.
-
-Redirected ports:
-
-* DNS UDP/53-&gt;UDP/3053, TCP/53-&gt;TCP/3053
-* DHCP UDP/67-&gt;UDP/3067
-* SMB TCP/139-&gt;TCP/3139, TCP/445-&gt;TCP/3445).
-
-You can configure the virtual machine's IP address statically or dynamically. For dynamic addressing provide your DHCP server on port 3067 of tap0 interface, you can also provide your DNS server on port 3053 of tap0 interface for example:
-
-```console
-$ dnsmasq --interface tap0 --bind-interfaces -p 3053 --dhcp-alternate-port=3067,68 --dhcp-range=192.168.1.15,192.168.1.32 --dhcp-leasefile=/tmp/dhcp.leasefile
-```
-
-You can also provide your SMB services (on ports 3139, 3445) to obtain high performance data sharing.
-
-Example smb.conf (not optimized):
-
-```console
-$ cat smb.conf
-
-    [global]
-    socket address=192.168.1.1
-    smb ports = 3445 3139
-
-    private dir=/tmp/qemu-smb
-    pid directory=/tmp/qemu-smb
-    lock directory=/tmp/qemu-smb
-    state directory=/tmp/qemu-smb
-    ncalrpc dir=/tmp/qemu-smb/ncalrpc
-    log file=/tmp/qemu-smb/log.smbd
-    smb passwd file=/tmp/qemu-smb/smbpasswd
-    security = user
-    map to guest = Bad User
-    unix extensions = no
-    load printers = no
-    printing = bsd
-    printcap name = /dev/null
-    disable spoolss = yes
-    log level = 1
-    guest account = USER
-    [qemu]
-    path=/scratch/USER/tmp
-    read only=no
-    guest ok=yes
-    writable=yes
-    follow symlinks=yes
-    wide links=yes
-    force user=USER
-```
-
-(Replace USER with your login name.)
-
-Run SMB services
-
-```console
-$ smbd -s /tmp/qemu-smb/smb.conf
-```
-
-A virtual machine can have more than one network interface controller and can use more than one network back-end. So, you can combine, for example, a network back-end and a TAP interconnect.
-
-### Snapshot Mode
-
-In snapshot mode, the image is not written, changes are written to a temporary file (and discarded after the virtual machine exits). **It is a strongly recommended mode for running your jobs.** Set the `TMPDIR` environment variable to a local scratch directory for temporary files placement:
-
-```console
-$ export TMPDIR=/lscratch/${$SLURM_JOBID}
-$ qemu-system-x86_64 ... -snapshot
-```
-
-### Windows Guests
-
-For Windows guests, we recommend these options:
-
-```console
-$ qemu-system-x86_64 ... -localtime -usb -usbdevice tablet
-```
-
-[1]: ../../general/job-submission-and-execution.md
-[2]: #howto
-[3]: #snapshot-mode
-[4]: #virtual-machine-job-workflow
-
-[a]: http://www.it4i.cz/acceptable-use-policy.pdf
-[b]: http://en.wikibooks.org/wiki/QEMU/Images
-[c]: http://www.linux-kvm.org/page/Virtio
-[d]: http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
diff --git a/content/docs/software/viz/NICEDCVsoftware.mdx b/content/docs/software/viz/NICEDCVsoftware.mdx
deleted file mode 100644
index 1164842142fea5f883ddb9ea5a7c98c3153ce7c0..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/NICEDCVsoftware.mdx
+++ /dev/null
@@ -1,181 +0,0 @@
----
-title: "NICE DCV"
----
-**Install NICE DCV** (user-computer)
-
-* [Overview][a]
-* [Download][b]
-
-**Install VPN client** [VPN Access][1]
-
-## How to Use
-
-Read the documentation on [VNC server][3].
-
-**Run VNC**
-
-* Login to Barbora
-
-```console
-[username@yourPC]$ ssh -i path/to/your_id_rsa user@login1.Barbora.it4i.cz
-```
-
-* Run a Job on Barbora on the Vizserv1 (or Vizserv2)
-
-```console
-[user@login1]$ salloc -p qviz -A OPEN-XX-XX --nodes=1 --ntasks=4 --time=04:00:00 --nodelist=vizserv1 --job-name=Vizserver1
-```
-
-You are connected to Vizserv1 now.
-
-```console
-[yourusername@vizserv1 ~]$
-```
-
-**VNC Server**
-
-* Create a VNC Server Password
-
-<Callout>
-    A VNC server password should be set before the first login to VNC server. Use a strong password.
-</Callout>
-
-```console
-[yourusername@vizserv1 ~]$ vncpasswd
-password:
-verify:
-```
-
-* Check the display number of the connected users
-
-```console
-[yourusername@vizserv1 ~]$ ps aux | grep Xvnc | sed -rn 's/(\s) .*Xvnc.* (\:[0-9]+) .*/\1 \2/p'
-username :15
-username :61
-.....
-```
-
-<Callout>
-    The VNC server runs on port 59xx, where xx is the display number. To get your port number, simply add 5900 + display number, in our example 5900 + 11 = 5911. **Calculate your own port number and use it instead of 5911 from examples below**.
-</Callout>
-
-* Start your remote VNC server
-
-<Callout>
-    Choose the display number which is different from other users display number. Also remember that display number should be lower or equal 99.
-</Callout>
-
-```console
-[yourusername@vizserv1 ~]$ vncserver :11 -geometry 1600x900 -depth 24
-Running applications in /etc/vnc/xstartup
-VNC Server signature: f0-3d-df-ee-6f-a4-b1-62
-Log file is /home/yourusername/.vnc/vizserv1:11.log
-New desktop is vizserv1:11 (195.113.250.204:11)
-```
-
-* Check the display number
-
-```console
-[yourusername@vizserv1 ~]$ ps aux | grep Xvnc | sed -rn 's/(\s) .*Xvnc.* (\:[0-9]+) .*/\1 \2/p'
-username :15
-username :61
-yourusername :11
-.....
-```
-
-<Callout>
-    You started a new VNC server. The server is listening on port 5911 (5900 + 11 = 5911).
-</Callout>
-
-Your VNC server is listening on port 59xx, in our example on port 5911.
-
-**VNC Client (your local machine)**
-You are going to connect your local machine to remote VNC server.
-
-* Create the SSH tunnel (on your local machine) for port 59xx and for the range of ports 7300-7305.
-
-```console
-[username@yourPC]$ ssh -i path/to/your_id_rsa -TN -f user@vizserv1.barbora.it4i.cz -L 5911:localhost:5911 -L 7300:localhost:7300 -L 7301:localhost:7301 -L 7302:localhost:7302 -L 7303:localhost:7303 -L 7304:localhost:7304 -L 7305:localhost:7305
-```
-
-To create an SSH tunnel on Windows, download the [PuTTY installer][d] and follow the instructions in the [VNC server][3] section.
-
-* Run NICE DCV or one of the recommended clients on your local machine. Recommended clients are [TightVNC][f] or [TigerVNC][g] (free, open source, available for almost any platform).
-
-* Fill in the localhost:59xx address, click Connect, and enter the password.
-
-![](/it4i/img/dcv_5911_1.png)
-![](/it4i/img/dcv_5911_2.png)
-
-**Test the OpenGL functionality on Vizserv**
-
-* Run the command in the VNC terminal
-
-```console
-[kub0393@vizserv1 ~]$ /apps/easybuild/glxgears
-```
-
-![](/it4i/img/vizsrv_5911.png)
-
-**Test the NICE DCV functionality**
-
-* Run the command in VNC terminal
-
-```console
-[kub0393@vizserv1 ~]$ dcvtest
-```
-
-![](/it4i/img/dcvtest_5911.png)
-
-## Stop the Service Correctly After Finishing Work
-
-**On VNC server site**
-
-* Logout from your local VNC window
-
-![](/it4i/img/vizsrv_logout.png)
-
-**On your local machine**
-
-* Find the Process ID (PID) of your SSH tunel
-
-```console
-[username@yourPC]$ netstat -natp | grep 5911
-(Not all processes could be identified, non-owned process info
-will not be shown, you would have to be root to see it all.)
-tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      5675/ssh
-tcp6       0      0 ::1:5911                :::*                    LISTEN      5675/ssh
-```
-
-or
-
-```console
-[username@yourPC]$ lsof -i :5911
-COMMAND  PID USER    FD   TYPE DEVICE SIZE/OFF NODE NAME
-ssh     5675  user    5u  IPv6 571419      0t0  TCP ip6-localhost:5911 (LISTEN)
-ssh     5675  user    6u  IPv4 571420      0t0  TCP localhost:5911 (LISTEN)
-```
-
-<Callout>
-    PID in our example is 5675. You also need to use the correct port number for both commands above. In this example, the port number is 5911. Your PID and port number may differ.
-</Callout>
-
-* Kill the process
-
-```console
-[username@yourPC]$ kill 5675
-```
-
-* If on Windows, close Putty.
-
-[1]: ../../general/accessing-the-clusters/vpn-access.md
-[2]: ../../general/accessing-the-clusters/shell-access-and-data-transfer/putty.md
-[3]: ../../general/accessing-the-clusters/graphical-user-interface/vnc.md
-
-[a]: https://aws.amazon.com/hpc/dcv/
-[b]: https://www.nice-dcv.com/2016-0.html
-[c]: https://winscp.net/eng/download.php
-[d]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
-[e]: https://vpn.it4i.cz/user
-[f]: http://www.tightvnc.com
-[g]: http://sourceforge.net/apps/mediawiki/tigervnc/index.php?title=Main_Page
diff --git a/content/docs/software/viz/gpi2.mdx b/content/docs/software/viz/gpi2.mdx
deleted file mode 100644
index c5ac43cb214de40d7bc357e16b1129cbb954dd79..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/gpi2.mdx
+++ /dev/null
@@ -1,177 +0,0 @@
----
-title: "GPI-2"
----
-<Callout type=warn>
-    This page has not been updated yet. The page does not reflect the transition from PBS to Slurm.
-</Callout>
-
-## Introduction
-
-Programming Next Generation Supercomputers: GPI-2 is an API library for asynchronous interprocess, cross-node communication. It provides a flexible, scalable, and fault tolerant interface for parallel applications.
-
-The GPI-2 library implements the GASPI specification ([Global Address Space Programming Interface][a]). GASPI is a Partitioned Global Address Space (PGAS) API. It aims at scalable, flexible, and failure-tolerant computing in massively parallel environments.
-
-## Modules
-
-For the current list of installed versions, use:
-
-```console
-$ ml av GPI-2
-```
-
-The module sets up environment variables required for linking and running GPI-2 enabled applications. This particular command loads the default `gpi2/1.0.2` module.
-
-## Linking
-
-<Callout>
-    Link with -lGPI2 -libverbs
-</Callout>
-
-Load the `gpi2` module. Link using `-lGPI2` and `-libverbs` switches to link your code against GPI-2. The GPI-2 requires the OFED InfiniBand communication library ibverbs.
-
-### Compiling and Linking With Intel Compilers
-
-```console
-$ ml intel
-$ ml gpi2
-$ icc myprog.c -o myprog.x -Wl,-rpath=$LIBRARY_PATH -lGPI2 -libverbs
-```
-
-### Compiling and Linking With GNU Compilers
-
-```console
-$ ml gcc
-$ ml gpi2
-$ gcc myprog.c -o myprog.x -Wl,-rpath=$LIBRARY_PATH -lGPI2 -libverbs
-```
-
-## Running the GPI-2 Codes
-
-<Callout>
-    `gaspi_run` starts the GPI-2 application
-</Callout>
-
-The `gaspi_run` utility is used to start and run GPI-2 applications:
-
-```console
-$ gaspi_run -m machinefile ./myprog.x
-```
-
-A machine file (** machinefile **) must be provided with the hostnames of nodes where the application will run. The machinefile lists all nodes on which to run, one entry per node per process. This file may be hand created or obtained from standard $PBS_NODEFILE:
-
-```console
-$ cut -f1 -d"." $PBS_NODEFILE > machinefile
-```
-
-machinefile:
-
-```console
-    cn79
-    cn80
-```
-
-This machinefile will run 2 GPI-2 processes, one on node cn79 and one on node cn80.
-
-machinefle:
-
-```console
-    cn79
-    cn79
-    cn80
-    cn80
-```
-
-This machinefile will run 4 GPI-2 processes, two on node cn79 and two on node cn80.
-
-<Callout>
-    Use `mpiprocs` to control how many GPI-2 processes will run per node.
-</Callout>
-
-Example:
-
-```console
-$ qsub -A OPEN-0-0 -q qexp -l select=2:ncpus=16:mpiprocs=16 -I
-```
-
-This example will produce $PBS_NODEFILE with 16 entries per node.
-
-### Gaspi_logger
-
-<Callout>
-    `gaspi_logger` views the output from GPI-2 application ranks.
-</Callout>
-
-The `gaspi_logger` utility is used to view the output from all nodes except the master node (rank 0). `gaspi_logger` is started, on another session, on the master node - the node where the `gaspi_run` is executed. The output of the application, when called with `gaspi_printf()`, will be redirected to the `gaspi_logger`. Other I/O routines (e.g. `printf`) will not.
-
-## Example
-
-Following is an example of GPI-2 enabled code:
-
-```cpp
-#include <GASPI.h>
-#include <stdlib.h>
-
-void success_or_exit ( const char* file, const int line, const int ec)
-{
-  if (ec != GASPI_SUCCESS)
-    {
-      gaspi_printf ("Assertion failed in %s[%i]:%dn", file, line, ec);
-      exit (1);
-    }
-}
-
-#define ASSERT(ec) success_or_exit (__FILE__, __LINE__, ec);
-
-int main(int argc, char *argv[])
-{
-  gaspi_rank_t rank, num;
-  gaspi_return_t ret;
-
-  /* Initialize GPI-2 */
-  ASSERT( gaspi_proc_init(GASPI_BLOCK) );
-
-  /* Get ranks information */
-  ASSERT( gaspi_proc_rank(&rank) );
-  ASSERT( gaspi_proc_num(&num) );
-
-  gaspi_printf("Hello from rank %d of %dn",
-           rank, num);
-
-  /* Terminate */
-  ASSERT( gaspi_proc_term(GASPI_BLOCK) );
-
-  return 0;
-}
-```
-
-Load the modules and compile:
-
-```console
-$ ml gcc gpi2
-$ gcc helloworld_gpi.c -o helloworld_gpi.x -Wl,-rpath=$LIBRARY_PATH -lGPI2 -libverbs
-```
-
-Submit the job and run the GPI-2 application:
-
-```console
-$ qsub -q qexp -l select=2:ncpus=1:mpiprocs=1,place=scatter,walltime=00:05:00 -I
-    qsub: waiting for job 171247.dm2 to start
-    qsub: job 171247.dm2 ready
-cn79 $ ml gpi2
-cn79 $ cut -f1 -d"." $PBS_NODEFILE > machinefile
-cn79 $ gaspi_run -m machinefile ./helloworld_gpi.x
-    Hello from rank 0 of 2
-```
-
-At the same time, in another session, you may start the GASPI logger:
-
-```console
-$ ssh cn79
-cn79 $ gaspi_logger
-    GASPI Logger (v1.1)
-    [cn80:0] Hello from rank 1 of 2
-```
-
-In this example, we compile the helloworld_gpi.c code using the **gnu compiler**(gcc) and link it to the GPI-2 and the ibverbs library. The library search path is compiled in. For execution, we use the qexp queue, 2 nodes 1 core each. The GPI module must be loaded on the master compute node (in this example cn79), `gaspi_logger` is used from a different session to view the output of the second process.
-
-[a]: http://www.gaspi.de/en/project.html
diff --git a/content/docs/software/viz/insitu.mdx b/content/docs/software/viz/insitu.mdx
deleted file mode 100644
index 7d2f4e10ea31f381babbb4493b6b47a63f6aadad..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/insitu.mdx
+++ /dev/null
@@ -1,168 +0,0 @@
----
-title: "In Situ Visualization"
----
-## Introduction
-
-In situ visualization allows you to visualize your data while your computation is progressing on multiple nodes of a cluster. It is a visualization pipeline based on the [ParaView Catalyst][a] library.
-
-To leverage the possibilities of the in situ visualization by Catalyst library, you have to write an adaptor code that will use the actual data from your simulation and process them in the way they can be passed to ParaView for visualization. We provide a simple example of such simulator/adaptor code that binds together to provide the in situ visualization.
-
-Detailed description of the Catalyst API can be found [here][b]. We restrict ourselves to provide more of an overall description of the code together with specifications for building, and explanation about how to run the code on the cluster.
-
-## Installed Version
-
-For the current list of installed versions, use:
-
-```console
-$ ml av CUDA
-```
-
-## Usage
-
-All code concerning the simulator/adaptor is available to download from [here][code]. It is a package with the following files: [CMakeLists.txt][cmakelist_txt], [FEAdaptor.h][feadaptor_h], [FEAdaptor.cxx][feadaptor_cxx], [FEDataStructures.h][fedatastructures_h], [FEDataStructures.cxx][fedatastructures_cxx], [FEDriver.cxx][fedriver_cxx], and [feslicescript.py][feslicescript].
-
-After the download, unpack the code:
-
-```console
-$ tar xvf package_name
-```
-
-Then use CMake to manage the build process, but before that, load the appropriate modules (`CMake`, `ParaView`):
-
-```console
-$ ml CMake ParaView/5.6.0-intel-2017a-mpi
-```
-
-This module set also loads a necessary Intel compiler within the dependencies:
-
-```console
-$ mkdir build
-$ cd build
-$ cmake ../
-```
-
-Now you can build the simulator/adaptor code by using `make`:
-
-```console
-$ make
-```
-
-It will generate the CxxFullExampleAdaptor executable file. This will be later run together with ParaView and it will provide the in situ visualization example.
-
-## Code Explanation
-
-The provided example is a simple MPI program. Main executing part is written in FEDriver.cxx. It is simulator code that creates computational grid and performs simulator/adaptor interaction (see below).
-
-Dimensions of the computational grid in terms of number of points in x, y, z directions are supplied as input parameters to the `main` function (see lines 22-24 in the code below). Based on the number of MPI ranks, each MPI process creates a different part of the overall grid. This is done by grid initialization (see line 30). The respective code for this is in FEDataStructures.cxx. The parameter nr. 4 in `main` is for the name of the Python script (we use feslicescript.py). It sets up the ParaView-Catalyst pipeline (see line 36). The simulation starts by linearly progressing the `timeStep` value in the `for` loop. Each iteration of the loop upates the grid attributes (Velocity and Pressure) by calling the `UpdateFields` method from the `Attributes` class. Next in the loop, the adaptor's `CoProcess` function is called by using actual parameters (`grid`, `time`). To provide some information about the state of the simulation, the actual time step is printed together with the name of the processor that handles the computation inside the allocated MPI rank. Before the loop ends, appropriate sleep time is used to give some time for visualization to update. After the simulation loop ends, clean up is done by calling the `Finalize` function on adaptor and `MPI_Finalize` on MPI processes.
-
-![](insitu/img/FEDriver.png "FEDriver.cxx")
-
-Adaptor's initialization performs several necessary steps, see the code below. It creates vtkCPProcessor using the Catalyst library and adds a pipeline to it. The pipeline is initialized by the reffered Python script:
-
-![](insitu/img/Initialize.png "Initialization of the adaptor, within FEAdaptor.cxx")
-
-To initialize the Catalyst pipeline, we use the feslicescript.py Python script. You enable the live visualization in here and set the proper connection port. You can also use another commands and functions to configure it for saving the data during the visualization or another tasks that are available from the ParaView environment. For more details, see the [Catalyst guide][catalyst_guide].
-
-![](insitu/img/feslicescript.png "Catalyst pipeline setup by Python script")
-
-The `UpdateFields` method from the `Attributes` class updates the `velocity` value in respect to the value of `time` and the value of `setting` which depends on the actual MPI rank, see the code below. This way, different processes can be visually distinguished during the simulation.
-
-![](insitu/img/UpdateFields.png "UpdateFields method of the Attributes class from FEDataStructures.cxx")
-
-As mentioned before, further in the simulation loop, the adaptor's `CoProcess` function is called by using actual parameters of the `grid`, `time`, and `timeStep`. In the function, proper representation and description of the data is created. Such data is then passed to the Processor that has been created during the adaptor's initialization. The code of the `CoProcess` function is shown below.
-
-![](insitu/img/CoProcess.png "CoProcess function of the adaptor, within FEAdaptor.cxx")
-
-### Launching the Simulator/Adaptor With ParaView
-
-There are two standard options to launch ParaView,. You can run ParaView from your local machine in client-server mode by following the information [here][2] or you can connect to the cluster using VNC and the graphical environment by following the information on [VNC][3]. In both cases, we will use ParaView version 5.6.0 and its respective module.
-
-Whether you use the client-server mode or VNC for ParaView, you have to allocate some computing resources. This is done by the console commands below (supply valid Project ID).
-
-For the client-server mode of ParaView we allocate the resources by
-
-```console
-$ salloc -p qcpu -A PROJECT_ID --nodes=2
-```
-
-In the case of VNC connection, we use X11 forwarding by the `--x11` option to allow the graphical environment on the interactive session:
-
-```console
-$ salloc -p qcpu -A PROJECT_ID --nodes=2 --x11
-```
-
-The issued console commands launch the interactive session on 2 nodes. This is the minimal setup to test that the simulator/adaptor code runs on multiple nodes.
-
-After the interactive session is opened, load the `ParaView` module:
-
-```console
-$ ml ParaView/5.6.0-intel-2017a-mpi
-```
-
-When the module is loaded and you run the client-server mode, launch the mpirun command for pvserver as used in the description for [ParaView client-server][2] but also use the `&` sign at the end of the command. Then you can use the console later for running the simulator/adaptor code. If you run the VNC session, after loading the ParaView module, set up the environmental parameter for correct keyboard input and then run the ParaView in the background using the `&` sign.
-
-```console
-$ export QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb
-$ paraview &
-```
-
-If you have proceeded to the end in the description for the ParaView client-server mode and run ParaView localy or you have launched ParaView remotely using VNC the further steps are the same for both options. In the ParaView, go to the *Catalyst* -> *Connect* and hit *OK* in the pop up window asking for the connection port. After that, ParaView starts listening for incomming data to the in situ visualization.
-
-![](insitu/img/Catalyst_connect.png "Starting Catalyst connection in ParaView")
-
-Go to your build directory and run the built simulator/adaptor code from the console:
-
-```console
-mpirun -n 2 ./CxxFullExample 30 30 30 ../feslicescript.py
-```
-
-The programs starts to compute on the allocated nodes and prints out the response:
-
-![](insitu/img/Simulator_response.png "Simulator/adaptor response")
-
-In ParaView, you should see a new pipeline called *input* in the *Pipeline Browser*:
-
-![](insitu/img/Input_pipeline.png "Input pipeline")
-
-By clicking on it, another item called *Extract: input* is added:
-
-![](insitu/img/Extract_input.png "Extract: input")
-
-If you click on the eye icon to the left of the *Extract: input* item, the data will appear:
-
-![](insitu/img/Data_shown.png "Sent data")
-
-To visualize the velocity property on the geometry, go to the *Properties* tab and choose *velocity* instead of *Solid Color* in the *Coloring* menu:
-
-![](insitu/img/Show_velocity.png "Show velocity data")
-
-The result will look like in the image below, where different domains dependent on the number of allocated resources can be seen and they will progress through the time:
-
-![](insitu/img/Result.png "Velocity results")
-
-### Cleanup
-
-After you finish the in situ visualization, you should provide a proper cleanup.
-
-Terminate the simulation if it is still running.
-
-In the VNC session, close ParaView and the interactive job. Close the VNC client. Kill the VNC Server as described [here][3].
-
-In the client-server mode of ParaView, disconnect from the server in ParaView and close the interactive job.
-
-[1]: ../../../salomon/introduction/
-[2]: ../paraview/
-[3]: ../../../general/accessing-the-clusters/graphical-user-interface/vnc/
-
-[a]: https://www.paraview.org/in-situ/
-[b]: https://www.paraview.org/files/catalyst/docs/ParaViewCatalystUsersGuide_v2.pdf
-[c]: http://www.paraview.org/
-
-[code]: insitu/insitu.tar.gz
-[cmakelist_txt]: insitu/CMakeLists.txt
-[feadaptor_h]: insitu/FEAdaptor.h
-[feadaptor_cxx]: insitu/FEAdaptor.cxx
-[fedatastructures_h]: insitu/FEDataStructures.h
-[fedatastructures_cxx]: insitu/FEDataStructures.cxx
-[fedriver_cxx]: insitu/FEDriver.cxx
-[feslicescript]: insitu/feslicescript.py
diff --git a/content/docs/software/viz/insitu/meta.json b/content/docs/software/viz/insitu/meta.json
deleted file mode 100644
index 0017e5050b53727aac37a60ee7f0037b9048cfff..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/insitu/meta.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "title": "Insitu",
-  "pages": []
-}
diff --git a/content/docs/software/viz/meta.json b/content/docs/software/viz/meta.json
deleted file mode 100644
index e011fb06b9ddaa56f8ee437ed2563d083d2e429f..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/meta.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "title": "Viz",
-  "pages": [
-    "NICEDCVsoftware",
-    "gpi2",
-    "insitu",
-    "insitu",
-    "openfoam",
-    "ovito",
-    "paraview",
-    "qtiplot",
-    "vesta",
-    "vgl"
-  ]
-}
diff --git a/content/docs/software/viz/openfoam.mdx b/content/docs/software/viz/openfoam.mdx
deleted file mode 100644
index 99518d41d43e9100b13982f2066bb8ff1c01dc98..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/openfoam.mdx
+++ /dev/null
@@ -1,239 +0,0 @@
----
-title: "OpenFOAM"
----
-OpenFOAM is a free, open source CFD software package.
-
-## Introduction
-
-[OpenFOAM][a] is a free, open source CFD software package developed by [OpenCFD Ltd][b] at [ESI Group][c] and distributed by the [OpenFOAM Foundation][d]. It has a large user base across most areas of engineering and science from both commercial and academic organizations.
-
-### Installed Version
-
-Currently, several versions are available compiled by GCC/ICC compilers in single/double precision with several versions of OpenMPI.
-
-The naming convention of the installed versions is:
-
-`openfoam/<VERSION>-<COMPILER>-<openmpiVERSION>-<PRECISION>`
-
-* `VERSION` - version of openfoam
-* `COMPILER` - version of used compiler
-* `openmpiVERSION` - version of used openmpi/impi
-* `PRECISION` - DP/SP – double/single precision
-
-Example of the available OpenFOAM modules syntax is `openfoam/2.2.1-icc-openmpi1.6.5-DP`
-
-This means OpenFOAM version 2.2.1 compiled by the ICC compiler with openmpi1.6.5 in double precision.
-
-### Available OpenFOAM Modules
-
-To check the available modules, use:
-
-```console
-$ ml av
-```
-
-In /opt/modules/modulefiles/engineering, you can see the installed engineering softwares:
-
-```console
-    ------------------------------------ /opt/modules/modulefiles/engineering -------------------------------------------------------------
-    ansys/14.5.x               matlab/R2013a-COM                                openfoam/2.2.1-icc-impi4.1.1.036-DP
-    comsol/43b-COM             matlab/R2013a-EDU                                openfoam/2.2.1-icc-openmpi1.6.5-DP
-    comsol/43b-EDU             openfoam/2.2.1-gcc481-openmpi1.6.5-DP            paraview/4.0.1-gcc481-bullxmpi1.2.4.1-osmesa10.0
-    lsdyna/7.x.x               openfoam/2.2.1-gcc481-openmpi1.6.5-SP
-```
-
-For information on how to use modules, look [here][1].
-
-## Getting Started
-
-To create OpenFOAM environment, use the commands:
-
-```console
-$ ml openfoam
-$ source $FOAM_BASHRC
-```
-
-<Callout>
-    Load the correct module with your requirements “compiler - GCC/ICC, precision - DP/SP”.
-</Callout>
-
-Create a project directory within the $HOME/OpenFOAM directory named `<USER>-<OFversion>` and create a directory named `run` within it:
-
-```console
-$ mkdir -p $FOAM_RUN
-```
-
-The project directory is now available by typing:
-
-```console
-$ cd /home/<USER>/OpenFOAM/<USER>-<OFversion>/run
-```
-
-`<OFversion>` - for example `2.2.1`
-
-or
-
-```console
-$ cd $FOAM_RUN
-```
-
-Copy the tutorial examples directory in the OpenFOAM distribution to the run directory:
-
-```console
-$ cp -r $FOAM_TUTORIALS $FOAM_RUN
-```
-
-Now you can run the first case, for example incompressible laminar flow in a cavity.
-
-## Running Serial Applications
-
-Create a test.sh Bash script:
-
-```bash
-#!/bin/bash
-
-ml openfoam/2.2.1-icc-openmpi1.6.5-DP
-source $FOAM_BASHRC
-
-# source to run functions
-. $WM_PROJECT_DIR/bin/tools/RunFunctions
-
-cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity
-
-runApplication blockMesh
-runApplication icoFoam
-```
-
-Job submission (example for Karolina):
-
-```console
-$ sbatch -A PROJECT_ID -p qcpu --nodes=1 --ntasks=128 --time=03:00:00 test.sh
-```
-
-For information about job submission, look [here][2].
-
-## Running Applications in Parallel
-
-Run the second case, for example external incompressible turbulent flow - case - motorBike.
-
-First we must run the serial application bockMesh and decomposePar for preparation of parallel computation.
-
-<Callout>
-    Create a test.sh Bash scrip:
-</Callout>
-
-```bash
-#!/bin/bash
-
-ml openfoam/2.2.1-icc-openmpi1.6.5-DP
-source $FOAM_BASHRC
-
-# source to run functions
-. $WM_PROJECT_DIR/bin/tools/RunFunctions
-
-cd $FOAM_RUN/tutorials/incompressible/simpleFoam/motorBike
-
-runApplication blockMesh
-runApplication decomposePar
-```
-
-Job submission
-
-```console
-$ sbatch -A PROJECT_ID -p qcpu --nodes=1 --ntasks=16 --time=03:00:00 test.sh
-```
-
-This job creates a simple block mesh and domain decomposition. Check your decomposition and submit parallel computation:
-
-<Callout>
-    Create a testParallel.slurm script:
-</Callout>
-
-```bash
-#!/bin/bash
-#SBATCH --job-name=motorBike
-#SBATCH --nodes=2
-#SBATCH --ntasks-per-node=16
-#SBATCH --time=01:00:00
-#SBATCH --partition=qcpu
-#SBATCH --account=ACCOUNT_ID
-
-ml openfoam/2.2.1-icc-openmpi1.6.5-DP
-source $FOAM_BASHRC
-
-cd $FOAM_RUN/tutorials/incompressible/simpleFoam/motorBike
-
-nproc = 32
-
-mpirun -hostfile ${$SLURM_JOB_NODELIST} -np $nproc snappyHexMesh -overwrite -parallel | tee snappyHexMesh.log
-
-mpirun -hostfile ${$SLURM_JOB_NODELIST} -np $nproc potentialFoam -noFunctionObject-writep -parallel | tee potentialFoam.log
-
-mpirun -hostfile ${$SLURM_JOB_NODELIST} -np $nproc simpleFoam -parallel | tee simpleFoam.log
-```
-
-`nproc` – the number of subdomains
-
-Job submission
-
-```console
-$ srun testParallel.slurm
-```
-
-## Compile Your Own Solver
-
-Initialize the OpenFOAM environment before compiling your solver:
-
-```console
-$ ml openfoam/2.2.1-icc-openmpi1.6.5-DP
-$ source $FOAM_BASHRC
-$ cd $FOAM_RUN/
-```
-
-Create the applications/solvers directory in the user directory:
-
-```console
-$ mkdir -p applications/solvers
-$ cd applications/solvers
-```
-
-Copy icoFoam solver’s source files:
-
-```console
-$ cp -r $FOAM_SOLVERS/incompressible/icoFoam/My_icoFoam
-$ cd My_icoFoam
-```
-
-Rename icoFoam.C to My_icoFOAM.C:
-
-```console
-$ mv icoFoam.C My_icoFoam.C
-```
-
-Edit the _files_ file in the _Make_ directory:
-
-```bash
-    icoFoam.C
-    EXE = $(FOAM_APPBIN)/icoFoam
-```
-
-and change to:
-
-```bash
-    My_icoFoam.C
-    EXE = $(FOAM_USER_APPBIN)/My_icoFoam
-```
-
-In the My_icoFoam directory, use the compilation command:
-
-```console
-$ wmake
-```
-
-[1]: ../../environment-and-modules.md
-[2]: ../../general/job-submission-and-execution.md
-
-[a]: http://www.openfoam.com/
-[b]: http://www.openfoam.com/about
-[c]: http://www.esi-group.com/
-[d]: http://www.openfoam.org/
diff --git a/content/docs/software/viz/ovito.mdx b/content/docs/software/viz/ovito.mdx
deleted file mode 100644
index d4309b47109cdd90c32895cf4473ae2667f41d45..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/ovito.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Ovito"
----
-[OVITO][a] is a visualization and analysis software for output data generated in molecular dynamics, atomistic Monte-Carlo and other particle-based simulations.
-
-## Introduction
-
-A central aim of OVITO as a data visualization and analysis solution is to provide a maximum of flexibility – and, at the same time, ease-of-use – to support you in extracting meaningful information from simulation outputs.  To achieve this goal, OVITO is based on a powerful data pipeline technology depicted below. The software offers a wide range of basic visualization and analysis functions (building blocks), which you can assemble to a sequence of processing steps. These operations, which are all configurable, will then be applied to the simulation data in real-time by the software. The outcome of the data pipeline is finally displayed on screen, may be rendered to an output image for publication, or exported to output data files.
-
-![](/it4i/img/ovito_data_pipeline.png)
-
-The dynamic pipeline concept makes it possible for you to change and adjust the sequence of applied operations at any time. In other words, OVITO enables you to work in a non-destructive manner with a dataset as all manipulation steps can easily be revoked. You can adjust the order of filter and manipulation operations, their parameters, and also the input data itself –the program will re-evaluate the pipeline and update the display in real-time. Thanks to intelligent data caching and parallelization techniques implemented in OVITO, this all happens without interrupting your workflow.
-
-For more information, see the [User Manual][b]
-
-### Installed Version
-
-For the list of installed versions, use:
-
-```console
-$ ml av ovito
-```
-
-## Getting Started
-
-The visualization software requires [graphical user interface][1] or [virtual network computing][2] software.
-
-[1]: ../../general/accessing-the-clusters/graphical-user-interface/x-window-system.md
-[2]: ../../general/accessing-the-clusters/graphical-user-interface/vnc.md
-
-[a]: https://www.ovito.org/
-[b]: https://www.ovito.org/docs/current/
diff --git a/content/docs/software/viz/paraview.mdx b/content/docs/software/viz/paraview.mdx
deleted file mode 100644
index de8ab8b3679b7f916bd8b3e5dab5d3187107f3ce..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/paraview.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: "ParaView"
----
-An open-source, multi-platform data analysis and visualization application.
-
-## Introduction
-
-[ParaView][a] is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaView's batch processing capabilities.
-
-ParaView was developed to analyze extremely large datasets using distributed memory computing resources. It can be run on supercomputers to analyze datasets of exascale size as well as on laptops for smaller data.
-
-## Installed Version
-
-Currently, version 5.1.2 compiled with Intel/2017a against the Intel MPI library and OSMesa 12.0.2 is installed on the clusters.
-
-## Usage
-
-On the clusters, ParaView is to be used in the client-server mode. A parallel ParaView server is launched on compute nodes by the user and the client is launched on your desktop PC to control and view the visualization. Download the ParaView client application for your OS [here][b].
-
-<Callout type=warn>
-    Your version must match the version number installed on the cluster.
-</Callout>
-
-### Launching Server
-
-To launch the server, you must first allocate compute nodes, for example:
-
-```console
-$ salloc -p qprod -A PROJECT_ID --nodes=2 --time=01:00:00 --x11
-```
-
-to launch an interactive session on 2 nodes. For details, refer to [Job Submission and Execution][1] section.
-
-After the interactive session is opened, load the ParaView module:
-
-```console
-$ ml ParaView/5.1.2-intel-2017a-mpi
-```
-
-Now launch the parallel server, with the number of processes equal to the number of nodes times 24:
-
-```console
-$ mpirun -np 48 pvserver --use-offscreen-rendering
-    Waiting for client...
-    Connection URL: cs://r37u29n1006:11111
-    Accepting connection(s): r37u29n1006:11111i
-```
-
-Note that in this case, the server is listening on the compute node r37u29n1006, we will use this information later.
-
-### Client Connection
-
-Because a direct connection is not allowed to compute nodes on clusters, you must establish an SSH tunnel to connect to the server. Choose a port number on your PC to be forwarded to ParaView server, for example 12345. If your PC is running Linux, use this command to establish an SSH tunnel:
-
-```console
-Barbora: $ ssh -TN -L 12345:r37u29n1006:11111 username@barbora.it4i.cz
-```
-
-Replace username with your login and r37u29n1006 with the name of the compute node on which your ParaView server is running (see the previous step).
-
-If you use PuTTY on Windows, load Barbora connection configuration, then go to *Connection* -> *SSH* -> *Tunnels* to set up the port forwarding.
-
-Fill the Source port and Destination fields. **Do not forget to click the Add button.**
-
-![](../../img/paraview_ssh_tunnel_salomon.png "SSH Tunnel in PuTTY")
-
-Now launch ParaView client installed on your desktop PC. Select *File* -> *Connect...* and fill in the following :
-
-![](../../img/paraview_connect_salomon.png "ParaView - Connect to server")
-
-The configuration is now saved for later use. Now click Connect to connect to the ParaView server. In your terminal where you have the interactive session with the ParaView server launched, you should see:
-
-```console
-Client connected.
-```
-
-You can now use Parallel ParaView.
-
-### Close Server
-
-Remember to close the interactive session after you finish working with the ParaView server, as it will remain launched and continue consuming resources even after your client is disconnected.
-
-[1]: ../../general/job-submission-and-execution.md
-
-[a]: http://www.paraview.org/
-[b]: http://paraview.org/paraview/resources/software.php
diff --git a/content/docs/software/viz/qtiplot.mdx b/content/docs/software/viz/qtiplot.mdx
deleted file mode 100644
index a2732775cbb7215356029419b27471e6afe36f58..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/qtiplot.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: "QtiPlot"
----
-A cross-platform scientific application for data analysis and visualisation.
-
-## Introduction
-
-[QtiPlot][1] is a cross-platform scientific application for data analysis and visualisation.
-QtiPlot can be used to present 2D and 3D data and has various data analysis functions like curve fitting.
-The program is also extensible to a considerable degree via muParser and Python scripting language,
-which allows adding the arbitrary user-defined functions with access to graphs, matrices and data tables.
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av QtiPlot
-```
-
-## Running QtiPlot
-
-<Callout type=warn>
-    You must first enable the [VNC][a] or [X Window System][b] GUI environment.
-</Callout>
-
-To run QtiPlot, use:
-
-```console
-$ ml QtiPlot; qtiplot
-```
-
-[1]: https://www.qtiplot.com/index.html
-
-[a]: ../../../general/accessing-the-clusters/graphical-user-interface/vnc/
-[b]: ../../../general/accessing-the-clusters/graphical-user-interface/x-window-system/
diff --git a/content/docs/software/viz/vesta.mdx b/content/docs/software/viz/vesta.mdx
deleted file mode 100644
index 196498ddaea2815a566d2a2e51406f138e5cafc9..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/vesta.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "Vesta"
----
-## Introduction
-
-VESTA (Visualization for Electronic and Structural Analysis) is a 3D visualization program for structural models, volumetric data such as electron/nuclear densities, and crystal morphologies. Some of the novel features of VESTA include:
-
-* Deal with multiple structural models, volumetric data, and crystal morphologies in the same window;
-* Support multiple tabs corresponding to files;
-* Support multiple windows with more than two tabs in the same process;
-* Deal with virtually unlimited number of objects such as atoms, bonds polyhedra, and polygons on isosurfaces (theoretical limit on 32bit operating  system is 1,073,741,823);
-* Support lattice transformation from conventional to non-conventional lattice by using matrix. The transformation matrix is also used to create superlattice and sublattice;
-* Visualize interatomic distances and bond angles that are restrained in Rietveld analysis with RIETAN-FP;
-* Transparent isosurfaces can be overlap with structural models;
-* Isosurface can be colored on the basis of another physical quantity;
-* Arithmetic operations among multiple volumetric data files;
-* High quality smooth rendering of isosurfaces and sections;
-* Export high-resolution graphic images exceeding Video card limitation.
-
-For the full list of features and supported file formats, see the [official page][1].
-
-## Manual
-
-The VESTA manual can be found [here][2].
-
-## Installed Versions
-
-For the current list of installed versions, use:
-
-```console
-$ ml av vesta
-```
-
-<Callout>
-    This module is currently availble on the Barbora cluster only.
-</Callout>
-
-[1]: https://jp-minerals.org/vesta/en/
-[2]: https://jp-minerals.org/vesta/archives/VESTA_Manual.pdf
diff --git a/content/docs/software/viz/vgl.mdx b/content/docs/software/viz/vgl.mdx
deleted file mode 100644
index efeddafba5963b6045750f3e6ff52aca16fc3deb..0000000000000000000000000000000000000000
--- a/content/docs/software/viz/vgl.mdx
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: "VirtualGL"
----
-VirtualGL is an open source program that redirects the 3D rendering commands from Unix and Linux OpenGL applications to 3D accelerator hardware in a dedicated server and displays the rendered output interactively to a thin client located elsewhere on the network.
-
-See the documentation [here][a].
-
-<Callout>
-    VirtualGL is available on Barbora and Karolina.
-<\Callout>
-
-## How to Use
-
-**Run VNC**
-
-* VNC Server
-
-Read our documentation on [VNC server][1].
-
-```console
-Warning: No xauth data; using fake authentication data for X11 forwarding.
-                  ____             _
-                 |  _ \           | |
-                 | |_) | __ _ _ __| |__   ___  _ __ __ _
-                 |  _ < / _` | '__| '_ \ / _ \| '__/ _` |
-                 | |_) | (_| | |  | |_) | (_) | | | (_| |
-                 |____/ \__,_|_|  |_.__/ \___/|_|  \__,_|
-
-
-                  ...running on Red Hat Enterprise Linux 7.x
-
-login@login1:~$ vncserver :99
-
-login@login1:~$
-```
-
-* VNC Client (your local machine)
-
-```console
-root@toshiba:~# ssh -L 5999:localhost:5999 login@login1.barbora.it4i.cz -X
-```
-
-* Connect to a VNC server from a VNC client (your local machine)
-
-```console
-vncviewer localhost:99
-
-```
-
-Or via GUI.
-
-![](/it4i/img/vnc.jpg)
-
-<Callout>
-    To resize the window scale, use the `xrandr -s 1920x1200` command.
-</Callout>
-
-**Run vglclient on the login server (use the terminal in the local machine VNC window)**
-
-```console
-login@login1:~$ ml VirtualGL
-login@login1:~$ vglclient
-
-VirtualGL Client 64-bit v2.6.1 (Build 20200228)
-Listening for unencrypted connections on port 4242
-
-```
-
-![](/it4i/img/client.jpg)
-
-**Execute an interactive job on vizserv (use another terminal in the local machine VNC window)**
-
-```console
-[login@login1.barbora ~]$ salloc -p qviz -A PROJECT_ID --x11
-salloc: Granted job allocation 694741
-salloc: Waiting for resource configuration
-salloc: Nodes vizserv1 are ready for job
-
-[login@vizserv1.barbora ~]$
-```
-
-![](/it4i/img/job.jpg)
-
-**New SSH connection on vizserv - elimination of the Slurm setting (use another terminal in the local machine VNC window)**
-
-```console
-login@login1:~$ ssh vizserv1 -X
-Last login: Tue Mar  3 13:54:33 2020 from login1.barbora.it4i.cz
-login@vizserv1:~$
-```
-
-![](/it4i/img/ssh.jpg)
-
-**Run the graphical application**
-
-```console
-login@vizserv1:~$ vglrun /apps/easybuild/glxgears
-[VGL] NOTICE: Automatically setting VGL_CLIENT environment variable to
-[VGL]    10.32.2.1, the IP address of your SSH client.
-libGL error: unable to load driver: swrast_dri.so
-libGL error: failed to load driver: swrast
-17128 frames in 5.0 seconds = 3425.573 FPS
-17251 frames in 5.0 seconds = 3450.128 FPS
-...
-```
-
-![](/it4i/img/glxgears.jpg)
-
-## Examples for Remote Visualization on Barbora Cluster
-
-<div align="center">
-  <iframe  width="854" height="480" src="https://www.youtube.com/embed/BArIbIC_-24"></iframe>
-</div>
-
-[1]: ../../../general/accessing-the-clusters/graphical-user-interface/vnc/
-
-[a]: https://www.virtualgl.org/
diff --git a/content/docs/src/meta.json b/content/docs/src/meta.json
deleted file mode 100644
index e262bae5a1444217101ecf5c4bf316adbcfad274..0000000000000000000000000000000000000000
--- a/content/docs/src/meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Src",
-  "pages": [
-    "ompi"
-  ]
-}
diff --git a/content/docs/src/ompi/meta.json b/content/docs/src/ompi/meta.json
deleted file mode 100644
index fca79a3eba76799a9dd7d4e42d64cf69569429e1..0000000000000000000000000000000000000000
--- a/content/docs/src/ompi/meta.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "title": "Ompi",
-  "pages": []
-}
diff --git a/content/docs/storage/awscli.mdx b/content/docs/storage/awscli.mdx
deleted file mode 100644
index ff70e41fffa382e6b6c5486041ba3739efedd3df..0000000000000000000000000000000000000000
--- a/content/docs/storage/awscli.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: "AWS CLI"
----
-You can use the AWS command line tools to issue commands or build scripts at your system's command line to perform AWS (including S3) tasks.
-The AWS Command Line Interface (AWS CLI) provides commands for a broad set of AWS services. To get started, see the AWS Command Line Interface User Guide.
-
-For more information, see the official site [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#BasicsBucket][a].
-
-## How to Load Modules:
-
-To see loaded modules, use:
-
-```
-ml
-```
-
-To load modules, use:
-
-```
-ml awscli
-```
-
-To see module info, use:
-
-```
-ml spider AWS
-```
-
-For more information on how to work with modules, see
-[https://docs.it4i.cz/software/modules/lmod/][1].
-
-## Configuration
-
-For configuration steps, follow the [e-INFRA CZ guide][b].
-
-For the list of basic AWS CLI commands, see [https://docs.e-infra.cz/storage/object-storage/aws-cli/#controls-of-aws-cli---high-level-s3][e].
-
-## Useful Links
-
-* [Getting started][c]
-* [Troubleshoot AWS CLI errors][f]
-* [Configuration erros][d]
-
-[1]: https://docs.it4i.cz/software/modules/lmod/
-
-[a]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#BasicsBucket
-[b]: https://docs.e-infra.cz/storage/object-storage/aws-cli/
-[c]: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
-[d]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
-[e]: https://docs.e-infra.cz/storage/object-storage/aws-cli/#controls-of-aws-cli---high-level-s3
-[f]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-troubleshooting.html
diff --git a/content/docs/storage/cesnet-s3.mdx b/content/docs/storage/cesnet-s3.mdx
deleted file mode 100644
index 2df46f7de14303af2cc74ae169ef7e920e0cecd9..0000000000000000000000000000000000000000
--- a/content/docs/storage/cesnet-s3.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: "CESNET S3 Storage"
----
-S3 service is a general service suited for most of the use cases. S3 service can be used for elementary data storing, automated backups, or various types of data handling applications. The service is supported by CESNET Storage Department: [du-support(at)cesnet.cz][email]
-
-For more information, see [e-IINFRA CZ S3 Service documentation][a].
-
-## Access:
-
-To access to S3 you must:
-
-* have an [e-Infra CZ account][3]
-* be a [member of an active project][4]
-
-### Steps
-
-1. Fil in application at [https://einfra.cesnet.cz/allfed/registrar/?vo=VO_s3&group=s3_cl4&locale=en][b] to be a member of VO group. For more information about the S3 object storage, see [https://du.cesnet.cz/en/navody/object_storage/osobni_s3/start][f].
-
-2. Once the application is approved you will be informed via email. Then please wait at least 30 minutes for our system to synchronize all data. Then you can continue to the Gatekeeper service to generate your credentials. To the [Gatekeeper service][g], you need to login via eduID.cz identity.
-
-IT4I offers two tools for object storage management on Karolina and Barbora:
-
-<Callout>
-    We recommend using the default versions installed.
-</Callout>
-
-* [S3cmd][1]
-* [AWS CLI][2]
-
-## Walkthroughs (Config Connection)
-
-* [https://du.cesnet.cz/en/navody/object_storage/cesnet_s3/start][c]
-* [https://www.s3express.com/kb/item26.htm][d]
-
-[1]: s3cmd.md
-[2]: awscli.md
-[3]: https://docs.e-infra.cz/account/
-[4]: https://docs.it4i.cz/general/access/project-access/
-
-[a]: https://docs.e-infra.cz/storage/object-storage/s3-service/
-[b]: https://einfra.cesnet.cz/allfed/registrar/?vo=VO_s3&group=s3_cl4&locale=en
-[c]: https://du.cesnet.cz/cs/navody/object_storage/cesnet_s3/start
-[d]: https://www.s3express.com/kb/item26.htm
-[e]: https://filesender.cesnet.cz/
-[f]: https://du.cesnet.cz/en/navody/object_storage/osobni_s3/start
-[g]: https://access.du.cesnet.cz/#/access
-
-[email]: mailto:du-support@cesnet.cz
diff --git a/content/docs/storage/cesnet-storage.mdx b/content/docs/storage/cesnet-storage.mdx
deleted file mode 100644
index c331d9c9c92862029a2367495f8108a136e8d6e5..0000000000000000000000000000000000000000
--- a/content/docs/storage/cesnet-storage.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: "CESNET Data Storage"
----
-IT4Innovations' shared file systems are not intended as a backup for large amount of data or for long-term archiving purposes.
-Academic staff and students of research institutions in the Czech Republic should use [CESNET Storage service][a].
-
-CESNET data storage can be used by any organization or an individual person who is in the current employment relationship (employees) or the current study relationship (students) to a legal entity (organization) that meets the “Principles for access to CESNET Large infrastructure (Access Policy)”.
-
-The user may only use the CESNET data storage for data transfer and storage associated with activities in science, research, development, spread of education, culture, and prosperity. For details, see “Acceptable Use Policy CESNET Large Infrastructure (Acceptable Use Policy, AUP)”.
-
-The service is documented [here][b]. For special requirements contact directly CESNET Storage Department via e-mail [du-support(at)cesnet.cz][c].
-
-The procedure to obtain the CESNET access is quick and simple.
-
-## CESNET Storage Access
-
-### Understanding CESNET Storage
-
-<Callout>
-    It is very important to understand the CESNET storage before uploading data. [Read][d] first.
-</Callout>
-
-Once registered for CESNET Storage, you may [access the storage][e] in number of ways. We recommend the SSHFS and RSYNC methods.
-
-### SSHFS Access
-
-<Callout>
-    SSHFS: The storage will be mounted like a local hard drive
-</Callout>
-
-The SSHFS provides a very convenient way to access the CESNET Storage. The storage will be mounted onto a local directory, exposing the vast CESNET Storage as if it was a local removable hard drive. Files can be than copied in and out in a usual fashion.
-
-First, create the mount point:
-
-```console
-$ mkdir cesnet
-```
-
-Mount the storage. Note that you can choose among ssh.du4.cesnet.cz (Ostrava) and ssh.du5.cesnet.cz (Jihlava).
-Mount tier1_home **(only 5120M !)**:
-
-```console
-$ sshfs username@ssh.du4.cesnet.cz:. cesnet/
-```
-
-For easy future access, install your public key:
-
-```console
-$ cp .ssh/id_rsa.pub cesnet/.ssh/authorized_keys
-```
-
-Mount tier1_cache_tape for the Storage VO:
-
-```console
-$ sshfs username@ssh.du4.cesnet.cz:/cache_tape/VO_storage/home/username cesnet/
-```
-
-View the archive, copy the files and directories in and out:
-
-```console
-$ ls cesnet/
-$ cp -a mydir cesnet/.
-$ cp cesnet/myfile .
-```
-
-Once done, remember to unmount the storage:
-
-```console
-$ fusermount -u cesnet
-```
-
-### Rsync Access
-
-<Callout>
-    Rsync provides delta transfer for best performance and can resume interrupted transfers.
-</Callout>
-
-Rsync is a fast and extraordinarily versatile file copying tool. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use.
-
-Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time. Any changes in the other preserved attributes (as requested by options) are made on the destination file directly when the quick check indicates that the file's data does not need to be updated.
-
-More about Rsync [here][f].
-
-Transfer large files to/from CESNET storage, assuming membership in the Storage VO:
-
-```console
-$ rsync --progress datafile username@ssh.du4.cesnet.cz:VO_storage-cache_tape/.
-$ rsync --progress username@ssh.du4.cesnet.cz:VO_storage-cache_tape/datafile .
-```
-
-Transfer large directories to/from CESNET storage, assuming membership in the Storage VO:
-
-```console
-$ rsync --progress -av datafolder username@ssh.du4.cesnet.cz:VO_storage-cache_tape/.
-$ rsync --progress -av username@ssh.du4.cesnet.cz:VO_storage-cache_tape/datafolder .
-```
-
-Transfer rates of about 28MB/s can be expected.
-
-[a]: https://du.cesnet.cz/
-[b]: https://du.cesnet.cz/en/start
-[c]: mailto:du-support@cesnet.cz
-[d]: https://du.cesnet.cz/en/navody/home-migrace-plzen/start
-[e]: https://du.cesnet.cz/en/navody/faq/start)
-[f]: https://du.cesnet.cz/en/navody/rsync/start#pro_bezne_uzivatele
diff --git a/content/docs/storage/meta.json b/content/docs/storage/meta.json
deleted file mode 100644
index eae763281462eb37eea2fd6cf943beaf08abfd0f..0000000000000000000000000000000000000000
--- a/content/docs/storage/meta.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "title": "Storage",
-  "pages": [
-    "awscli",
-    "cesnet-s3",
-    "cesnet-storage",
-    "nfs4-file-acl",
-    "proj4-storage",
-    "project-storage",
-    "s3cmd",
-    "standard-file-acl"
-  ]
-}
diff --git a/content/docs/storage/nfs4-file-acl.mdx b/content/docs/storage/nfs4-file-acl.mdx
deleted file mode 100644
index d531b3535afe951097e8b741f9bbc979e324f19a..0000000000000000000000000000000000000000
--- a/content/docs/storage/nfs4-file-acl.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: "NFSv4 File ACL"
----
-An NFSv4 ACL consists of one or more NFSv4 ACEs (Access Control Entry), each delimited by a comma or whitespace.
-
-An NFSv4 ACE is written as a colon-delimited, 4-field string in the following format:
-
-``` code
-<type>:<flags>:<principal>:<permissions>
-```
-
-## ACE Elements
-
-`<type>` - one of:
-
-| Flag | Name  |
-| ---- | ----- |
-| A    | allow |
-| D    | deny  |
-| U    | audit |
-| L    | alarm |
-
-`<flags>` - zero or more (depending on `<type>`) of:
-
-| Flag | Name                                        |
-| ---- | ------------------------------------------- |
-| f    | file-inherit                                |
-| d    | directory-inherit                           |
-| p    | no-propagate-inherit                        |
-| i    | inherit-only                                |
-| S    | successful-access                           |
-| F    | failed-access                               |
-| g    | group (denotes that <principal> is a group) |
-
-`<principal>` - named user or group, or one of: `OWNER@`, `GROUP@`, `EVERYONE@`
-
-`<permissions>` - one or more of:
-
-| Flag | Name                              |
-| ---- | --------------------------------- |
-| r    | read-data / list-directory        |
-| w    | write-data / create-file          |
-| a    | append-data / create-subdirectory |
-| x    | execute                           |
-| d    | delete                            |
-| D    | delete-child (directories only)   |
-| t    | read-attrs                        |
-| T    | write-attrs                       |
-| n    | read-named-attrs                  |
-| N    | write-named-attrs                 |
-| c    | read-ACL                          |
-| C    | write-ACL                         |
-| o    | write-owner                       |
-| y    | synchronize                       |
-
-## Example
-
-``` code
-[root@login2.karolina proj1]# nfs4_getfacl open-20-11
-
-# file: open-20-11
-A::OWNER@:rwaDxtTcCy
-A::GROUP@:rxtcy
-A:g:open-20-11@it4i.cz:rwaDxtcy
-A::EVERYONE@:tcy
-A:fdi:OWNER@:rwaDxtTcCy
-A:fdi:GROUP@:rxtcy
-A:fdig:open-20-11@it4i.cz:rwaDxtcy
-A:fdi:EVERYONE@:tcy
-```
diff --git a/content/docs/storage/proj4-storage.mdx b/content/docs/storage/proj4-storage.mdx
deleted file mode 100644
index 8a677d6a4c3b533c8b59c767287e6f291eea86d2..0000000000000000000000000000000000000000
--- a/content/docs/storage/proj4-storage.mdx
+++ /dev/null
@@ -1,169 +0,0 @@
----
-title: "PROJ4 Object Storage"
----
-OpenStack Swift is a highly scalable, distributed object storage system
-designed to store and retrieve large amounts of unstructured data.
-It is an open-source project that provides a simple, scalable, and durable storage system for applications and services.
-Swift is built to be highly available, fault-tolerant, and scalable, making it an ideal choice for storing large amounts of data.
-
-Swift is designed to be highly modular, with a simple API that allows developers to easily integrate it into their applications.
-It provides a RESTful API that can be accessed using a variety of programming languages,
-making it easy to integrate with existing applications.
-
-One of the key features of Swift is its ability to scale horizontally,
-allowing it to handle large amounts of data and high levels of traffic.
-It is also designed to be highly durable, with data being replicated across multiple nodes to ensure that it is always available.
-
-Overall, OpenStack Swift is a powerful and flexible object storage system
-that is well-suited for a wide range of applications and use cases.
-
-## Accessing PROJ4
-
-PROJ4 is accessible from all IT4Innovations clusters' login nodes
-as well as from the outside.
-Additionally, it allows to share data across clusters, etc.
-
-User has to be part of a project, which is allowed to use S3 storage. If you haven't received your S3 credentials after your project was created, please send a request to support@it4i.cz asking for the "S3 PROJECT ACCESS", stating your IT4I login and name of your project (in the OPEN-XX-YY format or similar).
-After that an active role on the S3 storage will be created and you will obtain via na email the credentials for using the S3 storage.
-
-## How to Configure S3 Client
-
-```console
-$ sudo yum install s3cmd -y ## for debian based systems use apt-get
-
-$ s3cmd --configure
-.
-.
-.
-.
-  Access Key: ***your_access***
-  Secret Key: ***your_secret_key***
-  Default Region: US
-  S3 Endpoint: obj.proj4.it4i.cz
-  DNS-style bucket+hostname:port template for accessing a bucket: obj.proj4.it4i.cz
-  Encryption password: RANDOM
-  Path to GPG program: /usr/bin/gpg
-  Use HTTPS protocol: True
-  HTTP Proxy server name:
-  HTTP Proxy server port: 0
-.
-.
-.
-
-Configuration saved to '/home/IT4USER/.s3cfg'
-.
-.
-
-```
-
-Please note, that the Encryption password should be defined by you instead of using the value "RANDOM".
-
-Now you have to make some bucket for your data with **your_policy**, referencing your project (e.g. OPEN-XX-YY - if OPEN-XX-YY is your active and eligible project).
-If you make a bucket without policy, we will not able to manage your project's data expiration and you might loose the data before the end of your actuall project - so please use the policy.
-
-```console
-~ s3cmd --add-header=X-Storage-Policy:OPEN-XX-YY mb s3://test-bucket
-
-~ $ s3cmd put test.sh s3://test-bucket/
-upload: 'test.sh' -> 's3://test-bucket/test.sh'  [1 of 1]
-1239 of 1239   100% in    0s    19.59 kB/s  done
-
-~ $ s3cmd ls
-2023-10-17 13:00  s3://test-bucket
-
-~ $ s3cmd ls s3://test-bucket
-2023-10-17 13:09      1239   s3://test-bucket/test.sh
-```
-
-There is no possibility to set permissions for all members of a project,
-so you have to set permissions for each user in a project.
-Permission can be set only by the owner of the bucket.
-
-```console
-~ s3cmd setacl s3://test-bucket/test1.log --acl-grant=full\_control:user1
-    s3://test-bucket/test1.log: ACL updated
-
-~ s3cmd setacl s3://test-bucket/test1.log --acl-grant=full\_control:user2
-    s3://test-bucket/test1.log: ACL updated
-
-~ s3cmd setacl s3://test-bucket/test1.log --acl-grant=read:user3
-    s3://test-bucket/test1.log: ACL updated
-
-~ s3cmd setacl s3://test-bucket/test1.log --acl-grant=write:user4
-    s3://test-bucket/test1.log: ACL updated
-
-~ s3cmd info s3://test-bucket/test1.log
-    s3://test-bucket/test1.log (object):
-       File size: 1024000000
-       Last mod:  Mon, 09 Oct 2023 08:06:12 GMT
-       MIME type: application/xml
-       Storage:   STANDARD
-       MD5 sum:   b5c667a723a10a3485a33263c4c2b978
-       SSE:       none
-       Policy:    none
-       CORS:      none
-       ACL:       OBJtest:user2: FULL\_CONTROL
-       ACL:       \*anon\*: READ
-       ACL:       user1: FULL\_CONTROL
-       ACL:       user2: FULL\_CONTROL
-       ACL:       user3: READ
-       ACL:       user4: WRITE
-       URL:       [http://195.113.250.1:8080/test-bucket/test1.log](http://195.113.250.1:8080/test-bucket/test1.log)
-       x-amz-meta-s3cmd-attrs: atime:1696588450/ctime:1696588452/gid:1001/gname:******/md5:******/mode:33204/mtime:1696588452/uid:******/uname:******
-```
-
-## Access to Multiple Projects
-
-If a user needs to access multiple projects' data, it is needed to repeat the step asking the IT4I support for new credentials for the additional projects. In case you don't have the credentials assigned with the project activation, please send a request to support@it4i.cz.
-
-As the first step, rename your current S3 configuration, so that it uniquely identifies your current project or organize it on your local storage accordingly.
-
-```console
-$ mv /home/IT4USER/.s3cfg /home/IT4USER/.s3cfg-OPEN-XX-YY
-```
-
-Then create new S3 configuration for the additional project (e.g. OPEN-AA-BB).
-
-```console
-$ s3cmd --configure
-```
-
-Rename or organize you newly created config.
-
-```console
-$ mv /home/IT4USER/.s3cfg /home/IT4USER/.s3cfg-OPEN-AA-BB
-```
-
-When acccessing the data of the different project specify the right configuration using the S3 commands.
-
-```console
-~ s3cmd -c /home/IT4USER/.s3cfg-OPEN-AA-BB --add-header=X-Storage-Policy:OPEN-AA-BB mb s3://test-bucket
-
-~ $ s3cmd -c /home/IT4USER/.s3cfg-OPEN-AA-BB put test.sh s3://test-bucket/
-upload: 'test.sh' -> 's3://test-bucket/test.sh'  [1 of 1]
-1239 of 1239   100% in    0s    19.59 kB/s  done
-
-~ $ s3cmd -c /home/IT4USER/.s3cfg-OPEN-AA-BB ls
-2023-10-17 13:00  s3://test-bucket
-
-~ $ s3cmd -c /home/IT4USER/.s3cfg-OPEN-AA-BB ls s3://test-bucket
-2023-10-17 13:09      1239   s3://test-bucket/test.sh
-```
-
-## Bugs & Features
-
-By default, the S3CMD client uses the so-called "multipart upload",
-which means that it splits the uploaded file into "chunks" with a default size of 15 MB.
-However, this upload method has major implications for the data capacity of the filesystem/fileset when overwriting existing files.
-When overwriting an existing file in a "multipart" mode, the capacity is duplicated
-(the file is not overwritten, but rewritten and the original file remains - but the capacity is allocated by both files).
-This is a described swift bug for which there is no fix yet.
-But there is a workaround and that is to disable "multipart upload" on the S3CMD client side.
-
-```console
-~ s3cmd --disable-multipart put /install/test1.log s3://test-bucket1
-upload: '/install/test1.log' -> 's3://test-bucket1/test1.log'  [1 of 1]
- 1024000000 of 1024000000   100% in    9s    99.90 MB/s  done
-```
-
-This method is not recommended for large files, because it is not as fast and reliable as multipart upload, but it is the only way how to overwrite files without duplicating capacity.
diff --git a/content/docs/storage/project-storage.mdx b/content/docs/storage/project-storage.mdx
deleted file mode 100644
index 956aa39f84cfaf823e76a41815fcddb93dc09f70..0000000000000000000000000000000000000000
--- a/content/docs/storage/project-storage.mdx
+++ /dev/null
@@ -1,168 +0,0 @@
----
-title: "PROJECT Data Storage"
----
-The PROJECT data storage is a central storage for projects' and users' data on IT4Innovations.
-The PROJECT data storage is accessible from all IT4Innovations clusters and allows to share data across clusters.
-The storage is intended to be used throughout the whole project's lifecycle.
-
-## Technical Overview
-
-The PROJECT storage consists of three equal file storages (blocks) called PROJ1, PROJ2, and PROJ3.
-Each file storage implements GPFS file system exported via NFS protocol using three NFS servers.
-File storages provide high-availability and redundancy.
-
-![](/it4i/storage/img/project-storage-overview3.png)
-
-| Specification     | Total              | Per Block           |
-| ----------------- | -------------------|-------------------- |
-| Protocol          | NFS over GPFS                            |
-| Total capacity    | 15PB               | 5PB                 |
-| Throughput        | 39GB/s             | 13GB/s              |
-| IO Performance    | 57kIOPS            | 19kIOPS             |
-
-## Accessing PROJECT
-
-All aspects of allocation, provisioning, accessing, and using the PROJECT storage are driven by project paradigm.
-Storage allocation and access to the storage are based on projects (i.e. computing resources allocations) and project membership.
-
-A project directory (actually implemented as an independent fileset) is created for every active project.
-Default limits (quotas), default file permissions, and ACLs are set.
-The project directory life cycle strictly follows the project's life cycle.
-The project directory is removed after the project's data expiration.
-
-### POSIX File Access
-
-<Callout>
-    PROJECT file storages are accessible at mountpoints `/mnt/proj1`, `/mnt/proj2`, and `/mnt/proj3`.
-</Callout>
-
-The PROJECT storage can be accessed via the following nodes:
-
-| Cluster       | Node(s)                       |
-| ------------- | ----------------------------- |
-| Karolina      | Login, Compute, Visualization |
-| Barbora       | Login, Compute, Visualization |
-
-To show the path to your project's directory on the PROJECT storage, use the `it4i-get-project-dir` command:
-
-```console
-$ it4i-get-project-dir OPEN-XX-XX
-/mnt/proj3/open-XX-XX
-```
-
-### Project Quotas
-
-The PROJECT storage enforces quotas on projects' usage (used capacity and allocated inodes).
-Default quotas for capacity and amount of inodes per project are set by IT4Innovations.
-
-| Project default quota |         |
-| --------------------- | ------- |
-| Space quota           | 20TB    |
-| Inodes quota          | 5 mil. |
-
-You can check the actual usage of the PROJECT storage (e.g. location of project directory, used capacity, allocated inodes, etc.) by executing the `it4ifsusage` command from the Login nodes' command line. The command lists all projects associated with the user.
-
-```console
-[vop999@login1.barbora ~]$ it4ifsusage
-Quota Type     Cluster / PID    File System    Space used    Space limit    Entries used    Entries limit    Last update
--------------  ---------------  -------------  ------------  -------------  --------------  ---------------  -------------------
-User           barbora          /home          11.1 MB       25.0 GB        122             500,000          2021-08-24 07:50:09
-User           karolina         /home          354.6 MB      25.0 GB        3,194           500,000          2021-08-24 08:20:08
-User           barbora          /scratch       256.5 GB      10.0 TB        169             10,000,000       2021-08-24 07:50:19
-User           karolina         /scratch       52.5 GB       100.0 TB       967             20,000,000       2021-08-24 08:20:18
-Project        open-XX-XX       proj1          3.9 TB        20.0 TB        212,377         5,000,000        2021-08-24 08:20:02
-Project        open-YY-YY       proj3          9.5 MB        20.0 TB        182             5,000,000        2021-08-24 08:20:02
-Project        open-ZZ-ZZ       proj2          844.4 GB      20.0 TB        797             5,000,000        2021-08-24 08:20:02
-```
-
-The information can also be found in IT4Innovations' [SCS information system][b].
-
-<Callout>
-    At this time, only PIs can see the quotas of their respective projects in IT4Innovations' SCS information system.
-    We are working on making this information available to all users assigned to their projects.
-</Callout>
-
-#### Increasing Project Quotas
-
-It is preferred that you request additional storage space allocation in advance in your application for computational resources.
-Alternatively, if the project is already active, contact [IT4I support][a].
-
-### ACL and File Permissions
-
-Access to a project directory and containing files is restricted by Unix file permissions and file access control lists (ACLs).
-Default file permissions and ACLs are set by IT4Innovations during project directory provisioning.
-
-## Backup and Safety
-
-<Callout type=warn>
-    Data on the PROJECT storage is **not** backed up.
-</Callout>
-
-The PROJECT storage utilizes fully redundant design, redundant devices, highly available services, data redundancy, and snapshots. For increased data protection, disks in each disk array are connected in Distributed RAID6 with two hot-spare disks, meaning the disk array can recover full redundancy after two simultaneous disk failures.
-
-However, the storage does not provide data backup, so we strongly recommend using the [CESNET storage][1] for making independent copies of your data.
-
-### Snapshots
-
-The PROJECT storage provides snapshot functionality. A snapshot represents a state of a filesystem at a particular point in time. Snapshots are created for all projects on fileset (i.e. project directory) level.
-Snapshots are created every day, snapshots older than seven days are deleted.
-Snapshots are not calculated towards the disk quota.
-
-Files in snapshots are accessible directly by users in the special subdirectory of each project directory named `.snapshots`.
-Snapshots are read-only.
-
-Snapshots' names have the `YYYY-MM-DD-hhmmss` format.
-
-```console
-[vop999@login1.karolina ~]# ls -al /mnt/proj3/open-XX-XX/.snapshots
-total 4
-dr-xr-xr-x.  2 root  root       4096 led 14 12:14 .
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 ..
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-01-022441
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-02-022544
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-03-022949
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-04-023454
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-05-024152
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-06-020412
-drwxrws---. 16 vop999 open-XX-XX 4096 led 20 16:36 2021-03-07-021446
-```
-
-<! --- (HA data replication?) -->
-<! --- (balancing in case of overload (data migration?) -->
-
-## Computing on PROJECT
-
-<Callout type=error>
-    Stage files for intensive I/O calculations onto the SCRATCH storage.
-</Callout>
-
-The PROJECT storage is not primarily intended for computing and it is strongly recommended to avoid using it directly for computing in majority of cases.
-
-On the other hand, the PROJECT storage is accessible from compute nodes and can be used for computing jobs with low I/O demands,
-when copying data to other storage for computing is not feasible or efficient.
-However, be aware of overloading the storage, as this will result in degraded performance for other users of the PROJECT storage or its unavailability.
-
-For maximum performance, you should always copy the files of I/O intensive jobs onto the SCRATCH storage.
-The files should be copied to SCRATCH from Login nodes before submitting the job.
-
-<! --- See also: data storage policy on filesystems (link?) -->
-
-<! --- ## Technical Specification -->
-
-<! --- For a detailed technical specification, see the Technical Specification section. -->
-
-## Summary
-
-| PROJECT Storage      |                     |
-| -------------------- | ------------------- |
-| Mountpoint           | /mnt/proj{1,2,3}    |
-| Capacity             | 15PB                |
-| Throughput           | 39GB/s              |
-| IO Performance       | 57kIOPS             |
-| Default project space quota  | 20TB        |
-| Default project inodes quota | 5 mil.     |
-
-[1]: ../storage/cesnet-storage.md
-
-[a]: mailto:support@it4i.cz
-[b]: https://scs.it4i.cz/projects
diff --git a/content/docs/storage/s3cmd.mdx b/content/docs/storage/s3cmd.mdx
deleted file mode 100644
index a9038af7f008dced0c3c7351762cf330ddac7c9b..0000000000000000000000000000000000000000
--- a/content/docs/storage/s3cmd.mdx
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: "Object Storage Tools"
----
-## s3cmd
-
-S3cmd is a command-line tool for managing data in Amazon Simple Storage Service (S3). It is a free and open-source tool that is available for Linux, macOS, and Windows.
-
-For more information, see [https://docs.e-infra.cz/storage/object-storage/s3cmd/][a].
-
-We recommend using the S3cmd tool already installed on Karolina.
-
-## How to Load Modules:
-
-To see loaded modules, use:
-
-```
-ml
-```
-
-To load modules, use:
-
-```
-ml s3cmd
-```
-
-To see module info, use:
-
-```
-ml spider s3cmd
-```
-
-For more information on how to work with modules, see
-[https://docs.it4i.cz/software/modules/lmod/][1].
-
-## Configuration
-
-The s3cmd configuration file is named `.s3cfg` and it is located in the user's home directory, e.g. `/home/username/($HOME)`.
-
-The configuration file has to be created first:
-
-```
-s3cmd --configure
-```
-
-For configuration steps, follow the [e-INFRA CZ guide][b].
-
-For the list of basic S3cmd commands, see [https://docs.e-infra.cz/storage/object-storage/s3cmd/#basic-s3cmd-commands][c].
-
-## FAQ
-
-Error when creating bucket:
-
-```
-ERROR: S3 error: 400 (InvalidLocationConstraint): The specified location-constraint is not valid
-```
-
-Solution: set location:
-
-```
-s3cmd --bucket-location=":default-placement" mb s3://newbucketname
-```
-
-## Useful Links
-
-* [Introduction][d]
-* [Usage][e]
-* [Common S3cmd Errors][g]
-* [Configuration erros][f]
-
-[1]: https://docs.it4i.cz/software/modules/lmod/
-
-[a]: https://docs.e-infra.cz/storage/object-storage/s3cmd/
-[b]: https://docs.e-infra.cz/storage/object-storage/s3cmd/#configuration-of-s3cmd-tool
-[c]: https://docs.e-infra.cz/storage/object-storage/s3cmd/#basic-s3cmd-commands
-[d]: https://s3tools.org/s3cmd
-[e]: https://s3tools.org/usage
-[f]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
-[g]: https://s3tools.org/kb/category1.htm
diff --git a/content/docs/storage/standard-file-acl.mdx b/content/docs/storage/standard-file-acl.mdx
deleted file mode 100644
index 13ced9de53bfafa3b584fee5ec69f61ce3d2ecbc..0000000000000000000000000000000000000000
--- a/content/docs/storage/standard-file-acl.mdx
+++ /dev/null
@@ -1,134 +0,0 @@
----
-title: "Standard File ACL"
----
-Access control list (ACL) provides an additional, more flexible permission mechanism for file systems. It is designed to assist with UNIX file permissions. ACL allows you to give permissions for any user or group to any disk resource.
-
-## Show ACL
-
-To show permissions, use:
-
-```code
-$ getfacl <file/dir>
-```
-
-### Examples
-
-Set all permissions for user john to file named testfile:
-
-```code
-$ setfacl -m "u:john:rwx" testfile
-```
-
-Check permissions:
-
-```code
-$ getfacl testfile
-# file: testfile
-# owner: someone
-# group: someone
-user::rw-
-user:john:rwx
-group::r--
-mask::rwx
-other::r--
-```
-
-Change permissions for user john:
-
-```code
-$ setfacl -m "u:john:r-x" testfile
-```
-
-Check permissions:
-
-```code
-$ getfacl testfile
-# file: testfile
-# owner: someone
-# group: someone
-user::rw-
-user:john:r-x
-group::r--
-mask::r-x
-other::r--
-```
-
-Remove all ACL entries:
-
-```code
-$ setfacl -b testfile
-```
-
-Check permissions:
-
-```code
-$ getfacl testfile
-# file: testfile
-# owner: someone
-# group: someone
-user::rw-
-group::r--
-other::r--
-```
-
-## Output of LS Command
-
-You will notice that there is an ACL for a given file because it will exhibit `+`  after its Unix permissions in the output of `ls -l`.
-
-```code
-$ ls -l testfile
-crw-rw----+ 1 someone someone 14, 4 nov.   9 12:49 testfile
-```
-
-## Modify ACL
-
-The ACL can be modified using the `setfacl` command.
-
-You can list file/directory permission changes without modifying the permissions (i.e. dry-run) by appending the `--test` flag.
-To apply operations to all files and directories recursively, append the `-R/--recursive` argument.
-
-To set permissions for a user (user is either the user name or ID):
-
-```code
-$ setfacl -m "u:user:permissions" <file/dir>
-```
-
-To set permissions for a group (group is either the group name or ID):
-
-```code
-$ setfacl -m "g:group:permissions" <file/dir>
-```
-
-To set permissions for others:
-
-```code
-$ setfacl -m "other:permissions" <file/dir>
-```
-
-To allow all newly created files or directories to inherit entries from the parent directory (this will not affect files which will be copied into the directory):
-
-```code
-$ setfacl -dm "entry" <dir>
-```
-
-To remove a specific entry:
-
-```code
-$ setfacl -x "entry" <file/dir>
-```
-
-To remove the default entries:
-
-```code
-$ setfacl -k <file/dir>
-```
-
-To remove all entries (entries of the owner, group and others are retained):
-
-```code
-$ setfacl -b <file/dir>
-```
-
-Source: [wiki.archlinux.org][1]
-
-[1]: https://wiki.archlinux.org/title/Access_Control_Lists
diff --git a/public/it4i/barbora/img/BullSequanaX.png b/public/it4i/barbora/img/BullSequanaX.png
deleted file mode 100644
index ea371ab73f55fb5b8d01de98934d04c51fb3f425..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/BullSequanaX.png and /dev/null differ
diff --git a/public/it4i/barbora/img/BullSequanaX1120.png b/public/it4i/barbora/img/BullSequanaX1120.png
deleted file mode 100644
index b901e6f6d217163b7c23edea2bc6dd0b087ca5b2..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/BullSequanaX1120.png and /dev/null differ
diff --git a/public/it4i/barbora/img/BullSequanaX410E5GPUNVLink.jpg b/public/it4i/barbora/img/BullSequanaX410E5GPUNVLink.jpg
deleted file mode 100644
index 37f93261cde1a6edb1c783b78dbd1f2ef731009d..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/BullSequanaX410E5GPUNVLink.jpg and /dev/null differ
diff --git a/public/it4i/barbora/img/BullSequanaX808.jpg b/public/it4i/barbora/img/BullSequanaX808.jpg
deleted file mode 100644
index 0337ebee43f14c5e1bb39a7e4c9584dd3cc03ce8..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/BullSequanaX808.jpg and /dev/null differ
diff --git a/public/it4i/barbora/img/QM8700.jpg b/public/it4i/barbora/img/QM8700.jpg
deleted file mode 100644
index 367745d1bed2f486075ef3d1fff37223010306b6..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/QM8700.jpg and /dev/null differ
diff --git a/public/it4i/barbora/img/XH2000.png b/public/it4i/barbora/img/XH2000.png
deleted file mode 100644
index d84ed2ba2d43378a98982ad3d4e301f102886a63..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/XH2000.png and /dev/null differ
diff --git a/public/it4i/barbora/img/bullsequanaX450-E5.png b/public/it4i/barbora/img/bullsequanaX450-E5.png
deleted file mode 100644
index b02eaef8b6c055bbc9a77fc40081b86aaaf45cc0..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/bullsequanaX450-E5.png and /dev/null differ
diff --git a/public/it4i/barbora/img/gpu-v100.png b/public/it4i/barbora/img/gpu-v100.png
deleted file mode 100644
index 163085482c93c42d7b7d736135ba5a6a768c3df0..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/gpu-v100.png and /dev/null differ
diff --git a/public/it4i/barbora/img/hdr.jpg b/public/it4i/barbora/img/hdr.jpg
deleted file mode 100644
index 653977f3aca22b8aa4efaa5515aaeb4d01ad65dd..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/hdr.jpg and /dev/null differ
diff --git a/public/it4i/barbora/img/quadrop6000.jpg b/public/it4i/barbora/img/quadrop6000.jpg
deleted file mode 100644
index 897743776d436470dfd0d221e0a026134f4ba40a..0000000000000000000000000000000000000000
Binary files a/public/it4i/barbora/img/quadrop6000.jpg and /dev/null differ
diff --git a/public/it4i/cloud/.gitkeep b/public/it4i/cloud/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/cs/.gitkeep b/public/it4i/cs/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/general/AUP-final.pdf b/public/it4i/general/AUP-final.pdf
deleted file mode 100644
index 725beecf990f2f5ed9e858ddcad36fa4f566622b..0000000000000000000000000000000000000000
Binary files a/public/it4i/general/AUP-final.pdf and /dev/null differ
diff --git a/public/it4i/general/Energy_saving_Karolina.pdf b/public/it4i/general/Energy_saving_Karolina.pdf
deleted file mode 100644
index 8f8697b457a0d01328e379ef968e80de8b6e427a..0000000000000000000000000000000000000000
Binary files a/public/it4i/general/Energy_saving_Karolina.pdf and /dev/null differ
diff --git a/public/it4i/general/access/.gitkeep b/public/it4i/general/access/.gitkeep
deleted file mode 100644
index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000
--- a/public/it4i/general/access/.gitkeep
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/public/it4i/general/capacity.zip b/public/it4i/general/capacity.zip
deleted file mode 100644
index 28d838bade2719b2b5a73f6ecee2f35f17eb10cb..0000000000000000000000000000000000000000
Binary files a/public/it4i/general/capacity.zip and /dev/null differ
diff --git a/public/it4i/general/management/.gitkeep b/public/it4i/general/management/.gitkeep
deleted file mode 100644
index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000
--- a/public/it4i/general/management/.gitkeep
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/public/it4i/general/tools/.gitkeep b/public/it4i/general/tools/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/img/49213048_2722927791082867_3152356642071248896_n.png b/public/it4i/img/49213048_2722927791082867_3152356642071248896_n.png
deleted file mode 100644
index 5c78e10f664dbc8b9c0ccacba62a309a1b599a20..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/49213048_2722927791082867_3152356642071248896_n.png and /dev/null differ
diff --git a/public/it4i/img/7D_Enhanced_hypercube.png b/public/it4i/img/7D_Enhanced_hypercube.png
deleted file mode 100644
index 12bb0a406708a5839f2f008294a560a04a80abe8..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/7D_Enhanced_hypercube.png and /dev/null differ
diff --git a/public/it4i/img/AMsetPar1.png b/public/it4i/img/AMsetPar1.png
deleted file mode 100644
index f7886e6cbbcf501d87c8f363209ac72dcb8463a5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/AMsetPar1.png and /dev/null differ
diff --git a/public/it4i/img/Anselm-Schematic-Representation.png b/public/it4i/img/Anselm-Schematic-Representation.png
deleted file mode 100644
index 5c711ab51a8c7abec076d9ae5b6876d2c14fd403..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Anselm-Schematic-Representation.png and /dev/null differ
diff --git a/public/it4i/img/Anselmprofile.jpg b/public/it4i/img/Anselmprofile.jpg
deleted file mode 100644
index 92b9d8b3887e76cff92255955f354e364ed53130..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Anselmprofile.jpg and /dev/null differ
diff --git a/public/it4i/img/Ansys-lic-admin.jpg b/public/it4i/img/Ansys-lic-admin.jpg
deleted file mode 100644
index 9e1932c5f52b5e12c305822de15e7133e0fdcda2..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Ansys-lic-admin.jpg and /dev/null differ
diff --git a/public/it4i/img/Authorization_chain.png b/public/it4i/img/Authorization_chain.png
deleted file mode 100644
index c7747cfc28c0a4e7ab98034543e602ee3fc88d79..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Authorization_chain.png and /dev/null differ
diff --git a/public/it4i/img/B2ACCESS_chrome_eng.jpg b/public/it4i/img/B2ACCESS_chrome_eng.jpg
deleted file mode 100644
index 800bc1f52c0e36f1e6b533848433c10821869339..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/B2ACCESS_chrome_eng.jpg and /dev/null differ
diff --git a/public/it4i/img/Fluent_Licence_1.jpg b/public/it4i/img/Fluent_Licence_1.jpg
deleted file mode 100644
index 1e3ba0f25be08787a9f3d5eb8d7a89f771fad403..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Fluent_Licence_1.jpg and /dev/null differ
diff --git a/public/it4i/img/Fluent_Licence_2.jpg b/public/it4i/img/Fluent_Licence_2.jpg
deleted file mode 100644
index e8ffdf5a01337df7271a865d48dd58501eb78180..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Fluent_Licence_2.jpg and /dev/null differ
diff --git a/public/it4i/img/Fluent_Licence_3.jpg b/public/it4i/img/Fluent_Licence_3.jpg
deleted file mode 100644
index 81be6763cb35ed8dca8dad9a0a1e714ef3d8c9e3..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Fluent_Licence_3.jpg and /dev/null differ
diff --git a/public/it4i/img/Fluent_Licence_4.jpg b/public/it4i/img/Fluent_Licence_4.jpg
deleted file mode 100644
index ce4686740082b3e77070d4afe96184ab45e82637..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Fluent_Licence_4.jpg and /dev/null differ
diff --git a/public/it4i/img/IBsingleplanetopologyAcceleratednodessmall.png b/public/it4i/img/IBsingleplanetopologyAcceleratednodessmall.png
deleted file mode 100644
index fd6d5759d5bd38554e2e5b956435444cd3c2044c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/IBsingleplanetopologyAcceleratednodessmall.png and /dev/null differ
diff --git a/public/it4i/img/IBsingleplanetopologyICEXMcellsmall.png b/public/it4i/img/IBsingleplanetopologyICEXMcellsmall.png
deleted file mode 100644
index 2fc399aed344f04a2916e2dfe48cd956a4370bbc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/IBsingleplanetopologyICEXMcellsmall.png and /dev/null differ
diff --git a/public/it4i/img/Matlab.png b/public/it4i/img/Matlab.png
deleted file mode 100644
index 71bdf7e101998fbba84d5e58f341f605df930325..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Matlab.png and /dev/null differ
diff --git a/public/it4i/img/PageantV.png b/public/it4i/img/PageantV.png
deleted file mode 100644
index 7a08be3c3b44dadfe4144fbd83639be0eb6151a5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PageantV.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_host_Salomon.png b/public/it4i/img/PuTTY_host_Salomon.png
deleted file mode 100644
index 61e1928f02f8348d4719cbeefe803eeb035e03e4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_host_Salomon.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_host_cluster.png b/public/it4i/img/PuTTY_host_cluster.png
deleted file mode 100644
index 718e01ea5e62a3e840117dfb673b53d071387bb6..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_host_cluster.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_keyV.png b/public/it4i/img/PuTTY_keyV.png
deleted file mode 100644
index 6d847de4a235c9d5cb1b134bb12bca3d6abab404..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_keyV.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_open_Salomon.png b/public/it4i/img/PuTTY_open_Salomon.png
deleted file mode 100644
index 97e381683908ac7c813fed7b97a962a4ba44d223..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_open_Salomon.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_open_cluster.png b/public/it4i/img/PuTTY_open_cluster.png
deleted file mode 100644
index e1f9811db70cbeac3f7ac02adbe0e5fbc4b36ac8..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_open_cluster.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_save_Salomon.png b/public/it4i/img/PuTTY_save_Salomon.png
deleted file mode 100644
index 886a79f60ca983084ae7218f21e5fe6e39fbcd00..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_save_Salomon.png and /dev/null differ
diff --git a/public/it4i/img/PuTTY_save_cluster.png b/public/it4i/img/PuTTY_save_cluster.png
deleted file mode 100644
index 341b8c35a1b9ca1a784817dace18fa5e821f949d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuTTY_save_cluster.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygeneratorV.png b/public/it4i/img/PuttyKeygeneratorV.png
deleted file mode 100644
index 7c3014a9443f5a65d56ff64c6a2639e35b4514de..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygeneratorV.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygenerator_001V.png b/public/it4i/img/PuttyKeygenerator_001V.png
deleted file mode 100644
index ba3183be0894ea4edffa9d514a55ce20e766e304..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygenerator_001V.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygenerator_002V.png b/public/it4i/img/PuttyKeygenerator_002V.png
deleted file mode 100644
index f15167f04fa6006f27908a97f61b8a5347ef2248..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygenerator_002V.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygenerator_003V.png b/public/it4i/img/PuttyKeygenerator_003V.png
deleted file mode 100644
index 73a5505a2b2ac4aa1fd0adf4c3a74adcca0c8c08..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygenerator_003V.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygenerator_004V.png b/public/it4i/img/PuttyKeygenerator_004V.png
deleted file mode 100644
index d90756b3a9a1816e48b37a66cfef174cb281778a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygenerator_004V.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygenerator_005V.png b/public/it4i/img/PuttyKeygenerator_005V.png
deleted file mode 100644
index 0fe5c1258aeafbe5c564fb6655e480f8417f27d7..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygenerator_005V.png and /dev/null differ
diff --git a/public/it4i/img/PuttyKeygenerator_006V.png b/public/it4i/img/PuttyKeygenerator_006V.png
deleted file mode 100644
index cee16e08f1c8d588a148e76f8374d1f16d3fd410..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/PuttyKeygenerator_006V.png and /dev/null differ
diff --git a/public/it4i/img/Salomon_IB_topology.png b/public/it4i/img/Salomon_IB_topology.png
deleted file mode 100644
index e370a4b44725571e51498ed45fa3e0aa313b94e4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Salomon_IB_topology.png and /dev/null differ
diff --git a/public/it4i/img/Snmekobrazovky20141204v12.56.36.png b/public/it4i/img/Snmekobrazovky20141204v12.56.36.png
deleted file mode 100644
index 2d0009c34c6c861c018b7999079cbd5aa6e0401d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Snmekobrazovky20141204v12.56.36.png and /dev/null differ
diff --git a/public/it4i/img/Snmekobrazovky20151204v15.35.12.png b/public/it4i/img/Snmekobrazovky20151204v15.35.12.png
deleted file mode 100644
index 53c93b0687dabea5a6ae6a3e298d584d512133f4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Snmekobrazovky20151204v15.35.12.png and /dev/null differ
diff --git a/public/it4i/img/Snmekobrazovky20160211v14.27.45.png b/public/it4i/img/Snmekobrazovky20160211v14.27.45.png
deleted file mode 100644
index 8c56805d7a0a69f2c7b90d1c3c6ee1d8d84fc85a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Snmekobrazovky20160211v14.27.45.png and /dev/null differ
diff --git a/public/it4i/img/Snmekobrazovky20160708v12.33.35.png b/public/it4i/img/Snmekobrazovky20160708v12.33.35.png
deleted file mode 100644
index d8ea15508f0714eeacfadff6d85fe8cafe5c406b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/Snmekobrazovky20160708v12.33.35.png and /dev/null differ
diff --git a/public/it4i/img/TightVNC_login.png b/public/it4i/img/TightVNC_login.png
deleted file mode 100644
index 078dfc73a90b2b3ffc1648fa82ba4b0a109fbc29..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/TightVNC_login.png and /dev/null differ
diff --git a/public/it4i/img/aai.jpg b/public/it4i/img/aai.jpg
deleted file mode 100644
index fcad6d0104d95c2174e1f2e3509b6b1f65f7f560..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/aai.jpg and /dev/null differ
diff --git a/public/it4i/img/aai2.jpg b/public/it4i/img/aai2.jpg
deleted file mode 100644
index 37b195fb67c5addbdd763c9c7102fb37cc7d510c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/aai2.jpg and /dev/null differ
diff --git a/public/it4i/img/aai3-passwd.jpg b/public/it4i/img/aai3-passwd.jpg
deleted file mode 100644
index 60d4dc14697fdf99a398133996e3f4369037c6d4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/aai3-passwd.jpg and /dev/null differ
diff --git a/public/it4i/img/addsshkey.png b/public/it4i/img/addsshkey.png
deleted file mode 100644
index f0492b7d5fbacd935899aa383ae23f5d5088a177..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/addsshkey.png and /dev/null differ
diff --git a/public/it4i/img/altair_logo.svg b/public/it4i/img/altair_logo.svg
deleted file mode 100644
index 0c9d19cad3fc86f69501ae343e3995134e354890..0000000000000000000000000000000000000000
--- a/public/it4i/img/altair_logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" viewBox="0 0 191.02778 47.051822"><style id="style2">.st0{fill:#FFFFFF;} .st1{fill:#EC1944;} .st2{fill:none;} .st3{fill:#00B4EF;} .st4{fill:url(#SVGID_1_);} .st5{fill:url(#SVGID_2_);} .st6{fill:url(#SVGID_3_);} .st7{fill:#FFC745;} .st8{fill:#FFCE51;} .st9{fill:none;stroke:#FFFFFF;stroke-width:0.69;stroke-miterlimit:10;}</style><path class="st0" d="M94.95 45.778l-3.6-11.5h-13.1l-3.7 11.4h-4.7l12.9-38.2h4.6l12.9 38.2h-5.3zm-8.9-29c-.5-1.5-.9-3-1.1-4.6h-.1c-.3 1.6-.7 3.1-1.2 4.6l-4.6 14.5h11.4z" id="path6" fill="#fff"/><path class="st0" d="M105.55 45.778v-43.6h4.9v43.6z" id="path8" fill="#fff"/><path class="st0" d="M127.85 46.078c-5.4 0-7.4-3.9-7.4-7.6v-19.6h-3.4v-3.1h3.4v-6.8l4.9-1.5v8.3h5.2v3h-5.2v19.5c0 2.4 1.1 4.3 3.8 4.3.5 0 1-.1 1.4-.2v3.1c-.9.4-1.8.5-2.7.6z" id="path10" fill="#fff"/><path class="st0" d="M146.45 46.278c-7.8 0-11.4-3.4-11.4-8.8 0-7.9 7.4-10.3 16.7-11.2v-1.8c0-4.6-2.8-5.9-6.6-5.9-2.5.1-5 .7-7.2 1.9l-1.2-2.9c2.8-1.5 6-2.2 9.2-2.2 5.6 0 10.4 2.4 10.4 9.7v19.2c-3 1.4-6.4 2.1-9.9 2zm5.4-17.5c-7.6.9-12.1 2.6-12.1 8.6 0 4.3 2.7 6.1 7.1 6.1 1.7.1 3.4-.3 4.9-1v-13.7z" id="path12" fill="#fff"/><path class="st0" d="M167.05 9.978c-1.5-.1-2.6-1.3-2.6-2.8.1-1.5 1.3-2.6 2.8-2.6 1.4.1 2.6 1.3 2.6 2.7 0 1.6-1.3 2.8-2.8 2.7zm-2.4 35.8v-30h4.9v30z" id="path14" fill="#fff"/><path class="st0" d="M189.45 18.978c-2.4-.7-5.2-.5-6.8.5v26.2h-4.9v-28.3c2.9-1.5 5.8-2.3 12.9-2.1z" id="path16" fill="#fff"/><path class="st2" id="polygon20" d="M41.25 24.578l-.8-2.7.8 2.6z" fill="none"/><path class="st2" id="polygon22" d="M41.25 24.478v.1l-.8-2.7z" fill="none"/><path class="st2" id="polygon24" d="M41.25 24.478v.1l-.8-2.7z" fill="none"/><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="59.336" y1="31.946" x2="71.996" y2="9.306" gradientTransform="matrix(1 0 0 -1 -29.91 33.768)"><stop offset="0" id="stop28" stop-color="#BBBCBF"/><stop offset=".07" id="stop30" stop-color="#D7D8D9"/><stop offset=".14" id="stop32" stop-color="#E9EAEB"/><stop offset=".19" id="stop34" stop-color="#F0F0F1"/><stop offset=".38" id="stop36" stop-color="#ECECED"/><stop offset=".57" id="stop38" stop-color="#E0E1E2"/><stop offset=".75" id="stop40" stop-color="#CCCDCF"/><stop offset=".94" id="stop42" stop-color="#B1B3B5"/><stop offset="1" id="stop44" stop-color="#A6A8AB"/></linearGradient><path class="st4" d="M40.45 21.878l-1.8-5.6-4.3-13.8s-.7-2.1-1.7-2.1c-.4 0-.7.1-1 .3-.8.5-1.5 1.2-2.1 1.9l-2.7 2.9 10.6 12.2c1.5 1.8 2.6 3.7 3.5 5.9.1.3.3.6.4 1v-.1z" id="path47" fill="url(#SVGID_1_)"/><path class="st1" d="M32.65.378h-10.8c-1.1 0-2.1.7-2.4 1.8 0 0-6.3 16.7-8 20.4l5.6-6.1 9.9-10.8 2.7-3c.6-.8 1.3-1.4 2.1-1.9.3-.2.6-.3.9-.4z" id="path18" fill="#ec1944"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="33.613" y1="-3.546" x2="47.043" y2="19.924" gradientTransform="matrix(1 0 0 -1 -29.91 33.768)"><stop offset="0" id="stop49" stop-color="#BBBCBF"/><stop offset=".07" id="stop51" stop-color="#D7D8D9"/><stop offset=".14" id="stop53" stop-color="#E9EAEB"/><stop offset=".19" id="stop55" stop-color="#F0F0F1"/><stop offset=".38" id="stop57" stop-color="#ECECED"/><stop offset=".57" id="stop59" stop-color="#E0E1E2"/><stop offset=".75" id="stop61" stop-color="#CCCDCF"/><stop offset=".94" id="stop63" stop-color="#B1B3B5"/><stop offset="1" id="stop65" stop-color="#A6A8AB"/></linearGradient><path class="st5" d="M14.05 19.678l-12.6 13.8s-1.4 1.6-1 2.5l.1.1.6.6c.9.5 1.8.8 2.7.9l3.9.8 5.4-15.2c.8-2.1 1.9-4.1 3.3-5.9.2-.3.4-.6.6-.8z" id="path68" fill="url(#SVGID_2_)"/><path class="st8" d="M29.25 43.078l-6.4-1.4-.8-.2-18.2-4c-1.01-.217-1.874-.433-2.7-.9-.267-.15-.53-.436-.7-.6l5.8 9.2c.6.9 1.7 1.4 2.7 1.2l21.3-3.2z" id="path93" fill="#ffce51"/><linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="76.961" y1="-8.864" x2="52.531" y2="-7.845" gradientTransform="matrix(1 0 0 -1 -29.91 33.768)"><stop offset="0" id="stop70" stop-color="#BBBCBF"/><stop offset=".07" id="stop72" stop-color="#D7D8D9"/><stop offset=".14" id="stop74" stop-color="#E9EAEB"/><stop offset=".19" id="stop76" stop-color="#F0F0F1"/><stop offset=".38" id="stop78" stop-color="#ECECED"/><stop offset=".57" id="stop80" stop-color="#E0E1E2"/><stop offset=".75" id="stop82" stop-color="#CCCDCF"/><stop offset=".94" id="stop84" stop-color="#B1B3B5"/><stop offset="1" id="stop86" stop-color="#A6A8AB"/></linearGradient><path class="st6" d="M46.95 42.278l-.7-2.2-.5-1.5-15.9 3c-2.3.4-4.5.4-6.8.1-.3 0-.6-.1-1-.2l.7.2 6.4 1.4 1 .2 14.4 3.2s2.1.6 2.7-.3l.175-.365c.1-.3.09-.48.09-.78-.037-.748-.265-1.855-.565-2.755z" id="path89" fill="url(#SVGID_3_)"/><path class="st3" d="M52.15 33.378l-13.5-17.1 1.8 5.6.8 2.7 5.6 17.8c.3.9.593 1.846.6 2.8.002.34-.1.7-.2 1 1.793-3.15 3.48-6.398 5.2-9.6.5-1.1.4-2.3-.3-3.2z" id="path26" fill="#00b4ef"/></svg>
\ No newline at end of file
diff --git a/public/it4i/img/anyconnectcontextmenu.jpg b/public/it4i/img/anyconnectcontextmenu.jpg
deleted file mode 100644
index 26122f2f5965ce71489267d359eff21c39ed7960..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/anyconnectcontextmenu.jpg and /dev/null differ
diff --git a/public/it4i/img/anyconnecticon.jpg b/public/it4i/img/anyconnecticon.jpg
deleted file mode 100644
index d7397f5c43f659d71a6fe8413ad89dca8157bb48..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/anyconnecticon.jpg and /dev/null differ
diff --git a/public/it4i/img/application.png b/public/it4i/img/application.png
deleted file mode 100644
index 006a93a202327e57ca9bb57f0c63f38b43d6411a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/application.png and /dev/null differ
diff --git a/public/it4i/img/b2access-fill.jpg b/public/it4i/img/b2access-fill.jpg
deleted file mode 100644
index 043d14010227c67df6410de462a084c33f2f6670..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/b2access-fill.jpg and /dev/null differ
diff --git a/public/it4i/img/b2access-no_account.jpg b/public/it4i/img/b2access-no_account.jpg
deleted file mode 100644
index 5e1fd73ccb33eb787e66202767547310cd0a5ba1..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/b2access-no_account.jpg and /dev/null differ
diff --git a/public/it4i/img/b2access-select.jpg b/public/it4i/img/b2access-select.jpg
deleted file mode 100644
index 10ba17b3d57bdf4820c12ed4b539bbb7390d1fe7..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/b2access-select.jpg and /dev/null differ
diff --git a/public/it4i/img/b2access-social.jpg b/public/it4i/img/b2access-social.jpg
deleted file mode 100644
index eb9b55a98cde83320fc3f39bc3b89f308a78cc8f..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/b2access-social.jpg and /dev/null differ
diff --git a/public/it4i/img/b2access-univerzity.jpg b/public/it4i/img/b2access-univerzity.jpg
deleted file mode 100644
index 363c05b82006c83e4e85b907d05c92efe4093902..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/b2access-univerzity.jpg and /dev/null differ
diff --git a/public/it4i/img/b2access.jpg b/public/it4i/img/b2access.jpg
deleted file mode 100644
index 83a14392eb3fd32b6fda9d290c376e66c83fd3ce..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/b2access.jpg and /dev/null differ
diff --git a/public/it4i/img/barbora_cluster_usage.png b/public/it4i/img/barbora_cluster_usage.png
deleted file mode 100644
index a076ad5569cd40469a51d53b5d40ebdf8c143b26..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/barbora_cluster_usage.png and /dev/null differ
diff --git a/public/it4i/img/bio-graphs.png b/public/it4i/img/bio-graphs.png
deleted file mode 100644
index 2bd3b67f8e9ecb8818df8fd0b494347bb283d7ea..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/bio-graphs.png and /dev/null differ
diff --git a/public/it4i/img/blender.png b/public/it4i/img/blender.png
deleted file mode 100644
index c416320498368439a15586ea924d83b37e9d7dd3..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/blender.png and /dev/null differ
diff --git a/public/it4i/img/blender1.png b/public/it4i/img/blender1.png
deleted file mode 100644
index 9ed310cf31c91dc5852f0252484f99de13edc7cd..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/blender1.png and /dev/null differ
diff --git a/public/it4i/img/blender2.png b/public/it4i/img/blender2.png
deleted file mode 100644
index ebbd2c7e70813a9544b9ba51f8e240011429224c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/blender2.png and /dev/null differ
diff --git a/public/it4i/img/bullxB510.png b/public/it4i/img/bullxB510.png
deleted file mode 100644
index abbb472fc66b730c609ac5dda573b5edc92c4884..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/bullxB510.png and /dev/null differ
diff --git a/public/it4i/img/client.jpg b/public/it4i/img/client.jpg
deleted file mode 100644
index d36c1f9d9dc140ee5b899ee3fc01eebaaab9cb90..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/client.jpg and /dev/null differ
diff --git a/public/it4i/img/cn_m_cell.jpg b/public/it4i/img/cn_m_cell.jpg
deleted file mode 100644
index 6a882034ba55b29e04eebe4801c727088c677c8d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cn_m_cell.jpg and /dev/null differ
diff --git a/public/it4i/img/cn_mic-1.jpg b/public/it4i/img/cn_mic-1.jpg
deleted file mode 100644
index 210eb3d3ba9d9cc4339d0a0b97fb9610aafe9aaa..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cn_mic-1.jpg and /dev/null differ
diff --git a/public/it4i/img/cn_mic.jpg b/public/it4i/img/cn_mic.jpg
deleted file mode 100644
index 7b9f2f8326ca9c0c0e093aad12a0c80d8a28444f..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cn_mic.jpg and /dev/null differ
diff --git a/public/it4i/img/copy_of_vpn_web_install_3.png b/public/it4i/img/copy_of_vpn_web_install_3.png
deleted file mode 100644
index 1750cfde48b5c660f9c375dd88d3c666f36dcded..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/copy_of_vpn_web_install_3.png and /dev/null differ
diff --git a/public/it4i/img/crypto_v2.jpg b/public/it4i/img/crypto_v2.jpg
deleted file mode 100644
index 27d43c6861963e189e00354e77297292ad99dcfc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/crypto_v2.jpg and /dev/null differ
diff --git a/public/it4i/img/cs/guides/p10_numa_sc4_flat.png b/public/it4i/img/cs/guides/p10_numa_sc4_flat.png
deleted file mode 100644
index ae24bc62fa8fc4ae488893c1e7520e9e747b578a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs/guides/p10_numa_sc4_flat.png and /dev/null differ
diff --git a/public/it4i/img/cs/guides/p10_stream_dram.png b/public/it4i/img/cs/guides/p10_stream_dram.png
deleted file mode 100644
index eaa98595e1f479072a69312193147c02655f4127..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs/guides/p10_stream_dram.png and /dev/null differ
diff --git a/public/it4i/img/cs/guides/p10_stream_hbm.png b/public/it4i/img/cs/guides/p10_stream_hbm.png
deleted file mode 100644
index 990a9d3470f680bd2e9ebf6718b84a1e7aa48a5c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs/guides/p10_stream_hbm.png and /dev/null differ
diff --git a/public/it4i/img/cs/guides/p10_stream_memkind.png b/public/it4i/img/cs/guides/p10_stream_memkind.png
deleted file mode 100644
index 55aebc790b61f91438aa667dad1a3fd7a5da1cc2..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs/guides/p10_stream_memkind.png and /dev/null differ
diff --git a/public/it4i/img/cs1.png b/public/it4i/img/cs1.png
deleted file mode 100644
index b6101ae93ddaa81e25a69b19f4727347b44d7da2..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs1.png and /dev/null differ
diff --git a/public/it4i/img/cs1_1.png b/public/it4i/img/cs1_1.png
deleted file mode 100644
index b62738c2237a0da390fc792d4848467da372a1c2..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs1_1.png and /dev/null differ
diff --git a/public/it4i/img/cs2_1.png b/public/it4i/img/cs2_1.png
deleted file mode 100644
index 2003ef2cd083ea3630f0373170216812f25bfd97..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs2_1.png and /dev/null differ
diff --git a/public/it4i/img/cs2_2.png b/public/it4i/img/cs2_2.png
deleted file mode 100644
index c7a30d18947d93b9ad9ff01180b772b84172b719..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cs2_2.png and /dev/null differ
diff --git a/public/it4i/img/cudaq.png b/public/it4i/img/cudaq.png
deleted file mode 100644
index 6ec8dee0c8550f567d1b2499be0450eb11a2ce87..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cudaq.png and /dev/null differ
diff --git a/public/it4i/img/cygwinX11forwarding.png b/public/it4i/img/cygwinX11forwarding.png
deleted file mode 100644
index 7c2a3bcb138cc7cce77c878bd6f3ed69492e86b8..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/cygwinX11forwarding.png and /dev/null differ
diff --git a/public/it4i/img/dcv_5911_1.png b/public/it4i/img/dcv_5911_1.png
deleted file mode 100644
index 0a1b097c2ef74ce358132757099d34f83ff37c9a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dcv_5911_1.png and /dev/null differ
diff --git a/public/it4i/img/dcv_5911_2.png b/public/it4i/img/dcv_5911_2.png
deleted file mode 100644
index 6bb2d6404f04ab1e811d1b12f245005e880658fd..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dcv_5911_2.png and /dev/null differ
diff --git a/public/it4i/img/dcvtest_5911.png b/public/it4i/img/dcvtest_5911.png
deleted file mode 100644
index cc8ef8e0f882111691d4f7051439ef640de64412..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dcvtest_5911.png and /dev/null differ
diff --git a/public/it4i/img/ddt1.png b/public/it4i/img/ddt1.png
deleted file mode 100644
index 57a18f48908f0b8a4857bc14a820b450fcdd9652..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/ddt1.png and /dev/null differ
diff --git a/public/it4i/img/desktop.ini b/public/it4i/img/desktop.ini
deleted file mode 100644
index a51683dae5158c401aab388ce7015ade0ac2a064..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/desktop.ini and /dev/null differ
diff --git a/public/it4i/img/dgx-htop.png b/public/it4i/img/dgx-htop.png
deleted file mode 100644
index 61ea3c22cf6203f921b8e4d3731cf23f94b15a58..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dgx-htop.png and /dev/null differ
diff --git a/public/it4i/img/dgx1.png b/public/it4i/img/dgx1.png
deleted file mode 100644
index 89807e71f6ed8044f863e336f168120e16a7ed99..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dgx1.png and /dev/null differ
diff --git a/public/it4i/img/dgx2-nvlink.png b/public/it4i/img/dgx2-nvlink.png
deleted file mode 100644
index 30452c2bc5e22076e89116f992769e8db1eaa0b5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dgx2-nvlink.png and /dev/null differ
diff --git a/public/it4i/img/dgx2.png b/public/it4i/img/dgx2.png
deleted file mode 100644
index fd6c42fff6a218c59deb85cc23ff84ab8977c60b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dgx2.png and /dev/null differ
diff --git a/public/it4i/img/dgx3.png b/public/it4i/img/dgx3.png
deleted file mode 100644
index 39dc8d602f075776c0a7c23557ba1f8cf2b0795a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dgx3.png and /dev/null differ
diff --git a/public/it4i/img/dgx4.png b/public/it4i/img/dgx4.png
deleted file mode 100644
index a9fa87778ace17b9aee785402458263cf3e8c79b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dgx4.png and /dev/null differ
diff --git a/public/it4i/img/dis_clluster.png b/public/it4i/img/dis_clluster.png
deleted file mode 100644
index dfb6bf01b4ae16df8eeceb7e5803771ec0a652f5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/dis_clluster.png and /dev/null differ
diff --git a/public/it4i/img/download.png b/public/it4i/img/download.png
deleted file mode 100644
index 5c9839a4fba0f8bf1286b73ba18362f14a1f59d9..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/download.png and /dev/null differ
diff --git a/public/it4i/img/downloadfilesuccessfull.jpeg b/public/it4i/img/downloadfilesuccessfull.jpeg
deleted file mode 100644
index be0d8c671fbdb1631a53698c5f53d8708cb3758e..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/downloadfilesuccessfull.jpeg and /dev/null differ
diff --git a/public/it4i/img/eosc-marketplace-active.jpg b/public/it4i/img/eosc-marketplace-active.jpg
deleted file mode 100644
index dd9feb3bd3d389c237acc5ddd2bf8146d2503822..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/eosc-marketplace-active.jpg and /dev/null differ
diff --git a/public/it4i/img/eosc-providers.jpg b/public/it4i/img/eosc-providers.jpg
deleted file mode 100644
index 4d2f94f0315b7fd5e899c74ce92b79caffcb1bb4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/eosc-providers.jpg and /dev/null differ
diff --git a/public/it4i/img/eudat_request.jpg b/public/it4i/img/eudat_request.jpg
deleted file mode 100644
index 96bf947af458db4ada330e542f0c2977d1ab158a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/eudat_request.jpg and /dev/null differ
diff --git a/public/it4i/img/eudat_v2.jpg b/public/it4i/img/eudat_v2.jpg
deleted file mode 100644
index 247132cf032fb473921d4ce614c96ab45cd7a26b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/eudat_v2.jpg and /dev/null differ
diff --git a/public/it4i/img/executionaccess.jpeg b/public/it4i/img/executionaccess.jpeg
deleted file mode 100644
index 24993c8e26e0d2c9951bbb47c24d5e37111e7ed1..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/executionaccess.jpeg and /dev/null differ
diff --git a/public/it4i/img/executionaccess2.jpeg b/public/it4i/img/executionaccess2.jpeg
deleted file mode 100644
index 179ef898f65dc73e40a87de8db17afa207468135..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/executionaccess2.jpeg and /dev/null differ
diff --git a/public/it4i/img/external.png b/public/it4i/img/external.png
deleted file mode 100644
index 16f9b92db47a1f1cd9d2320cc7d03122155a5200..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/external.png and /dev/null differ
diff --git a/public/it4i/img/fairshare_formula.png b/public/it4i/img/fairshare_formula.png
deleted file mode 100644
index 6a5a1443fa08cd9d3c62bea52bbb48136b2501dc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fairshare_formula.png and /dev/null differ
diff --git a/public/it4i/img/favicon.ico b/public/it4i/img/favicon.ico
deleted file mode 100644
index 6c5618663a1a3500ae09b49ca6130774adc894d8..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/favicon.ico and /dev/null differ
diff --git a/public/it4i/img/fc_vpn_web_login.png b/public/it4i/img/fc_vpn_web_login.png
deleted file mode 100644
index 834b1a3d7b718d9a441b7980416fe8a0fd58a222..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fc_vpn_web_login.png and /dev/null differ
diff --git a/public/it4i/img/fc_vpn_web_login_2_1.png b/public/it4i/img/fc_vpn_web_login_2_1.png
deleted file mode 100644
index c81afa250d27a2604271c03431cc1f253ebe7638..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fc_vpn_web_login_2_1.png and /dev/null differ
diff --git a/public/it4i/img/fc_vpn_web_login_3_1.png b/public/it4i/img/fc_vpn_web_login_3_1.png
deleted file mode 100644
index 13b6556169ad98e2817b334187c1a542ed93582e..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fc_vpn_web_login_3_1.png and /dev/null differ
diff --git a/public/it4i/img/fig1.png b/public/it4i/img/fig1.png
deleted file mode 100644
index 938b783964771627aa573f0f4944213e54c67a32..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig1.png and /dev/null differ
diff --git a/public/it4i/img/fig2.png b/public/it4i/img/fig2.png
deleted file mode 100644
index f5bc24d65e435dbd869f873a3c88c6926fe5b466..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig2.png and /dev/null differ
diff --git a/public/it4i/img/fig3.png b/public/it4i/img/fig3.png
deleted file mode 100644
index 911f443a5a175ca36073dd17944589a37c7dec6a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig3.png and /dev/null differ
diff --git a/public/it4i/img/fig4.png b/public/it4i/img/fig4.png
deleted file mode 100644
index 8aa39d6aa924e3a567a135334e7305ccd14ce05d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig4.png and /dev/null differ
diff --git a/public/it4i/img/fig5.png b/public/it4i/img/fig5.png
deleted file mode 100644
index 4e87c6f45b1e69d053663a539ab67176d166b094..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig5.png and /dev/null differ
diff --git a/public/it4i/img/fig6.png b/public/it4i/img/fig6.png
deleted file mode 100644
index 43987a78a007e9489ad5e103db8c80a6749ec259..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig6.png and /dev/null differ
diff --git a/public/it4i/img/fig7.png b/public/it4i/img/fig7.png
deleted file mode 100644
index dc4952d10d945e633ffcf2aed1317fba55f55cef..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig7.png and /dev/null differ
diff --git a/public/it4i/img/fig7x.png b/public/it4i/img/fig7x.png
deleted file mode 100644
index c02375966b44f3cdfb336e457c9be17dd2b0a3c2..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig7x.png and /dev/null differ
diff --git a/public/it4i/img/fig8.png b/public/it4i/img/fig8.png
deleted file mode 100644
index 93934042e94fecf27fe2351dfc96da50d64c8921..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig8.png and /dev/null differ
diff --git a/public/it4i/img/fig9.png b/public/it4i/img/fig9.png
deleted file mode 100644
index 406e0dbb156d0f8e75f6230f66dfccc58fed457b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/fig9.png and /dev/null differ
diff --git a/public/it4i/img/firstrun.jpg b/public/it4i/img/firstrun.jpg
deleted file mode 100644
index fb26fe932626bfbf927874d3953606078a130fbb..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/firstrun.jpg and /dev/null differ
diff --git a/public/it4i/img/floatingip.png b/public/it4i/img/floatingip.png
deleted file mode 100644
index 6d511ae14cf5defeea3b681c66ccb516f14a23d4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/floatingip.png and /dev/null differ
diff --git a/public/it4i/img/gdmdisablescreensaver.png b/public/it4i/img/gdmdisablescreensaver.png
deleted file mode 100644
index 437d05effabe47a1dfd18129619398ef7ef74739..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/gdmdisablescreensaver.png and /dev/null differ
diff --git a/public/it4i/img/gdmscreensaver.png b/public/it4i/img/gdmscreensaver.png
deleted file mode 100644
index 309b8f06db5058a4029dbdf63f9c4cd4d2370043..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/gdmscreensaver.png and /dev/null differ
diff --git a/public/it4i/img/git.png b/public/it4i/img/git.png
deleted file mode 100644
index 22b28b31f83afb597a5c13103cc86f80aa1e85a0..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/git.png and /dev/null differ
diff --git a/public/it4i/img/global_ramdisk.png b/public/it4i/img/global_ramdisk.png
deleted file mode 100644
index 27f98afcf4c0d2692c72e342330ee5fb5cdecd1e..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/global_ramdisk.png and /dev/null differ
diff --git a/public/it4i/img/glxgears.jpg b/public/it4i/img/glxgears.jpg
deleted file mode 100644
index b8c8b8b42e2c730daba9bb7132cfafaac4ca715a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/glxgears.jpg and /dev/null differ
diff --git a/public/it4i/img/gnome-compute-nodes-over-vnc.png b/public/it4i/img/gnome-compute-nodes-over-vnc.png
deleted file mode 100644
index b7d24165d5b2a486534c095b5fb156d83db10428..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/gnome-compute-nodes-over-vnc.png and /dev/null differ
diff --git a/public/it4i/img/gnome-terminal.png b/public/it4i/img/gnome-terminal.png
deleted file mode 100644
index 1f404e503edeb796ed0ee96c0ed81aaca64d97eb..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/gnome-terminal.png and /dev/null differ
diff --git a/public/it4i/img/gnome_screen.png b/public/it4i/img/gnome_screen.png
deleted file mode 100644
index 62d535f3bfaefb286d120a9aa85b33127665c644..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/gnome_screen.png and /dev/null differ
diff --git a/public/it4i/img/gpu.png b/public/it4i/img/gpu.png
deleted file mode 100644
index 993f002810060bda11b5f81219d3b6c9a030ae1b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/gpu.png and /dev/null differ
diff --git a/public/it4i/img/hdl_net.jpg b/public/it4i/img/hdl_net.jpg
deleted file mode 100644
index d96c82a99df18c7d306bafd7fa40353dd067a308..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/hdl_net.jpg and /dev/null differ
diff --git a/public/it4i/img/hdl_pid.jpg b/public/it4i/img/hdl_pid.jpg
deleted file mode 100644
index cd1cfbdbbc49fa44af6b67ae282a48558d1f3d54..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/hdl_pid.jpg and /dev/null differ
diff --git a/public/it4i/img/horizon.png b/public/it4i/img/horizon.png
deleted file mode 100644
index b5f1d5c1b9358b86e95038d5ebbadb6bf026ca8b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/horizon.png and /dev/null differ
diff --git a/public/it4i/img/hq-architecture.png b/public/it4i/img/hq-architecture.png
deleted file mode 100644
index d395ddb727900a849e4b9d0ae3ce4cb2d5894a64..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/hq-architecture.png and /dev/null differ
diff --git a/public/it4i/img/hq-idea-s.png b/public/it4i/img/hq-idea-s.png
deleted file mode 100644
index 6d2d6d34c62b43b0f53765b93ee11222256879bf..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/hq-idea-s.png and /dev/null differ
diff --git a/public/it4i/img/instalationfile.jpeg b/public/it4i/img/instalationfile.jpeg
deleted file mode 100644
index 71fcc12197b4c6246d457bd3ecd75c5e971fc174..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instalationfile.jpeg and /dev/null differ
diff --git a/public/it4i/img/instance.png b/public/it4i/img/instance.png
deleted file mode 100644
index 034070b76c639fcbb7fafbc8f70736379ce77af4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instance.png and /dev/null differ
diff --git a/public/it4i/img/instance1.png b/public/it4i/img/instance1.png
deleted file mode 100644
index 36fec71fd65e9d5b4dfc8c160df0257aa7f9beb5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instance1.png and /dev/null differ
diff --git a/public/it4i/img/instance2.png b/public/it4i/img/instance2.png
deleted file mode 100644
index 2227f75e1f014648f4f3ff9385f350b94c7ea7db..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instance2.png and /dev/null differ
diff --git a/public/it4i/img/instance3.png b/public/it4i/img/instance3.png
deleted file mode 100644
index 826f4046e492f9d6cd6b881b8d023883c6f95cae..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instance3.png and /dev/null differ
diff --git a/public/it4i/img/instance4.png b/public/it4i/img/instance4.png
deleted file mode 100644
index 31c27c8eafb8c3af05875eb9488ffa5c35c705f1..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instance4.png and /dev/null differ
diff --git a/public/it4i/img/instance5.png b/public/it4i/img/instance5.png
deleted file mode 100644
index 1e76579beff5db2168cc5cf68fcff16b5dab3dbe..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/instance5.png and /dev/null differ
diff --git a/public/it4i/img/irods-cyberduck.jpg b/public/it4i/img/irods-cyberduck.jpg
deleted file mode 100644
index 86ef78e02fce994dc41f0b110d00a4bdcb21bc4d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/irods-cyberduck.jpg and /dev/null differ
diff --git a/public/it4i/img/irods_linking_link.jpg b/public/it4i/img/irods_linking_link.jpg
deleted file mode 100644
index 53e87c61439399699027d2c8dd2f9745c136d1aa..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/irods_linking_link.jpg and /dev/null differ
diff --git a/public/it4i/img/it4i-ci.png b/public/it4i/img/it4i-ci.png
deleted file mode 100644
index e477a5ca788a72ee466625c69a7725297ab57c54..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-ci.png and /dev/null differ
diff --git a/public/it4i/img/it4i-ci.svg b/public/it4i/img/it4i-ci.svg
deleted file mode 100644
index 88f4a42683281cc5ebaee6f14107e221ca536c63..0000000000000000000000000000000000000000
--- a/public/it4i/img/it4i-ci.svg
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="974" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="651" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto">
-  <!--Generated by ySVG 2.5-->
-  <defs id="genericDefs"/>
-  <g>
-    <defs id="defs1">
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
-        <path d="M0 0 L974 0 L974 651 L0 651 L0 0 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
-        <path d="M188 113 L1162 113 L1162 764 L188 764 L188 113 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
-        <path d="M-3210.3906 -5007.4917 L25476.9531 -5007.4917 L25476.9531 14166.4932 L-3210.3906 14166.4932 L-3210.3906 -5007.4917 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
-        <path d="M-2272.9143 -870.0214 L2624.9143 -870.0214 L2624.9143 2403.5786 L-2272.9143 2403.5786 L-2272.9143 -870.0214 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
-        <path d="M-4965.3335 -2971.4238 L6101.5654 -2971.4238 L6101.5654 4425.4458 L-4965.3335 4425.4458 L-4965.3335 -2971.4238 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
-        <path d="M-115.8449 -11.9742 L859.1812 -11.9742 L859.1812 610.6357 L-115.8449 610.6357 L-115.8449 -11.9742 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
-        <path d="M-5811.3696 -2622.4727 L1353.5343 -2622.4727 L1353.5343 2166.3904 L-5811.3696 2166.3904 L-5811.3696 -2622.4727 Z"/>
-      </clipPath>
-      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
-        <path d="M-5820.2856 -2624.262 L1356.8438 -2624.262 L1356.8438 2170.3445 L-5820.2856 2170.3445 L-5820.2856 -2624.262 Z"/>
-      </clipPath>
-    </defs>
-    <g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="translate(-188,-113)" stroke="white">
-      <rect x="188" width="974" height="651" y="113" clip-path="url(#clipPath2)" stroke="none"/>
-    </g>
-    <g fill="rgb(58,14,117)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke="rgb(58,14,117)">
-      <rect x="203" width="258" height="88" y="280" clip-path="url(#clipPath2)" stroke="none"/>
-    </g>
-    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke-linecap="butt">
-      <rect fill="none" x="203" width="258" height="88" y="280" clip-path="url(#clipPath2)"/>
-      <image stroke-linecap="square" x="0" y="0" transform="translate(297,283.0156) scale(0.034,0.034)" clip-path="url(#clipPath3)" width="2048" xlink:href="data:image/png;base64,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&#10;AAAAAABgtvsfGNde7ciOsnMAAAAASUVORK5CYII=" height="1885" preserveAspectRatio="none" stroke-miterlimit="10"/>
-    </g>
-    <g stroke-linecap="butt" transform="matrix(1,0,0,1,-188,-113)" fill="white" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke="white" font-weight="bold" stroke-miterlimit="1.45">
-      <text x="288.1221" xml:space="preserve" y="362.1543" clip-path="url(#clipPath2)" stroke="none">Gitlab server</text>
-    </g>
-    <g fill="rgb(58,14,117)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke="rgb(58,14,117)">
-      <rect x="546" width="258" height="88" y="286" clip-path="url(#clipPath2)" stroke="none"/>
-    </g>
-    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke-linecap="butt">
-      <rect fill="none" x="546" width="258" height="88" y="286" clip-path="url(#clipPath2)"/>
-      <image stroke-linecap="square" x="0" y="0" transform="translate(640,286.0156) scale(0.1989,0.1989)" clip-path="url(#clipPath4)" width="352" xlink:href="data:image/png;base64,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&#10;ohOiwI1aw5wrGlhBotSRddoShQDef/Cy0ULXj8p5ZEvVmV9KbOdSdZSjXV4/75af&#10;6/XabysNZZ6yyUKnRIEbiWFjjkkauY95IyuFrx3Z4/WUOm2JQgAXzLc2y9sr2k8g&#10;U7JOWkps55J1lKFdXj/vlp/r9dpvKwllHWWesslCp0SBW0nDvJY3tFL415E17ygq&#10;0pF12hKJANZZPljb7u4zrTpLbGetOkotPrdL6/N7NhW8E88trfUWafch3vttJaGs&#10;UzYZ6IYocCsxZOyXrcbt5I2tBL515IkPqLf558RS/DllOm2JTADvfF2t315sWsNd&#10;6rbJDusssZ216gi5XVqf3/+2evihR9R9jywu6cHFi9XsGaXnXdBab5F2H+RDv60g&#10;OynrlE0GuiEKvEga2SttGhx7fnXk+zbv4Z+yWYpP66fTlugE8Ho1d/EWXtpuaVu/&#10;Vp0ltrNWHSG3S+vzDpfNGvMuaK23SLtb+dFvKwVlnLLJPrdEgReJQeOOqsSpKrU6&#10;crF5VY1Z6uHNpY+h5ZedxerRa0tkApge+z75oaLr2bvtt87qLBEYWnWE3C6tzztc&#10;Cu0Xx+sNqd9WBnMHZZyyyT63RIFXViOny4bHm1ZH3r9DrVm9Sj25em07aza/qXbz&#10;9xZZPnxeXofqtC2RCeB9Lcc1n/yAv9B2eVPNdFhnoaBzUkeY7dL6vMOl0H5xvN6Q&#10;+m1lMKcrm8zzQhR4lejfmKq0pydrdWRfluITg+u2JTIBvKcllKY+UfwI4pN3tNx9&#10;plVnkaDTriPkdml93uFSaL8EvV77pXS/jT162rGVbcom87wQBX5IpnPniS8QY2F1&#10;ZJ3g1GmLTj2hBHBrKM1YXPTX1IfPP+C8zgIc1RFSu7Q+73AptF+CXq/dotXfYo4y&#10;TdlknVeiwA8Jw/iC1egN/EvEVTgd+e2Df/IWo9MWrQERZgAb09TKnfzFNsuBX6Rn&#10;O6rTXhTbpdUmh0uh/RL0euWi129jbgNlmrLJOq9EgV9qDPNsmy8SS2F05NY/d0vR&#10;aUv0AjinZq4o9uf+PvXg1Jyqc1innSi2S6tNDpdC+yXo9fJFt9/GGWWZssk4P4gC&#10;PyUN81f8y8RR0B250ETgdnTaEsUATs34rdrLX2+zbF38Y1W36CVeLJciQRfVdmm1&#10;yeFSaL8Evd62i5N+G1eUYcom2/wiCvxUk27+VjKT28e/VNwE25HfLPpIdE6nLZEM&#10;YGOWWlPkclKaDH38Hd6CLqrt0mqT2q8+3LlLy+59u9TKRbPEeji99bpdnPXbOKLs&#10;ogxTNtnmF1Hgt9pMdg7/YnETbEfep37NJn8pRqct0QzgUo83f1vd94i3oItqu7Ta&#10;VPR6XHe01ut6cdZv44iyS9lkmp9Egd8Sw5uPtH7Gv8O/XJwE25GV2vboPLHOQnTa&#10;EtUATl2ztMhcOPvV1s1vF3n9wMLrjEG7dNvEp8H0Smu9HhYn/TZuKLMou5RNpvlJ&#10;FAQh7o8u0u3Im+ki9nXr1co8+u9NRS9zal0KPYvMjk5bIhvAxo/V+mJTMOgsos7o&#10;t8tdm7zTWq8Kp9/GT7ZR2WSZ30RBUJKZ3GPyS8aDVke2/oSss/mszixSbe+6KkWn&#10;LdEN4Jyau24Hf1fLcmii3uKLTZ1Rb5fbNnmltd6Q+m2cUFYpmwwLgigISk1907HW&#10;z/o9/MvGgVZHLjCAih9fbF307yTSaUuUAzg1Z5X9n/Ntgs729dbFrs6It8t1mzzy&#10;sl6/+21cUEZRVimbDAuCKAhSbTo7lX/hOPDSkevuWMvfabtse6L9JOCF6LQl0gFs&#10;zFUbvPy5b1tntNvlvk3eeFmv3/02LiijlE12BUUUBInuJkkauXX8S0edl46sN5eq&#10;9Vvi3RW2fwpyOm2JdgDrPV2h4FKgzii3y0ubvPC0Xp/7bRxQNgV1x1shoiBoHdJm&#10;N+uLfsa/fJR56sjGtBKzbrUuerd06rQl6gFcd6veryvbpUCdUW6XlzZ54W29/vbb&#10;qKNMomxSNpkVJFEQhmTGvI5vgCjz1pFzanahEzztlv3q0VtLH0/TaUvUA5j+3N9c&#10;9IBqkaVgndFtl7c2ued1vX7226ijTFI2WRU0URCGRO+mGutLb+IbIaq8duSzF63n&#10;77Zd+MMg7ei0JfoBnFMLNxa5/azYUqTOqLbLa5vc8rpeP/ttxG2iTFI2WRU0URAW&#10;60t3TxrmX2w2RuR47cipyQ+p9/n77ZZ3V5U8nqbTlt0bNSbHLnMA192hN7jFUqTO&#10;qLbLa5vc8rxeH/ttVB3IoO7KJqPCIArCVJsxL+MbJIo8d+RS0x4eXEo/V0urLTvX&#10;l76tdeojWhfbBxXAKWOe2urmz/2idUazXd7b5I739frXb6OKMkjZZFNYREGYrOUw&#10;ayMs5Rslarx35Jyaq3mGvdT0fmfrzMyldqmFU+Vn25q5Quc6zyADWPdhj2wpUWcU&#10;2+VHm9zwY71+9duIWkoZpGyyKSyiIGzJ4c1fT2XMD2w2TmT40ZHPvl8nOJV6f/U9&#10;4rPtTNb75brf+rOw4K/gGb/VqoOW9ffbz7rlyzbR+seELSXqjGK7tNp0YPJ3/lkv&#10;tNZbpN3Et34bNVbmUPYom0wKkygoh1oj1yA2UIT40ZHpeJrOMVf1wdrCwZk3V23W&#10;vGFg/web1OwZ7c9Qn3v/Wu3wpV/St03m62/hyzYxFqht/DOllhJ1RrFdem16Xc2c&#10;OkuNn/Fjd6bKKxH01lu43Xm+9dtoocxRNlkUNlFQLsmMuYhvpKjwpSOXmHf20LJD&#10;zS1xPM3pn8i7P3hbbd76pnp/j8ODm0WOJfuzTXLqwa2a/5q0LiXqjGK7tNrkcdm/&#10;dbG79RZpdwv/+m1UUNYomwwqB1FQLvmnKUf00jR/OnJO3bZR73jayhLH0+puXcU/&#10;EshS7IkHfm0TrXraLiXq1KqvRB3a9bRditTpuC4Xi92lh1rrLdLuVn7124jYFMTT&#10;jd0SBeV0REPueGsD7bLZaGXlV0fWqsdaPlzX8jTewi5Sv97u8Nes02XflqJPPND6&#10;LhrbJDXxHq1bXg8uJeqMYru02uRxCTKAtepROv227HZRxiib7CkXUVBuyXS23voT&#10;4a82G69stDqgRkfWvfSr2J/+B5V4lpnXZU2JR974tk0sD29z8Od+iTqj2C6tNnlc&#10;ggxgX/ttmVCmULYom8wpJ1EQBVG7Vdm3jkwTf2seTyt08qutqU+8yT/oy7J7szye&#10;yPm3Tay6HtrCP1l4KVFnFNul1SaPS6AB7HO/LYdy3WpciiiIAms5PGWYj/ONWC7+&#10;deScWqh5Aq3UL9BWt63Tu55Xd9m7bYXWrxg/twnNvKV1xxUtJeqMYru02uRxCTaA&#10;/e+3YaIJ1ilTlE3WlJsoiIpEw4SvWv9qbeMbsxz87MjjH9H7VfXh8xq3Ex8wdbFG&#10;+zSWbav11+nnNnF0TLtEnVFsl1abPC5BB3AQ/TYMlCGUJcomY6JAFERJcuSknknD&#10;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&#10;ClAO/x/5CuZnqkxG1gAAAABJRU5ErkJggg==" height="352" preserveAspectRatio="none" stroke-miterlimit="10"/>
-    </g>
-    <g stroke-linecap="butt" transform="matrix(1,0,0,1,-188,-113)" fill="white" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke="white" font-weight="bold" stroke-miterlimit="1.45">
-      <text x="628.0928" xml:space="preserve" y="371.1543" clip-path="url(#clipPath2)" stroke="none">GitLab runner</text>
-    </g>
-    <g fill="rgb(130,170,10)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke="rgb(130,170,10)">
-      <rect x="546" width="258" height="88" y="374" clip-path="url(#clipPath2)" stroke="none"/>
-    </g>
-    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke-linecap="butt">
-      <rect fill="none" x="546" width="258" height="88" y="374" clip-path="url(#clipPath2)"/>
-      <image stroke-linecap="square" x="0" y="0" transform="translate(625,374.5156) scale(0.088,0.088)" clip-path="url(#clipPath5)" width="1140" xlink:href="data:image/png;base64,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&#10;WWoAAAAASUVORK5CYII=" height="784" preserveAspectRatio="none" stroke-miterlimit="10"/>
-    </g>
-    <g stroke-linecap="butt" transform="matrix(1,0,0,1,-188,-113)" fill="white" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke="white" font-weight="bold" stroke-miterlimit="1.45">
-      <text x="639.1289" xml:space="preserve" y="458.6543" clip-path="url(#clipPath2)" stroke="none">Jacamar CI</text>
-    </g>
-    <g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9989,0,0,1.0456,115.7229,12.5202)">
-      <g clip-path="url(#clipPath6)">
-        <svg xml:space="preserve" opacity="1" writing-mode="lr-tb" stop-color="rgb(0, 0, 0)" shape-rendering="auto" glyph-orientation-horizontal="0deg" color-profile="auto" lighting-color="rgb(255, 255, 255)" color="rgb(0, 0, 0)" font-weight="400" alignment-baseline="auto" font-style="normal" version="1.1" color-interpolation-filters="linearrgb" text-anchor="start" stroke-linecap="butt" color-interpolation="srgb" font-variant="normal" word-spacing="normal" fill-opacity="1" text-rendering="auto" clip-path="none" text-decoration="none" letter-spacing="normal" viewBox="0 0 57 65" glyph-orientation-vertical="auto" display="inline" font-size-adjust="none" overflow="hidden" fill="rgb(0, 0, 0)" font-stretch="normal" stroke-dasharray="none" id="svg1.Ebene_1" stroke-miterlimit="4" stop-opacity="1" color-rendering="auto" font-size="12" pointer-events="visiblepainted" mask="none" direction="ltr" baseline-shift="baseline" enable-background="new 0 0 57 65" fill-rule="nonzero" image-rendering="auto" stroke-dashoffset="0" width="57px" marker-end="none" clip="auto" cursor="auto" stroke="none" filter="none" visibility="visible" kerning="auto" stroke-width="1" font-family="&quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif" flood-opacity="1" clip-rule="nonzero" src="none" height="65px" unicode-bidi="normal" stroke-linejoin="miter" stroke-opacity="1" flood-color="rgb(0, 0, 0)" dominant-baseline="auto" marker-start="none" x="0px" marker-mid="none" y="0px">
-<g>
-	
-		<linearGradient gradientTransform="matrix(1 0 0 1 0.0801 -771.6914)" x1="26.5796" x2="27.8207" gradientUnits="userSpaceOnUse" y1="796.6533" y2="826.4517" id="svg1.SVGID_1_">
-		<stop offset="0.2711" style="stop-color:#FFAB4F"/>
-		<stop offset="1" style="stop-color:#FFD28F"/>
-	</linearGradient>
-	<path fill="url(#svg1.SVGID_1_)" d="M49.529,52.225c-4.396-4.396-10.951-5.884-12.063-6.109   V38.8H19.278c0,0,0.038,6.903,0,6.868c0,0-6.874,0.997-12.308,6.432C1.378,57.691,0.5,63.77,0.5,63.77   c0,1.937,1.575,3.492,3.523,3.492h48.51c1.947,0,3.521-1.558,3.521-3.492C56.055,63.768,54.211,56.906,49.529,52.225z" stroke-miterlimit="10" stroke="#ED9135"/>
-	
-		<radialGradient gradientTransform="matrix(1 0 0 1 0.0801 -771.6914)" gradientUnits="userSpaceOnUse" r="23.4236" cx="27.8228" id="svg1.face_x5F_white_1_" cy="798.418" fx="23.2533" fy="795.9283">
-		<stop offset="0" style="stop-color:#FFD28F"/>
-		<stop offset="1" style="stop-color:#FFAB4F"/>
-	</radialGradient>
-	<path fill="url(#svg1.face_x5F_white_1_)" id="svg1.face_x5F_white_3_" d="M43.676,24.357   c0.086,10.2-6.738,18.52-15.245,18.586c-8.504,0.068-15.468-8.146-15.554-18.344C12.794,14.4,19.618,6.079,28.123,6.012   C36.627,5.945,43.59,14.158,43.676,24.357z" stroke-miterlimit="10" stroke="#ED9135"/>
-	<path fill="#ECECEC" d="M20.278,14.25   c0,0,5.321,7.25,15,3.75c2.729-0.563,9.058,1.035,9.058,1.035S40.68,2.865,27.289,3.744C9.403,5.125,12.058,26.678,12.058,26.678   s2.768-0.684,5.036-4.802C18.068,20.106,20.278,14.25,20.278,14.25z" id="svg1.hair_x5F_gray_1_" stroke="#9B9B9B" stroke-linecap="round" stroke-linejoin="round"/>
-	
-		<radialGradient gradientTransform="matrix(1 0 0 1 0.0801 -771.6914)" id="svg1.collar_x5F_body_1_" r="32.4004" cx="15.1982" gradientUnits="userSpaceOnUse" cy="829.8604">
-		<stop offset="0" style="stop-color:#B0E8FF"/>
-		<stop offset="1" style="stop-color:#74AEEE"/>
-	</radialGradient>
-	<path fill="url(#svg1.collar_x5F_body_1_)" d="M0.5,63.768c0,1.938,1.575,3.494,3.523,3.494   h48.51c1.947,0,3.521-1.559,3.521-3.494c0,0-1.844-6.861-6.525-11.543c-4.815-4.814-11.244-6.146-11.244-6.146   c-1.771,1.655-5.61,2.802-10.063,2.802c-4.453,0-8.292-1.146-10.063-2.802c0,0-5.755,0.586-11.189,6.021   C1.378,57.689,0.5,63.768,0.5,63.768z" id="svg1.collar_x5F_body_3_" stroke="#5491CF"/>
-	
-		<radialGradient gradientTransform="matrix(1 0 0 1 0.0801 -771.6914)" id="svg1.collar_x5F_r_1_" r="9.2835" cx="31.54" gradientUnits="userSpaceOnUse" cy="819.9863">
-		<stop offset="0" style="stop-color:#80CCFF"/>
-		<stop offset="1" style="stop-color:#74AEEE"/>
-	</radialGradient>
-	<path fill="url(#svg1.collar_x5F_r_1_)" d="M38.159,42.381c0,0-0.574,2.369-3.013,4.441   c-2.108,1.795-5.783,2.072-5.783,2.072l3.974,6.217c0,0,2.957-1.637,5.009-3.848c1.922-2.072,1.37-5.479,1.37-5.479L38.159,42.381z   " id="svg1.collar_x5F_r_3_" stroke="#5491CF"/>
-	
-		<radialGradient gradientTransform="matrix(1 0 0 1 0.0801 -771.6914)" id="svg1.collar_x5F_l_1_" r="9.2834" cx="19.1777" gradientUnits="userSpaceOnUse" cy="820.0273">
-		<stop offset="0" style="stop-color:#80CCFF"/>
-		<stop offset="1" style="stop-color:#74AEEE"/>
-	</radialGradient>
-	<path fill="url(#svg1.collar_x5F_l_1_)" d="M18.63,42.422c0,0,0.576,2.369,3.012,4.441   c2.109,1.793,5.785,2.072,5.785,2.072l-3.974,6.217c0,0-2.957-1.637-5.007-3.85c-1.922-2.072-1.37-5.479-1.37-5.479L18.63,42.422z" id="svg1.collar_x5F_l_3_" stroke="#5491CF"/>
-</g>
-</svg>
-      </g>
-    </g>
-    <g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)">
-      <image x="889" y="638" clip-path="url(#clipPath2)" width="256" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQsAAABrCAYAAABg1qe8AACAAElEQVR4XoS9Z3si&#10;2ZK1TZW8A0l4IwmPQBbkvUFIQg6EvJdK5V13VXd1d/UxM2fmen53vGvFJhHVc+ad&#10;D3ElJEmSkDvuWBHbYCscFGX7cE92jspSrJRk46Ak63v7kt8vSaF0KIW9Y1kvHsrc&#10;6rZMLW7I7GJB8ltlWV7bkfwmjtkuyVhuTqKJYTk6vZGDw0tZze9J+fhOtvfOZOfg&#10;Qor75z8Y9/O8G7tHsBNZ2SzrdmnjQNa2yzKzvCnLhX3x9CUkO78mI9NLMjqL7fy6&#10;ZGZWZXB6RQbn8rA1SfPx1JIkJ5ckMbFYs+jEklpkYkXCuWXpzy1JX3ZR+saXJTS2&#10;JP6xRfGOLYh3FNuhaYmkJ6U/OiQdLr/EJ2bFOzIroclV8Y+uSGBkUYIjCxIaXxA/&#10;vqsnOy8ePPeMLIlzZF5cowviwnlpvTg3rXt8Rc0B68mtSVd2TdpHl6UN1pVbV2vH&#10;Z3eMzIgb5210xaW9b1jcc1vSMrEsjom8uGa3xZ7dkO6pLemdKUr3zLb0zBbFOb8r&#10;/vl9CczBFvYkuLivFlo6kL7lkvSvlCWyWpHo2pEk1o/VUusnkt44k6HNCxnZvpLx&#10;4o1kd68lt38rE6UbmeC2eCbblWtxh+LS4wnJSrEis9xffoFjXsrk4aNMlx9k5vCF&#10;TB++lKnD1zJVeanG57SZyqPabOXhB5vW95j36Xut9xy8lkmce6LyWoZKdzJaupVx&#10;XFdXKCu59QtJb19LrAjbupHI1nXNoluXEsP3iBSuZKBwKf0bF2p9+XO14Nqp+FeO&#10;1QKrJxJcOZHA8rH4FiviXTjUbWClIp7FkvhWDsS5sCW+Zdj0mniG5yQYn5Ih/P6+&#10;xW1xrBTFvrwjXct7Yl/alx781q65XXHN7Ejv3I445sy90fszva33yzG5IXbcQ95H&#10;Gh93sg2Mrah1ZNEOJlalA22F7aAN7cnYHJ7P65bWUbUutDM72ln36Jz0jM2LE22X&#10;7SbAtj2JNor9YWz9Q1Nis/skhHaVmF6V5MwK/GBB0vCdIfhvZqEgo/g+42u7MrGx&#10;J3M7FcmuFyW3ti0LO4dSuXsljz//JrfvPsnR7T3aw7GULi5l9+xEbFvlfSkc7Mpq&#10;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" height="103" preserveAspectRatio="none"/>
-      <rect x="546" y="462" clip-path="url(#clipPath2)" fill="rgb(0,164,153)" width="258" height="88" stroke="none"/>
-      <rect stroke-linecap="butt" x="546" y="462" clip-path="url(#clipPath2)" fill="none" width="258" height="88" stroke-miterlimit="1.45"/>
-    </g>
-    <g stroke-linecap="butt" transform="matrix(1,0,0,1,-188,-113)" fill="white" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke="white" font-weight="bold" stroke-miterlimit="1.45">
-      <text x="637.585" xml:space="preserve" y="510.1543" clip-path="url(#clipPath2)" stroke="none">Login node</text>
-    </g>
-    <g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke="white">
-      <rect x="889" width="258" height="88" y="462" clip-path="url(#clipPath2)" stroke="none"/>
-    </g>
-    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke-linecap="butt">
-      <rect fill="none" x="889" width="258" height="88" y="462" clip-path="url(#clipPath2)"/>
-    </g>
-    <g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.1357,0,0,0.1358,789.8643,356.3159)">
-      <g clip-path="url(#clipPath8)">
-        <svg opacity="1" writing-mode="lr-tb" shape-rendering="auto" stop-color="rgb(0, 0, 0)" glyph-orientation-horizontal="0deg" color-profile="auto" lighting-color="rgb(255, 255, 255)" color="rgb(0, 0, 0)" font-weight="400" alignment-baseline="auto" font-style="normal" color-interpolation-filters="linearrgb" text-anchor="start" stroke-linecap="butt" color-interpolation="srgb" font-variant="normal" word-spacing="normal" fill-opacity="1" text-rendering="auto" clip-path="none" text-decoration="none" letter-spacing="normal" glyph-orientation-vertical="auto" display="inline" font-size-adjust="none" fill="rgb(0, 0, 0)" overflow="hidden" font-stretch="normal" stroke-dasharray="none" stroke-miterlimit="4" stop-opacity="1" color-rendering="auto" font-size="12" mask="none" direction="ltr" baseline-shift="baseline" pointer-events="visiblepainted" enable-background="accumulate" fill-rule="nonzero" image-rendering="auto" stroke-dashoffset="0" width="590" marker-end="none" clip="auto" cursor="auto" stroke="none" filter="none" visibility="visible" kerning="auto" stroke-width="1" font-family="&quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif" flood-opacity="1" clip-rule="nonzero" src="none" height="540" unicode-bidi="normal" stroke-linejoin="miter" stroke-opacity="1" flood-color="rgb(0, 0, 0)" dominant-baseline="auto" marker-start="none" marker-mid="none">
-          
-          <path fill="#42AFEB" d="m 276.51869,1.35595 c -10.03747,0 -18.17189,8.07623 -18.17189,18.04188 l 0,0 0,34.72604 c 0,9.95864 8.13442,18.04453 18.17189,18.04453 l 0,0 36.09331,0 c 10.03749,0 18.18515,-8.08589 18.18515,-18.04453 l 0,0 0,-34.72604 c 0,-9.96565 -8.14766,-18.04188 -18.18515,-18.04188 l 0,0 -36.09331,0 z m 88.71565,54.94648 c -7.5396,0 -13.65414,6.17626 -13.65414,13.77442 l 0,0 0,26.49865 c 0,7.60607 6.11454,13.77793 13.65414,13.77793 l 0,0 27.11802,0 c 7.54048,0 13.6497,-6.17186 13.6497,-13.77793 l 0,0 0,-26.49865 c 0,-7.59816 -6.10922,-13.77442 -13.6497,-13.77442 l 0,0 -27.11802,0 z m -168.45685,0 c -7.537,0 -13.65239,6.17626 -13.65239,13.77442 l 0,0 0,26.49865 c 0,7.60607 6.11539,13.77793 13.65239,13.77793 l 0,0 27.11617,0 c 7.53607,0 13.65414,-6.17186 13.65414,-13.77793 l 0,0 0,-26.49865 c 0,-7.59816 -6.11807,-13.77442 -13.65414,-13.77442 l 0,0 -27.11617,0 z m 79.7412,30.3944 c -10.03747,0 -18.17189,8.07184 -18.17189,18.04365 l 0,0 0,34.72341 c 0,9.96391 8.13442,18.04716 18.17189,18.04716 l 0,0 36.09331,0 c 10.03749,0 18.18515,-8.08325 18.18515,-18.04716 l 0,0 0,-34.72341 c 0,-9.97181 -8.14766,-18.04365 -18.18515,-18.04365 l 0,0 -36.09331,0 z m 158.47519,16.27901 c -5.60732,0 -10.15253,4.58561 -10.15253,10.24865 l 0,0 0,19.71251 c 0,5.65072 4.54521,10.23984 10.15253,10.23984 l 0,0 20.17408,0 c 5.60384,0 10.15254,-4.58912 10.15254,-10.23984 l 0,0 0,-19.71251 c 0,-5.66304 -4.5487,-10.24865 -10.15254,-10.24865 l 0,0 -20.17408,0 z m -300.14068,0 c -5.60563,0 -10.15607,4.58561 -10.15607,10.24865 l 0,0 0,19.71251 c 0,5.65072 4.55044,10.23984 10.15607,10.23984 l 0,0 20.16783,0 c 5.6127,0 10.15786,-4.58912 10.15786,-10.23984 l 0,0 0,-19.71251 c 0,-5.66304 -4.54516,-10.24865 -10.15786,-10.24865 l 0,0 -20.16783,0 z m 230.38114,20.74687 c -7.5396,0 -13.65414,6.16658 -13.65414,13.76562 l 0,0 0,26.50744 c 0,7.59993 6.11454,13.76914 13.65414,13.76914 l 0,0 27.11802,0 c 7.54048,0 13.6497,-6.16921 13.6497,-13.76914 l 0,0 0,-26.50744 c 0,-7.59904 -6.10922,-13.76562 -13.6497,-13.76562 l 0,0 -27.11802,0 z m -168.45685,0 c -7.537,0 -13.65239,6.16658 -13.65239,13.76562 l 0,0 0,26.50744 c 0,7.59993 6.11539,13.76914 13.65239,13.76914 l 0,0 27.11617,0 c 7.53607,0 13.65414,-6.16921 13.65414,-13.76914 l 0,0 0,-26.50744 c 0,-7.59904 -6.11807,-13.76562 -13.65414,-13.76562 l 0,0 -27.11617,0 z m 238.21639,33.392 c -5.60732,0 -10.15253,4.58298 -10.15253,10.23898 l 0,0 0,19.71338 c 0,5.65162 4.54521,10.24162 10.15253,10.24162 l 0,0 20.17408,0 c 5.60384,0 10.15254,-4.59 10.15254,-10.24162 l 0,0 0,-19.71338 c 0,-5.656 -4.5487,-10.23898 -10.15254,-10.23898 l 0,0 -20.17408,0 z m -300.14068,0 c -5.60563,0 -10.15607,4.58298 -10.15607,10.23898 l 0,0 0,19.71338 c 0,5.65162 4.55044,10.24162 10.15607,10.24162 l 0,0 20.16783,0 c 5.6127,0 10.15786,-4.59 10.15786,-10.24162 l 0,0 0,-19.71338 c 0,-5.656 -4.54516,-10.23898 -10.15786,-10.23898 l 0,0 -20.16783,0 z m 141.66549,14.18043 c -10.03747,0 -18.17189,8.07973 -18.17189,18.04629 l 0,0 0,34.72603 c 0,9.96479 8.13442,18.03839 18.17189,18.03839 l 0,0 36.09331,0 c 10.03749,0 18.18515,-8.0736 18.18515,-18.03839 l 0,0 0,-34.72603 c 0,-9.96656 -8.14766,-18.04629 -18.18515,-18.04629 l 0,0 -36.09331,0 z m 218.09457,14.83601 c -4.16984,0 -7.54314,3.40801 -7.54314,7.60607 l 0,0 0,14.633 c 0,4.19806 3.3733,7.59993 7.54314,7.59993 l 0,0 14.97393,0 c 4.15747,0 7.52807,-3.40187 7.52807,-7.59993 l 0,0 0,-14.633 c 0,-4.19806 -3.3706,-7.60607 -7.52807,-7.60607 l 0,0 -14.97393,0 z m -414.175738,0 c -4.163688,0 -7.53695,3.40801 -7.53695,7.60607 l 0,0 0,14.633 c 0,4.19806 3.373262,7.59993 7.53695,7.59993 l 0,0 14.967691,0 c 4.16636,0 7.538737,-3.40187 7.538737,-7.59993 l 0,0 0,-14.633 c 0,-4.19806 -3.372377,-7.60607 -7.538737,-7.60607 l 0,0 -14.967691,0 z m 284.796818,5.02414 c -7.5396,0 -13.65414,6.16218 -13.65414,13.76298 l 0,0 0,26.50216 c 0,7.60608 6.11454,13.77353 13.65414,13.77353 l 0,0 27.11802,0 c 7.54048,0 13.6497,-6.16745 13.6497,-13.77353 l 0,0 0,-26.50216 c 0,-7.6008 -6.10922,-13.76298 -13.6497,-13.76298 l 0,0 -27.11802,0 z m -168.45685,0 c -7.537,0 -13.65239,6.16218 -13.65239,13.76298 l 0,0 0,26.50216 c 0,7.60608 6.11539,13.77353 13.65239,13.77353 l 0,0 27.11617,0 c 7.53607,0 13.65414,-6.16745 13.65414,-13.77353 l 0,0 0,-26.50216 c 0,-7.6008 -6.11807,-13.76298 -13.65414,-13.76298 l 0,0 -27.11617,0 z m 238.21639,20.50255 c -5.60732,0 -10.15253,4.59527 -10.15253,10.25655 l 0,0 0,19.70811 c 0,5.66215 4.54521,10.23985 10.15253,10.23985 l 0,0 20.17408,0 c 5.60384,0 10.15254,-4.5777 10.15254,-10.23985 l 0,0 0,-19.70811 c 0,-5.66128 -4.5487,-10.25655 -10.15254,-10.25655 l 0,0 -20.17408,0 z m -300.14068,0 c -5.60563,0 -10.15607,4.59527 -10.15607,10.25655 l 0,0 0,19.70811 c 0,5.66215 4.55044,10.23985 10.15607,10.23985 l 0,0 20.16783,0 c 5.6127,0 10.15786,-4.5777 10.15786,-10.23985 l 0,0 0,-19.70811 c 0,-5.66128 -4.54516,-10.25655 -10.15786,-10.25655 l 0,0 -20.16783,0 z m 359.76006,19.04111 c -4.16984,0 -7.54314,3.40449 -7.54314,7.60255 l 0,0 0,14.63301 c 0,4.19013 3.3733,7.60606 7.54314,7.60606 l 0,0 14.97393,0 c 4.15747,0 7.52807,-3.41593 7.52807,-7.60606 l 0,0 0,-14.63301 c 0,-4.19806 -3.3706,-7.60255 -7.52807,-7.60255 l 0,0 -14.97393,0 z m -414.175738,0 c -4.163688,0 -7.53695,3.40449 -7.53695,7.60255 l 0,0 0,14.63301 c 0,4.19013 3.373262,7.60606 7.53695,7.60606 l 0,0 14.967691,0 c 4.16636,0 7.538737,-3.41593 7.538737,-7.60606 l 0,0 0,-14.63301 c 0,-4.19806 -3.372377,-7.60255 -7.538737,-7.60255 l 0,0 -14.967691,0 z m 463.610728,14.62158 c -3.14309,0 -5.69675,2.56786 -5.69675,5.73685 l 0,0 0,11.03956 c 0,3.15931 2.55366,5.73245 5.69675,5.73245 l 0,0 11.29436,0 c 3.13078,0 5.6826,-2.57314 5.6826,-5.73245 l 0,0 0,-11.03956 c 0,-3.16899 -2.55182,-5.73685 -5.6826,-5.73685 l 0,0 -11.29436,0 z m -509.365304,0 c -3.141356,0 -5.69144,2.56786 -5.69144,5.73685 l 0,0 0,11.03956 c 0,3.15931 2.550084,5.73245 5.69144,5.73245 l 0,0 11.287287,0 c 3.142241,0 5.685242,-2.57314 5.685242,-5.73245 l 0,0 0,-11.03956 c 0,-3.16899 -2.543001,-5.73685 -5.685242,-5.73685 l 0,0 -11.287287,0 z"/>
-          
-          <path d="m 124.57183,478.1228 0,49.2138 3.98262,0 0,-16.8787 c 2.3706,1.7106 11.98199,8.5797 17.73213,12.6116 4.34295,2.8334 4.2102,3.903 4.26709,4.2671 l 5.31016,0 c 0,-2.5565 -2.89783,-3.8309 -6.16358,-6.0687 -1.98372,-1.3693 -16.68906,-11.6634 -16.68906,-11.6634 0,0 14.31846,-9.4483 16.30977,-10.81 3.25816,-2.2416 5.8791,-3.5085 5.8791,-6.0687 l -5.12051,0 c -0.0455,0.3527 0.17842,1.4299 -4.17227,4.267 -5.43911,3.8347 -14.41328,10.2297 -17.35283,12.3272 l 0,-31.1972 -3.98262,0 z m 37.36075,0 0,49.2138 3.98262,0 0,-49.2138 -3.98262,0 z m 118.9096,0 0,41.3434 0,0.095 0,0.4741 c 0.003,0.6144 -0.10226,1.7296 -0.47412,2.4654 -0.44378,0.7321 -0.61825,1.081 -1.80166,1.1379 l -19.53379,0 c -1.17582,-0.057 -1.35409,-0.4058 -1.80166,-1.1379 -0.27704,-0.55 -0.42861,-1.2782 -0.47412,-1.8965 l 0,-20.1975 0,-0.095 0,-0.3793 c -0.0121,-0.6334 0.0986,-1.8244 0.47412,-2.5603 0.44757,-0.7358 0.61446,-1.0582 1.80166,-1.1378 l 19.53379,0 0,-3.9827 -19.53379,0 c -2.69301,-0.068 -4.69949,1.722 -5.40498,3.4137 -0.78515,1.6765 -0.84204,3.3151 -0.85342,4.2671 l 0,0.6638 0,18.6803 0,0.7586 0,0.6638 0,0.6638 0.0947,0 c 0.091,0.8458 0.28068,1.9116 0.75859,2.9395 0.7055,1.6803 2.71198,3.3871 5.40499,3.3189 l 19.53379,0 0.18965,0 c 2.60577,0 4.50984,-1.6727 5.21533,-3.3189 0.77756,-1.6803 0.84963,-3.3264 0.85342,-4.2671 l 0,-0.7586 0,-41.1537 -3.98262,0 z m -178.64887,14.3185 c -2.19137,0.3156 -3.73799,1.8452 -4.361918,3.3188 -0.785145,1.6765 -0.834454,3.3189 -0.853418,4.2671 l 0,0.7586 0,26.5508 3.982616,0 0,-26.7404 0,-0.095 0,-0.4741 c -0.006,-0.6372 0.10226,-1.8282 0.47412,-2.5603 0.43999,-0.7358 0.52723,-0.971 1.70684,-1.043 l 14.79258,0 0,-3.9827 -14.79258,0 c -0.33663,-0.01 -0.63519,-0.045 -0.94824,0 z m 216.38892,0 c -2.68542,-0.068 -4.68052,1.7296 -5.40498,3.4137 -0.78135,1.6802 -0.84204,3.3226 -0.85342,4.267 l 0,0.6638 0,26.6456 4.07744,0 0,-26.8352 -0.0947,-0.095 0,-0.3793 c 0,-0.6296 0.10226,-1.8168 0.47412,-2.5603 0.4324,-0.7358 0.62584,-0.9785 1.80166,-1.043 l 15.36153,0 0,30.9127 3.98262,0 0,-30.9127 15.55118,0 c 1.17961,0.064 1.26685,0.3034 1.70683,1.043 0.36792,0.7435 0.4855,1.9307 0.47412,2.5603 l 0,0.3793 0,0.095 0,26.8352 3.98262,0 0,-26.6456 0,-0.6638 c -0.0121,-0.9444 -0.068,-2.5906 -0.85342,-4.267 -0.70549,-1.6841 -2.61335,-3.482 -5.31015,-3.4137 l -34.89533,0 z m 95.58284,0 c -2.6968,-0.065 -4.68811,1.7334 -5.40498,3.4137 -0.78135,1.6802 -0.84583,3.3226 -0.85342,4.267 l 0,0.6638 0,26.6456 4.07744,0 0,-26.8352 -0.0947,-0.095 0,-0.3793 c -0.0243,-0.6296 0.11379,-1.8168 0.47412,-2.5603 0.44378,-0.732 0.61067,-1.0696 1.80166,-1.1378 l 18.87003,0.095 c 1.19099,0.065 1.36926,0.3035 1.80166,1.0431 0.37171,0.7434 0.48929,1.9306 0.47412,2.5602 l 0,0.3793 0,0.095 0,26.8353 3.98262,0 0,-26.6456 0,-0.6638 c -0.0121,-0.9445 -0.0683,-2.5906 -0.85342,-4.2671 -0.7017,-1.6803 -2.71956,-3.4782 -5.40498,-3.4137 l -18.87003,0 z m 156.8393,0 c -2.1876,0.313 -3.74794,1.8419 -4.36192,3.3188 -0.79652,1.6765 -0.84204,3.3151 -0.85341,4.2671 l 0,0.7586 0,26.5508 3.98261,0 0,-26.7404 0,-0.095 0,-0.4741 c -0.0182,-0.641 0.0907,-1.8282 0.47413,-2.5603 0.41722,-0.7396 0.61825,-0.9748 1.80166,-1.043 l 14.79258,0 0,-3.9827 -14.79258,0 c -0.33567,-0.01 -0.73056,-0.045 -1.04307,0 z m -568.1868699,0.2843 0,26.5508 c -0.012137,0.1214 0,0.4134 0,0.7586 0.00607,0.9406 0.060991,2.5868 0.8534182,4.2671 0.6979064,1.6461 2.6095632,3.3188 5.2153334,3.3188 l 0.1896485,0 34.8004968,0 c 2.696802,0.068 4.691904,-1.6385 5.404982,-3.3188 0.781352,-1.6803 0.845832,-3.3265 0.853418,-4.2671 l 0,-0.7586 0,-26.5508 -3.982618,0 0,26.7404 0,0.095 0,0.4741 c 0.01214,0.6145 -0.109844,1.7296 -0.474121,2.4655 -0.443778,0.7358 -0.614461,1.081 -1.801661,1.1379 l -15.266703,0 0,-30.9127 -3.982618,0 0,30.9127 -15.5511758,0 c -1.1834066,-0.057 -1.3540902,-0.4021 -1.8016606,-1.1379 -0.3717111,-0.7359 -0.4855002,-1.851 -0.4741213,-2.4655 l 0,-0.4741 0,-0.095 0,-26.7404 -3.9826182,0 z m 59.5496249,0 c -2.188787,0.3041 -3.741295,1.8353 -4.361916,3.3189 -0.79273,1.6764 -0.849625,3.3226 -0.853418,4.267 l 0,0.6638 0,18.3011 0,0.7586 c 0.003,0.9406 0.06099,2.5868 0.853418,4.2671 0.690321,1.6461 2.605771,3.3188 5.215334,3.3188 l 0.189648,0 19.723443,0 c 2.693009,0.068 4.691904,-1.6385 5.404982,-3.3188 0.788938,-1.6803 0.845832,-3.3265 0.853418,-4.2671 l -0.09467,-0.6638 0,-18.3959 0.09467,-0.6638 c -0.0061,-0.9444 -0.06463,-2.5906 -0.853418,-4.267 -0.713078,-1.6955 -2.711973,-3.3948 -5.404982,-3.3189 l -19.723443,0 c -0.336148,-0.01 -0.730374,-0.043 -1.043066,0 z m 116.064875,0 c -2.19024,0.3041 -3.74129,1.8353 -4.36192,3.3189 -0.78893,1.6764 -0.93307,3.3226 -0.94824,4.267 l 0.0947,0.6638 0,18.3011 -0.0947,0.7586 c 0.0152,0.9406 0.15931,2.5868 0.94824,4.2671 0.7017,1.6461 2.59819,3.3188 5.21534,3.3188 l 0.0947,0 19.81827,0 c 2.67404,0.068 4.59708,-1.6385 5.31016,-3.3188 0.78514,-1.6803 0.84203,-3.3265 0.85341,-4.2671 l 0,-0.6638 0,-18.3959 0,-0.6638 c -0.0121,-0.9444 -0.0683,-2.5906 -0.85341,-4.267 -0.71308,-1.6955 -2.63612,-3.3948 -5.31016,-3.3189 l -19.81827,0 c -0.33615,-0.01 -0.63534,-0.043 -0.94824,0 z m 34.51602,0 0,3.9826 26.55079,0 c 1.18341,0.065 1.36547,0.3073 1.80166,1.0431 0.36792,0.7358 0.49309,1.942 0.47412,2.5602 l 0,0.4742 0,0.095 0,18.5856 0,0.095 0,0.4741 c 0.0121,0.6144 -0.1062,1.7296 -0.47412,2.4654 -0.43619,0.7358 -0.61825,1.0772 -1.80166,1.1379 l -21.24063,0 c -1.3465,-0.057 -1.44512,-0.3755 -1.80166,-0.8534 -0.30723,-0.5083 -0.47412,-1.4262 -0.47412,-1.8965 l 0,-0.2843 0,-0.095 0,-7.3015 0,-0.095 0,-0.4742 c 0,-0.6182 0.0986,-1.8206 0.47412,-2.5602 0.4324,-0.7358 0.61446,-0.9748 1.80166,-1.0431 l 21.24063,0 0,-3.9826 -21.24063,0 c -2.6968,-0.068 -4.68052,1.6386 -5.40498,3.3189 -0.78514,1.684 -0.84583,3.3188 -0.85342,4.267 l 0,0.7586 0,6.9222 0,0.569 c 0.006,0.842 0.10256,2.3592 0.94824,3.8877 0.80411,1.5514 2.77646,2.9093 5.31016,2.8448 l 21.24063,0 0.18965,0 c 2.61715,0 4.52122,-1.6765 5.21533,-3.3189 0.78515,-1.6841 0.84584,-3.3264 0.85342,-4.2671 l 0,-0.7586 0,-18.301 0,-0.6638 c -0.006,-0.9445 -0.0683,-2.5906 -0.85342,-4.2671 -0.71307,-1.6917 -2.71576,-3.3909 -5.40498,-3.3188 l -26.55079,0 z m 154.75317,0 0,3.9826 26.64561,0 c 1.16824,0.065 1.26685,0.3073 1.70684,1.0431 0.37171,0.7358 0.47412,1.9458 0.47412,2.5602 l 0,0.4742 0,0.095 0,18.5856 0,0.095 0,0.4741 c 0,0.6144 -0.10226,1.7296 -0.47412,2.4654 -0.43999,0.7358 -0.5386,1.0772 -1.70684,1.1379 l -21.33545,0 c -1.1872,-0.061 -1.35788,-0.4021 -1.80166,-1.1379 -0.36413,-0.7396 -0.47412,-1.851 -0.47412,-2.4654 l 0,-0.4741 0,-0.095 0,-6.2584 0,-0.095 0,-0.095 0,-0.3793 c -0.0121,-0.6182 0.10984,-1.8206 0.47412,-2.5602 0.44378,-0.7358 0.61446,-0.9748 1.80166,-1.0431 l 21.33545,0 0,-3.9826 -21.33545,0 c -2.68542,-0.068 -4.69191,1.6386 -5.40498,3.3189 -0.77377,1.684 -0.85342,3.3188 -0.85342,4.267 l 0,0.7586 0,5.8791 0,0.7586 c 0.006,0.9407 0.0795,2.583 0.85342,4.2671 0.71307,1.6765 2.71956,3.3871 5.40498,3.3189 l 21.33545,0 0.0947,0 c 2.60577,0 4.52122,-1.6765 5.21533,-3.3189 0.78514,-1.6841 0.84583,-3.3264 0.85342,-4.2671 l 0,-0.6637 0,-18.3959 0,-0.6638 c -0.006,-0.9482 -0.0683,-2.5868 -0.85342,-4.2671 -0.7017,-1.6917 -2.62474,-3.3909 -5.31016,-3.3188 l -26.64561,0 z m 79.93684,0 0,3.9826 26.55079,0 c 1.17582,0.065 1.36167,0.3073 1.80166,1.0431 0.37171,0.7358 0.4855,1.9458 0.47412,2.5602 l 0,0.4742 0,0.095 0,18.5856 0,0.095 0,0.4741 c 0.0121,0.6144 -0.10226,1.7296 -0.47412,2.4654 -0.43999,0.7358 -0.62584,1.0772 -1.80166,1.1379 l -21.33546,0 c -1.33512,-0.057 -1.46029,-0.3755 -1.80166,-0.8534 -0.31482,-0.5083 -0.3793,-1.4262 -0.3793,-1.8965 l 0,-0.2843 0,-0.095 0,-7.3015 0,-0.095 0,-0.095 0,-0.3793 c 0,-0.6183 0.0874,-1.8206 0.47413,-2.5603 0.4286,-0.7358 0.51963,-0.9748 1.70683,-1.043 l 21.33546,0 0,-3.9826 -21.33546,0 c -2.6968,-0.068 -4.59708,1.6385 -5.31016,3.3188 -0.78514,1.6841 -0.84583,3.3189 -0.85341,4.2671 l 0,0.7586 0,6.9222 0,0.5689 c 0,0.842 0.10225,2.3554 0.94824,3.8878 0.80031,1.5437 2.77645,2.9092 5.31016,2.8447 l 21.24063,0 0.18964,0 c 2.5944,0 4.52122,-1.6765 5.21534,-3.3188 0.78135,-1.6841 0.84583,-3.3265 0.85342,-4.2671 l 0,-0.6638 0,-18.3959 0,-0.6638 c -0.009,-0.9482 -0.0722,-2.5868 -0.85342,-4.267 -0.71687,-1.6917 -2.71956,-3.391 -5.40498,-3.3189 l -26.55079,0 z m 43.4295,0 c -2.19127,0.3116 -3.7446,1.8387 -4.36191,3.3189 -0.48171,1.0316 -0.67136,1.9988 -0.7586,2.8447 l -0.0947,0 0,0.7586 0,0.6637 0,0.6638 0,16.1201 0,0.6638 c 0.0152,0.9482 0.0719,2.4958 0.85342,4.1723 0.6979,1.6537 2.60956,3.4136 5.21533,3.4136 l 0.18965,0 20.57686,0 0,-3.9826 -20.57686,0 c -1.17582,-0.065 -1.35788,-0.402 -1.80166,-1.1379 -0.37171,-0.7358 -0.48171,-1.832 -0.47412,-2.4654 l 0,-0.4741 0,-0.095 0,-17.4477 c 0.0495,-0.622 0.2124,-1.4337 0.47412,-1.9913 0.44378,-0.732 0.62584,-0.9748 1.80166,-1.043 l 21.24063,0 c 1.1872,0.068 1.35788,0.311 1.80166,1.043 0.37171,0.7435 0.48171,1.942 0.47412,2.5603 l 0,0.4741 0,0.095 0,29.9644 0,0.095 0,0.4741 c 0.006,0.6259 -0.10256,1.8245 -0.47412,2.5603 -0.44378,0.732 -0.61446,0.9786 -1.80166,1.0431 l -19.05967,0 0,3.9826 19.05967,0 0.18965,0 c 2.60198,0 4.50984,-1.6765 5.21533,-3.3189 0.78135,-1.6878 0.83825,-3.3226 0.85342,-4.2671 l 0,-0.6637 0,-29.7748 0,-0.6638 c 0,-0.9445 -0.0722,-2.5868 -0.85342,-4.2671 -0.71687,-1.6917 -2.71197,-3.3909 -5.40498,-3.3188 l -21.24063,0 c -0.33663,-0.01 -0.73004,-0.045 -1.04307,0 z m 40.30031,0 c -2.18609,0.3066 -3.72801,1.8387 -4.36192,3.3189 -0.77377,1.6764 -0.84204,3.3226 -0.85342,4.267 l 0,0.6638 0,18.3011 0,0.7586 c 0,0.9406 0.0798,2.583 0.85342,4.2671 0.71687,1.6765 2.72335,3.3871 5.40498,3.3188 l 26.55079,0 0,-3.9826 -26.55079,0 c -1.1834,-0.061 -1.35788,-0.402 -1.80166,-1.1379 -0.36033,-0.7358 -0.48929,-1.851 -0.47412,-2.4654 l 0,-0.4741 0,-0.095 0,-18.5856 0,-0.095 0,-0.095 0,-0.3793 c -0.0152,-0.6107 0.11379,-1.8168 0.47412,-2.5603 0.44378,-0.7358 0.61826,-0.9785 1.80166,-1.043 l 21.24063,0 c 1.17582,0.065 1.35789,0.3072 1.80166,1.043 0.31861,0.6524 0.45137,1.6196 0.47412,2.2758 l 0,7.1118 0,0.095 0,0.095 0,0.1896 c 0.006,0.3869 -0.1062,1.1114 -0.37929,1.5172 -0.29191,0.3755 -0.4893,0.7055 -1.89649,0.7586 l -21.24063,0 0,4.0775 21.24063,0 0.18965,0 c 2.39716,0 4.27847,-1.21 5.12051,-2.6551 0.87238,-1.4527 0.94066,-2.9054 0.94824,-3.6982 l 0,-0.5689 0,-5.9739 0,-0.6638 c -0.006,-0.9482 -0.0683,-2.5868 -0.85342,-4.2671 -0.70549,-1.6917 -2.72335,-3.3909 -5.40498,-3.3188 l -21.24063,0 c -0.33521,-0.01 -0.73077,-0.044 -1.04306,0 z m -467.957649,3.9826 19.723443,0 c 1.172028,0.064 1.365469,0.3035 1.801661,1.0431 0.360332,0.7358 0.481707,1.942 0.474121,2.5602 l -0.09467,0.4742 0,0.095 0,18.5856 0,0.095 0.09467,0.4741 c 0.0061,0.6144 -0.113789,1.7296 -0.474121,2.4654 -0.436192,0.7358 -0.629633,1.081 -1.801661,1.1379 l -19.723443,0 c -1.179613,-0.057 -1.361676,-0.4021 -1.80166,-1.1379 -0.364125,-0.7358 -0.4855,-1.851 -0.474121,-2.4654 l 0,-0.4741 0,-0.095 0,-18.5856 0,-0.095 0,-0.4742 c -0.01214,-0.6182 0.109844,-1.8244 0.474121,-2.5602 0.439984,-0.7396 0.614461,-0.9786 1.80166,-1.0431 z m 115.970049,0 19.81827,0 c 1.17203,0.064 1.26685,0.3035 1.70684,1.0431 0.37171,0.7358 0.4817,1.942 0.47412,2.5602 l 0,0.4742 0,0.095 0,18.5856 0,0.095 0,0.4741 c 0.006,0.6144 -0.10226,1.7296 -0.47412,2.4654 -0.43999,0.7358 -0.53481,1.081 -1.70684,1.1379 l -19.81827,0 c -1.1834,-0.057 -1.26306,-0.4021 -1.70683,-1.1379 -0.36034,-0.7358 -0.4855,-1.851 -0.47413,-2.4654 l 0,-0.4741 0,-0.095 0,-18.5856 0,-0.095 0,-0.4742 c -0.0121,-0.6182 0.11379,-1.8244 0.47413,-2.5602 0.44377,-0.7396 0.52343,-0.9786 1.70683,-1.0431 z"/>
-          
-          <path d="m 581.05128,330.18773 c -4.41881,-3.55781 -12.79369,-4.35054 -17.63731,-4.50605 -2.23406,-0.0607 -3.73228,0 -3.73228,0 l -113.71703,0 c 0,0 -3.44781,-0.26551 -7.66559,0 -4.10779,0.26551 -8.94382,1.03548 -11.97061,3.09127 -7.69215,5.18499 -8.65935,13.65469 -8.65935,21.33925 l 0,97.62724 28.29555,0 0,-85.71353 c 0,-12.3006 10.53687,-10.95409 10.53687,-10.95409 l 32.84712,0 0,96.55004 26.96801,0 0,-96.55004 33.6133,0 c 9.05003,0 9.72138,7.87041 9.75173,9.63414 l 0,0.36792 0,86.66556 28.31831,0 0,-96.66762 0,-0.68653 c -0.0416,-3.01162 -0.58791,-15.08464 -6.94872,-20.19756 m -239.26433,-4.50605 c -4.11537,0.26551 -8.9514,1.03548 -11.98578,3.09127 -7.69214,5.18499 -8.64797,13.65469 -8.64797,21.33925 l 0,97.62724 28.29176,0 0,-85.71353 c 0,-12.3006 10.54066,-10.95409 10.54066,-10.95409 l 37.53523,0 0,-25.39014 -48.07589,0 c 0,0 -3.44781,-0.26551 -7.65801,0 m -72.10814,85.60353 c 0,12.29681 -10.53308,10.95789 -10.53308,10.95789 l -38.64278,0 c -9.03485,0 -9.71759,-7.88179 -9.74793,-9.65311 l 0,-0.35274 0,-86.68453 -28.30693,0 0,96.69038 0,0.68653 c 0.034,2.98886 0.58411,15.07705 6.94493,20.19377 4.41501,3.55401 12.7861,4.35054 17.62972,4.49846 2.23785,0.0719 3.73228,0 3.73228,0 l 58.92379,0 c 0,0 3.4516,0.2731 7.658,0 4.11537,-0.26186 8.94762,-1.04306 11.98199,-3.09127 7.68456,-5.19637 8.65935,-13.64331 8.65935,-21.33545 l 0,-97.64242 -28.29934,0 0,85.73249 z m -140.16541,36.33665 28.29556,0 0,-173.62698 -28.29556,0 0,173.62698 z m -25.12084,-55.71114 c 0,0 0.25792,-8.97037 -5.344292,-12.84299 -5.158439,-3.53505 -12.573695,-3.53505 -12.573695,-3.53505 l -51.527494,0 c 0,0 -7.756623,0.51964 -7.756623,-7.75662 l 0,-8.69349 c 0,0 -0.682735,-9.18278 9.178986,-9.18278 l 66.820748,0 0,-24.34707 -72.294003,0 c 0,0 -11.978198,-0.16325 -16.734582,0.96341 C 7.8652753,328.00677 1,331.23079 1,345.55305 l 0,34.55016 c 0,18.76382 17.887645,16.79527 17.887645,16.79527 l 48.030376,0 c 11.382702,0 10.574799,8.40522 10.574799,8.40522 l 0,8.3066 c 0,10.98065 -12.444733,9.23209 -12.444733,9.23209 l -64.048087,0 0,24.77947 82.963627,0 c 0,0 10.863065,0.37171 15.858406,-5.39739 5.002927,-5.76911 4.570527,-15.24016 4.570527,-15.24016 l 0,-35.07359 z"/>
-          
-        </svg>
-      </g>
-    </g>
-    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="7" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke-linecap="butt">
-      <path fill="none" d="M475.0068 330 L531.9892 330" clip-path="url(#clipPath2)"/>
-    </g>
-    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="7" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-188,-113)" stroke-linecap="butt">
-      <path d="M461.0068 330 L482.0068 338.75 L476.7568 330 L482.0068 321.25 Z" stroke="none" clip-path="url(#clipPath2)"/>
-      <path d="M545.9892 330 L524.9892 321.25 L530.2392 330 L524.9892 338.75 Z" clip-path="url(#clipPath2)" stroke="none"/>
-      <text x="482.1659" y="304.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" font-weight="bold" stroke-width="1" xml:space="preserve">https</text>
-      <path fill="none" d="M332 193.5125 L332 266" clip-path="url(#clipPath2)"/>
-      <path d="M332 280 L340.75 259 L332 264.25 L323.25 259 Z" clip-path="url(#clipPath2)" stroke="none"/>
-      <text x="243.2822" y="237.8964" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" font-weight="bold" stroke-width="1" xml:space="preserve">git push</text>
-      <path fill="none" d="M804 506 L875 506" clip-path="url(#clipPath2)"/>
-      <path d="M889 506 L868 497.25 L873.25 506 L868 514.75 Z" clip-path="url(#clipPath2)" stroke="none"/>
-      <text x="813.2773" y="480.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" font-weight="bold" stroke-width="1" xml:space="preserve">Slurm API</text>
-      <path fill="none" d="M1017.7602 550 L1017.3571 623.971" clip-path="url(#clipPath2)"/>
-      <path d="M1017.2808 637.9708 L1026.1451 617.0188 L1017.3666 622.2211 L1008.6454 616.9235 Z" clip-path="url(#clipPath2)" stroke="none"/>
-    </g>
-  </g>
-</svg>
diff --git a/public/it4i/img/it4i-cz-128.png b/public/it4i/img/it4i-cz-128.png
deleted file mode 100644
index f04763f5fcfbfaedeebc1adc5226c060d015319a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-cz-128.png and /dev/null differ
diff --git a/public/it4i/img/it4i-cz-256.png b/public/it4i/img/it4i-cz-256.png
deleted file mode 100644
index da9d6e39b71e234a4de82fdf9a6e22ac09ac0d34..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-cz-256.png and /dev/null differ
diff --git a/public/it4i/img/it4i-cz-512.png b/public/it4i/img/it4i-cz-512.png
deleted file mode 100644
index f0fb0e39aa222b5357828de77f452961cf4e4524..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-cz-512.png and /dev/null differ
diff --git a/public/it4i/img/it4i-cz.png b/public/it4i/img/it4i-cz.png
deleted file mode 100644
index 6fca1728ab5790ac5f3ebd88c134933c2d4abc21..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-cz.png and /dev/null differ
diff --git a/public/it4i/img/it4i-en-128.png b/public/it4i/img/it4i-en-128.png
deleted file mode 100644
index 53a6d50dcdeccc171482745f7c44eee42777cb64..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-en-128.png and /dev/null differ
diff --git a/public/it4i/img/it4i-en-256.png b/public/it4i/img/it4i-en-256.png
deleted file mode 100644
index 7d6e8cc3d2a966338308df51764db9d9b271d3f3..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-en-256.png and /dev/null differ
diff --git a/public/it4i/img/it4i-en-512.png b/public/it4i/img/it4i-en-512.png
deleted file mode 100644
index 29ca2c0c842f1e9bd4215dd71e1291b9f6268df9..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-en-512.png and /dev/null differ
diff --git a/public/it4i/img/it4i-en.png b/public/it4i/img/it4i-en.png
deleted file mode 100644
index 64f5d4e9130ad3ff6aae9833cb6c6fb34e8e0cb5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/it4i-en.png and /dev/null differ
diff --git a/public/it4i/img/java_detection.jpeg b/public/it4i/img/java_detection.jpeg
deleted file mode 100644
index 0c1707c03f1b27c8490efdb4bc1305aa5adbb74a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/java_detection.jpeg and /dev/null differ
diff --git a/public/it4i/img/job.jpg b/public/it4i/img/job.jpg
deleted file mode 100644
index 0fa7f67f008bd5ae1432e00333208b055ace62c5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/job.jpg and /dev/null differ
diff --git a/public/it4i/img/job_sort_formula.png b/public/it4i/img/job_sort_formula.png
deleted file mode 100644
index 6078911559aa56effb4b342fa4ffd074cfaed46f..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/job_sort_formula.png and /dev/null differ
diff --git a/public/it4i/img/keypairs.png b/public/it4i/img/keypairs.png
deleted file mode 100644
index 8592e8ddefde27db0171e6a42df892afe5ec4c31..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/keypairs.png and /dev/null differ
diff --git a/public/it4i/img/keypairs1.png b/public/it4i/img/keypairs1.png
deleted file mode 100644
index 8cdcd2ea2b7a5ed8f2d828c0aeac26d12c62c4d0..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/keypairs1.png and /dev/null differ
diff --git a/public/it4i/img/legend.png b/public/it4i/img/legend.png
deleted file mode 100644
index 2950ff1bd7059f93195437476fa9333ec42da408..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/legend.png and /dev/null differ
diff --git a/public/it4i/img/login.jpeg b/public/it4i/img/login.jpeg
deleted file mode 100644
index a683564de8cf7ccd8bb24f2654fd3f2dca60bf79..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/login.jpeg and /dev/null differ
diff --git a/public/it4i/img/login.png b/public/it4i/img/login.png
deleted file mode 100644
index d71c648cabaec795578bdb3c73ece80153d5f6d8..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/login.png and /dev/null differ
diff --git a/public/it4i/img/logingui.jpg b/public/it4i/img/logingui.jpg
deleted file mode 100644
index 2a11a13f8c511c801ce67a963ee145f2dcbb6db9..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/logingui.jpg and /dev/null differ
diff --git a/public/it4i/img/loginwithprofile.jpeg b/public/it4i/img/loginwithprofile.jpeg
deleted file mode 100644
index 568c771e5e696085ec86ddc5fe71d2b190ff6a3f..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/loginwithprofile.jpeg and /dev/null differ
diff --git a/public/it4i/img/logo.png b/public/it4i/img/logo.png
deleted file mode 100644
index fbb51c7f5ee2e361a0cb3ebb69a46dc23a2818fc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/logo.png and /dev/null differ
diff --git a/public/it4i/img/logo2.png b/public/it4i/img/logo2.png
deleted file mode 100644
index 21df7a518c1711ca1cfe5c4cb901913411acab24..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/logo2.png and /dev/null differ
diff --git a/public/it4i/img/monitor_job.png b/public/it4i/img/monitor_job.png
deleted file mode 100644
index ec496165d2b7b0bfe9746eac1a5e6c52a31a6a89..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/monitor_job.png and /dev/null differ
diff --git a/public/it4i/img/mount.png b/public/it4i/img/mount.png
deleted file mode 100644
index adf2ba62d7e81350a8e5b5b8927a5b0ab50499a0..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/mount.png and /dev/null differ
diff --git a/public/it4i/img/node_gui_sshx.png b/public/it4i/img/node_gui_sshx.png
deleted file mode 100644
index 267e863b2dabc1d0aad3e0f470cac4c2958fbb91..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/node_gui_sshx.png and /dev/null differ
diff --git a/public/it4i/img/node_gui_xwindow.png b/public/it4i/img/node_gui_xwindow.png
deleted file mode 100644
index 37401d03b3184c444ad40dab0465e4bad3539fd3..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/node_gui_xwindow.png and /dev/null differ
diff --git a/public/it4i/img/ood-ansys.png b/public/it4i/img/ood-ansys.png
deleted file mode 100644
index 65208203ce448bdcccbb6b463ca5c27c68e9dbb7..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/ood-ansys.png and /dev/null differ
diff --git a/public/it4i/img/ovito_data_pipeline.png b/public/it4i/img/ovito_data_pipeline.png
deleted file mode 100644
index d4b65dd5dd0a4a94685b359155b0ed61fd8674be..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/ovito_data_pipeline.png and /dev/null differ
diff --git a/public/it4i/img/paraview.png b/public/it4i/img/paraview.png
deleted file mode 100644
index 21b738ac9aad725cc9f1e052ecd2ff9bc208f3c6..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview.png and /dev/null differ
diff --git a/public/it4i/img/paraview1.png b/public/it4i/img/paraview1.png
deleted file mode 100644
index 8e5a4704131aae4dc8cb7ec240dc30fcbda337f9..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview1.png and /dev/null differ
diff --git a/public/it4i/img/paraview2.png b/public/it4i/img/paraview2.png
deleted file mode 100644
index 46de3db2886e0ed6e115aecd24f6ee61550aa891..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview2.png and /dev/null differ
diff --git a/public/it4i/img/paraview_connect.png b/public/it4i/img/paraview_connect.png
deleted file mode 100644
index 4f05b6a7be747b08d867b594e8e4fe31331e3a91..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview_connect.png and /dev/null differ
diff --git a/public/it4i/img/paraview_connect_salomon.png b/public/it4i/img/paraview_connect_salomon.png
deleted file mode 100644
index 2e6b6f4e0749ced81826502ea37f3a75834e351a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview_connect_salomon.png and /dev/null differ
diff --git a/public/it4i/img/paraview_ssh_tunnel.png b/public/it4i/img/paraview_ssh_tunnel.png
deleted file mode 100644
index c4e75f0bcb8abc00e1b5d9f42edd4f0e53d8d416..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview_ssh_tunnel.png and /dev/null differ
diff --git a/public/it4i/img/paraview_ssh_tunnel_salomon.png b/public/it4i/img/paraview_ssh_tunnel_salomon.png
deleted file mode 100644
index b6dc810ed754e19c38380b01e57c2dd886e79b78..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/paraview_ssh_tunnel_salomon.png and /dev/null differ
diff --git a/public/it4i/img/pdf.png b/public/it4i/img/pdf.png
deleted file mode 100644
index 64fcbead36b4e6352527f37daf3b2c2d7dcc87a7..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/pdf.png and /dev/null differ
diff --git a/public/it4i/img/putty-tunnel.png b/public/it4i/img/putty-tunnel.png
deleted file mode 100644
index e2af3200f0c1c205cfb925f266a579ba65919249..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/putty-tunnel.png and /dev/null differ
diff --git a/public/it4i/img/puttygen.png b/public/it4i/img/puttygen.png
deleted file mode 100644
index f31259b9cc761fc6e16104d26756693f97e96afc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/puttygen.png and /dev/null differ
diff --git a/public/it4i/img/puttygenconvert.png b/public/it4i/img/puttygenconvert.png
deleted file mode 100644
index 349a0c933a5e233874978a1c5e1e8b586a4d05c4..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/puttygenconvert.png and /dev/null differ
diff --git a/public/it4i/img/quality1.png b/public/it4i/img/quality1.png
deleted file mode 100644
index ed6304dd9c6d1acdd4f3f9e4514930d2a7853d8c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/quality1.png and /dev/null differ
diff --git a/public/it4i/img/quality2.png b/public/it4i/img/quality2.png
deleted file mode 100644
index 73d9b9d31f7989d9e2c409d91494f872f97b9397..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/quality2.png and /dev/null differ
diff --git a/public/it4i/img/quality3.png b/public/it4i/img/quality3.png
deleted file mode 100644
index be279b83580528fcaaf2171c7c10f485e06420c7..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/quality3.png and /dev/null differ
diff --git a/public/it4i/img/report.png b/public/it4i/img/report.png
deleted file mode 100644
index d7614f04f06b8fb8b93e83225ad97e4210ea2c14..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/report.png and /dev/null differ
diff --git a/public/it4i/img/rsweb.png b/public/it4i/img/rsweb.png
deleted file mode 100644
index 568d23763fe2dacc3a86df3a2d4f37018bdf8399..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/rsweb.png and /dev/null differ
diff --git a/public/it4i/img/rswebsalomon.png b/public/it4i/img/rswebsalomon.png
deleted file mode 100644
index 40ccf2b42bc112a40e25a2fdbb8a0caeb3cf0f89..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/rswebsalomon.png and /dev/null differ
diff --git a/public/it4i/img/salomon-1.jpeg b/public/it4i/img/salomon-1.jpeg
deleted file mode 100644
index 4d2e1d70aeb1f40ddc0c75bc7cf0b825c1c75151..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/salomon-1.jpeg and /dev/null differ
diff --git a/public/it4i/img/salomon-2.jpg b/public/it4i/img/salomon-2.jpg
deleted file mode 100644
index 00283bcbb639d32788f9e1171bda7d43f8e486bc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/salomon-2.jpg and /dev/null differ
diff --git a/public/it4i/img/salomon-3.jpeg b/public/it4i/img/salomon-3.jpeg
deleted file mode 100644
index 1849be79392df2cfa1e14fe42b5cb435b86e89d3..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/salomon-3.jpeg and /dev/null differ
diff --git a/public/it4i/img/salomon-4.jpeg b/public/it4i/img/salomon-4.jpeg
deleted file mode 100644
index 2df7b232c839cf329f39fadd2407a7f7ddfd799b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/salomon-4.jpeg and /dev/null differ
diff --git a/public/it4i/img/salomon.jpg b/public/it4i/img/salomon.jpg
deleted file mode 100644
index 9365ab931a49eec462a6f2c24d3a86e5eaa7d9d1..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/salomon.jpg and /dev/null differ
diff --git a/public/it4i/img/scheme.png b/public/it4i/img/scheme.png
deleted file mode 100644
index 0f23978b92279535e42d93be79db253b03290c31..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/scheme.png and /dev/null differ
diff --git a/public/it4i/img/search_icon.png b/public/it4i/img/search_icon.png
deleted file mode 100644
index eb31b322f7eb54819810f5013404c6995312ec0a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/search_icon.png and /dev/null differ
diff --git a/public/it4i/img/securityg.png b/public/it4i/img/securityg.png
deleted file mode 100644
index 1ae4276cdff89edc857ee78764f8ff9be3e48b03..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/securityg.png and /dev/null differ
diff --git a/public/it4i/img/securityg1.png b/public/it4i/img/securityg1.png
deleted file mode 100644
index 3e5fa233dc073c1d5680ea322a29ea33090d1c61..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/securityg1.png and /dev/null differ
diff --git a/public/it4i/img/securityg2.png b/public/it4i/img/securityg2.png
deleted file mode 100644
index 085089831189743ead5993ad2eaa0105cb327175..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/securityg2.png and /dev/null differ
diff --git a/public/it4i/img/sgi-c1104-gp1.jpeg b/public/it4i/img/sgi-c1104-gp1.jpeg
deleted file mode 100644
index 820310be6a6cf96266bf056e6582c54b31185859..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/sgi-c1104-gp1.jpeg and /dev/null differ
diff --git a/public/it4i/img/sh.png b/public/it4i/img/sh.png
deleted file mode 100644
index f553447d731f19e73e3fb5819a667eda3b1254bd..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/sh.png and /dev/null differ
diff --git a/public/it4i/img/ssh.jpg b/public/it4i/img/ssh.jpg
deleted file mode 100644
index ee3bfb22fce23afdc485fb14b6b4ebce7fe6744f..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/ssh.jpg and /dev/null differ
diff --git a/public/it4i/img/sshfs.png b/public/it4i/img/sshfs.png
deleted file mode 100644
index 689ea0a6838c56e39a8098cfb0bd7b25c7daa495..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/sshfs.png and /dev/null differ
diff --git a/public/it4i/img/sshfs1.png b/public/it4i/img/sshfs1.png
deleted file mode 100644
index b582d53506aa30f021ee4f7092c2d549db150d4a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/sshfs1.png and /dev/null differ
diff --git a/public/it4i/img/sshfs2.png b/public/it4i/img/sshfs2.png
deleted file mode 100644
index 8b1a43a5f7e2f3848fb7a54d7877d3332eedece7..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/sshfs2.png and /dev/null differ
diff --git a/public/it4i/img/successfullconnection.jpg b/public/it4i/img/successfullconnection.jpg
deleted file mode 100644
index a7e8d5b749f86f54558586158ea7a00bf666961c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/successfullconnection.jpg and /dev/null differ
diff --git a/public/it4i/img/successfullinstalation.jpeg b/public/it4i/img/successfullinstalation.jpeg
deleted file mode 100644
index efbf8c8571ee9a225493e6f7dac49e594cd7408a..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/successfullinstalation.jpeg and /dev/null differ
diff --git a/public/it4i/img/totalview1.png b/public/it4i/img/totalview1.png
deleted file mode 100644
index 09678f174b4f5d05ccda08cc11de059ee53e7e09..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/totalview1.png and /dev/null differ
diff --git a/public/it4i/img/totalview2.png b/public/it4i/img/totalview2.png
deleted file mode 100644
index 9d26ffd97db190a6b8161dd6358fc759ad2cb2ca..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/totalview2.png and /dev/null differ
diff --git a/public/it4i/img/turbovncclientsetting.png b/public/it4i/img/turbovncclientsetting.png
deleted file mode 100644
index 71a69099299012be590972e22b8120e11127426c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/turbovncclientsetting.png and /dev/null differ
diff --git a/public/it4i/img/uv-2000.jpeg b/public/it4i/img/uv-2000.jpeg
deleted file mode 100644
index bc6e51cde6ca191e118211763d9e42c097222eaa..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/uv-2000.jpeg and /dev/null differ
diff --git a/public/it4i/img/virtualization-job-workflow.png b/public/it4i/img/virtualization-job-workflow.png
deleted file mode 100644
index f5602dd43de3879f6599a84170a7156100c27302..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/virtualization-job-workflow.png and /dev/null differ
diff --git a/public/it4i/img/viz1-win.png b/public/it4i/img/viz1-win.png
deleted file mode 100644
index c840ae208fa0ca9e36c4932b6d43d1786782f88d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz1-win.png and /dev/null differ
diff --git a/public/it4i/img/viz1.png b/public/it4i/img/viz1.png
deleted file mode 100644
index 689d39c5f39fd23b3b96799f5dd5442f588e2b45..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz1.png and /dev/null differ
diff --git a/public/it4i/img/viz2-win.png b/public/it4i/img/viz2-win.png
deleted file mode 100644
index b77c8e74e28a00b78f97d7fa46f1536e769e4237..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz2-win.png and /dev/null differ
diff --git a/public/it4i/img/viz2.png b/public/it4i/img/viz2.png
deleted file mode 100644
index bb78c6d8d27cc94f764f0698497f8aa9500e0e28..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz2.png and /dev/null differ
diff --git a/public/it4i/img/viz3-win.png b/public/it4i/img/viz3-win.png
deleted file mode 100644
index 04824a328fd13cf62fbbc17578708e93952418a0..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz3-win.png and /dev/null differ
diff --git a/public/it4i/img/viz3.png b/public/it4i/img/viz3.png
deleted file mode 100644
index c83cadae7d03ab036f6e4ab3d08cce30a2d3052b..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz3.png and /dev/null differ
diff --git a/public/it4i/img/viz4-win.png b/public/it4i/img/viz4-win.png
deleted file mode 100644
index 8c7f9ff2f9ef9bdec3af76e4e79c3cd108777fec..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz4-win.png and /dev/null differ
diff --git a/public/it4i/img/viz5-win.png b/public/it4i/img/viz5-win.png
deleted file mode 100644
index b66d45a498481d8e3cd36c0c9d365863ac323216..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz5-win.png and /dev/null differ
diff --git a/public/it4i/img/viz6-win.png b/public/it4i/img/viz6-win.png
deleted file mode 100644
index cbf7392e4f7172867ddce17bca7f2484d54bfdc6..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz6-win.png and /dev/null differ
diff --git a/public/it4i/img/viz7-win.png b/public/it4i/img/viz7-win.png
deleted file mode 100644
index f98361f6c84499bb42604bc802e350cab48b788f..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/viz7-win.png and /dev/null differ
diff --git a/public/it4i/img/vizsrv_5911.png b/public/it4i/img/vizsrv_5911.png
deleted file mode 100644
index d9aff04fccd06c8fc5c57977fb882186dde217da..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vizsrv_5911.png and /dev/null differ
diff --git a/public/it4i/img/vizsrv_logout.png b/public/it4i/img/vizsrv_logout.png
deleted file mode 100644
index f89ff34252586954c0435d65ed0d277645dfe9d5..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vizsrv_logout.png and /dev/null differ
diff --git a/public/it4i/img/vmware.png b/public/it4i/img/vmware.png
deleted file mode 100644
index 91a42a278140116832b7872d42f6cc763981d745..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vmware.png and /dev/null differ
diff --git a/public/it4i/img/vnc.jpg b/public/it4i/img/vnc.jpg
deleted file mode 100644
index 7e3fd8f2be0f6bce75e528bbc17e24045db3b62d..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vnc.jpg and /dev/null differ
diff --git a/public/it4i/img/vncviewer.png b/public/it4i/img/vncviewer.png
deleted file mode 100644
index 78929324b4ae1156903d309e529eda10b7ccec50..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vncviewer.png and /dev/null differ
diff --git a/public/it4i/img/vpnuiV.png b/public/it4i/img/vpnuiV.png
deleted file mode 100644
index 076e2c4f9873d72937ecab0bb542a7690f6a70dc..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vpnuiV.png and /dev/null differ
diff --git a/public/it4i/img/vtune-amplifier.png b/public/it4i/img/vtune-amplifier.png
deleted file mode 100644
index 75ee99d84b87649151f22edad65de021ec348f1c..0000000000000000000000000000000000000000
Binary files a/public/it4i/img/vtune-amplifier.png and /dev/null differ
diff --git a/public/it4i/irods.cyberduckprofile b/public/it4i/irods.cyberduckprofile
deleted file mode 100644
index 93c44e5bc9ba5029f8ef661d76f8ee6e9518f422..0000000000000000000000000000000000000000
--- a/public/it4i/irods.cyberduckprofile
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright (c) 2002-2017 iterate GmbH. All rights reserved.
-  ~ https://cyberduck.io/
-  ~
-  ~ This program is free software; you can redistribute it and/or modify
-  ~ it under the terms of the GNU General Public License as published by
-  ~ the Free Software Foundation; either version 2 of the License, or
-  ~ (at your option) any later version.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
-  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  ~ GNU General Public License for more details.
-  -->
-
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-    <dict>
-        <key>Protocol</key>
-        <string>irods</string>
-        <key>Vendor</key>
-        <string>it4i</string>
-        <key>Description</key>
-        <string>it4iInnovations - VSB - TU Ostrava</string>
-        <key>Hostname Configurable</key>
-        <false/>
-        <key>Port Configurable</key>
-        <false/>
-        <key>Default Hostname</key>
-        <string>irods.it4i.cz</string>
-        <key>Region</key>
-        <string>IT4I:it4iResc</string>
-        <key>Default Port</key>
-        <string>1247</string>
-        <key>Authorization</key>
-        <string>PAM</string>
-    </dict>
-</plist>
diff --git a/public/it4i/irods_environment.json b/public/it4i/irods_environment.json
deleted file mode 100644
index f8fee06a3c58c522d60d6d1de9e93f4b0c66a906..0000000000000000000000000000000000000000
--- a/public/it4i/irods_environment.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    "irods_host": "irods.it4i.cz",
-    "irods_port": 1247,
-    "irods_user_name": "some_user",
-    "irods_zone_name": "IT4I",
-    "irods_authentication_scheme": "pam_password",
-    "irods_ssl_verify_server": "cert",
-    "irods_ssl_ca_certificate_file": "~/.irods/chain_geant_ov_rsa_ca_4_full.pem",
-    "irods_encryption_algorithm": "AES-256-CBC",
-    "irods_encryption_key_size": 32,
-    "irods_encryption_num_hash_rounds": 16,
-    "irods_encryption_salt_size": 8
-}
diff --git a/public/it4i/karolina/.gitkeep b/public/it4i/karolina/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/karolina/img/.gitkeep b/public/it4i/karolina/img/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/karolina/img/apolloproliant.png b/public/it4i/karolina/img/apolloproliant.png
deleted file mode 100644
index 72c9ea3bec5498c92239720fca2b7075b7ab5a4c..0000000000000000000000000000000000000000
Binary files a/public/it4i/karolina/img/apolloproliant.png and /dev/null differ
diff --git a/public/it4i/karolina/img/compute_network_topology_v2.png b/public/it4i/karolina/img/compute_network_topology_v2.png
deleted file mode 100644
index 1393236a224c907a2577311d55c48a622788e0f0..0000000000000000000000000000000000000000
Binary files a/public/it4i/karolina/img/compute_network_topology_v2.png and /dev/null differ
diff --git a/public/it4i/karolina/img/hpeapollo6500.png b/public/it4i/karolina/img/hpeapollo6500.png
deleted file mode 100644
index 1f49f6d8c1b74f0fd525850f3b7b7465c79a82a4..0000000000000000000000000000000000000000
Binary files a/public/it4i/karolina/img/hpeapollo6500.png and /dev/null differ
diff --git a/public/it4i/karolina/img/proliantdl385.png b/public/it4i/karolina/img/proliantdl385.png
deleted file mode 100644
index b9120def4f3391d4d4b1a5559edaa6e3187df974..0000000000000000000000000000000000000000
Binary files a/public/it4i/karolina/img/proliantdl385.png and /dev/null differ
diff --git a/public/it4i/karolina/img/qrtx6000.png b/public/it4i/karolina/img/qrtx6000.png
deleted file mode 100644
index 0911ad6b26c3fe5f01c8c5a58ab2801fe78e877a..0000000000000000000000000000000000000000
Binary files a/public/it4i/karolina/img/qrtx6000.png and /dev/null differ
diff --git a/public/it4i/karolina/img/superdomeflex.png b/public/it4i/karolina/img/superdomeflex.png
deleted file mode 100644
index 3287a66e8d759c540b1b6355b36285da75f7b405..0000000000000000000000000000000000000000
Binary files a/public/it4i/karolina/img/superdomeflex.png and /dev/null differ
diff --git a/public/it4i/lumi/.gitkeep b/public/it4i/lumi/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/software/chemistry/files-nwchem/h2o.nw b/public/it4i/software/chemistry/files-nwchem/h2o.nw
deleted file mode 100644
index cc0e3ad24a1982494636b217bbdc5fd120440eb6..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-nwchem/h2o.nw
+++ /dev/null
@@ -1,14 +0,0 @@
-# taken from https://nwchemgit.github.io/Sample.html
-start h2o
-title "Water in 6-31g basis set"
-
-geometry units au
-  O      0.00000000    0.00000000    0.00000000
-  H      0.00000000    1.43042809   -1.10715266
-  H      0.00000000   -1.43042809   -1.10715266
-end
-basis
-  H library 6-31g
-  O library 6-31g
-end
-task scf
diff --git a/public/it4i/software/chemistry/files-phono3py/INCAR.txt b/public/it4i/software/chemistry/files-phono3py/INCAR.txt
deleted file mode 100644
index 4d2848958e6b7333abdb381bb664e1c389360741..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/INCAR.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-  PREC = Accurate
-  IBRION = -1
-  ENCUT = 500
-  EDIFF = 1.0e-08
-  ISMEAR = 0 
-  SIGMA = 0.01
-  IALGO = 38
-  LREAL = .FALSE.
-  ADDGRID = .TRUE.
-  LWAVE = .FALSE.
-  LCHARG = .FALSE.
-  NCORE = 8 
-  KPAR = 8
diff --git a/public/it4i/software/chemistry/files-phono3py/KPOINTS.txt b/public/it4i/software/chemistry/files-phono3py/KPOINTS.txt
deleted file mode 100644
index cae7400392404a4c9c4e3e7969722ed578825c51..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/KPOINTS.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Automatic mesh
-0
-Monkhorst Pack
-  3 3 3
-0.5 0.5 0.5
-
diff --git a/public/it4i/software/chemistry/files-phono3py/POSCAR.txt b/public/it4i/software/chemistry/files-phono3py/POSCAR.txt
deleted file mode 100644
index f72a61b992f3348c4260097c12b9bbb2bed40bc3..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/POSCAR.txt
+++ /dev/null
@@ -1,16 +0,0 @@
- Si
-   1.0
-     5.4335600309153529    0.0000000000000000    0.0000000000000000
-     0.0000000000000000    5.4335600309153529    0.0000000000000000
-     0.0000000000000000    0.0000000000000000    5.4335600309153529
- Si
-   8
-Direct
-   0.8750000000000000  0.8750000000000000  0.8750000000000000
-   0.8750000000000000  0.3750000000000000  0.3750000000000000
-   0.3750000000000000  0.8750000000000000  0.3750000000000000
-   0.3750000000000000  0.3750000000000000  0.8750000000000000
-   0.1250000000000000  0.1250000000000000  0.1250000000000000
-   0.1250000000000000  0.6250000000000000  0.6250000000000000
-   0.6250000000000000  0.1250000000000000  0.6250000000000000
-   0.6250000000000000  0.6250000000000000  0.1250000000000000
diff --git a/public/it4i/software/chemistry/files-phono3py/POTCAR.txt b/public/it4i/software/chemistry/files-phono3py/POTCAR.txt
deleted file mode 100644
index e69e8a3044c2885f5fc7d2b1e1c90ba7ffef914a..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/POTCAR.txt
+++ /dev/null
@@ -1,2208 +0,0 @@
-  PAW_PBE Si 05Jan2001                   
-   4.00000000000000     
- parameters from PSCTR are:
-   VRHFIN =Si: s2p2
-   LEXCH  = PE
-   EATOM  =   103.0669 eV,    7.5752 Ry
-
-   TITEL  = PAW_PBE Si 05Jan2001
-   LULTRA =        F    use ultrasoft PP ?
-   IUNSCR =        1    unscreen: 0-lin 1-nonlin 2-no
-   RPACOR =    1.500    partial core radius
-   POMASS =   28.085; ZVAL   =    4.000    mass and valenz
-   RCORE  =    1.900    outmost cutoff radius
-   RWIGS  =    2.480; RWIGS  =    1.312    wigner-seitz radius (au A)
-   ENMAX  =  245.345; ENMIN  =  184.009 eV
-   ICORE  =        2    local potential
-   LCOR   =        T    correct aug charges
-   LPAW   =        T    paw PP
-   EAUG   =  322.069
-   DEXC   =    0.000
-   RMAX   =    1.950    core radius for proj-oper
-   RAUG   =    1.300    factor for augmentation sphere
-   RDEP   =    1.993    radius for radial grids
-   RDEPT  =    1.837    core radius for aug-charge
- 
-   Atomic configuration
-    6 entries
-     n  l   j            E        occ.
-     1  0  0.50     -1785.8828   2.0000
-     2  0  0.50      -139.4969   2.0000
-     2  1  1.50       -95.5546   6.0000
-     3  0  0.50       -10.8127   2.0000
-     3  1  0.50        -4.0811   2.0000
-     3  2  1.50        -4.0817   0.0000
-   Description
-     l       E           TYP  RCUT    TYP  RCUT
-     0    -10.8127223     23  1.900
-     0     -7.6451159     23  1.900
-     1     -4.0811372     23  1.900
-     1      2.4879257     23  1.900
-     2     -4.0817478      7  1.900
-   Error from kinetic energy argument (eV)
-   NDATA  =      100
-   STEP   =   20.000   1.050
-  10.1      9.04      8.56      7.65      7.23      6.44      5.73      5.40
-  4.79      4.25      4.00      3.54      3.13      2.77      2.45      2.16
-  1.91      1.69      1.50      1.24      1.10     0.975     0.812     0.718
- 0.636     0.529     0.440     0.388     0.322     0.266     0.219     0.180
- 0.148     0.121     0.986E-01 0.804E-01 0.614E-01 0.504E-01 0.392E-01 0.328E-01
- 0.265E-01 0.220E-01 0.189E-01 0.166E-01 0.149E-01 0.135E-01 0.123E-01 0.109E-01
- 0.977E-02 0.840E-02 0.707E-02 0.605E-02 0.488E-02 0.387E-02 0.290E-02 0.229E-02
- 0.185E-02 0.152E-02 0.134E-02 0.125E-02 0.121E-02 0.117E-02 0.112E-02 0.102E-02
- 0.915E-03 0.776E-03 0.640E-03 0.524E-03 0.425E-03 0.369E-03 0.331E-03 0.310E-03
- 0.294E-03 0.273E-03 0.242E-03 0.210E-03 0.175E-03 0.146E-03 0.124E-03 0.113E-03
- 0.105E-03 0.973E-04 0.879E-04 0.755E-04 0.633E-04 0.539E-04 0.478E-04 0.438E-04
- 0.404E-04 0.362E-04 0.308E-04 0.264E-04 0.229E-04 0.209E-04 0.192E-04 0.170E-04
- 0.145E-04 0.126E-04 0.112E-04 0.103E-04
-END of PSCTR-controll parameters
- local part
-   98.2657514061040     
-  0.84157827E+01  0.84210738E+01  0.84276982E+01  0.84387529E+01  0.84542581E+01
-  0.84742396E+01  0.84987267E+01  0.85277503E+01  0.85613408E+01  0.85995259E+01
-  0.86423293E+01  0.86897698E+01  0.87418601E+01  0.87986073E+01  0.88600119E+01
-  0.89260684E+01  0.89967646E+01  0.90720817E+01  0.91519931E+01  0.92364635E+01
-  0.93254478E+01  0.94188892E+01  0.95167180E+01  0.96188495E+01  0.97251831E+01
-  0.98356006E+01  0.99499656E+01  0.10068122E+02  0.10189896E+02  0.10315092E+02
-  0.10443494E+02  0.10574869E+02  0.10708960E+02  0.10845494E+02  0.10984175E+02
-  0.11124688E+02  0.11266699E+02  0.11409854E+02  0.11553782E+02  0.11698093E+02
-  0.11842379E+02  0.11986220E+02  0.12129179E+02  0.12270807E+02  0.12410647E+02
-  0.12548229E+02  0.12683078E+02  0.12814715E+02  0.12942655E+02  0.13066413E+02
-  0.13185507E+02  0.13299453E+02  0.13407778E+02  0.13510011E+02  0.13605696E+02
-  0.13694386E+02  0.13775649E+02  0.13849071E+02  0.13914257E+02  0.13970832E+02
-  0.14018447E+02  0.14056776E+02  0.14085521E+02  0.14104413E+02  0.14113214E+02
-  0.14111717E+02  0.14099750E+02  0.14077174E+02  0.14043887E+02  0.13999823E+02
-  0.13944953E+02  0.13879287E+02  0.13802871E+02  0.13715791E+02  0.13618172E+02
-  0.13510174E+02  0.13391995E+02  0.13263871E+02  0.13126072E+02  0.12978902E+02
-  0.12822701E+02  0.12657837E+02  0.12484712E+02  0.12303752E+02  0.12115414E+02
-  0.11920177E+02  0.11718542E+02  0.11511032E+02  0.11298186E+02  0.11080557E+02
-  0.10858712E+02  0.10633228E+02  0.10404687E+02  0.10173679E+02  0.99407916E+01
-  0.97066145E+01  0.94717325E+01  0.92367246E+01  0.90021610E+01  0.87686002E+01
-  0.85365875E+01  0.83066515E+01  0.80793028E+01  0.78550311E+01  0.76343038E+01
-  0.74175639E+01  0.72052283E+01  0.69976864E+01  0.67952987E+01  0.65983955E+01
-  0.64072761E+01  0.62222079E+01  0.60434255E+01  0.58711305E+01  0.57054914E+01
-  0.55466428E+01  0.53946864E+01  0.52496904E+01  0.51116908E+01  0.49806913E+01
-  0.48566647E+01  0.47395535E+01  0.46292714E+01  0.45257040E+01  0.44287107E+01
-  0.43381259E+01  0.42537609E+01  0.41754051E+01  0.41028283E+01  0.40357824E+01
-  0.39740032E+01  0.39172126E+01  0.38651205E+01  0.38174269E+01  0.37738239E+01
-  0.37339980E+01  0.36976316E+01  0.36644057E+01  0.36340010E+01  0.36061008E+01
-  0.35803917E+01  0.35565662E+01  0.35343243E+01  0.35133744E+01  0.34934356E+01
-  0.34742386E+01  0.34555273E+01  0.34370594E+01  0.34186082E+01  0.33999625E+01
-  0.33809283E+01  0.33613289E+01  0.33410051E+01  0.33198163E+01  0.32976400E+01
-  0.32743723E+01  0.32499276E+01  0.32242386E+01  0.31972561E+01  0.31689481E+01
-  0.31393000E+01  0.31083133E+01  0.30760055E+01  0.30424088E+01  0.30075693E+01
-  0.29715464E+01  0.29344112E+01  0.28962459E+01  0.28571426E+01  0.28172018E+01
-  0.27765317E+01  0.27352466E+01  0.26934661E+01  0.26513137E+01  0.26089155E+01
-  0.25663991E+01  0.25238926E+01  0.24815235E+01  0.24394172E+01  0.23976965E+01
-  0.23564804E+01  0.23158831E+01  0.22760134E+01  0.22369739E+01  0.21988601E+01
-  0.21617599E+01  0.21257533E+01  0.20909117E+01  0.20572975E+01  0.20249639E+01
-  0.19939549E+01  0.19643047E+01  0.19360380E+01  0.19091702E+01  0.18837070E+01
-  0.18596451E+01  0.18369721E+01  0.18156671E+01  0.17957010E+01  0.17770369E+01
-  0.17596305E+01  0.17434311E+01  0.17283815E+01  0.17144192E+01  0.17014767E+01
-  0.16894823E+01  0.16783606E+01  0.16680337E+01  0.16584212E+01  0.16494414E+01
-  0.16410120E+01  0.16330503E+01  0.16254746E+01  0.16182040E+01  0.16111597E+01
-  0.16042653E+01  0.15974473E+01  0.15906355E+01  0.15837638E+01  0.15767703E+01
-  0.15695978E+01  0.15621942E+01  0.15545124E+01  0.15465111E+01  0.15381545E+01
-  0.15294125E+01  0.15202610E+01  0.15106817E+01  0.15006618E+01  0.14901946E+01
-  0.14792787E+01  0.14679181E+01  0.14561220E+01  0.14439045E+01  0.14312843E+01
-  0.14182845E+01  0.14049320E+01  0.13912573E+01  0.13772941E+01  0.13630790E+01
-  0.13486508E+01  0.13340503E+01  0.13193195E+01  0.13045019E+01  0.12896413E+01
-  0.12747816E+01  0.12599667E+01  0.12452398E+01  0.12306429E+01  0.12162169E+01
-  0.12020007E+01  0.11880315E+01  0.11743438E+01  0.11609698E+01  0.11479386E+01
-  0.11352766E+01  0.11230067E+01  0.11111486E+01  0.10997185E+01  0.10887293E+01
-  0.10781901E+01  0.10681067E+01  0.10584812E+01  0.10493126E+01  0.10405963E+01
-  0.10323245E+01  0.10244864E+01  0.10170684E+01  0.10100541E+01  0.10034245E+01
-  0.99715842E+00  0.99123278E+00  0.98562260E+00  0.98030147E+00  0.97524176E+00
-  0.97041492E+00  0.96579177E+00  0.96134272E+00  0.95703813E+00  0.95284851E+00
-  0.94874481E+00  0.94469866E+00  0.94068261E+00  0.93667036E+00  0.93263699E+00
-  0.92855911E+00  0.92441506E+00  0.92018508E+00  0.91585139E+00  0.91139837E+00
-  0.90681257E+00  0.90208284E+00  0.89720031E+00  0.89215846E+00  0.88695307E+00
-  0.88158221E+00  0.87604623E+00  0.87034764E+00  0.86449105E+00  0.85848310E+00
-  0.85233228E+00  0.84604885E+00  0.83964467E+00  0.83313304E+00  0.82652853E+00
-  0.81984678E+00  0.81310436E+00  0.80631854E+00  0.79950711E+00  0.79268821E+00
-  0.78588011E+00  0.77910103E+00  0.77236900E+00  0.76570163E+00  0.75911595E+00
-  0.75262828E+00  0.74625406E+00  0.74000769E+00  0.73390245E+00  0.72795034E+00
-  0.72216201E+00  0.71654666E+00  0.71111201E+00  0.70586419E+00  0.70080779E+00
-  0.69594576E+00  0.69127948E+00  0.68680873E+00  0.68253171E+00  0.67844512E+00
-  0.67454419E+00  0.67082277E+00  0.66727336E+00  0.66388728E+00  0.66065470E+00
-  0.65756482E+00  0.65460595E+00  0.65176565E+00  0.64903085E+00  0.64638804E+00
-  0.64382333E+00  0.64132264E+00  0.63887182E+00  0.63645681E+00  0.63406371E+00
-  0.63167898E+00  0.62928953E+00  0.62688282E+00  0.62444703E+00  0.62197109E+00
-  0.61944485E+00  0.61685909E+00  0.61420564E+00  0.61147745E+00  0.60866857E+00
-  0.60577426E+00  0.60279097E+00  0.59971637E+00  0.59654936E+00  0.59329001E+00
-  0.58993961E+00  0.58650059E+00  0.58297648E+00  0.57937187E+00  0.57569237E+00
-  0.57194448E+00  0.56813556E+00  0.56427372E+00  0.56036773E+00  0.55642691E+00
-  0.55246106E+00  0.54848032E+00  0.54449508E+00  0.54051586E+00  0.53655323E+00
-  0.53261770E+00  0.52871958E+00  0.52486894E+00  0.52107546E+00  0.51734836E+00
-  0.51369633E+00  0.51012743E+00  0.50664899E+00  0.50326761E+00  0.49998904E+00
-  0.49681819E+00  0.49375905E+00  0.49081466E+00  0.48798714E+00  0.48527765E+00
-  0.48268635E+00  0.48021249E+00  0.47785436E+00  0.47560937E+00  0.47347400E+00
-  0.47144395E+00  0.46951410E+00  0.46767862E+00  0.46593101E+00  0.46426418E+00
-  0.46267051E+00  0.46114196E+00  0.45967012E+00  0.45824631E+00  0.45686165E+00
-  0.45550718E+00  0.45417389E+00  0.45285284E+00  0.45153526E+00  0.45021257E+00
-  0.44887651E+00  0.44751921E+00  0.44613322E+00  0.44471163E+00  0.44324809E+00
-  0.44173687E+00  0.44017292E+00  0.43855189E+00  0.43687018E+00  0.43512494E+00
-  0.43331410E+00  0.43143638E+00  0.42949128E+00  0.42747908E+00  0.42540083E+00
-  0.42325834E+00  0.42105410E+00  0.41879135E+00  0.41647393E+00  0.41410629E+00
-  0.41169346E+00  0.40924092E+00  0.40675463E+00  0.40424087E+00  0.40170626E+00
-  0.39915764E+00  0.39660202E+00  0.39404651E+00  0.39149826E+00  0.38896435E+00
-  0.38645179E+00  0.38396739E+00  0.38151775E+00  0.37910915E+00  0.37674752E+00
-  0.37443839E+00  0.37218682E+00  0.36999739E+00  0.36787410E+00  0.36582042E+00
-  0.36383920E+00  0.36193268E+00  0.36010247E+00  0.35834954E+00  0.35667423E+00
-  0.35507622E+00  0.35355459E+00  0.35210779E+00  0.35073369E+00  0.34942958E+00
-  0.34819223E+00  0.34701790E+00  0.34590241E+00  0.34484115E+00  0.34382917E+00
-  0.34286120E+00  0.34193171E+00  0.34103498E+00  0.34016513E+00  0.33931621E+00
-  0.33848221E+00  0.33765717E+00  0.33683518E+00  0.33601049E+00  0.33517751E+00
-  0.33433089E+00  0.33346559E+00  0.33257685E+00  0.33166032E+00  0.33071204E+00
-  0.32972848E+00  0.32870659E+00  0.32764378E+00  0.32653800E+00  0.32538767E+00
-  0.32419176E+00  0.32294975E+00  0.32166166E+00  0.32032801E+00  0.31894983E+00
-  0.31752862E+00  0.31606638E+00  0.31456552E+00  0.31302889E+00  0.31145970E+00
-  0.30986149E+00  0.30823814E+00  0.30659375E+00  0.30493266E+00  0.30325937E+00
-  0.30157850E+00  0.29989478E+00  0.29821295E+00  0.29653774E+00  0.29487384E+00
-  0.29322581E+00  0.29159810E+00  0.28999494E+00  0.28842037E+00  0.28687815E+00
-  0.28537173E+00  0.28390425E+00  0.28247850E+00  0.28109688E+00  0.27976142E+00
-  0.27847372E+00  0.27723499E+00  0.27604598E+00  0.27490705E+00  0.27381811E+00
-  0.27277867E+00  0.27178782E+00  0.27084424E+00  0.26994624E+00  0.26909178E+00
-  0.26827846E+00  0.26750359E+00  0.26676420E+00  0.26605705E+00  0.26537872E+00
-  0.26472559E+00  0.26409390E+00  0.26347982E+00  0.26287940E+00  0.26228871E+00
-  0.26170380E+00  0.26112078E+00  0.26053582E+00  0.25994525E+00  0.25934552E+00
-  0.25873328E+00  0.25810539E+00  0.25745897E+00  0.25679138E+00  0.25610030E+00
-  0.25538370E+00  0.25463989E+00  0.25386749E+00  0.25306548E+00  0.25223319E+00
-  0.25137030E+00  0.25047681E+00  0.24955311E+00  0.24859991E+00  0.24761822E+00
-  0.24660941E+00  0.24557510E+00  0.24451722E+00  0.24343793E+00  0.24233963E+00
-  0.24122491E+00  0.24009654E+00  0.23895742E+00  0.23781058E+00  0.23665912E+00
-  0.23550619E+00  0.23435497E+00  0.23320861E+00  0.23207023E+00  0.23094290E+00
-  0.22982954E+00  0.22873298E+00  0.22765588E+00  0.22660071E+00  0.22556975E+00
-  0.22456503E+00  0.22358838E+00  0.22264133E+00  0.22172517E+00  0.22084090E+00
-  0.21998924E+00  0.21917062E+00  0.21838518E+00  0.21763278E+00  0.21691298E+00
-  0.21622507E+00  0.21556808E+00  0.21494076E+00  0.21434166E+00  0.21376905E+00
-  0.21322105E+00  0.21269556E+00  0.21219033E+00  0.21170298E+00  0.21123101E+00
-  0.21077184E+00  0.21032282E+00  0.20988128E+00  0.20944453E+00  0.20900989E+00
-  0.20857473E+00  0.20813650E+00  0.20769272E+00  0.20724104E+00  0.20677924E+00
-  0.20630528E+00  0.20581727E+00  0.20531352E+00  0.20479256E+00  0.20425312E+00
-  0.20369419E+00  0.20311496E+00  0.20251488E+00  0.20189363E+00  0.20125114E+00
-  0.20058759E+00  0.19990339E+00  0.19919917E+00  0.19847580E+00  0.19773436E+00
-  0.19697612E+00  0.19620254E+00  0.19541525E+00  0.19461602E+00  0.19380675E+00
-  0.19298946E+00  0.19216623E+00  0.19133925E+00  0.19051071E+00  0.18968285E+00
-  0.18885789E+00  0.18803806E+00  0.18722550E+00  0.18642234E+00  0.18563058E+00
-  0.18485213E+00  0.18408879E+00  0.18334221E+00  0.18261386E+00  0.18190508E+00
-  0.18121702E+00  0.18055061E+00  0.17990663E+00  0.17928561E+00  0.17868791E+00
-  0.17811368E+00  0.17756283E+00  0.17703511E+00  0.17653003E+00  0.17604693E+00
-  0.17558494E+00  0.17514305E+00  0.17472004E+00  0.17431456E+00  0.17392512E+00
-  0.17355012E+00  0.17318784E+00  0.17283649E+00  0.17249419E+00  0.17215904E+00
-  0.17182910E+00  0.17150240E+00  0.17117700E+00  0.17085099E+00  0.17052249E+00
-  0.17018968E+00  0.16985083E+00  0.16950432E+00  0.16914863E+00  0.16878235E+00
-  0.16840425E+00  0.16801322E+00  0.16760831E+00  0.16718876E+00  0.16675395E+00
-  0.16630348E+00  0.16583708E+00  0.16535470E+00  0.16485644E+00  0.16434260E+00
-  0.16381364E+00  0.16327019E+00  0.16271304E+00  0.16214313E+00  0.16156154E+00
-  0.16096948E+00  0.16036827E+00  0.15975933E+00  0.15914418E+00  0.15852437E+00
-  0.15790155E+00  0.15727738E+00  0.15665353E+00  0.15603169E+00  0.15541354E+00
-  0.15480073E+00  0.15419485E+00  0.15359745E+00  0.15300998E+00  0.15243381E+00
-  0.15187022E+00  0.15132035E+00  0.15078523E+00  0.15026574E+00  0.14976264E+00
-  0.14927652E+00  0.14880782E+00  0.14835684E+00  0.14792369E+00  0.14750835E+00
-  0.14711063E+00  0.14673020E+00  0.14636656E+00  0.14601907E+00  0.14568697E+00
-  0.14536935E+00  0.14506518E+00  0.14477334E+00  0.14449260E+00  0.14422166E+00
-  0.14395913E+00  0.14370359E+00  0.14345355E+00  0.14320753E+00  0.14296401E+00
-  0.14272149E+00  0.14247846E+00  0.14223347E+00  0.14198509E+00  0.14173199E+00
-  0.14147286E+00  0.14120650E+00  0.14093181E+00  0.14064779E+00  0.14035355E+00
-  0.14004833E+00  0.13973149E+00  0.13940254E+00  0.13906109E+00  0.13870694E+00
-  0.13833999E+00  0.13796029E+00  0.13756804E+00  0.13716357E+00  0.13674733E+00
-  0.13631991E+00  0.13588203E+00  0.13543449E+00  0.13497823E+00  0.13451425E+00
-  0.13404367E+00  0.13356764E+00  0.13308739E+00  0.13260420E+00  0.13211936E+00
-  0.13163422E+00  0.13115008E+00  0.13066829E+00  0.13019015E+00  0.12971693E+00
-  0.12924988E+00  0.12879016E+00  0.12833890E+00  0.12789711E+00  0.12746576E+00
-  0.12704568E+00  0.12663761E+00  0.12624221E+00  0.12585997E+00  0.12549131E+00
-  0.12513650E+00  0.12479568E+00  0.12446890E+00  0.12415605E+00  0.12385692E+00
-  0.12357117E+00  0.12329835E+00  0.12303789E+00  0.12278912E+00  0.12255128E+00
-  0.12232351E+00  0.12210488E+00  0.12189437E+00  0.12169094E+00  0.12149345E+00
-  0.12130077E+00  0.12111171E+00  0.12092509E+00  0.12073970E+00  0.12055436E+00
-  0.12036791E+00  0.12017920E+00  0.11998713E+00  0.11979067E+00  0.11958882E+00
-  0.11938067E+00  0.11916539E+00  0.11894223E+00  0.11871054E+00  0.11846977E+00
-  0.11821946E+00  0.11795928E+00  0.11768898E+00  0.11740846E+00  0.11711769E+00
-  0.11681676E+00  0.11650590E+00  0.11618540E+00  0.11585569E+00  0.11551727E+00
-  0.11517075E+00  0.11481682E+00  0.11445624E+00  0.11408986E+00  0.11371856E+00
-  0.11334329E+00  0.11296505E+00  0.11258484E+00  0.11220371E+00  0.11182270E+00
-  0.11144287E+00  0.11106526E+00  0.11069088E+00  0.11032073E+00  0.10995575E+00
-  0.10959686E+00  0.10924489E+00  0.10890064E+00  0.10856481E+00  0.10823802E+00
-  0.10792083E+00  0.10761369E+00  0.10731697E+00  0.10703093E+00  0.10675575E+00
-  0.10649150E+00  0.10623816E+00  0.10599560E+00  0.10576362E+00  0.10554191E+00
-  0.10533006E+00  0.10512760E+00  0.10493397E+00  0.10474853E+00  0.10457057E+00
-  0.10439934E+00  0.10423403E+00  0.10407377E+00  0.10391769E+00  0.10376486E+00
-  0.10361436E+00  0.10346525E+00  0.10331660E+00  0.10316749E+00  0.10301700E+00
-  0.10286427E+00  0.10270845E+00  0.10254875E+00  0.10238443E+00  0.10221481E+00
-  0.10203926E+00  0.10185725E+00  0.10166830E+00  0.10147204E+00  0.10126815E+00
-  0.10105642E+00  0.10083671E+00  0.10060898E+00  0.10037327E+00  0.10012971E+00
-  0.99878499E-01  0.99619941E-01  0.99354403E-01  0.99082329E-01  0.98804234E-01
-  0.98520694E-01  0.98232343E-01  0.97939865E-01  0.97643987E-01  0.97345468E-01
-  0.97045098E-01  0.96743682E-01  0.96442039E-01  0.96140988E-01  0.95841346E-01
-  0.95543917E-01  0.95249483E-01  0.94958801E-01  0.94672589E-01  0.94391526E-01
-  0.94116241E-01  0.93847307E-01  0.93585238E-01  0.93330481E-01  0.93083416E-01
-  0.92844349E-01  0.92613514E-01  0.92391067E-01  0.92177088E-01  0.91971582E-01
-  0.91774473E-01  0.91585615E-01  0.91404784E-01  0.91231686E-01  0.91065960E-01
-  0.90907179E-01  0.90754858E-01  0.90608455E-01  0.90467383E-01  0.90331010E-01
-  0.90198671E-01  0.90069670E-01  0.89943293E-01  0.89818810E-01  0.89695483E-01
-  0.89572578E-01  0.89449363E-01  0.89325125E-01  0.89199170E-01  0.89070830E-01
-  0.88939475E-01  0.88804513E-01  0.88665401E-01  0.88521645E-01  0.88372809E-01
-  0.88218518E-01  0.88058459E-01  0.87892386E-01  0.87720120E-01  0.87541552E-01
-  0.87356640E-01  0.87165411E-01  0.86967963E-01  0.86764459E-01  0.86555125E-01
-  0.86340254E-01  0.86120194E-01  0.85895352E-01  0.85666183E-01  0.85433191E-01
-  0.85196919E-01  0.84957943E-01  0.84716871E-01  0.84474330E-01  0.84230965E-01
-  0.83987427E-01  0.83744375E-01  0.83502460E-01  0.83262325E-01  0.83024599E-01
-  0.82789886E-01  0.82558766E-01  0.82331783E-01  0.82109442E-01  0.81892206E-01
-  0.81680487E-01  0.81474646E-01  0.81274989E-01  0.81081762E-01  0.80895153E-01
-  0.80715285E-01  0.80542223E-01  0.80375965E-01  0.80216452E-01  0.80063558E-01
-  0.79917102E-01  0.79776842E-01  0.79642482E-01  0.79513673E-01  0.79390016E-01
-  0.79271070E-01  0.79156353E-01  0.79045348E-01  0.78937510E-01  0.78832270E-01
-  0.78729044E-01  0.78627233E-01  0.78526236E-01  0.78425450E-01  0.78324279E-01
-  0.78222140E-01  0.78118466E-01  0.78012713E-01  0.77904366E-01  0.77792943E-01
-  0.77678000E-01  0.77559135E-01  0.77435994E-01  0.77308271E-01  0.77175713E-01
-  0.77038121E-01  0.76895353E-01  0.76747321E-01  0.76593998E-01  0.76435410E-01
-  0.76271640E-01  0.76102829E-01  0.75929167E-01  0.75750899E-01  0.75568317E-01
- gradient corrections used for XC
-           5
- core charge-density (partial)
-  0.13681949E+01  0.13676959E+01  0.13662000E+01  0.13637104E+01  0.13602324E+01
-  0.13557734E+01  0.13503428E+01  0.13439523E+01  0.13366153E+01  0.13283472E+01
-  0.13191654E+01  0.13090891E+01  0.12981392E+01  0.12863383E+01  0.12737106E+01
-  0.12602819E+01  0.12460793E+01  0.12311313E+01  0.12154677E+01  0.11991193E+01
-  0.11821181E+01  0.11644969E+01  0.11462894E+01  0.11275300E+01  0.11082538E+01
-  0.10884961E+01  0.10682931E+01  0.10476808E+01  0.10266956E+01  0.10053741E+01
-  0.98375262E+00  0.96186755E+00  0.93975498E+00  0.91745072E+00  0.89499016E+00
-  0.87240821E+00  0.84973922E+00  0.82701686E+00  0.80427411E+00  0.78154316E+00
-  0.75885532E+00  0.73624100E+00  0.71372964E+00  0.69134965E+00  0.66912839E+00
-  0.64709210E+00  0.62526589E+00  0.60367368E+00  0.58233822E+00  0.56128101E+00
-  0.54052235E+00  0.52008128E+00  0.49997557E+00  0.48022176E+00  0.46083511E+00
-  0.44182966E+00  0.42321818E+00  0.40501223E+00  0.38722214E+00  0.36985705E+00
-  0.35292494E+00  0.33643261E+00  0.32038576E+00  0.30478900E+00  0.28964586E+00
-  0.27495885E+00  0.26072948E+00  0.24695831E+00  0.23364497E+00  0.22078821E+00
-  0.20838595E+00  0.19643529E+00  0.18493257E+00  0.17387344E+00  0.16325283E+00
-  0.15306506E+00  0.14330386E+00  0.13396239E+00  0.12503331E+00  0.11650882E+00
-  0.10838067E+00  0.10064023E+00  0.93278518E-01  0.86286246E-01  0.79653843E-01
-  0.73371502E-01  0.67429213E-01  0.61816795E-01  0.56523931E-01  0.51540200E-01
-  0.46855106E-01  0.42458107E-01  0.38338646E-01  0.34486172E-01  0.30890172E-01
-  0.27540190E-01  0.24425849E-01  0.21536878E-01  0.18863124E-01  0.16394576E-01
-  0.14121382E-01  0.12033859E-01  0.10122515E-01  0.83780585E-02  0.67914089E-02
-  0.53537106E-02  0.40563407E-02  0.28909176E-02  0.18493085E-02  0.92363542E-03
-  0.10628041E-03 -0.61011040E-03 -0.12326236E-02 -0.17680763E-02 -0.22230145E-02
- -0.26037132E-02 -0.29161761E-02 -0.31661366E-02 -0.33590602E-02 -0.35001461E-02
- -0.35943308E-02 -0.36462914E-02 -0.36604499E-02 -0.36409778E-02 -0.35918010E-02
- -0.35166057E-02 -0.34188437E-02 -0.33017394E-02 -0.31682955E-02 -0.30213003E-02
- -0.28633343E-02 -0.26967779E-02 -0.25238181E-02 -0.23464567E-02 -0.21665170E-02
- -0.19856524E-02 -0.18053531E-02 -0.16269545E-02 -0.14516446E-02 -0.12804716E-02
- -0.11143515E-02 -0.95407586E-03 -0.80031865E-03 -0.65364404E-03 -0.51451333E-03
- -0.38329200E-03 -0.26025655E-03 -0.14560117E-03 -0.39444206E-04  0.58165511E-04
-  0.14724262E-03  0.22785936E-03  0.30013988E-03  0.36425486E-03  0.42041628E-03
-  0.46887249E-03  0.50990345E-03  0.54381626E-03  0.57094089E-03  0.59162618E-03
-  0.60623606E-03  0.61514598E-03  0.61873965E-03  0.61740590E-03  0.61153586E-03
-  0.60152029E-03  0.58774720E-03  0.57059962E-03  0.55045360E-03  0.52767638E-03
-  0.50262483E-03  0.47564398E-03  0.44706578E-03  0.41720804E-03  0.38637349E-03
-  0.35484905E-03  0.32290520E-03  0.29079554E-03  0.25875640E-03  0.22700668E-03
-  0.19574774E-03  0.16516339E-03  0.13542003E-03  0.10666685E-03  0.79036085E-04
-  0.52643449E-04  0.27588516E-04  0.39552468E-05 -0.18187463E-04 -0.38785176E-04
- -0.57797261E-04 -0.75196218E-04 -0.90966955E-04 -0.10510606E-03 -0.11762103E-03
- -0.12852953E-03 -0.13785857E-03 -0.14564378E-03 -0.15192857E-03 -0.15676342E-03
- -0.16020506E-03 -0.16231574E-03 -0.16316249E-03 -0.16281640E-03 -0.16135194E-03
- -0.15884627E-03 -0.15537858E-03 -0.15102952E-03 -0.14588055E-03 -0.14001345E-03
- -0.13350974E-03 -0.12645021E-03 -0.11891448E-03 -0.11098055E-03 -0.10272444E-03
- -0.94219805E-04 -0.85537640E-04 -0.76745997E-04 -0.67909725E-04 -0.59090261E-04
- -0.50345444E-04 -0.41729365E-04 -0.33292246E-04 -0.25080348E-04 -0.17135911E-04
- -0.94971158E-05 -0.21980783E-05  0.47311370E-05  0.11264478E-04  0.17379845E-04
-  0.23059011E-04  0.28287520E-04  0.33054576E-04  0.37352909E-04  0.41178630E-04
-  0.44531077E-04  0.47412643E-04  0.49828603E-04  0.51786928E-04  0.53298092E-04
-  0.54374882E-04  0.55032192E-04  0.55286830E-04  0.55157307E-04  0.54663644E-04
-  0.53827164E-04  0.52670300E-04  0.51216400E-04  0.49489532E-04  0.47514308E-04
-  0.45315698E-04  0.42918862E-04  0.40348985E-04  0.37631122E-04  0.34790049E-04
-  0.31850125E-04  0.28835161E-04  0.25768302E-04  0.22671916E-04  0.19567494E-04
-  0.16475560E-04  0.13415592E-04  0.10405948E-04  0.74638125E-05  0.46051404E-05
-  0.18446199E-05 -0.80435987E-06 -0.33297298E-05 -0.57207546E-05 -0.79680364E-05
- -0.10063512E-04 -0.12000439E-04 -0.13773380E-04 -0.15378176E-04 -0.16811912E-04
- -0.18072879E-04 -0.19160535E-04 -0.20075450E-04 -0.20819257E-04 -0.21394592E-04
- -0.21805037E-04 -0.22055053E-04 -0.22149916E-04 -0.22095648E-04 -0.21898950E-04
- -0.21567127E-04 -0.21108021E-04 -0.20529939E-04 -0.19841581E-04 -0.19051971E-04
- -0.18170386E-04 -0.17206292E-04 -0.16169276E-04 -0.15068979E-04 -0.13915042E-04
- -0.12717039E-04 -0.11484427E-04 -0.10226489E-04 -0.89522885E-05 -0.76706185E-05
- -0.63899616E-05 -0.51184500E-05 -0.38638298E-05 -0.26334298E-05 -0.14341327E-05
- -0.27235182E-06  0.84599001E-06  0.19154766E-05  0.29312116E-05  0.38888274E-05
-  0.47844916E-05  0.56149086E-05  0.63773189E-05  0.70694951E-05  0.76897347E-05
-  0.82368496E-05  0.87101542E-05  0.91094492E-05  0.94350049E-05  0.96875409E-05
-  0.98682048E-05  0.99785487E-05  0.10020504E-04  0.99963566E-05  0.99087169E-05
-  0.97604941E-05  0.95548658E-05  0.92952492E-05  0.89852707E-05  0.86287363E-05
-  0.82296016E-05  0.77919421E-05  0.73199235E-05  0.68177737E-05  0.62897538E-05
-  0.57401314E-05  0.51731542E-05  0.45930246E-05  0.40038757E-05  0.34097487E-05
-  0.28145712E-05  0.22221377E-05  0.16360907E-05  0.10599042E-05  0.49686836E-06
- -0.49924166E-07 -0.57759007E-06 -0.10834657E-05 -0.15651155E-05 -0.20203390E-05
- -0.24471762E-05 -0.28439108E-05 -0.32090727E-05 -0.35414380E-05 -0.38400284E-05
- -0.41041084E-05 -0.43331817E-05 -0.45269860E-05 -0.46854866E-05 -0.48088687E-05
- -0.48975292E-05 -0.49520669E-05 -0.49732720E-05 -0.49621150E-05 -0.49197346E-05
- -0.48474252E-05 -0.47466237E-05 -0.46188962E-05 -0.44659240E-05 -0.42894896E-05
- -0.40914625E-05 -0.38737847E-05 -0.36384570E-05 -0.33875242E-05 -0.31230617E-05
- -0.28471617E-05 -0.25619195E-05 -0.22694215E-05 -0.19717316E-05 -0.16708804E-05
- -0.13688531E-05 -0.10675792E-05 -0.76892254E-06 -0.47467176E-06 -0.18653194E-06
-  0.93883212E-07  0.36505831E-06  0.62558247E-06  0.87415464E-06  0.11095881E-05
-  0.13308142E-05  0.15368850E-05  0.17269756E-05  0.19003853E-05  0.20565378E-05
-  0.21949812E-05  0.23153867E-05  0.24175470E-05  0.25013740E-05  0.25668951E-05
-  0.26142502E-05  0.26436873E-05  0.26555573E-05  0.26503092E-05  0.26284843E-05
-  0.25907101E-05  0.25376938E-05  0.24702157E-05  0.23891225E-05  0.22953196E-05
-  0.21897645E-05  0.20734587E-05  0.19474410E-05  0.18127797E-05  0.16705653E-05
-  0.15219029E-05  0.13679056E-05  0.12096872E-05  0.10483551E-05  0.88500424E-06
-  0.72071045E-06  0.55652455E-06  0.39346662E-06  0.23252070E-06  0.74629781E-07
- -0.79308742E-07 -0.22844727E-06 -0.37199175E-06 -0.50920498E-06 -0.63940955E-06
- -0.76199023E-06 -0.87639600E-06 -0.98214161E-06 -0.10788087E-05 -0.11660465E-05
- -0.12435720E-05 -0.13111700E-05 -0.13686922E-05 -0.14160566E-05 -0.14532460E-05
- -0.14803064E-05 -0.14973448E-05 -0.15045271E-05 -0.15020754E-05 -0.14902650E-05
- -0.14694215E-05 -0.14399173E-05 -0.14021680E-05 -0.13566289E-05 -0.13037909E-05
- -0.12441768E-05 -0.11783371E-05 -0.11068459E-05 -0.10302970E-05 -0.94929927E-06
- -0.86447309E-06 -0.77644589E-06 -0.68584830E-06 -0.59331013E-06 -0.49945664E-06
- -0.40490479E-06 -0.31025970E-06 -0.21611131E-06 -0.12303113E-06 -0.31569266E-07
-  0.57748381E-07  0.14442270E-06  0.22798371E-06  0.30799268E-06  0.38404401E-06
-  0.45576680E-06  0.52282629E-06  0.58492494E-06  0.64180328E-06  0.69324054E-06
-  0.73905501E-06  0.77910415E-06  0.81328446E-06  0.84153115E-06  0.86381754E-06
-  0.88015423E-06  0.89058818E-06  0.89520142E-06  0.89410976E-06  0.88746116E-06
-  0.87543409E-06  0.85823563E-06  0.83609957E-06  0.80928424E-06  0.77807038E-06
-  0.74275888E-06  0.70366841E-06  0.66113309E-06  0.61550005E-06  0.56712697E-06
-  0.51637969E-06  0.46362977E-06  0.40925206E-06  0.35362237E-06  0.29711511E-06
-  0.24010109E-06  0.18294534E-06  0.12600498E-06  0.69627290E-07  0.14147785E-07
- -0.40111519E-07 -0.92843763E-07 -0.14375875E-06 -0.19258430E-06 -0.23906753E-06
- -0.28297589E-06 -0.32409810E-06 -0.36224497E-06 -0.39725004E-06 -0.42896999E-06
- -0.45728505E-06 -0.48209914E-06 -0.50333992E-06 -0.52095866E-06 -0.53492999E-06
- -0.54525153E-06 -0.55194336E-06 -0.55504738E-06 -0.55462655E-06 -0.55076401E-06
- -0.54356215E-06 -0.53314150E-06 -0.51963959E-06 -0.50320974E-06 -0.48401975E-06
- -0.46225056E-06 -0.43809484E-06 -0.41175556E-06 -0.38344448E-06 -0.35338074E-06
- -0.32178927E-06 -0.28889935E-06 -0.25494309E-06 -0.22015396E-06 -0.18476533E-06
- -0.14900905E-06 -0.11311407E-06 -0.77305131E-07 -0.41801454E-07 -0.68155504E-08
-  0.27447935E-07  0.60793293E-07  0.93034747E-07  0.12399737E-06  0.15351790E-06
-  0.18144551E-06  0.20764241E-06  0.23198445E-06  0.25436152E-06  0.27467799E-06
-  0.29285292E-06  0.30882025E-06  0.32252891E-06  0.33394274E-06  0.34304047E-06
-  0.34981548E-06  0.35427553E-06  0.35644240E-06  0.35635150E-06  0.35405130E-06
-  0.34960280E-06  0.34307888E-06  0.33456360E-06  0.32415144E-06  0.31194653E-06
-  0.29806180E-06  0.28261810E-06  0.26574328E-06  0.24757132E-06  0.22824131E-06
-  0.20789656E-06  0.18668361E-06  0.16475126E-06  0.14224963E-06  0.11932923E-06
-  0.96139992E-07  0.72830423E-07  0.49546690E-07  0.26431790E-07  0.36247474E-08
- -0.18740158E-07 -0.40534108E-07 -0.61634419E-07 -0.81925165E-07 -0.10129775E-06
- -0.11965140E-06 -0.13689367E-06 -0.15294075E-06 -0.16771790E-06 -0.18115965E-06
- -0.19321003E-06 -0.20382275E-06 -0.21296124E-06 -0.22059870E-06 -0.22671807E-06
- -0.23131193E-06 -0.23438237E-06 -0.23594075E-06 -0.23600750E-06 -0.23461175E-06
- -0.23179103E-06 -0.22759087E-06 -0.22206432E-06 -0.21527153E-06 -0.20727922E-06
- -0.19816015E-06 -0.18799254E-06 -0.17685950E-06 -0.16484846E-06 -0.15205046E-06
- -0.13855964E-06 -0.12447252E-06 -0.10988739E-06 -0.94903706E-07 -0.79621417E-07
- -0.64140371E-07 -0.48559705E-07 -0.32977250E-07 -0.17488964E-07 -0.21883816E-08
-  0.12833908E-07  0.27490758E-07  0.41698930E-07  0.55379522E-07  0.68458371E-07
-  0.80866414E-07  0.92540008E-07  0.10342122E-06  0.11345806E-06  0.12260471E-06
-  0.13082166E-06  0.13807583E-06  0.14434068E-06  0.14959621E-06  0.15382899E-06
-  0.15703210E-06  0.15920506E-06  0.16035369E-06  0.16048999E-06  0.15963194E-06
-  0.15780326E-06  0.15503318E-06  0.15135615E-06  0.14681155E-06  0.14144332E-06
-  0.13529964E-06  0.12843256E-06  0.12089760E-06  0.11275334E-06  0.10406101E-06
-  0.94884097E-07  0.85287872E-07  0.75338992E-07  0.65105052E-07  0.54654166E-07
-  0.44054534E-07  0.33374031E-07  0.22679796E-07  0.12037835E-07  0.15126439E-08
- -0.88331616E-08 -0.18939192E-07 -0.28747612E-07 -0.38203448E-07 -0.47254869E-07
- -0.55853449E-07 -0.63954402E-07 -0.71516784E-07 -0.78503682E-07 -0.84882360E-07
- -0.90624389E-07 -0.95705740E-07 -0.10010686E-06 -0.10381269E-06 -0.10681271E-06
- -0.10910090E-06 -0.11067571E-06 -0.11153996E-06 -0.11170080E-06 -0.11116954E-06
- -0.10996154E-06 -0.10809603E-06 -0.10559592E-06 -0.10248761E-06 -0.98800769E-07
- -0.94568084E-07 -0.89825018E-07 -0.84609542E-07 -0.78961861E-07 -0.72924130E-07
- -0.66540164E-07 -0.59855141E-07 -0.52915304E-07 -0.45767663E-07 -0.38459689E-07
- -0.31039024E-07 -0.23553181E-07 -0.16049264E-07 -0.85736810E-08 -0.11718762E-08
-  0.61119303E-08  0.13234992E-07  0.20156272E-07  0.26836663E-07  0.33239193E-07
-  0.39329216E-07  0.45074582E-07  0.50445791E-07  0.55416131E-07  0.59961790E-07
-  0.64061954E-07  0.67698885E-07  0.70857975E-07  0.73527785E-07  0.75700059E-07
-  0.77369725E-07  0.78534868E-07  0.79196695E-07  0.79359470E-07  0.79030440E-07
-  0.78219744E-07  0.76940297E-07  0.75207672E-07  0.73039955E-07  0.70457599E-07
-  0.67483257E-07  0.64141608E-07  0.60459175E-07  0.56464132E-07  0.52186103E-07
-  0.47655963E-07  0.42905624E-07  0.37967827E-07  0.32875928E-07  0.27663683E-07
-  0.22365039E-07  0.17013921E-07  0.11644026E-07  0.62886240E-08  0.98035848E-09
- -0.42489404E-08 -0.93684373E-08 -0.14348464E-07 -0.19160680E-07 -0.23778227E-07
- -0.28175866E-07 -0.32330105E-07 -0.36219319E-07 -0.39823844E-07 -0.43126075E-07
- -0.46110532E-07 -0.48763927E-07 -0.51075207E-07 -0.53035585E-07 -0.54638561E-07
- -0.55879923E-07 -0.56757739E-07 -0.57272329E-07 -0.57426230E-07 -0.57224148E-07
- -0.56672888E-07 -0.55781290E-07 -0.54560132E-07 -0.53022045E-07 -0.51181396E-07
- -0.49054183E-07 -0.46657907E-07 -0.44011441E-07 -0.41134899E-07 -0.38049487E-07
- -0.34777363E-07 -0.31341484E-07 -0.27765453E-07 -0.24073368E-07 -0.20289666E-07
- -0.16438967E-07 -0.12545925E-07 -0.86350721E-08 -0.47306767E-08 -0.85659471E-09
-  0.29638671E-08  0.67080858E-08  0.10354249E-07  0.13881476E-07  0.17269932E-07
-  0.20500930E-07  0.23557030E-07  0.26422126E-07  0.29081523E-07  0.31522008E-07
-  0.33731903E-07  0.35701119E-07  0.37421188E-07  0.38885294E-07  0.40088290E-07
-  0.41026701E-07  0.41698723E-07  0.42104208E-07  0.42244641E-07  0.42123104E-07
-  0.41744237E-07  0.41114183E-07  0.40240531E-07  0.39132246E-07  0.37799597E-07
-  0.36254071E-07  0.34508287E-07  0.32575904E-07  0.30471520E-07  0.28210569E-07
-  0.25809215E-07  0.23284245E-07  0.20652955E-07  0.17933036E-07  0.15142464E-07
-  0.12299384E-07  0.94219950E-08  0.65284431E-08  0.36367075E-08  0.76449490E-09
- -0.20708645E-08 -0.48525176E-08 -0.75641838E-08 -0.10190246E-07 -0.12715838E-07
- -0.15126919E-07 -0.17410355E-07 -0.19553980E-07 -0.21546658E-07 -0.23378335E-07
- -0.25040088E-07 -0.26524159E-07 -0.27823989E-07 -0.28934238E-07 -0.29850803E-07
- -0.30570824E-07 -0.31092680E-07 -0.31415990E-07 -0.31541588E-07 -0.31471507E-07
- -0.31208949E-07 -0.30758244E-07 -0.30124814E-07 -0.29315120E-07 -0.28336610E-07
- -0.27197660E-07 -0.25907508E-07 -0.24476186E-07 -0.22914450E-07 -0.21233701E-07
- -0.19445907E-07 -0.17563525E-07 -0.15599414E-07 -0.13566755E-07 -0.11478964E-07
- -0.93496047E-08 -0.71923085E-08 -0.50206872E-08 -0.28482512E-08 -0.68832844E-09
-  0.14460143E-08  0.35420475E-08  0.55874520E-08  0.75703881E-08  0.94795614E-08
-  0.11304284E-07  0.13034532E-07  0.14660996E-07  0.16175129E-07  0.17569189E-07
-  0.18836272E-07  0.19970348E-07  0.20966280E-07  0.21819847E-07  0.22527754E-07
-  0.23087645E-07  0.23498096E-07  0.23758621E-07  0.23869653E-07  0.23832537E-07
-  0.23649502E-07  0.23323641E-07  0.22858877E-07  0.22259931E-07  0.21532279E-07
-  0.20682110E-07  0.19716280E-07  0.18642260E-07  0.17468081E-07  0.16202279E-07
-  0.14853837E-07  0.13432120E-07  0.11946819E-07  0.10407883E-07  0.88254569E-08
-  0.72098151E-08  0.55712995E-08  0.39202539E-08  0.22669616E-08  0.62158331E-09
- -0.10059033E-08 -0.26057620E-08 -0.41685539E-08 -0.56851915E-08 -0.71469892E-08
- -0.85457109E-08 -0.98736147E-08 -0.11123493E-07 -0.12288710E-07 -0.13363235E-07
- -0.14341670E-07 -0.15219275E-07 -0.15991988E-07 -0.16656443E-07 -0.17209977E-07
- -0.17650642E-07 -0.17977205E-07 -0.18189145E-07 -0.18286649E-07 -0.18270603E-07
- -0.18142574E-07 -0.17904792E-07 -0.17560132E-07 -0.17112083E-07 -0.16564722E-07
- -0.15922679E-07 -0.15191107E-07 -0.14375635E-07 -0.13482335E-07 -0.12517678E-07
- -0.11488487E-07 -0.10401891E-07 -0.92652805E-08 -0.80862565E-08 -0.68725824E-08
- -0.56321344E-08 -0.43728519E-08 -0.31026886E-08 -0.18295637E-08 -0.56131359E-09
-  0.69435411E-09  0.19299065E-08  0.31380291E-08  0.43116674E-08  0.54440667E-08
-  0.65288098E-08  0.75598516E-08  0.85315512E-08  0.94387016E-08  0.10276556E-07
-  0.11040849E-07  0.11727821E-07  0.12334231E-07  0.12857370E-07  0.13295073E-07
-  0.13645724E-07  0.13908258E-07  0.14082165E-07  0.14167479E-07  0.14164779E-07
-  0.14075171E-07  0.13900282E-07  0.13642238E-07  0.13303647E-07  0.12887578E-07
-  0.12397536E-07  0.11837432E-07  0.11211561E-07  0.10524565E-07  0.97814013E-08
-  0.89873121E-08  0.81477851E-08  0.72685186E-08  0.63553840E-08  0.54143881E-08
-  0.44516340E-08  0.34732838E-08  0.24855193E-08  0.14945047E-08  0.50634894E-09
- -0.47293086E-09 -0.14374450E-08 -0.23814654E-08 -0.32994588E-08 -0.41861182E-08
- -0.50363921E-08 -0.58455128E-08 -0.66090213E-08 -0.73227917E-08 -0.79830514E-08
- -0.85864005E-08 -0.91298279E-08 -0.96107249E-08 -0.10026896E-07 -0.10376569E-07
- kinetic energy density (partial)
-  0.20835504E+03  0.20828036E+03  0.20805646E+03  0.20768382E+03  0.20716321E+03
-  0.20649571E+03  0.20568271E+03  0.20472590E+03  0.20362725E+03  0.20238902E+03
-  0.20101375E+03  0.19950424E+03  0.19786357E+03  0.19609504E+03  0.19420220E+03
-  0.19218884E+03  0.19005893E+03  0.18781665E+03  0.18546639E+03  0.18301267E+03
-  0.18046020E+03  0.17781381E+03  0.17507846E+03  0.17225923E+03  0.16936128E+03
-  0.16638985E+03  0.16335026E+03  0.16024787E+03  0.15708805E+03  0.15387623E+03
-  0.15061780E+03  0.14731817E+03  0.14398270E+03  0.14061674E+03  0.13722555E+03
-  0.13381436E+03  0.13038829E+03  0.12695239E+03  0.12351160E+03  0.12007077E+03
-  0.11663459E+03  0.11320766E+03  0.10979442E+03  0.10639916E+03  0.10302604E+03
-  0.99679032E+02  0.96361963E+02  0.93078483E+02  0.89832071E+02  0.86626025E+02
-  0.83463466E+02  0.80347331E+02  0.77280372E+02  0.74265159E+02  0.71304074E+02
-  0.68399315E+02  0.65552897E+02  0.62766650E+02  0.60042224E+02  0.57381093E+02
-  0.54784551E+02  0.52253723E+02  0.49789562E+02  0.47392858E+02  0.45064240E+02
-  0.42804181E+02  0.40613001E+02  0.38490877E+02  0.36437844E+02  0.34453799E+02
-  0.32538514E+02  0.30691635E+02  0.28912689E+02  0.27201094E+02  0.25556161E+02
-  0.23977101E+02  0.22463033E+02  0.21012989E+02  0.19625917E+02  0.18300694E+02
-  0.17036125E+02  0.15830955E+02  0.14683869E+02  0.13593503E+02  0.12558445E+02
-  0.11577245E+02  0.10648418E+02  0.97704471E+01  0.89417938E+01  0.81608982E+01
-  0.74261859E+01  0.67360722E+01  0.60889662E+01  0.54832751E+01  0.49174080E+01
-  0.43897800E+01  0.38988154E+01  0.34429512E+01  0.30206401E+01  0.26303538E+01
-  0.22705855E+01  0.19398523E+01  0.16366980E+01  0.13596948E+01  0.11074456E+01
-  0.87858565E+00  0.67178422E+00  0.48574594E+00  0.31921212E+00  0.17096183E+00
-  0.39812801E-01 -0.75377769E-01 -0.17571264E+00 -0.26225402E+00 -0.33602329E+00
- -0.39800073E+00 -0.44912553E+00 -0.49029577E+00 -0.52236862E+00 -0.54616060E+00
- -0.56244795E+00 -0.57196711E+00 -0.57541524E+00 -0.57345089E+00 -0.56669468E+00
- -0.55573011E+00 -0.54110437E+00 -0.52332928E+00 -0.50288217E+00 -0.48020696E+00
- -0.45571513E+00 -0.42978682E+00 -0.40277192E+00 -0.37499119E+00 -0.34673741E+00
- -0.31827653E+00 -0.28984883E+00 -0.26167011E+00 -0.23393286E+00 -0.20680741E+00
- -0.18044314E+00 -0.15496957E+00 -0.13049761E+00 -0.10712057E+00 -0.84915366E-01
- -0.63943573E-01 -0.44252494E-01 -0.25876215E-01 -0.88366140E-02  0.68556445E-02
-  0.21200154E-01  0.34205840E-01  0.45890064E-01  0.56277765E-01  0.65400637E-01
-  0.73296336E-01  0.80007729E-01  0.85582175E-01  0.90070849E-01  0.93528093E-01
-  0.96010816E-01  0.97577916E-01  0.98289755E-01  0.98207654E-01  0.97393432E-01
-  0.95908984E-01  0.93815878E-01  0.91175003E-01  0.88046237E-01  0.84488154E-01
-  0.80557756E-01  0.76310236E-01  0.71798777E-01  0.67074366E-01  0.62185643E-01
-  0.57178774E-01  0.52097343E-01  0.46982274E-01  0.41871767E-01  0.36801261E-01
-  0.31803411E-01  0.26908081E-01  0.22142365E-01  0.17530606E-01  0.13094442E-01
-  0.88528613E-02  0.48222665E-02  0.10165515E-02 -0.25528120E-02 -0.58766813E-02
- -0.89481411E-02 -0.11762397E-01 -0.14316661E-01 -0.16610039E-01 -0.18643408E-01
- -0.20419294E-01 -0.21941748E-01 -0.23216224E-01 -0.24249453E-01 -0.25049318E-01
- -0.25624730E-01 -0.25985512E-01 -0.26142277E-01 -0.26106309E-01 -0.25889459E-01
- -0.25504030E-01 -0.24962671E-01 -0.24278285E-01 -0.23463926E-01 -0.22532710E-01
- -0.21497732E-01 -0.20371987E-01 -0.19168289E-01 -0.17899208E-01 -0.16577007E-01
- -0.15213577E-01 -0.13820394E-01 -0.12408464E-01 -0.10988288E-01 -0.95698218E-02
- -0.81624485E-02 -0.67749510E-02 -0.54154923E-02 -0.40916000E-02 -0.28101553E-02
- -0.15773864E-02 -0.39886651E-03  0.72048473E-03  0.17763955E-02  0.27652328E-02
-  0.36839902E-02  0.45302720E-02  0.53022756E-02  0.59987705E-02  0.66190753E-02
-  0.71630325E-02  0.76309821E-02  0.80237328E-02  0.83425325E-02  0.85890380E-02
-  0.87652830E-02  0.88736459E-02  0.89168179E-02  0.88977699E-02  0.88197199E-02
-  0.86861005E-02  0.85005271E-02  0.82667658E-02  0.79887032E-02  0.76703160E-02
-  0.73156421E-02  0.69287525E-02  0.65137246E-02  0.60746169E-02  0.56154446E-02
-  0.51401571E-02  0.46526166E-02  0.41565790E-02  0.36556751E-02  0.31533950E-02
-  0.26530725E-02  0.21578727E-02  0.16707797E-02  0.11945875E-02  0.73189104E-03
-  0.28508001E-03 -0.14366669E-03 -0.55238445E-03 -0.93932519E-03 -0.13029582E-02
- -0.16419696E-02 -0.19552605E-02 -0.22419442E-02 -0.25013417E-02 -0.27329770E-02
- -0.29365704E-02 -0.31120318E-02 -0.32594528E-02 -0.33790979E-02 -0.34713953E-02
- -0.35369271E-02 -0.35764189E-02 -0.35907293E-02 -0.35808384E-02 -0.35478369E-02
- -0.34929144E-02 -0.34173477E-02 -0.33224897E-02 -0.32097572E-02 -0.30806201E-02
- -0.29365895E-02 -0.27792070E-02 -0.26100340E-02 -0.24306410E-02 -0.22425978E-02
- -0.20474638E-02 -0.18467788E-02 -0.16420544E-02 -0.14347657E-02 -0.12263441E-02
- -0.10181700E-02 -0.81156627E-03 -0.60779290E-03 -0.40804141E-03 -0.21343046E-03
- -0.25001852E-04  0.15628276E-03  0.32954460E-03  0.49398988E-03  0.64891127E-03
-  0.79368888E-03  0.92779059E-03  0.10507719E-02  0.11622751E-02  0.12620285E-02
-  0.13498441E-02  0.14256161E-02  0.14893180E-02  0.15410000E-02  0.15807856E-02
-  0.16088679E-02  0.16255060E-02  0.16310209E-02  0.16257910E-02  0.16102478E-02
-  0.15848710E-02  0.15501843E-02  0.15067498E-02  0.14551636E-02  0.13960508E-02
-  0.13300607E-02  0.12578615E-02  0.11801361E-02  0.10975768E-02  0.10108810E-02
-  0.92074700E-03  0.82786904E-03  0.73293373E-03  0.63661585E-03  0.53957475E-03
-  0.44245079E-03  0.34586214E-03  0.25040173E-03  0.15663455E-03  0.65095164E-04
- -0.23714500E-04 -0.10932708E-03 -0.19131143E-03 -0.26927401E-03 -0.34285994E-03
- -0.41175391E-03 -0.47568067E-03 -0.53440538E-03 -0.58773362E-03 -0.63551122E-03
- -0.67762383E-03 -0.71399622E-03 -0.74459146E-03 -0.76940981E-03 -0.78848749E-03
- -0.80189519E-03 -0.80973655E-03 -0.81214635E-03 -0.80928869E-03 -0.80135496E-03
- -0.78856182E-03 -0.77114897E-03 -0.74937696E-03 -0.72352489E-03 -0.69388808E-03
- -0.66077574E-03 -0.62450863E-03 -0.58541671E-03 -0.54383679E-03 -0.50011029E-03
- -0.45458098E-03 -0.40759277E-03 -0.35948764E-03 -0.31060361E-03 -0.26127274E-03
- -0.21181934E-03 -0.16255822E-03 -0.11379303E-03 -0.65814813E-04 -0.18900553E-04
-  0.26688029E-04  0.70705622E-04  0.11292430E-03  0.15313440E-03  0.19114521E-03
-  0.22678554E-03  0.25990422E-03  0.29037033E-03  0.31807346E-03  0.34292368E-03
-  0.36485151E-03  0.38380771E-03  0.39976294E-03  0.41270738E-03  0.42265015E-03
-  0.42961871E-03  0.43365814E-03  0.43483030E-03  0.43321299E-03  0.42889897E-03
-  0.42199495E-03  0.41262052E-03  0.40090704E-03  0.38699647E-03  0.37104021E-03
-  0.35319789E-03  0.33363614E-03  0.31252735E-03  0.29004850E-03  0.26637987E-03
-  0.24170389E-03  0.21620396E-03  0.19006328E-03  0.16346372E-03  0.13658478E-03
-  0.10960256E-03  0.82688740E-04  0.56009692E-04  0.29725598E-04  0.39896497E-05
- -0.21052691E-04 -0.45264363E-04 -0.68517308E-04 -0.90692998E-04 -0.11168289E-03
- -0.13138883E-03 -0.14972332E-03 -0.16660980E-03 -0.18198279E-03 -0.19578798E-03
- -0.20798226E-03 -0.21853367E-03 -0.22742128E-03 -0.23463504E-03 -0.24017552E-03
- -0.24405359E-03 -0.24629014E-03 -0.24691561E-03 -0.24596960E-03 -0.24350031E-03
- -0.23956409E-03 -0.23422482E-03 -0.22755332E-03 -0.21962678E-03 -0.21052803E-03
- -0.20034496E-03 -0.18916981E-03 -0.17709849E-03 -0.16422991E-03 -0.15066529E-03
- -0.13650745E-03 -0.12186019E-03 -0.10682758E-03 -0.91513375E-04 -0.76020313E-04
- -0.60449570E-04 -0.44900164E-04 -0.29468403E-04 -0.14247369E-04  0.67356873E-06
-  0.15209201E-04  0.29278898E-04  0.42806978E-04  0.55723047E-04  0.67962294E-04
-  0.79465741E-04  0.90180456E-04  0.10005972E-03  0.10906317E-03  0.11715685E-03
-  0.12431330E-03  0.13051151E-03  0.13573694E-03  0.13998141E-03  0.14324297E-03
-  0.14552583E-03  0.14684010E-03  0.14720163E-03  0.14663173E-03  0.14515697E-03
-  0.14280879E-03  0.13962329E-03  0.13564081E-03  0.13090564E-03  0.12546560E-03
-  0.11937169E-03  0.11267772E-03  0.10543985E-03  0.97716257E-04  0.89566681E-04
-  0.81052046E-04  0.72234052E-04  0.63174778E-04  0.53936293E-04  0.44580280E-04
-  0.35167664E-04  0.25758258E-04  0.16410425E-04  0.71807582E-05 -0.18762292E-05
- -0.10708382E-04 -0.19266170E-04 -0.27502926E-04 -0.35375063E-04 -0.42842270E-04
- -0.49867681E-04 -0.56418019E-04 -0.62463713E-04 -0.67978995E-04 -0.72941966E-04
- -0.77334643E-04 -0.81142972E-04 -0.84356829E-04 -0.86969986E-04 -0.88980058E-04
- -0.90388434E-04 -0.91200176E-04 -0.91423905E-04 -0.91071668E-04 -0.90158782E-04
- -0.88703670E-04 -0.86727673E-04 -0.84254855E-04 -0.81311794E-04 -0.77927359E-04
- -0.74132487E-04 -0.69959941E-04 -0.65444073E-04 -0.60620576E-04 -0.55526235E-04
- -0.50198677E-04 -0.44676123E-04 -0.38997144E-04 -0.33200410E-04 -0.27324458E-04
- -0.21407454E-04 -0.15486974E-04 -0.95997806E-05 -0.37816209E-05  0.19329717E-05
-  0.75108618E-05  0.12920483E-04  0.18131998E-04  0.23117441E-04  0.27850849E-04
-  0.32308378E-04  0.36468400E-04  0.40311588E-04  0.43820986E-04  0.46982057E-04
-  0.49782725E-04  0.52213390E-04  0.54266937E-04  0.55938726E-04  0.57226565E-04
-  0.58130670E-04  0.58653618E-04  0.58800272E-04  0.58577711E-04  0.57995133E-04
-  0.57063756E-04  0.55796708E-04  0.54208903E-04  0.52316916E-04  0.50138843E-04
-  0.47694158E-04  0.45003568E-04  0.42088860E-04  0.38972742E-04  0.35678686E-04
-  0.32230771E-04  0.28653522E-04  0.24971746E-04  0.21210383E-04  0.17394344E-04
-  0.13548360E-04  0.96968386E-05  0.58637166E-05  0.20723263E-05 -0.16547360E-05
- -0.52957328E-05 -0.88299004E-05 -0.12237557E-04 -0.15500199E-04 -0.18600592E-04
- -0.21522849E-04 -0.24252503E-04 -0.26776561E-04 -0.29083560E-04 -0.31163602E-04
- -0.33008383E-04 -0.34611214E-04 -0.35967028E-04 -0.37072379E-04 -0.37925428E-04
- -0.38525927E-04 -0.38875183E-04 -0.38976024E-04 -0.38832747E-04 -0.38451068E-04
- -0.37838051E-04 -0.37002046E-04 -0.35952608E-04 -0.34700415E-04 -0.33257184E-04
- -0.31635572E-04 -0.29849087E-04 -0.27911987E-04 -0.25839175E-04 -0.23646098E-04
- -0.21348641E-04 -0.18963022E-04 -0.16505685E-04 -0.13993199E-04 -0.11442146E-04
- -0.88690290E-05 -0.62901661E-05 -0.37215965E-05 -0.11789878E-05  0.13224529E-05
-  0.37680632E-05  0.61438045E-05  0.84363361E-05  0.10633083E-04  0.12722299E-04
-  0.14693121E-04  0.16535621E-04  0.18240847E-04  0.19800862E-04  0.21208768E-04
-  0.22458735E-04  0.23546012E-04  0.24466937E-04  0.25218940E-04  0.25800535E-04
-  0.26211314E-04  0.26451924E-04  0.26524047E-04  0.26430366E-04  0.26174537E-04
-  0.25761142E-04  0.25195645E-04  0.24484347E-04  0.23634324E-04  0.22653376E-04
-  0.21549965E-04  0.20333146E-04  0.19012507E-04  0.17598097E-04  0.16100357E-04
-  0.14530050E-04  0.12898186E-04  0.11215955E-04  0.94946498E-05  0.77456005E-05
-  0.59801006E-05  0.42093402E-05  0.24443392E-05  0.69588305E-06 -0.10255391E-05
- -0.27097932E-05 -0.43471557E-05 -0.59283657E-05 -0.74446735E-05 -0.88878846E-05
- -0.10250400E-04 -0.11525252E-04 -0.12706136E-04 -0.13787435E-04 -0.14764247E-04
- -0.15632395E-04 -0.16388446E-04 -0.17029714E-04 -0.17554268E-04 -0.17960926E-04
- -0.18249251E-04 -0.18419541E-04 -0.18472814E-04 -0.18410788E-04 -0.18235860E-04
- -0.17951076E-04 -0.17560106E-04 -0.17067207E-04 -0.16477189E-04 -0.15795372E-04
- -0.15027551E-04 -0.14179945E-04 -0.13259159E-04 -0.12272129E-04 -0.11226083E-04
- -0.10128482E-04 -0.89869785E-05 -0.78093612E-05 -0.66035078E-05 -0.53773340E-05
- -0.41387451E-05 -0.28955872E-05 -0.16556008E-05 -0.42637512E-06  0.78469609E-06
-  0.19704560E-05  0.31240246E-05  0.42388361E-05  0.53086738E-05  0.63277021E-05
-  0.72904958E-05  0.81920664E-05  0.90278850E-05  0.97939027E-05  0.10486567E-04
-  0.11102835E-04  0.11640184E-04  0.12096617E-04  0.12470670E-04  0.12761405E-04
-  0.12968414E-04  0.13091808E-04  0.13132211E-04  0.13090746E-04  0.12969018E-04
-  0.12769101E-04  0.12493512E-04  0.12145193E-04  0.11727484E-04  0.11244095E-04
-  0.10699079E-04  0.10096800E-04  0.94419040E-05  0.87392820E-05  0.79940391E-05
-  0.72114589E-05  0.63969681E-05  0.55561008E-05  0.46944635E-05  0.38176993E-05
-  0.29314527E-05  0.20413352E-05  0.11528915E-05  0.27156677E-06 -0.59732538E-06
- -0.14486329E-05 -0.22773945E-05 -0.30788666E-05 -0.38485492E-05 -0.45822095E-05
- -0.52759030E-05 -0.59259938E-05 -0.65291711E-05 -0.70824650E-05 -0.75832587E-05
- -0.80292992E-05 -0.84187053E-05 -0.87499729E-05 -0.90219787E-05 -0.92339806E-05
- -0.93856165E-05 -0.94769006E-05 -0.95082170E-05 -0.94803119E-05 -0.93942833E-05
- -0.92515686E-05 -0.90539305E-05 -0.88034415E-05 -0.85024659E-05 -0.81536409E-05
- -0.77598566E-05 -0.73242339E-05 -0.68501020E-05 -0.63409749E-05 -0.58005271E-05
- -0.52325683E-05 -0.46410183E-05 -0.40298813E-05 -0.34032201E-05 -0.27651301E-05
- -0.21197141E-05 -0.14710570E-05 -0.82320100E-06 -0.18012145E-06  0.45429620E-06
-  0.10762789E-05  0.16821875E-05  0.22685368E-05  0.28320144E-05  0.33694988E-05
-  0.38780750E-05  0.43550498E-05  0.47979643E-05  0.52046059E-05  0.55730178E-05
-  0.59015075E-05  0.61886525E-05  0.64333056E-05  0.66345974E-05  0.67919376E-05
-  0.69050145E-05  0.69737925E-05  0.69985083E-05  0.69796653E-05  0.69180270E-05
-  0.68146078E-05  0.66706633E-05  0.64876794E-05  0.62673592E-05  0.60116097E-05
-  0.57225273E-05  0.54023816E-05  0.50535996E-05  0.46787481E-05  0.42805159E-05
-  0.38616961E-05  0.34251668E-05  0.29738728E-05  0.25108063E-05  0.20389878E-05
-  0.15614475E-05  0.10812068E-05  0.60125910E-06  0.12455292E-06 -0.34602614E-06
- -0.80767194E-06 -0.12576738E-05 -0.16934316E-05 -0.21124705E-05 -0.25124536E-05
- -0.28911947E-05 -0.32466697E-05 -0.35770259E-05 -0.38805915E-05 -0.41558832E-05
- -0.44016122E-05 -0.46166896E-05 -0.48002299E-05 -0.49515539E-05 -0.50701897E-05
- -0.51558725E-05 -0.52085437E-05 -0.52283475E-05 -0.52156282E-05 -0.51709243E-05
- -0.50949632E-05 -0.49886534E-05 -0.48530769E-05 -0.46894800E-05 -0.44992632E-05
- -0.42839704E-05 -0.40452779E-05 -0.37849817E-05 -0.35049853E-05 -0.32072862E-05
- -0.28939625E-05 -0.25671593E-05 -0.22290742E-05 -0.18819433E-05 -0.15280272E-05
- -0.11695966E-05 -0.80891805E-06 -0.44824079E-06 -0.89782651E-07  0.26428284E-06
-  0.61183918E-06  0.95083906E-06  0.12793159E-05  0.15953948E-05  0.18973026E-05
-  0.21833778E-05  0.24520784E-05  0.27019904E-05  0.29318344E-05  0.31404715E-05
-  0.33269085E-05  0.34903020E-05  0.36299613E-05  0.37453508E-05  0.38360910E-05
-  0.39019586E-05  0.39428861E-05  0.39589597E-05  0.39504170E-05  0.39176432E-05
-  0.38611669E-05  0.37816552E-05  0.36799070E-05  0.35568472E-05  0.34135188E-05
-  0.32510750E-05  0.30707708E-05  0.28739539E-05  0.26620552E-05  0.24365789E-05
-  0.21990924E-05  0.19512158E-05  0.16946112E-05  0.14309721E-05  0.11620127E-05
-  0.88945703E-06  0.61502809E-06  0.34043765E-06  0.67375715E-07 -0.20249943E-06
- -0.46757098E-06 -0.72627297E-06 -0.97709914E-06 -0.12186114E-05 -0.14494477E-05
- -0.16683294E-05 -0.18740679E-05 -0.20655709E-05 -0.22418477E-05 -0.24020138E-05
- -0.25452953E-05 -0.26710317E-05 -0.27786789E-05 -0.28678107E-05 -0.29381202E-05
- -0.29894195E-05 -0.30216403E-05 -0.30348315E-05 -0.30291587E-05 -0.30049005E-05
- -0.29624463E-05 -0.29022916E-05 -0.28250345E-05 -0.27313699E-05 -0.26220845E-05
- -0.24980506E-05 -0.23602199E-05 -0.22096162E-05 -0.20473288E-05 -0.18745043E-05
- -0.16923396E-05 -0.15020733E-05 -0.13049781E-05 -0.11023521E-05 -0.89551080E-06
- -0.68577898E-06 -0.47448212E-06 -0.26293851E-06 -0.52451208E-07  0.15569972E-06
-  0.36026474E-06  0.56003214E-06  0.75383492E-06  0.94055739E-06  0.11191414E-05
-  0.12885918E-05  0.14479824E-05  0.15964599E-05  0.17332489E-05  0.18576553E-05
-  0.19690697E-05  0.20669698E-05  0.21509228E-05  0.22205870E-05  0.22757124E-05
-  0.23161411E-05  0.23418077E-05  0.23527377E-05  0.23490468E-05  0.23309391E-05
-  0.22987043E-05  0.22527152E-05  0.21934244E-05  0.21213603E-05  0.20371233E-05
-  0.19413808E-05  0.18348627E-05  0.17183559E-05  0.15926988E-05  0.14587758E-05
-  0.13175109E-05  0.11698619E-05  0.10168141E-05  0.85937351E-06  0.69856113E-06
-  0.53540601E-06  0.37093900E-06  0.20618646E-06  0.42164007E-07 -0.12012960E-06
- -0.27971831E-06 -0.43565451E-06 -0.58702449E-06 -0.73295359E-06 -0.87261108E-06
- -0.10052148E-05 -0.11300351E-05 -0.12463990E-05 -0.13536936E-05 -0.14513687E-05
- -0.15389398E-05 -0.16159903E-05 -0.16821729E-05 -0.17372113E-05 -0.17809007E-05
- atomic pseudo charge-density
-  0.40000000E+01  0.39865777E+01  0.39466377E+01  0.38811433E+01  0.37916420E+01
-  0.36801845E+01  0.35492225E+01  0.34014950E+01  0.32399100E+01  0.30674335E+01
-  0.28869885E+01  0.27013712E+01  0.25131849E+01  0.23247937E+01  0.21382919E+01
-  0.19554911E+01  0.17779180E+01  0.16068237E+01  0.14431992E+01  0.12877965E+01
-  0.11411517E+01  0.10036103E+01  0.87535141E+00  0.75641221E+00  0.64671002E+00
-  0.54606322E+00  0.45420995E+00  0.37082491E+00  0.29553413E+00  0.22792794E+00
-  0.16757211E+00  0.11401745E+00  0.66807917E-01  0.25487413E-01 -0.10394609E-01
- -0.41278559E-01 -0.67591068E-01 -0.89742136E-01 -0.10812299E+00 -0.12310456E+00
- -0.13503646E+00 -0.14424639E+00 -0.15104001E+00 -0.15570097E+00 -0.15849133E+00
- -0.15965211E+00 -0.15940402E+00 -0.15794831E+00 -0.15546772E+00 -0.15212749E+00
- -0.14807638E+00 -0.14344771E+00 -0.13836047E+00 -0.13292033E+00 -0.12722065E+00
- -0.12134348E+00 -0.11536052E+00 -0.10933401E+00 -0.10331755E+00 -0.97357004E-01
- -0.91491144E-01 -0.85752437E-01 -0.80167665E-01 -0.74758549E-01 -0.69542301E-01
- -0.64532148E-01 -0.59737800E-01 -0.55165888E-01 -0.50820352E-01 -0.46702805E-01
- -0.42812853E-01 -0.39148390E-01 -0.35705857E-01 -0.32480485E-01 -0.29466501E-01
- -0.26657315E-01 -0.24045694E-01 -0.21623903E-01 -0.19383840E-01 -0.17317147E-01
- -0.15415312E-01 -0.13669755E-01 -0.12071903E-01 -0.10613251E-01 -0.92854244E-02
- -0.80802145E-02 -0.69896237E-02 -0.60058937E-02 -0.51215308E-02 -0.43293255E-02
- -0.36223668E-02 -0.29940530E-02 -0.24380979E-02 -0.19485345E-02 -0.15197156E-02
- -0.11463116E-02 -0.82330733E-03 -0.54599558E-03 -0.30997057E-03 -0.11111936E-03
-  0.54387372E-04  0.19010550E-03  0.29932812E-03  0.38509675E-03  0.45021276E-03
-  0.49724905E-03  0.52856181E-03  0.54630218E-03  0.55242796E-03  0.54871497E-03
-  0.53676838E-03  0.51803363E-03  0.49380709E-03  0.46524638E-03  0.43338033E-03
-  0.39911848E-03  0.36326026E-03  0.32650372E-03  0.28945381E-03  0.25263029E-03
-  0.21647518E-03  0.18135979E-03  0.14759134E-03  0.11541921E-03  0.85040745E-04
-  0.56606693E-04  0.30226281E-04  0.59719222E-05 -0.16116422E-04 -0.36027206E-04
- -0.53773582E-04 -0.69389985E-04 -0.82929001E-04 -0.94458506E-04 -0.10405906E-03
- -0.11182154E-03 -0.11784501E-03 -0.12223480E-03 -0.12510074E-03 -0.12655568E-03
- -0.12671406E-03 -0.12569075E-03 -0.12359995E-03 -0.12055428E-03 -0.11666396E-03
- -0.11203618E-03 -0.10677445E-03 -0.10097817E-03 -0.94742200E-04 -0.88156578E-04
- -0.81306252E-04 -0.74270913E-04 -0.67124872E-04 -0.59936998E-04 -0.52770692E-04
- -0.45683909E-04 -0.38729216E-04 -0.31953881E-04 -0.25399987E-04 -0.19104573E-04
- -0.13099795E-04 -0.74131035E-05 -0.20674340E-05  0.29185877E-05  0.75304328E-05
-  0.11757450E-04  0.15592638E-04  0.19032418E-04  0.22076404E-04  0.24727164E-04
-  0.26989996E-04  0.28872695E-04  0.30385326E-04  0.31539999E-04  0.32350652E-04
-  0.32832837E-04  0.33003507E-04  0.32880817E-04  0.32483927E-04  0.31832814E-04
-  0.30948087E-04  0.29850816E-04  0.28562367E-04  0.27104239E-04  0.25497920E-04
-  0.23764744E-04  0.21925760E-04  0.20001608E-04  0.18012403E-04  0.15977634E-04
-  0.13916067E-04  0.11845655E-04  0.97834623E-05  0.77455969E-05  0.57471478E-05
-  0.38021359E-05  0.19234706E-05  0.12291697E-06 -0.15889304E-05 -0.32026639E-05
- -0.47100721E-05 -0.61041411E-05 -0.73790486E-05 -0.85301498E-05 -0.95539581E-05
- -0.10448118E-04 -0.11211371E-04 -0.11843520E-04 -0.12345381E-04 -0.12718740E-04
- -0.12966293E-04 -0.13091593E-04 -0.13098990E-04 -0.12993562E-04 -0.12781054E-04
- -0.12467805E-04 -0.12060682E-04 -0.11567004E-04 -0.10994473E-04 -0.10351102E-04
- -0.96451441E-05 -0.88850170E-05 -0.80792383E-05 -0.72363555E-05 -0.63648798E-05
- -0.54732233E-05 -0.45696380E-05 -0.36621584E-05 -0.27585476E-05 -0.18662470E-05
- -0.99232994E-06 -0.14345991E-06  0.67414724E-06  0.14547563E-05  0.21931413E-05
-  0.28846089E-05  0.35250176E-05  0.41107917E-05  0.46389308E-05  0.51070144E-05
-  0.55132020E-05  0.58562288E-05  0.61353970E-05  0.63505627E-05  0.65021194E-05
-  0.65909775E-05  0.66185401E-05  0.65866761E-05  0.64976905E-05  0.63542912E-05
-  0.61595549E-05  0.59168901E-05  0.56299985E-05  0.53028363E-05  0.49395727E-05
-  0.45445501E-05  0.41222417E-05  0.36772115E-05  0.32140730E-05  0.27374494E-05
-  0.22519349E-05  0.17620572E-05  0.12722412E-05  0.78677566E-06  0.30978034E-06
- -0.15482310E-06 -0.60333860E-06 -0.10323203E-05 -0.14385946E-05 -0.18192788E-05
- -0.21717975E-05 -0.24938958E-05 -0.27836489E-05 -0.30394696E-05 -0.32601119E-05
- -0.34446725E-05 -0.35925882E-05 -0.37036321E-05 -0.37779053E-05 -0.38158276E-05
- -0.38181247E-05 -0.37858135E-05 -0.37201857E-05 -0.36227886E-05 -0.34954051E-05
- -0.33400317E-05 -0.31588555E-05 -0.29542301E-05 -0.27286505E-05 -0.24847277E-05
- -0.22251630E-05 -0.19527218E-05 -0.16702079E-05 -0.13804382E-05 -0.10862172E-05
- -0.79031329E-06 -0.49543528E-06 -0.20421011E-06  0.80837975E-07  0.35730694E-06
-  0.62293496E-06  0.87561665E-06  0.11134176E-05  0.13345872E-05  0.15375689E-05
-  0.17210098E-05  0.18837666E-05  0.20249111E-05  0.21437323E-05  0.22397380E-05
-  0.23126529E-05  0.23624163E-05  0.23891767E-05  0.23932857E-05  0.23752896E-05
-  0.23359196E-05  0.22760813E-05  0.21968416E-05  0.20994157E-05  0.19851524E-05
-  0.18555189E-05  0.17120850E-05  0.15565060E-05  0.13905063E-05  0.12158623E-05
-  0.10343849E-05  0.84790272E-06  0.65824498E-06  0.46722542E-06  0.27662610E-06
-  0.88182235E-07 -0.96432316E-07 -0.27561869E-06 -0.44786563E-06 -0.61176105E-06
- -0.76600248E-06 -0.90940617E-06 -0.10409151E-05 -0.11596055E-05 -0.12646923E-05
- -0.13555325E-05 -0.14316286E-05 -0.14926287E-05 -0.15383273E-05 -0.15686631E-05
- -0.15837168E-05 -0.15837066E-05 -0.15689836E-05 -0.15400253E-05 -0.14974285E-05
- -0.14419012E-05 -0.13742537E-05 -0.12953888E-05 -0.12062916E-05 -0.11080189E-05
- -0.10016876E-05 -0.88846338E-06 -0.76954920E-06 -0.64617321E-06 -0.51957713E-06
- -0.39100463E-06 -0.26168993E-06 -0.13284673E-06 -0.56575985E-08  0.11873617E-06
-  0.23924409E-06  0.35483532E-06  0.46454683E-06  0.56749076E-06  0.66286088E-06
-  0.74993828E-06  0.82809602E-06  0.89680296E-06  0.95562658E-06  0.10042348E-05
-  0.10423970E-05  0.10699838E-05  0.10869664E-05  0.10934144E-05  0.10894933E-05
-  0.10754611E-05  0.10516635E-05  0.10185295E-05  0.97656513E-06  0.92634782E-06
-  0.86851908E-06  0.80377754E-06  0.73287127E-06  0.65658987E-06  0.57575636E-06
-  0.49121891E-06  0.40384252E-06  0.31450065E-06  0.22406708E-06  0.13340778E-06
-  0.43373085E-07 -0.45209802E-07 -0.13154400E-06 -0.21486970E-06 -0.29447041E-06
- -0.36967874E-06 -0.43988155E-06 -0.50452456E-06 -0.56311628E-06 -0.61523130E-06
- -0.66051294E-06 -0.69867516E-06 -0.72950384E-06 -0.75285729E-06 -0.76866619E-06
- -0.77693279E-06 -0.77772948E-06 -0.77119677E-06 -0.75754063E-06 -0.73702932E-06
- -0.70998970E-06 -0.67680308E-06 -0.63790058E-06 -0.59375822E-06 -0.54489163E-06
- -0.49185048E-06 -0.43521276E-06 -0.37557887E-06 -0.31356558E-06 -0.24980003E-06
- -0.18491372E-06 -0.11953651E-06 -0.54290839E-07  0.10213919E-07  0.73386891E-07
-  0.13466084E-06  0.19349698E-06  0.24938949E-06  0.30186957E-06  0.35050912E-06
-  0.39492396E-06  0.43477660E-06  0.46977849E-06  0.49969185E-06  0.52433087E-06
-  0.54356256E-06  0.55730693E-06  0.56553685E-06  0.56827727E-06  0.56560403E-06
-  0.55764226E-06  0.54456431E-06  0.52658722E-06  0.50396998E-06  0.47701026E-06
-  0.44604100E-06  0.41142663E-06  0.37355910E-06  0.33285375E-06  0.28974500E-06
-  0.24468193E-06  0.19812388E-06  0.15053591E-06  0.10238442E-06  0.54132716E-07
-  0.62367788E-08 -0.40858886E-07 -0.86725192E-07 -0.13095221E-06 -0.17315265E-06
- -0.21296511E-06 -0.25005694E-06 -0.28412693E-06 -0.31490750E-06 -0.34216665E-06
- -0.36570951E-06 -0.38537949E-06 -0.40105911E-06 -0.41267040E-06 -0.42017495E-06
- -0.42357360E-06 -0.42290573E-06 -0.41824822E-06 -0.40971413E-06 -0.39745100E-06
- -0.38163883E-06 -0.36248792E-06 -0.34023633E-06 -0.31514719E-06 -0.28750579E-06
- -0.25761658E-06 -0.22579994E-06 -0.19238893E-06 -0.15772595E-06 -0.12215937E-06
- -0.86040187E-07 -0.49718647E-07 -0.13541005E-07  0.22153667E-07  0.57036538E-07
-  0.90791928E-07  0.12312006E-06  0.15373959E-06  0.18238997E-06  0.20883351E-06
-  0.23285726E-06  0.25427458E-06  0.27292648E-06  0.28868261E-06  0.30144207E-06
-  0.31113384E-06  0.31771695E-06  0.32118039E-06  0.32154272E-06  0.31885140E-06
-  0.31318189E-06  0.30463646E-06  0.29334283E-06  0.27945252E-06  0.26313906E-06
-  0.24459602E-06  0.22403482E-06  0.20168251E-06  0.17777935E-06  0.15257633E-06
-  0.12633270E-06  0.99313318E-07  0.71786140E-07  0.44019613E-07  0.16280158E-07
- -0.11170310E-07 -0.38076764E-07 -0.64193365E-07 -0.89285620E-07 -0.11313241E-06
- -0.13552787E-06 -0.15628307E-06 -0.17522752E-06 -0.19221052E-06 -0.20710224E-06
- -0.21979462E-06 -0.23020204E-06 -0.23826179E-06 -0.24393430E-06 -0.24720317E-06
- -0.24807490E-06 -0.24657857E-06 -0.24276514E-06 -0.23670665E-06 -0.22849526E-06
- -0.21824199E-06 -0.20607547E-06 -0.19214040E-06 -0.17659596E-06 -0.15961408E-06
- -0.14137764E-06 -0.12207857E-06 -0.10191591E-06 -0.81093788E-07 -0.59819486E-07
- -0.38301386E-07 -0.16747007E-07  0.46389382E-08  0.25656431E-07  0.46111962E-07
-  0.65820256E-07  0.84605894E-07  0.10230482E-06  0.11876572E-06  0.13385124E-06
-  0.14743910E-06  0.15942300E-06  0.16971338E-06  0.17823805E-06  0.18494256E-06
-  0.18979049E-06  0.19276351E-06  0.19386128E-06  0.19310120E-06  0.19051798E-06
-  0.18616304E-06  0.18010382E-06  0.17242285E-06  0.16321682E-06  0.15259538E-06
-  0.14067999E-06  0.12760255E-06  0.11350404E-06  0.98533033E-07  0.82844184E-07
-  0.66596694E-07  0.49952735E-07  0.33075874E-07  0.16129513E-07 -0.72465324E-09
- -0.17328139E-07 -0.33527119E-07 -0.49173812E-07 -0.64127789E-07 -0.78257197E-07
- -0.91439880E-07 -0.10356439E-06 -0.11453090E-06 -0.12425196E-06 -0.13265316E-06
- -0.13967366E-06 -0.14526653E-06 -0.14939904E-06 -0.15205274E-06 -0.15322347E-06
- -0.15292112E-06 -0.15116943E-06 -0.14800550E-06 -0.14347929E-06 -0.13765294E-06
- -0.13060004E-06 -0.12240475E-06 -0.11316085E-06 -0.10297075E-06 -0.91944386E-07
- -0.80198063E-07 -0.67853283E-07 -0.55035515E-07 -0.41872961E-07 -0.28495302E-07
- -0.15032454E-07 -0.16133352E-08  0.11635336E-07  0.24590209E-07  0.37132420E-07
-  0.49148656E-07  0.60532143E-07  0.71183572E-07  0.81011928E-07  0.89935244E-07
-  0.97881244E-07  0.10478790E-06  0.11060388E-06  0.11528886E-06  0.11881382E-06
-  0.12116109E-06  0.12232439E-06  0.12230878E-06  0.12113038E-06  0.11881613E-06
-  0.11540336E-06  0.11093929E-06  0.10548050E-06  0.99092190E-07  0.91847517E-07
-  0.83826762E-07  0.75116481E-07  0.65808606E-07  0.55999498E-07  0.45788981E-07
-  0.35279347E-07  0.24574360E-07  0.13778250E-07  0.29947206E-08 -0.76740207E-08
- -0.18128214E-07 -0.28271459E-07 -0.38011579E-07 -0.47261440E-07 -0.55939707E-07
- -0.63971541E-07 -0.71289215E-07 -0.77832665E-07 -0.83549956E-07 -0.88397669E-07
- -0.92341195E-07 -0.95354951E-07 -0.97422500E-07 -0.98536589E-07 -0.98699097E-07
- -0.97920896E-07 -0.96221633E-07 -0.93629426E-07 -0.90180493E-07 -0.85918699E-07
- -0.80895042E-07 -0.75167082E-07 -0.68798307E-07 -0.61857456E-07 -0.54417806E-07
- -0.46556413E-07 -0.38353339E-07 -0.29890854E-07 -0.21252631E-07 -0.12522934E-07
- -0.37858156E-08  0.48756775E-08  0.13380276E-07  0.21649236E-07  0.29607050E-07
-  0.37182121E-07  0.44307392E-07  0.50920920E-07  0.56966402E-07  0.62393631E-07
-  0.67158897E-07  0.71225322E-07  0.74563117E-07  0.77149777E-07  0.78970206E-07
-  0.80016760E-07  0.80289232E-07  0.79794755E-07  0.78547650E-07  0.76569190E-07
-  0.73887320E-07  0.70536305E-07  0.66556328E-07  0.61993032E-07  0.56897024E-07
-  0.51323331E-07  0.45330824E-07  0.38981613E-07  0.32340417E-07  0.25473921E-07
-  0.18450117E-07  0.11337647E-07  0.42051412E-08 -0.28794280E-08 -0.98493841E-08
- -0.16639961E-07 -0.23188892E-07 -0.29436970E-07 -0.35328568E-07 -0.40812125E-07
- -0.45840579E-07 -0.50371762E-07 -0.54368736E-07 -0.57800081E-07 -0.60640121E-07
- -0.62869100E-07 -0.64473297E-07 -0.65445078E-07 -0.65782899E-07 -0.65491242E-07
- -0.64580506E-07 -0.63066827E-07 -0.60971865E-07 -0.58322529E-07 -0.55150654E-07
- -0.51492651E-07 -0.47389095E-07 -0.42884300E-07 -0.38025850E-07 -0.32864112E-07
- -0.27451723E-07 -0.21843067E-07 -0.16093737E-07 -0.10259996E-07 -0.43982344E-08
-  0.14355627E-08  0.71863441E-08  0.12800501E-07  0.18226358E-07  0.23414641E-07
-  0.28318911E-07  0.32895976E-07  0.37106258E-07  0.40914127E-07  0.44288191E-07
-  0.47201541E-07  0.49631959E-07  0.51562064E-07  0.52979429E-07  0.53876634E-07
-  0.54251276E-07  0.54105940E-07  0.53448106E-07  0.52290030E-07  0.50648562E-07
-  0.48544941E-07  0.46004535E-07  0.43056558E-07  0.39733743E-07  0.36071996E-07
-  0.32110014E-07  0.27888888E-07  0.23451687E-07  0.18843027E-07  0.14108626E-07
-  0.92948675E-08  0.44483443E-08 -0.38457840E-09 -0.51582018E-08 -0.98279172E-08
- -0.14350616E-07 -0.18685080E-07 -0.22792350E-07 -0.26636066E-07 -0.30182785E-07
- -0.33402261E-07 -0.36267695E-07 -0.38755949E-07 -0.40847725E-07 -0.42527701E-07
- -0.43784631E-07 -0.44611406E-07 -0.45005075E-07 -0.44966822E-07 -0.44501911E-07
- -0.43619591E-07 -0.42332959E-07 -0.40658796E-07 -0.38617367E-07 -0.36232185E-07
- -0.33529757E-07 -0.30539298E-07 -0.27292420E-07 -0.23822813E-07 -0.20165895E-07
- -0.16358462E-07 -0.12438321E-07 -0.84439245E-08 -0.44139948E-08 -0.38715706E-09
-  0.35984264E-08  0.75054122E-08  0.11297620E-07  0.14940364E-07  0.18400759E-07
-  0.21648020E-07  0.24653721E-07  0.27392046E-07  0.29839999E-07  0.31977589E-07
-  0.33787991E-07  0.35257666E-07  0.36376450E-07  0.37137619E-07  0.37537909E-07
-  0.37577509E-07  0.37260025E-07  0.36592399E-07  0.35584817E-07  0.34250568E-07
-  0.32605889E-07  0.30669776E-07  0.28463775E-07  0.26011753E-07  0.23339640E-07
-  0.20475168E-07  0.17447585E-07  0.14287364E-07  0.11025901E-07  0.76952074E-08
-  0.43276014E-08  0.95539922E-09 -0.23893908E-08 -0.56753669E-08 -0.88720247E-08
- -0.11950035E-07 -0.14881510E-07 -0.17640250E-07 -0.20201972E-07 -0.22544524E-07
- -0.24648063E-07 -0.26495225E-07 -0.28071260E-07 -0.29364144E-07 -0.30364661E-07
- -0.31066465E-07 -0.31466104E-07 -0.31563026E-07 -0.31359549E-07 -0.30860813E-07
- -0.30074696E-07 -0.29011715E-07 -0.27684894E-07 -0.26109618E-07 -0.24303457E-07
- -0.22285982E-07 -0.20078552E-07 -0.17704100E-07 -0.15186893E-07 -0.12552291E-07
- -0.98264954E-08 -0.70362916E-08 -0.42087888E-08 -0.13711612E-08  0.14496101E-08
-  0.42269901E-08  0.69351355E-08  0.95491319E-08  0.12045220E-07  0.14401006E-07
-  0.16595662E-07  0.18610102E-07  0.20427146E-07  0.22031661E-07  0.23410684E-07
-  0.24553519E-07  0.25451815E-07  0.26099624E-07  0.26493423E-07  0.26632132E-07
-  0.26517089E-07  0.26152020E-07  0.25542974E-07  0.24698245E-07  0.23628266E-07
-  0.22345494E-07  0.20864267E-07  0.19200649E-07  0.17372264E-07  0.15398111E-07
-  0.13298372E-07  0.11094206E-07  0.88075432E-08  0.64608682E-08  0.40770010E-08
-  0.16788790E-08 -0.71066103E-09 -0.30690973E-08 -0.53744330E-08 -0.76053985E-08
- -0.97416452E-08 -0.11763929E-07 -0.13654278E-07 -0.15396156E-07 -0.16974594E-07
- -0.18376325E-07 -0.19589886E-07 -0.20605711E-07 -0.21416199E-07 -0.22015771E-07
- -0.22400896E-07 -0.22570106E-07 -0.22523988E-07 -0.22265159E-07 -0.21798218E-07
- -0.21129684E-07 -0.20267914E-07 -0.19223007E-07 -0.18006686E-07 -0.16632178E-07
- -0.15114066E-07 -0.13468142E-07 -0.11711246E-07 -0.98610957E-08 -0.79361089E-08
- -0.59552253E-08 -0.39377210E-08 -0.19030235E-08  0.12947253E-09  0.21405877E-08
-  0.41115363E-08  0.60240990E-08  0.78607894E-08  0.96050108E-08  0.11241205E-07
-  0.12754986E-07  0.14133267E-07  0.15364369E-07  0.16438116E-07  0.17345916E-07
-  0.18080829E-07  0.18637614E-07  0.19012761E-07  0.19204509E-07  0.19212846E-07
-  0.19039488E-07  0.18687849E-07  0.18162994E-07  0.17471570E-07  0.16621732E-07
-  0.15623051E-07  0.14486408E-07  0.13223881E-07  0.11848618E-07  0.10374701E-07
-  0.88170072E-08  0.71910591E-08  0.55128719E-08  0.37987983E-08  0.20653706E-08
-  0.32914233E-09 -0.13934677E-08 -0.30863295E-08 -0.47337509E-08 -0.63206208E-08
- -0.78325462E-08 -0.92559808E-08 -0.10578344E-07 -0.11788132E-07 -0.12875014E-07
- -0.13829917E-07 -0.14645103E-07 -0.15314224E-07 -0.15832370E-07 -0.16196103E-07
- -0.16403471E-07 -0.16454014E-07 -0.16348755E-07 -0.16090177E-07 -0.15682179E-07
- -0.15130034E-07 -0.14440317E-07 -0.13620840E-07 -0.12680557E-07 -0.11629478E-07
-   19.8421228800787      T
- Non local Part
-           0           2   1.03170241276447     
-   8.48191517218165        11.7757836767903        11.7757836767903     
-   16.3515625171536     
- Reciprocal Space Part
-  0.59618802E+02  0.58728804E+02  0.56074024E+02  0.51699804E+02  0.45680746E+02
-  0.38119274E+02  0.29143671E+02  0.18905623E+02  0.75773282E+01 -0.46517683E+01
- -0.17578547E+02 -0.30990019E+02 -0.44667277E+02 -0.58389527E+02 -0.71938095E+02
- -0.85100345E+02 -0.97673425E+02 -0.10946776E+03 -0.12031025E+03 -0.13004704E+03
- -0.13854596E+03 -0.14569837E+03 -0.15142064E+03 -0.15565502E+03 -0.15837002E+03
- -0.15956027E+03 -0.15924591E+03 -0.15747139E+03 -0.15430398E+03 -0.14983176E+03
- -0.14416132E+03 -0.13741514E+03 -0.12972880E+03 -0.12124795E+03 -0.11212524E+03
- -0.10251722E+03 -0.92581277E+02 -0.82472653E+02 -0.72341667E+02 -0.62331121E+02
- -0.52573985E+02 -0.43191382E+02 -0.34290898E+02 -0.25965259E+02 -0.18291368E+02
- -0.11329718E+02 -0.51241765E+01  0.29787571E+00  0.49250688E+01  0.87612564E+01
-  0.11824451E+02  0.14145521E+02  0.15766686E+02  0.16739863E+02  0.17124899E+02
-  0.16987748E+02  0.16398621E+02  0.15430172E+02  0.14155746E+02  0.12647730E+02
-  0.10976046E+02  0.92067952E+01  0.74011008E+01  0.56141435E+01  0.38944113E+01
-  0.22831646E+01  0.81411644E+00 -0.48667978E+00 -0.16007453E+01 -0.25169103E+01
- -0.32308862E+01 -0.37446987E+01 -0.40660062E+01 -0.42073286E+01 -0.41852143E+01
- -0.40193711E+01 -0.37317875E+01 -0.33458677E+01 -0.28856034E+01 -0.23748024E+01
- -0.18363896E+01 -0.12917960E+01 -0.76044515E+00 -0.25934295E+00  0.19722322E+00
-  0.59787806E+00  0.93424642E+00  0.12009418E+01  0.13954638E+01  0.15180138E+01
-  0.15712429E+01  0.15599426E+01  0.14906942E+01  0.13714899E+01  0.12113407E+01
-  0.10198828E+01  0.80699697E+00  0.58245003E+00  0.35557023E+00  0.13496271E+00
- Real Space Part
- -0.87257185E+03 -0.87217325E+03 -0.87097758E+03 -0.86898535E+03 -0.86619740E+03
- -0.86261493E+03 -0.85823952E+03 -0.85307319E+03 -0.84711839E+03 -0.84037811E+03
- -0.83285587E+03 -0.82455582E+03 -0.81548281E+03 -0.80564241E+03 -0.79504105E+03
- -0.78368604E+03 -0.77158570E+03 -0.75874942E+03 -0.74518776E+03 -0.73091251E+03
- -0.71593685E+03 -0.70027535E+03 -0.68394415E+03 -0.66696100E+03 -0.64934533E+03
- -0.63111840E+03 -0.61230331E+03 -0.59292512E+03 -0.57301089E+03 -0.55258976E+03
- -0.53169298E+03 -0.51035396E+03 -0.48860832E+03 -0.46649386E+03 -0.44405060E+03
- -0.42132076E+03 -0.39834870E+03 -0.37518093E+03 -0.35186599E+03 -0.32845440E+03
- -0.30499855E+03 -0.28155254E+03 -0.25817210E+03 -0.23491433E+03 -0.21183758E+03
- -0.18900121E+03 -0.16646531E+03 -0.14429049E+03 -0.12253758E+03 -0.10126731E+03
- -0.80539962E+02 -0.60415079E+02 -0.40951054E+02 -0.22204768E+02 -0.42311995E+01
-  0.12916980E+02  0.29189809E+02  0.44540445E+02  0.58925573E+02  0.72305804E+02
-  0.84646067E+02  0.95915987E+02  0.10609024E+03  0.11514887E+03  0.12307763E+03
-  0.12986821E+03  0.13551849E+03  0.14003271E+03  0.14342163E+03  0.14570263E+03
-  0.14689971E+03  0.14704353E+03  0.14617130E+03  0.14432667E+03  0.14155957E+03
-  0.13792593E+03  0.13348743E+03  0.12831116E+03  0.12246922E+03  0.11603831E+03
-  0.10909924E+03  0.10173648E+03  0.94037578E+02  0.86092680E+02  0.77993902E+02
-  0.69834817E+02  0.61709839E+02  0.53713688E+02  0.45940793E+02  0.38484762E+02
-  0.31437841E+02  0.24890391E+02  0.18930406E+02  0.13643042E+02  0.91101706E+01
-  0.54100403E+01  0.26168332E+01  0.79835325E+00  0.23427012E-01  0.00000000E+00
- Reciprocal Space Part
- -0.36489549E+02 -0.35864156E+02 -0.33998755E+02 -0.30925471E+02 -0.26697153E+02
- -0.21386360E+02 -0.15083959E+02 -0.78973858E+01  0.51413298E-01  0.86282977E+01
-  0.17689472E+02  0.27084188E+02  0.36657552E+02  0.46253383E+02  0.55717063E+02
-  0.64898313E+02  0.73653855E+02  0.81849887E+02  0.89364344E+02  0.96088881E+02
-  0.10193057E+03  0.10681323E+03  0.11067846E+03  0.11348624E+03  0.11521523E+03
-  0.11586261E+03  0.11544365E+03  0.11399089E+03  0.11155304E+03  0.10819353E+03
-  0.10398888E+03  0.99026864E+02  0.93404459E+02  0.87225735E+02  0.80599650E+02
-  0.73637846E+02  0.66452460E+02  0.59154022E+02  0.51849465E+02  0.44640290E+02
-  0.37620922E+02  0.30877278E+02  0.24485577E+02  0.18511398E+02  0.13009009E+02
-  0.80209530E+01  0.35779043E+01 -0.30122499E+00 -0.36089364E+01 -0.63485770E+01
- -0.85335736E+01 -0.10186497E+02 -0.11337984E+02 -0.12025554E+02 -0.12292345E+02
- -0.12185805E+02 -0.11756382E+02 -0.11056219E+02 -0.10137909E+02 -0.90533175E+01
- -0.78525080E+01 -0.65827802E+01 -0.52878430E+01 -0.40071309E+01 -0.27752721E+01
- -0.16217097E+01 -0.57047779E+00  0.35987548E+00  0.11562232E+01  0.18106666E+01
-  0.23202264E+01  0.26864349E+01  0.29148468E+01  0.30144856E+01  0.29972475E+01
-  0.28772789E+01  0.26703472E+01  0.23932227E+01  0.20630867E+01  0.16969795E+01
-  0.13113025E+01  0.92138094E+00  0.54109837E+00  0.18260423E+00 -0.14390035E+00
- -0.43029978E+00 -0.67062595E+00 -0.86104898E+00 -0.99980292E+00 -0.10870535E+01
- -0.11247164E+01 -0.11162365E+01 -0.10663359E+01 -0.98074332E+00 -0.86591280E+00
- -0.72874294E+00 -0.57630417E+00 -0.41558297E+00 -0.25324963E+00 -0.95455204E-01
- Real Space Part
-  0.63319797E+03  0.63291041E+03  0.63204781E+03  0.63061056E+03  0.62859924E+03
-  0.62601473E+03  0.62285817E+03  0.61913101E+03  0.61483503E+03  0.60997237E+03
-  0.60454559E+03  0.59855767E+03  0.59201211E+03  0.58491291E+03  0.57726472E+03
-  0.56907280E+03  0.56034314E+03  0.55108251E+03  0.54129849E+03  0.53099960E+03
-  0.52019530E+03  0.50889609E+03  0.49711358E+03  0.48486054E+03  0.47215095E+03
-  0.45900011E+03  0.44542463E+03  0.43144254E+03  0.41707331E+03  0.40233788E+03
-  0.38725874E+03  0.37185991E+03  0.35616701E+03  0.34020723E+03  0.32400934E+03
-  0.30760369E+03  0.29102220E+03  0.27429832E+03  0.25746694E+03  0.24056440E+03
-  0.22362837E+03  0.20669777E+03  0.18981266E+03  0.17301414E+03  0.15634416E+03
-  0.13984541E+03  0.12356113E+03  0.10753493E+03  0.91810566E+02  0.76431735E+02
-  0.61441833E+02  0.46883707E+02  0.32799393E+02  0.19229849E+02  0.62146659E+01
- -0.62082134E+01 -0.18002788E+02 -0.29135292E+02 -0.39574487E+02 -0.49291950E+02
- -0.58262356E+02 -0.66463744E+02 -0.73877778E+02 -0.80489982E+02 -0.86289957E+02
- -0.91271581E+02 -0.95433167E+02 -0.98777602E+02 -0.10131245E+03 -0.10305002E+03
- -0.10400739E+03 -0.10420642E+03 -0.10367366E+03 -0.10244030E+03 -0.10054203E+03
- -0.98018889E+02 -0.94915012E+02 -0.91278431E+02 -0.87160797E+02 -0.82617056E+02
- -0.77705128E+02 -0.72485556E+02 -0.67021113E+02 -0.61376433E+02 -0.55617588E+02
- -0.49811699E+02 -0.44026502E+02 -0.38329965E+02 -0.32789855E+02 -0.27473361E+02
- -0.22446704E+02 -0.17774762E+02 -0.13520724E+02 -0.97457493E+01 -0.65086493E+01
- -0.38656440E+01 -0.18700414E+01 -0.57059033E+00 -0.16714955E-01  0.00000000E+00
- Non local Part
-           1           2   1.03170241276447     
-   2.65859946877321        4.88238126795342        4.88238126795342     
-   8.98435195357541     
- Reciprocal Space Part
-  0.00000000E+00  0.38861820E+01  0.76566506E+01  0.11198191E+02  0.14402530E+02
-  0.17168669E+02  0.19405054E+02  0.21031535E+02  0.21981079E+02  0.22201184E+02
-  0.21654974E+02  0.20321960E+02  0.18198431E+02  0.15297488E+02  0.11648712E+02
-  0.72974833E+01  0.23039596E+01 -0.32582469E+01 -0.93036735E+01 -0.15736848E+02
- -0.22454324E+02 -0.29346862E+02 -0.36301710E+02 -0.43204929E+02 -0.49943706E+02
- -0.56408622E+02 -0.62495800E+02 -0.68108907E+02 -0.73160964E+02 -0.77575922E+02
- -0.81289979E+02 -0.84252614E+02 -0.86427318E+02 -0.87792019E+02 -0.88339191E+02
- -0.88075654E+02 -0.87022084E+02 -0.85212244E+02 -0.82691957E+02 -0.79517866E+02
- -0.75756000E+02 -0.71480183E+02 -0.66770345E+02 -0.61710747E+02 -0.56388189E+02
- -0.50890222E+02 -0.45303418E+02 -0.39711722E+02 -0.34194931E+02 -0.28827322E+02
- -0.23676453E+02 -0.18802168E+02 -0.14255806E+02 -0.10079632E+02 -0.63064936E+01
- -0.29596904E+01 -0.53068427E-01  0.24086920E+01  0.44295991E+01  0.60217087E+01
-  0.72043400E+01  0.80031754E+01  0.84492707E+01  0.85780039E+01  0.84279913E+01
-  0.80399981E+01  0.74558696E+01  0.67175093E+01  0.58659233E+01  0.49403528E+01
-  0.39775094E+01  0.30109262E+01  0.20704331E+01  0.11817624E+01  0.36628567E+00
- -0.35911990E+00 -0.98208097E+00 -0.14946211E+01 -0.18929483E+01 -0.21771504E+01
- -0.23508116E+01 -0.24205674E+01 -0.23956133E+01 -0.22871843E+01 -0.21080214E+01
- -0.18718417E+01 -0.15928247E+01 -0.12851305E+01 -0.96245910E+00 -0.63766179E+00
- -0.32241090E+00 -0.26933951E-01  0.24018535E+00  0.47213831E+00  0.66395584E+00
-  0.81250966E+00  0.91645487E+00  0.97612004E+00  0.99335246E+00  0.97132649E+00
- Real Space Part
-  0.00000000E+00 -0.22186814E+02 -0.44301839E+02 -0.66273522E+02 -0.88030777E+02
- -0.10950322E+03 -0.13062140E+03 -0.15131703E+03 -0.17152321E+03 -0.19117468E+03
- -0.21020799E+03 -0.22856176E+03 -0.24617690E+03 -0.26299679E+03 -0.27896751E+03
- -0.29403802E+03 -0.30816039E+03 -0.32128994E+03 -0.33338548E+03 -0.34440943E+03
- -0.35432799E+03 -0.36311136E+03 -0.37073379E+03 -0.37717380E+03 -0.38241426E+03
- -0.38644250E+03 -0.38925046E+03 -0.39083470E+03 -0.39119654E+03 -0.39034209E+03
- -0.38828229E+03 -0.38503293E+03 -0.38061467E+03 -0.37505301E+03 -0.36837826E+03
- -0.36062551E+03 -0.35183450E+03 -0.34204958E+03 -0.33131954E+03 -0.31969747E+03
- -0.30724063E+03 -0.29401017E+03 -0.28007097E+03 -0.26549136E+03 -0.25034283E+03
- -0.23469974E+03 -0.21863898E+03 -0.20223959E+03 -0.18558239E+03 -0.16874958E+03
- -0.15182426E+03 -0.13489000E+03 -0.11803038E+03 -0.10132845E+03 -0.84866250E+02
- -0.68724282E+02 -0.52980979E+02 -0.37712173E+02 -0.22990566E+02 -0.88851973E+01
-  0.45390663E+01  0.17222034E+02  0.29108671E+02  0.40149550E+02  0.50301273E+02
-  0.59526856E+02  0.67796071E+02  0.75085739E+02  0.81379975E+02  0.86670373E+02
-  0.90956134E+02  0.94244139E+02  0.96548944E+02  0.97892719E+02  0.98305121E+02
-  0.97823113E+02  0.96490698E+02  0.94358601E+02  0.91483927E+02  0.87929701E+02
-  0.83764422E+02  0.79061549E+02  0.73898935E+02  0.68358280E+02  0.62524490E+02
-  0.56485105E+02  0.50329625E+02  0.44148922E+02  0.38034576E+02  0.32078283E+02
-  0.26371234E+02  0.21003526E+02  0.16063609E+02  0.11637728E+02  0.78094126E+01
-  0.46590409E+01  0.22633368E+01  0.69369210E+00  0.17747648E-01  0.00000000E+00
- Reciprocal Space Part
-  0.00000000E+00 -0.17868362E+01 -0.35144269E+01 -0.51248277E+01 -0.65626676E+01
- -0.77763629E+01 -0.87192468E+01 -0.93505888E+01 -0.96364809E+01 -0.95505728E+01
- -0.90746384E+01 -0.81989629E+01 -0.69225426E+01 -0.52530936E+01 -0.32068705E+01
- -0.80830207E+00  0.19105496E+01  0.49106895E+01  0.81470351E+01  0.11569385E+02
-  0.15123488E+02  0.18752190E+02  0.22396628E+02  0.25997448E+02  0.29496018E+02
-  0.32835608E+02  0.35962514E+02  0.38827099E+02  0.41384736E+02  0.43596618E+02
-  0.45430445E+02  0.46860950E+02  0.47870266E+02  0.48448142E+02  0.48591976E+02
-  0.48306705E+02  0.47604523E+02  0.46504469E+02  0.45031872E+02  0.43217686E+02
-  0.41097721E+02  0.38711805E+02  0.36102874E+02  0.33316045E+02  0.30397658E+02
-  0.27394336E+02  0.24352070E+02  0.21315355E+02  0.18326389E+02  0.15424354E+02
-  0.12644790E+02  0.10019079E+02  0.75740326E+01  0.53316035E+01  0.33087123E+01
-  0.15171909E+01 -0.36159418E-01 -0.13494048E+01 -0.24252171E+01 -0.32705252E+01
- -0.38960921E+01 -0.43160309E+01 -0.45472742E+01 -0.46090120E+01 -0.45221135E+01
- -0.43085463E+01 -0.39908088E+01 -0.35913863E+01 -0.31322454E+01 -0.26343746E+01
- -0.21173800E+01 -0.15991441E+01 -0.10955499E+01 -0.62027500E+00 -0.18465580E+00
-  0.20237976E+00  0.53431322E+00  0.80697500E+00  0.10184279E+01  0.11688016E+01
-  0.12600861E+01  0.12958921E+01  0.12811875E+01  0.12220191E+01  0.11252269E+01
-  0.99816176E+00  0.84841124E+00  0.68354309E+00  0.51087098E+00  0.33724795E+00
-  0.16889148E+00  0.11242749E-01 -0.13113830E+00 -0.25464171E+00 -0.35664077E+00
- -0.43549155E+00 -0.49050126E+00 -0.52186870E+00 -0.53060095E+00 -0.51841055E+00
- Real Space Part
-  0.00000000E+00  0.12161252E+02  0.24283469E+02  0.36327742E+02  0.48255417E+02
-  0.60028220E+02  0.71608383E+02  0.82958767E+02  0.94042991E+02  0.10482555E+03
-  0.11527193E+03  0.12534873E+03  0.13502381E+03  0.14426635E+03  0.15304699E+03
-  0.16133795E+03  0.16911311E+03  0.17634814E+03  0.18302057E+03  0.18910990E+03
-  0.19459770E+03  0.19946767E+03  0.20370573E+03  0.20730009E+03  0.21024135E+03
-  0.21252251E+03  0.21413905E+03  0.21508898E+03  0.21537287E+03  0.21499392E+03
-  0.21395789E+03  0.21227322E+03  0.20995096E+03  0.20700481E+03  0.20345105E+03
-  0.19930856E+03  0.19459875E+03  0.18934552E+03  0.18357519E+03  0.17731641E+03
-  0.17060007E+03  0.16345921E+03  0.15592887E+03  0.14804598E+03  0.13984918E+03
-  0.13137868E+03  0.12267606E+03  0.11378408E+03  0.10474648E+03  0.95607747E+02
-  0.86412883E+02  0.77207157E+02  0.68035844E+02  0.58943963E+02  0.49976000E+02
-  0.41175622E+02  0.32585400E+02  0.24246514E+02  0.16198468E+02  0.84788075E+01
-  0.11228377E+01 -0.58366451E+01 -0.12369614E+02 -0.18449055E+02 -0.24051197E+02
- -0.29155721E+02 -0.33745943E+02 -0.37808973E+02 -0.41335852E+02 -0.44321651E+02
- -0.46765541E+02 -0.48670833E+02 -0.50044982E+02 -0.50899549E+02 -0.51250136E+02
- -0.51116295E+02 -0.50521380E+02 -0.49492378E+02 -0.48059729E+02 -0.46257077E+02
- -0.44121031E+02 -0.41690892E+02 -0.39008342E+02 -0.36117160E+02 -0.33062867E+02
- -0.29892426E+02 -0.26653874E+02 -0.23396010E+02 -0.20168034E+02 -0.17019231E+02
- -0.13998631E+02 -0.11154698E+02 -0.85350264E+01 -0.61860453E+01 -0.41527388E+01
- -0.24784108E+01 -0.12044157E+01 -0.36926989E+00 -0.93979993E-02  0.00000000E+00
- PAW radial sets
-         351  0.989218471734280     
-(5E20.12)                                
- augmentation charges (non sperical)
- -0.118612820244E+00 -0.166184190184E+00 -0.532145144881E-01 -0.101222164724E+00 -0.166184190184E+00
- -0.232848406670E+00 -0.743582353105E-01 -0.141431561143E+00 -0.532145144881E-01 -0.743582353105E-01
- -0.179689550405E-01 -0.343505440708E-01 -0.101222164724E+00 -0.141431561143E+00 -0.343505440708E-01
- -0.655142723317E-01
- uccopancies in atom
-  0.200000000235E+01  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.666666668254E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00
- grid
-  0.353278105438E-04  0.364765828105E-04  0.376627102856E-04  0.388874076671E-04  0.401519291522E-04
-  0.414575697215E-04  0.428056664648E-04  0.441975999512E-04  0.456347956421E-04  0.471187253514E-04
-  0.486509087530E-04  0.502329149365E-04  0.518663640144E-04  0.535529287814E-04  0.552943364272E-04
-  0.570923703053E-04  0.589488717596E-04  0.608657420098E-04  0.628449440985E-04  0.648885049016E-04
-  0.669985172040E-04  0.691771418426E-04  0.714266099194E-04  0.737492250864E-04  0.761473659044E-04
-  0.786234882792E-04  0.811801279764E-04  0.838199032186E-04  0.865455173661E-04  0.893597616862E-04
-  0.922655182109E-04  0.952657626888E-04  0.983635676325E-04  0.101562105465E-03  0.104864651768E-03
-  0.108274588638E-03  0.111795408149E-03  0.115430715926E-03  0.119184234844E-03  0.123059808833E-03
-  0.127061406819E-03  0.131193126789E-03  0.135459199986E-03  0.139863995240E-03  0.144412023447E-03
-  0.149107942186E-03  0.153956560487E-03  0.158962843759E-03  0.164131918874E-03  0.169469079417E-03
-  0.174979791106E-03  0.180669697392E-03  0.186544625235E-03  0.192610591076E-03  0.198873806993E-03
-  0.205340687067E-03  0.212017853948E-03  0.218912145639E-03  0.226030622496E-03  0.233380574462E-03
-  0.240969528530E-03  0.248805256452E-03  0.256895782699E-03  0.265249392676E-03  0.273874641209E-03
-  0.282780361308E-03  0.291975673207E-03  0.301469993709E-03  0.311273045829E-03  0.321394868748E-03
-  0.331845828098E-03  0.342636626573E-03  0.353778314896E-03  0.365282303127E-03  0.377160372357E-03
-  0.389424686766E-03  0.402087806084E-03  0.415162698451E-03  0.428662753701E-03  0.442601797068E-03
-  0.456994103352E-03  0.471854411533E-03  0.487197939863E-03  0.503040401457E-03  0.519398020380E-03
-  0.536287548263E-03  0.553726281459E-03  0.571732078754E-03  0.590323379658E-03  0.609519223288E-03
-  0.629339267864E-03  0.649803810846E-03  0.670933809712E-03  0.692750903429E-03  0.715277434606E-03
-  0.738536472381E-03  0.762551836040E-03  0.787348119413E-03  0.812950716063E-03  0.839385845286E-03
-  0.866680578963E-03  0.894862869287E-03  0.923961577387E-03  0.954006502881E-03  0.985028414399E-03
-  0.101705908109E-02  0.105013130516E-02  0.108427895544E-02  0.111953700213E-02  0.115594155253E-02
-  0.119352988810E-02  0.123234050257E-02  0.127241314140E-02  0.131378884247E-02  0.135650997813E-02
-  0.140062029854E-02  0.144616497653E-02  0.149319065382E-02  0.154174548883E-02  0.159187920594E-02
-  0.164364314647E-02  0.169709032120E-02  0.175227546473E-02  0.180925509145E-02  0.186808755348E-02
-  0.192883310041E-02  0.199155394099E-02  0.205631430683E-02  0.212318051821E-02  0.219222105197E-02
-  0.226350661166E-02  0.233711019991E-02  0.241310719324E-02  0.249157541920E-02  0.257259523611E-02
-  0.265624961535E-02  0.274262422631E-02  0.283180752413E-02  0.292389084032E-02  0.301896847624E-02
-  0.311713779968E-02  0.321849934462E-02  0.332315691413E-02  0.343121768671E-02  0.354279232604E-02
-  0.365799509430E-02  0.377694396919E-02  0.389976076474E-02  0.402657125610E-02  0.415750530828E-02
-  0.429269700920E-02  0.443228480697E-02  0.457641165169E-02  0.472522514185E-02  0.487887767547E-02
-  0.503752660617E-02  0.520133440431E-02  0.537046882339E-02  0.554510307185E-02  0.572541599040E-02
-  0.591159223525E-02  0.610382246712E-02  0.630230354657E-02  0.650723873558E-02  0.671883790569E-02
-  0.693731775293E-02  0.716290201977E-02  0.739582172419E-02  0.763631539635E-02  0.788462932276E-02
-  0.814101779859E-02  0.840574338805E-02  0.867907719326E-02  0.896129913194E-02  0.925269822400E-02
-  0.955357288758E-02  0.986423124464E-02  0.101849914365E-01  0.105161819495E-01  0.108581419519E-01
-  0.112112216404E-01  0.115757825996E-01  0.119521981717E-01  0.123408538391E-01  0.127421476193E-01
-  0.131564904721E-01  0.135843067208E-01  0.140260344867E-01  0.144821261375E-01  0.149530487510E-01
-  0.154392845931E-01  0.159413316118E-01  0.164597039470E-01  0.169949324574E-01  0.175475652638E-01
-  0.181181683104E-01  0.187073259445E-01  0.193156415151E-01  0.199437379906E-01  0.205922585965E-01
-  0.212618674747E-01  0.219532503631E-01  0.226671152982E-01  0.234041933402E-01  0.241652393213E-01
-  0.249510326191E-01  0.257623779547E-01  0.266001062165E-01  0.274650753115E-01  0.283581710436E-01
-  0.292803080210E-01  0.302324305924E-01  0.312155138146E-01  0.322305644506E-01  0.332786220011E-01
-  0.343607597686E-01  0.354780859567E-01  0.366317448050E-01  0.378229177610E-01  0.390528246900E-01
-  0.403227251240E-01  0.416339195521E-01  0.429877507520E-01  0.443856051652E-01  0.458289143166E-01
-  0.473191562810E-01  0.488578571964E-01  0.504465928270E-01  0.520869901769E-01  0.537807291563E-01
-  0.555295443019E-01  0.573352265534E-01  0.591996250870E-01  0.611246492098E-01  0.631122703148E-01
-  0.651645238996E-01  0.672835116512E-01  0.694714035982E-01  0.717304403333E-01  0.740629353074E-01
-  0.764712771991E-01  0.789579323611E-01  0.815254473456E-01  0.841764515121E-01  0.869136597208E-01
-  0.897398751118E-01  0.926579919768E-01  0.956709987225E-01  0.987819809310E-01  0.101994124520E+00
-  0.105310719005E+00  0.108735160869E+00  0.112270957040E+00  0.115921728481E+00  0.119691213902E+00
-  0.123583273585E+00  0.127601893339E+00  0.131751188583E+00  0.136035408556E+00  0.140458940676E+00
-  0.145026315024E+00  0.149742208992E+00  0.154611452068E+00  0.159639030781E+00  0.164830093811E+00
-  0.170189957261E+00  0.175724110099E+00  0.181438219781E+00  0.187338138056E+00  0.193429906954E+00
-  0.199719764979E+00  0.206214153496E+00  0.212919723327E+00  0.219843341560E+00  0.226992098585E+00
-  0.234373315355E+00  0.241994550880E+00  0.249863609972E+00  0.257988551235E+00  0.266377695319E+00
-  0.275039633439E+00  0.283983236179E+00  0.293217662568E+00  0.302752369466E+00  0.312597121246E+00
-  0.322761999795E+00  0.333257414835E+00  0.344094114590E+00  0.355283196787E+00  0.366836120023E+00
-  0.378764715502E+00  0.391081199148E+00  0.403798184116E+00  0.416928693710E+00  0.430486174720E+00
-  0.444484511190E+00  0.458938038641E+00  0.473861558747E+00  0.489270354497E+00  0.505180205845E+00
-  0.521607405869E+00  0.538568777456E+00  0.556081690535E+00  0.574164079857E+00  0.592834463369E+00
-  0.612111961177E+00  0.632016315122E+00  0.652567909002E+00  0.673787789445E+00  0.695697687463E+00
-  0.718320040705E+00  0.741678016440E+00  0.765795535274E+00  0.790697295655E+00  0.816408799161E+00
-  0.842956376619E+00  0.870367215068E+00  0.898669385601E+00  0.927891872115E+00  0.958064600989E+00
-  0.989218471734E+00  0.102138538864E+01  0.105459829343E+01  0.108889119903E+01  0.112429922437E+01
-  0.116085863037E+01  0.119860685704E+01  0.123758256187E+01  0.127782565939E+01  0.131937736205E+01
-  0.136228022242E+01  0.140657817678E+01  0.145231659010E+01  0.149954230253E+01  0.154830367731E+01
-  0.159865065035E+01  0.165063478135E+01  0.170430930661E+01  0.175972919353E+01  0.181695119691E+01
-  0.187603391710E+01  0.193703785995E+01  0.200002549884E+01  0.206506133861E+01  0.213221198164E+01
-  0.220154619607E+01  0.227313498618E+01  0.234705166515E+01  0.242337193012E+01  0.250217393971E+01
-  0.258353839407E+01
- aepotential
-  0.249296947974E+05  0.247076561026E+05  0.244443313547E+05  0.241414253640E+05  0.238012309740E+05
-  0.234259813678E+05  0.230181043480E+05  0.225809961616E+05  0.221166800594E+05  0.216286109490E+05
-  0.211196171324E+05  0.205927134571E+05  0.200508445329E+05  0.194969963033E+05  0.189339771311E+05
-  0.183645026186E+05  0.177912890443E+05  0.172167064663E+05  0.166431270260E+05  0.160726862779E+05
-  0.155073402250E+05  0.149488848247E+05  0.143989117768E+05  0.138588393857E+05  0.133298963598E+05
-  0.128131392341E+05  0.123094542557E+05  0.118195679465E+05  0.113440551010E+05  0.108833506728E+05
-  0.104377601662E+05  0.100074714858E+05  0.959256622382E+04  0.919303113611E+04  0.880876923400E+04
-  0.843961046952E+04  0.808532192877E+04  0.774561726178E+04  0.742016531312E+04  0.710859980992E+04
-  0.681052312014E+04  0.652551855157E+04  0.625315022209E+04  0.599297269034E+04  0.574453507071E+04
-  0.550738155297E+04  0.528105943435E+04  0.506512283908E+04  0.485912669119E+04  0.466263692016E+04
-  0.447523241993E+04  0.429649920031E+04  0.412604217009E+04  0.396347085357E+04  0.380841736718E+04
-  0.366052059215E+04  0.351943998366E+04  0.338484550824E+04  0.325642075114E+04  0.313386784458E+04
-  0.301689601724E+04  0.290523717951E+04  0.279862371984E+04  0.269681383135E+04  0.259956791482E+04
-  0.250666289932E+04  0.241788601403E+04  0.233303530109E+04  0.225191811134E+04  0.217435346238E+04
-  0.210016749107E+04  0.202919681943E+04  0.196128648905E+04  0.189628781912E+04  0.183406428064E+04
-  0.177447815378E+04  0.171741030060E+04  0.166273352875E+04  0.161034457319E+04  0.156012716492E+04
-  0.151198483922E+04  0.146582052759E+04  0.142154086395E+04  0.137906097148E+04  0.133829797002E+04
-  0.129917207490E+04  0.126161128619E+04  0.122554324807E+04  0.119090137554E+04  0.115762273768E+04
-  0.112564519634E+04  0.109491260230E+04  0.106536958529E+04  0.103696376209E+04  0.100964626874E+04
-  0.983369386517E+03  0.958088259270E+03  0.933760491469E+03  0.910344918809E+03  0.887802999165E+03
-  0.866097688492E+03  0.845193722659E+03  0.825057486722E+03  0.805656949235E+03  0.786961460988E+03
-  0.768941860254E+03  0.751570280175E+03  0.734820058649E+03  0.718665839953E+03  0.703083242035E+03
-  0.688049142095E+03  0.673541285748E+03  0.659538404365E+03  0.646020181485E+03  0.632967306499E+03
-  0.620361030724E+03  0.608183507242E+03  0.596417880177E+03  0.585047538181E+03  0.574057005309E+03
-  0.563431167138E+03  0.553155596176E+03  0.543216472219E+03  0.533600577089E+03  0.524295096628E+03
-  0.515287864004E+03  0.506567108698E+03  0.498121462758E+03  0.489940202519E+03  0.482012792804E+03
-  0.474329218497E+03  0.466879807157E+03  0.459655277491E+03  0.452646665244E+03  0.445845326919E+03
-  0.439242971301E+03  0.432831556708E+03  0.426603373307E+03  0.420550954576E+03  0.414667100840E+03
-  0.408944864593E+03  0.403377536754E+03  0.397958629585E+03  0.392681872509E+03  0.387541205851E+03
-  0.382530758167E+03  0.377644862756E+03  0.372878015893E+03  0.368224898594E+03  0.363680350460E+03
-  0.359239371823E+03  0.354897097109E+03  0.350648847402E+03  0.346490028292E+03  0.342416224923E+03
-  0.338423107351E+03  0.334506504401E+03  0.330662319969E+03  0.326886614027E+03  0.323175521883E+03
-  0.319525291137E+03  0.315932256738E+03  0.312392876939E+03  0.308903660561E+03  0.305461237806E+03
-  0.302062300261E+03  0.298703633981E+03  0.295382095296E+03  0.292094620152E+03  0.288838215885E+03
-  0.285609957558E+03  0.282406996490E+03  0.279226542503E+03  0.276065876855E+03  0.272922339966E+03
-  0.269793336953E+03  0.266676334707E+03  0.263568857552E+03  0.260468492389E+03  0.257372882929E+03
-  0.254279731763E+03  0.251186799954E+03  0.248091907223E+03  0.244992930370E+03  0.241887805727E+03
-  0.238774528474E+03  0.235651153907E+03  0.232515797559E+03  0.229366637373E+03  0.226201914200E+03
-  0.223019933142E+03  0.219819066345E+03  0.216597753942E+03  0.213354506528E+03  0.210087907601E+03
-  0.206796615859E+03  0.203479368741E+03  0.200134985511E+03  0.196762369494E+03  0.193360514156E+03
-  0.189928504953E+03  0.186465523853E+03  0.182970859195E+03  0.179443901362E+03  0.175884158862E+03
-  0.172291258360E+03  0.168664954571E+03  0.165005135639E+03  0.161311835637E+03  0.157585240450E+03
-  0.153825700617E+03  0.150033742009E+03  0.146210080614E+03  0.142355636015E+03  0.138471547517E+03
-  0.134559194204E+03  0.130620213523E+03  0.126656524279E+03  0.122670351092E+03  0.118664249894E+03
-  0.114641136764E+03  0.110604316344E+03  0.106557510777E+03  0.102504888129E+03  0.984510866673E+02
-  0.944012339330E+02  0.903609560496E+02  0.863363727654E+02  0.823340720461E+02  0.783610582152E+02
-  0.744246635302E+02  0.705324163825E+02  0.666918556889E+02  0.629102857223E+02  0.591944670209E+02
-  0.555502478406E+02  0.519821533052E+02  0.484929672889E+02  0.450833747727E+02  0.417517679667E+02
-  0.384943736779E+02  0.353058990617E+02  0.321809409707E+02  0.291163273793E+02  0.261144332192E+02
-  0.231871490568E+02  0.203596536608E+02  0.176726023843E+02  0.151810750610E+02  0.129490421852E+02
-  0.110393419844E+02  0.950085960920E+01  0.835601618665E+01  0.759220066468E+01  0.716026999428E+01
-  0.698171626746E+01  0.696337605625E+01  0.701521103097E+01  0.706481640894E+01  0.706399982574E+01
-  0.698712687429E+01  0.682461396109E+01  0.657568919727E+01  0.624298320013E+01  0.582958771078E+01
-  0.533805431630E+01  0.477041539462E+01  0.412860168459E+01  0.341481102932E+01  0.263171179070E+01
-  0.178246356837E+01  0.870634857094E+00 -0.999435655628E-01 -0.112531912148E+01 -0.220152950825E+01
- -0.332469240511E+01 -0.449104627091E+01 -0.569696900609E+01 -0.693897492393E+01 -0.821369212013E+01
- -0.951782569431E+01 -0.108481106853E+02 -0.122012544483E+02 -0.135738672328E+02 -0.149623731041E+02
- -0.163629117637E+02 -0.177712183098E+02 -0.191824857852E+02 -0.205912204531E+02 -0.219910948777E+02
- -0.233748286767E+02 -0.247341319073E+02 -0.260597523206E+02 -0.273417023275E+02 -0.285696934068E+02
- -0.297338412853E+02 -0.308256304858E+02 -0.318391158428E+02 -0.327722938273E+02 -0.336286100568E+02
- -0.344184456425E+02 -0.351602597585E+02 -0.358801414497E+02 -0.366068311139E+02 -0.373574865876E+02
- -0.381118852062E+02 -0.387867275622E+02 -0.392441858557E+02 -0.393634905455E+02 -0.391349287148E+02
- -0.386756213346E+02 -0.381417405135E+02 -0.376357899161E+02 -0.371876084550E+02 -0.367857306580E+02
- -0.364089018964E+02 -0.360404071207E+02 -0.356705439437E+02 -0.352947736228E+02 -0.349113814513E+02
- -0.345198082255E+02 -0.341197553652E+02 -0.337108267652E+02 -0.332925072698E+02 -0.328642387355E+02
- -0.324255741088E+02 -0.319762374262E+02 -0.315162189773E+02 -0.310457677673E+02 -0.305653859428E+02
- -0.300757994671E+02 -0.295778859655E+02 -0.290726427811E+02 -0.285611001088E+02 -0.280442533230E+02
- -0.275230192225E+02 -0.269981679715E+02 -0.264702980396E+02 -0.259398216884E+02 -0.254069826533E+02
- -0.248718994035E+02 -0.243346314120E+02 -0.237952586509E+02 -0.232539624826E+02 -0.227110955590E+02
- -0.221672327097E+02 -0.216231877485E+02 -0.210800244667E+02 -0.205390174919E+02 -0.200016158604E+02
- -0.194693867508E+02
- core charge-density
-  0.566100408154E-04  0.603274793074E-04  0.642889044283E-04  0.685103166568E-04  0.730087644875E-04
-  0.778024129493E-04  0.829106165872E-04  0.883539971990E-04  0.941545266560E-04  0.100335615085E-03
-  0.106922204822E-03  0.113940870473E-03  0.121419925474E-03  0.129389535603E-03  0.137881839861E-03
-  0.146931079213E-03  0.156573733698E-03  0.166848668447E-03  0.177797289174E-03  0.189463707768E-03
-  0.201894918628E-03  0.215140986428E-03  0.229255246056E-03  0.244294515512E-03  0.260319322588E-03
-  0.277394146221E-03  0.295587673465E-03  0.314973073077E-03  0.335628286780E-03  0.357636339348E-03
-  0.381085668699E-03  0.406070477287E-03  0.432691106152E-03  0.461054433064E-03  0.491274296314E-03
-  0.523471945761E-03  0.557776522887E-03  0.594325571702E-03  0.633265582435E-03  0.674752570119E-03
-  0.718952690251E-03  0.766042893893E-03  0.816211624674E-03  0.869659560374E-03  0.926600401855E-03
-  0.987261712339E-03  0.105188581019E-02  0.112073071853E-02  0.119407117529E-02  0.127219970739E-02
-  0.135542777315E-02  0.144408697705E-02  0.153853036146E-02  0.163913378001E-02  0.174629735768E-02
-  0.186044704296E-02  0.198203625776E-02  0.211154765105E-02  0.224949496259E-02  0.239642500343E-02
-  0.255291976042E-02  0.271959863213E-02  0.289712080418E-02  0.308618777247E-02  0.328754602307E-02
-  0.350198987838E-02  0.373036451926E-02  0.397356919385E-02  0.423256062398E-02  0.450835662100E-02
-  0.480203992329E-02  0.511476226845E-02  0.544774871395E-02  0.580230222061E-02  0.617980851421E-02
-  0.658174124108E-02  0.700966743491E-02  0.746525331166E-02  0.795027041269E-02  0.846660211345E-02
-  0.901625052094E-02  0.960134377894E-02  0.102241438053E-01  0.108870544842E-01  0.115926303386E-01
-  0.123435857075E-01  0.131428044576E-01  0.139933502544E-01  0.148984774251E-01  0.158616424421E-01
-  0.168865160593E-01  0.179769961364E-01  0.191372211820E-01  0.203715846550E-01  0.216847500588E-01
-  0.230816668678E-01  0.245675873256E-01  0.261480841549E-01  0.278290692218E-01  0.296168131969E-01
-  0.315179662576E-01  0.335395798759E-01  0.356891297379E-01  0.379745398409E-01  0.404042078155E-01
-  0.429870315194E-01  0.457324369501E-01  0.486504075246E-01  0.517515147717E-01  0.550469504838E-01
-  0.585485603728E-01  0.622688792735E-01  0.662211679360E-01  0.704194514465E-01  0.748785593126E-01
-  0.796141672432E-01  0.846428406544E-01  0.899820799218E-01  0.956503673943E-01  0.101667216183E+00
-  0.108053220723E+00  0.114830109098E+00  0.122020797119E+00  0.129649444112E+00  0.137741510382E+00
-  0.146323816290E+00  0.155424602864E+00  0.165073593849E+00  0.175302059090E+00  0.186142879083E+00
-  0.197630610560E+00  0.209801552888E+00  0.222693815062E+00  0.236347383047E+00  0.250804187144E+00
-  0.266108169064E+00  0.282305348315E+00  0.299443887476E+00  0.317574155859E+00  0.336748791043E+00
-  0.357022757646E+00  0.378453402702E+00  0.401100506871E+00  0.425026330694E+00  0.450295654993E+00
-  0.476975814429E+00  0.505136723178E+00  0.534850891530E+00  0.566193432183E+00  0.599242054859E+00
-  0.634077047765E+00  0.670781244335E+00  0.709439973560E+00  0.750140992075E+00  0.792974396116E+00
-  0.838032511244E+00  0.885409757763E+00  0.935202489441E+00  0.987508803254E+00  0.104242831757E+01
-  0.110006191624E+01  0.116051145584E+01  0.122387943346E+01  0.129026861193E+01  0.135978160000E+01
-  0.143252038425E+01  0.150858581009E+01  0.158807700896E+01  0.167109076893E+01  0.175772084621E+01
-  0.184805721494E+01  0.194218525332E+01  0.204018486382E+01  0.214212952620E+01  0.224808528199E+01
-  0.235810964998E+01  0.247225047259E+01  0.259054469391E+01  0.271301707089E+01  0.283967882006E+01
-  0.297052620347E+01  0.310553905827E+01  0.324467927606E+01  0.338788923929E+01  0.353509022378E+01
-  0.368618077801E+01  0.384103509149E+01  0.399950136699E+01  0.416140021288E+01  0.432652307442E+01
-  0.449463072490E+01  0.466545184006E+01  0.483868168119E+01  0.501398091525E+01  0.519097460207E+01
-  0.536925138135E+01  0.554836289419E+01  0.572782347558E+01  0.590711015619E+01  0.608566301289E+01
-  0.626288590845E+01  0.643814766086E+01  0.661078368325E+01  0.678009813289E+01  0.694536660815E+01
-  0.710583942709E+01  0.726074551989E+01  0.740929696058E+01  0.755069415923E+01  0.768413172658E+01
-  0.780880501609E+01  0.792391733716E+01  0.802868782233E+01  0.812235991814E+01  0.820421045514E+01
-  0.827355923749E+01  0.832977907498E+01  0.837230616406E+01  0.840065070529E+01  0.841440762640E+01
-  0.841326726196E+01  0.839702582182E+01  0.836559546387E+01  0.831901377096E+01  0.825745241774E+01
-  0.818122480318E+01  0.809079241634E+01  0.798676970036E+01  0.786992718088E+01  0.774119263277E+01
-  0.760165007160E+01  0.745253637713E+01  0.729523538244E+01  0.713126929714E+01  0.696228737445E+01
-  0.679005178084E+01  0.661642068236E+01  0.644332862226E+01  0.627276433103E+01  0.610674617685E+01
-  0.594729553438E+01  0.579640841756E+01  0.565602577058E+01  0.552800288253E+01  0.541407841905E+01
-  0.531584356652E+01  0.523471181475E+01  0.517188988547E+01  0.512835031200E+01  0.510480618875E+01
-  0.510168864942E+01  0.511912769994E+01  0.515693711116E+01  0.521460413879E+01  0.529128484590E+01
-  0.538580571386E+01  0.549667199677E+01  0.562208291152E+01  0.575995334559E+01  0.590794145701E+01
-  0.606348143532E+01  0.622382075557E+01  0.638606135679E+01  0.654720421042E+01  0.670419668250E+01
-  0.685398197262E+01  0.699354974359E+01  0.711998698134E+01  0.723052801287E+01  0.732260261476E+01
-  0.739388115435E+01  0.744231577198E+01  0.746617668668E+01  0.746408283670E+01  0.743502617611E+01
-  0.737838909120E+01  0.729395456103E+01  0.718190882688E+01  0.704283651135E+01  0.687770827554E+01
-  0.668786127413E+01  0.647497281612E+01  0.624102777379E+01  0.598828043165E+01  0.571921157955E+01
-  0.543648173800E+01  0.514288151879E+01  0.484128016393E+01  0.453457335746E+01  0.422563144517E+01
-  0.391724918675E+01  0.361209817668E+01  0.331268302840E+01  0.302130238260E+01  0.274001574527E+01
-  0.247061699977E+01  0.221461533156E+01  0.197322403846E+01  0.174735751206E+01  0.153763599448E+01
-  0.134439801278E+01  0.116771925944E+01  0.100743683521E+01  0.863177139249E+00  0.734385165797E+00
-  0.620352459116E+00  0.520241286779E+00  0.433104991178E+00  0.357908936157E+00  0.293558957004E+00
-  0.238939321053E+00  0.192952592630E+00  0.154550553295E+00  0.122752018839E+00  0.966509407173E-01
-  0.754197350591E-01  0.583105682925E-01  0.446553131657E-01  0.338641471811E-01  0.254227490621E-01
-  0.188882113068E-01  0.138839137385E-01  0.100936590292E-01  0.725537509450E-02  0.515466309716E-02
-  0.361842930266E-02  0.250879268147E-02  0.171741309607E-02  0.116033964584E-02  0.773437417305E-03
-  0.508414784907E-03  0.329443540380E-03  0.210340978410E-03  0.132266603092E-03  0.818759218551E-04
-  0.498690344207E-04  0.298714443437E-04  0.175875916060E-04  0.101729842592E-04  0.577752330293E-05
-  0.321986957660E-05  0.175987680434E-05  0.942778890139E-06  0.494707936977E-06  0.254108048780E-06
-  0.127681574306E-06  0.627159654587E-07  0.300924318689E-07  0.140943050873E-07  0.643877401768E-08
-  0.286674509825E-08
- kinetic energy-density
-  0.667225310700E+01  0.673712425060E+01  0.680446712075E+01  0.687435266836E+01  0.694687887984E+01
-  0.702214082218E+01  0.710025487509E+01  0.718131997169E+01  0.726545491156E+01  0.735279351610E+01
-  0.744345621126E+01  0.753759398662E+01  0.763534237524E+01  0.773686628737E+01  0.784232168333E+01
-  0.795188785384E+01  0.806574492238E+01  0.818408265740E+01  0.830710733444E+01  0.843502925423E+01
-  0.856807463323E+01  0.870648022710E+01  0.885049499152E+01  0.900038141274E+01  0.915641556867E+01
-  0.931888763846E+01  0.948810409274E+01  0.966438660997E+01  0.984807420966E+01  0.100395236808E+02
-  0.102391106259E+02  0.104472306217E+02  0.106643002129E+02  0.108907581658E+02  0.111270667128E+02
-  0.113737129173E+02  0.116312100590E+02  0.119000995563E+02  0.121809512045E+02  0.124743676751E+02
-  0.127809824020E+02  0.131014661587E+02  0.134365246352E+02  0.137869037259E+02  0.141533910827E+02
-  0.145368181700E+02  0.149380606607E+02  0.153580481103E+02  0.157977592006E+02  0.162582301660E+02
-  0.167405536651E+02  0.172458849260E+02  0.177754489910E+02  0.183305360512E+02  0.189125147524E+02
-  0.195228293783E+02  0.201630086713E+02  0.208346731063E+02  0.215395302738E+02  0.222793960940E+02
-  0.230561817871E+02  0.238719218157E+02  0.247287599035E+02  0.256289715181E+02  0.265749638623E+02
-  0.275692850611E+02  0.286146340209E+02  0.297138695051E+02  0.308700182642E+02  0.320862867047E+02
-  0.333660717388E+02  0.347129698754E+02  0.361307926843E+02  0.376235764044E+02  0.391956004794E+02
-  0.408513960801E+02  0.425957666062E+02  0.444337942387E+02  0.463708781148E+02  0.484127240612E+02
-  0.505653883328E+02  0.528352819288E+02  0.552292043731E+02  0.577543512402E+02  0.604183612533E+02
-  0.632293138540E+02  0.661957773286E+02  0.693268340532E+02  0.726320939962E+02  0.761217542966E+02
-  0.798066090433E+02  0.836980910427E+02  0.878083249418E+02  0.921501355979E+02  0.967371238079E+02
-  0.101583684198E+03  0.106705064907E+03  0.112117414382E+03  0.117837828166E+03  0.123884409252E+03
-  0.130276320038E+03  0.137033846315E+03  0.144178456681E+03  0.151732871301E+03  0.159721130996E+03
-  0.168168668145E+03  0.177102387622E+03  0.186550741797E+03  0.196543819667E+03  0.207113432275E+03
-  0.218293201433E+03  0.230118672341E+03  0.242627385569E+03  0.255859010707E+03  0.269855440106E+03
-  0.284660908978E+03  0.300322108546E+03  0.316888318424E+03  0.334411529406E+03  0.352946573140E+03
-  0.372551274533E+03  0.393286576958E+03  0.415216695313E+03  0.438409280187E+03  0.462935557123E+03
-  0.488870494758E+03  0.516292978425E+03  0.545285959475E+03  0.575936645981E+03  0.608336673183E+03
-  0.642582272764E+03  0.678774465893E+03  0.717019234895E+03  0.757427713585E+03  0.800116365041E+03
-  0.845207163513E+03  0.892827774214E+03  0.943111730250E+03  0.996198604607E+03  0.105223417127E+04
-  0.111137056935E+04  0.117376644321E+04  0.123958708989E+04  0.130900456745E+04  0.138219781473E+04
-  0.145935272609E+04  0.154066222765E+04  0.162632630841E+04  0.171655203448E+04  0.181155353272E+04
-  0.191155192916E+04  0.201677522893E+04  0.212745822677E+04  0.224384225326E+04  0.236617496487E+04
-  0.249470999554E+04  0.262970664059E+04  0.277142932316E+04  0.292014710882E+04  0.307613311454E+04
-  0.323966371690E+04  0.341101780179E+04  0.359047581918E+04  0.377831874540E+04  0.397482689787E+04
-  0.418027868224E+04  0.439494910623E+04  0.461910823060E+04  0.485301940433E+04  0.509693739042E+04
-  0.535110624785E+04  0.561575714459E+04  0.589110587709E+04  0.617735029231E+04  0.647466747894E+04
-  0.678321077715E+04  0.710310660594E+04  0.743445110603E+04  0.777730657840E+04  0.813169778138E+04
-  0.849760803098E+04  0.887497515215E+04  0.926368732206E+04  0.966357873788E+04  0.100744252544E+05
-  0.104959398994E+05  0.109277683923E+05  0.113694846547E+05  0.118205863594E+05  0.122804905999E+05
-  0.127485296775E+05  0.132239471319E+05  0.137058940235E+05  0.141934255844E+05  0.146854982713E+05
-  0.151809673402E+05  0.156785850245E+05  0.161769993384E+05  0.166747537999E+05  0.171702877851E+05
-  0.176619381795E+05  0.181479417092E+05  0.186264388693E+05  0.190954787135E+05  0.195530252077E+05
-  0.199969649781E+05  0.204251165206E+05  0.208352408440E+05  0.212250539761E+05  0.215922406971E+05
-  0.219344702466E+05  0.222494132725E+05  0.225347605700E+05  0.227882431008E+05  0.230076533887E+05
-  0.231908681093E+05  0.233358716618E+05  0.234407805422E+05  0.235038681649E+05  0.235235900533E+05
-  0.234986087273E+05  0.234278183452E+05  0.233103682573E+05  0.231456854657E+05  0.229334951930E+05
-  0.226738393464E+05  0.223670922687E+05  0.220139733481E+05  0.216155560262E+05  0.211732727643E+05
-  0.206889155309E+05  0.201646315262E+05  0.196029137234E+05  0.190065861750E+05  0.183787838063E+05
-  0.177229268159E+05  0.170426897439E+05  0.163419655306E+05  0.156248249789E+05  0.148954722996E+05
-  0.141581974366E+05  0.134173260145E+05  0.126771691922E+05  0.119419712654E+05  0.112158605109E+05
-  0.105028006708E+05  0.980654494715E+04  0.913059233055E+04  0.847814609089E+04  0.785207437181E+04
-  0.725487344241E+04  0.668863511465E+04  0.615502070274E+04  0.565524418908E+04  0.519006674861E+04
-  0.475980360345E+04  0.436434269355E+04  0.400317323797E+04  0.367542134980E+04  0.337988976738E+04
-  0.311509951930E+04  0.287933230868E+04  0.267067322820E+04  0.248705367813E+04  0.232629416860E+04
-  0.218614663490E+04  0.206433550064E+04  0.195859682514E+04  0.186671473352E+04  0.178655448544E+04
-  0.171609162157E+04  0.165343661643E+04  0.159685503183E+04  0.154478263373E+04  0.149583588863E+04
-  0.144881771439E+04  0.140271881257E+04  0.135671510542E+04  0.131016154370E+04  0.126258277404E+04
-  0.121366142449E+04  0.116322423992E+04  0.111122677010E+04  0.105773711321E+04  0.100291904396E+04
-  0.947015115197E+03  0.890329984746E+03  0.833214293651E+03  0.776049439334E+03  0.719233318915E+03
-  0.663167296841E+03  0.608244410857E+03  0.554838974842E+03  0.503297365412E+03  0.453930342998E+03
-  0.407006607762E+03  0.362747812430E+03  0.321325009274E+03  0.282856892955E+03  0.247409239962E+03
-  0.214996579478E+03  0.185585236387E+03  0.159098170048E+03  0.135421626809E+03  0.114413852193E+03
-  0.959157052909E+02  0.797613940556E+02  0.657850483488E+02  0.538188496239E+02  0.436847852099E+02
-  0.351899899383E+02  0.281331189963E+02  0.223174718914E+02  0.175614959268E+02  0.137029350510E+02
-  0.105987314150E+02  0.812353702200E+01  0.616817828814E+01  0.463832179287E+01  0.345324799301E+01
-  0.254463529365E+01  0.185531917238E+01  0.133803581425E+01  0.954179117826E+00  0.672602600260E+00
-  0.468493246228E+00  0.322336920783E+00  0.218987948819E+00  0.146848889647E+00  0.971612490355E-01
-  0.634035384763E-01  0.407898120808E-01  0.258595430908E-01  0.161483043720E-01  0.992815188083E-02
-  0.600670032098E-02  0.357447468542E-02  0.209108518893E-02  0.120193474515E-02  0.678419162901E-03
-  0.375814762046E-03  0.204197625257E-03  0.108758556747E-03  0.567464770105E-04  0.289864948733E-04
-  0.144858436153E-04  0.707756608346E-05  0.337836787752E-05  0.157431967128E-05  0.715666075556E-06
-  0.317114132527E-06
- mkinetic energy-density pseudized
-  0.246124888537E-05  0.262391872705E-05  0.279733980862E-05  0.298222270529E-05  0.317932495590E-05
-  0.338945416684E-05  0.361347132112E-05  0.385229430620E-05  0.410690167493E-05  0.437833665502E-05
-  0.466771142364E-05  0.497621166438E-05  0.530510142550E-05  0.565572829925E-05  0.602952894345E-05
-  0.642803496809E-05  0.685287921091E-05  0.730580242782E-05  0.778866042541E-05  0.830343166499E-05
-  0.885222536910E-05  0.943729016382E-05  0.100610232923E-04  0.107259804372E-04  0.114348861924E-04
-  0.121906452265E-04  0.129963541849E-04  0.138553143773E-04  0.147710453050E-04  0.157472990816E-04
-  0.167880758067E-04  0.178976399559E-04  0.190805378543E-04  0.203416163043E-04  0.216860424450E-04
-  0.231193249240E-04  0.246473364685E-04  0.262763379479E-04  0.280130040275E-04  0.298644505170E-04
-  0.318382635266E-04  0.339425305504E-04  0.361858736043E-04  0.385774845531E-04  0.411271627738E-04
-  0.438453553070E-04  0.467431996630E-04  0.498325694557E-04  0.531261230543E-04  0.566373554487E-04
-  0.603806535444E-04  0.643713551105E-04  0.686258116250E-04  0.731614552728E-04  0.779968703717E-04
-  0.831518695202E-04  0.886475747764E-04  0.945065042035E-04  0.100752664135E-03  0.107411647536E-03
-  0.114510738871E-03  0.122079025894E-03  0.130147518834E-03  0.138749277455E-03  0.147919546515E-03
-  0.157695900175E-03  0.168118395953E-03  0.179229738859E-03  0.191075456367E-03  0.203704084960E-03
-  0.217167368999E-03  0.231520472741E-03  0.246822206364E-03  0.263135266932E-03  0.280526495285E-03
-  0.299067149912E-03  0.318833198917E-03  0.339905631285E-03  0.362370788723E-03  0.386320719425E-03
-  0.411853555224E-03  0.439073913670E-03  0.468093326673E-03  0.499030697487E-03  0.532012787889E-03
-  0.567174737555E-03  0.604660617766E-03  0.644624021702E-03  0.687228693756E-03  0.732649200428E-03
-  0.781071645568E-03  0.832694432884E-03  0.887729078840E-03  0.946401079282E-03  0.100895083333E-02
-  0.107563462835E-02  0.114672568997E-02  0.122251530154E-02  0.130331399757E-02  0.138945283600E-02
-  0.148128475454E-02  0.157918601675E-02  0.168355775354E-02  0.179482760663E-02  0.191345148057E-02
-  0.203991541061E-02  0.217473755390E-02  0.231847031234E-02  0.247170259569E-02  0.263506223425E-02
-  0.280921855092E-02  0.299488510327E-02  0.319282260676E-02  0.340384205113E-02  0.362880802269E-02
-  0.386864224621E-02  0.412432736067E-02  0.439691094468E-02  0.468750980769E-02  0.499731456482E-02
-  0.532759451388E-02  0.567970283464E-02  0.605508213156E-02  0.645527034270E-02  0.688190703890E-02
-  0.733674013923E-02  0.782163306985E-02  0.833857239587E-02  0.888967595726E-02  0.947720154207E-02
-  0.101035561326E-01  0.107713057620E-01  0.114831860220E-01  0.122421132645E-01  0.130511965425E-01
-  0.139137503401E-01  0.148333081420E-01  0.158136368999E-01  0.168587524534E-01  0.179729359683E-01
-  0.191607514608E-01  0.204270644777E-01  0.217770620094E-01  0.232162737168E-01  0.247505945587E-01
-  0.263863089121E-01  0.281301162830E-01  0.299891587134E-01  0.319710499956E-01  0.340839068117E-01
-  0.363363819276E-01  0.387376995728E-01  0.412976931539E-01  0.440268454506E-01  0.469363314614E-01
-  0.500380640699E-01  0.533447427184E-01  0.568699052850E-01  0.606279833752E-01  0.646343612502E-01
-  0.689054386321E-01  0.734586976370E-01  0.783127741083E-01  0.834875336360E-01  0.890041525683E-01
-  0.948852043423E-01  0.101154751478E+00  0.107838443608E+00  0.114963621928E+00  0.122559430498E+00
-  0.130656934825E+00  0.139289248207E+00  0.148491666340E+00  0.158301810719E+00  0.168759781404E+00
-  0.179908319753E+00  0.191792981758E+00  0.204462322680E+00  0.217968093682E+00  0.232365451255E+00
-  0.247713180229E+00  0.264073931251E+00  0.281514473635E+00  0.300105964567E+00  0.319924235688E+00
-  0.341050098153E+00  0.363569667326E+00  0.387574708325E+00  0.413163003732E+00  0.440438744815E+00
-  0.469512947739E+00  0.500503896272E+00  0.533537612614E+00  0.568748358052E+00  0.606279165231E+00
-  0.646282403941E+00  0.688920382391E+00  0.734365986076E+00  0.782803356419E+00  0.834428611485E+00
-  0.889450611177E+00  0.948091769412E+00  0.101058891592E+01  0.107719421035E+01  0.114817611159E+01
-  0.122382040517E+01  0.130443129174E+01  0.139033253996E+01  0.148186870671E+01  0.157940642816E+01
-  0.168333578488E+01  0.179407174448E+01  0.191205568510E+01  0.203775700321E+01  0.217167480907E+01
-  0.231433971309E+01  0.246631570642E+01  0.262820213858E+01  0.280063579506E+01  0.298429307738E+01
-  0.317989228767E+01  0.338819601939E+01  0.361001365538E+01  0.384620397342E+01  0.409767785897E+01
-  0.436540112340E+01  0.465039742506E+01  0.495375128900E+01  0.527661121944E+01  0.562019289718E+01
-  0.598578245173E+01  0.637473979546E+01  0.678850200382E+01  0.722858672211E+01  0.769659557535E+01
-  0.819421755303E+01  0.872323233508E+01  0.928551351943E+01  0.988303170455E+01  0.105178573724E+02
-  0.111921635088E+02  0.119082278868E+02  0.126684349296E+02  0.134752770548E+02  0.143313553888E+02
-  0.152393797229E+02  0.162021675676E+02  0.172226421397E+02  0.183038290954E+02  0.194488518008E+02
-  0.206609249026E+02  0.219433459362E+02  0.232994846736E+02  0.247327698867E+02  0.262466731579E+02
-  0.278446893409E+02  0.295303132271E+02  0.313070119380E+02  0.331781925189E+02  0.351471641660E+02
-  0.372170944806E+02  0.393909591027E+02  0.416714840392E+02  0.440610799768E+02  0.465617678440E+02
-  0.491750948813E+02  0.519020404840E+02  0.547429111112E+02  0.576972236099E+02  0.607635763904E+02
-  0.639395080244E+02  0.672213430148E+02  0.706040247369E+02  0.740809358673E+02  0.776437070298E+02
-  0.812820149008E+02  0.849833716541E+02  0.887329083984E+02  0.925131561972E+02  0.963038293663E+02
-  0.100081617042E+03  0.103819990523E+03  0.107489035592E+03  0.111055320957E+03  0.114481816082E+03
-  0.117727873934E+03  0.120749296619E+03  0.123498504282E+03  0.125924830007E+03  0.127974965523E+03
-  0.129593584125E+03  0.130724168028E+03  0.131310066960E+03  0.131295812806E+03  0.130628710801E+03
-  0.129260720552E+03  0.127150629186E+03  0.124266503311E+03  0.120588385239E+03  0.116111171158E+03
-  0.110847573781E+03  0.104831028760E+03  0.981183527514E+02  0.907919018702E+02  0.829609139133E+02
-  0.747616492584E+02  0.663558786143E+02  0.579272084376E+02  0.496746974883E+02  0.418032150738E+02
-  0.345100415462E+02  0.279673372239E+02  0.223003334013E+02  0.175614569257E+02  0.137029350510E+02
-  0.105987314150E+02  0.812353702200E+01  0.616817828814E+01  0.463832179287E+01  0.345324799301E+01
-  0.254463529365E+01  0.185531917238E+01  0.133803581425E+01  0.954179117826E+00  0.672602600260E+00
-  0.468493246228E+00  0.322336920783E+00  0.218987948819E+00  0.146848889647E+00  0.971612490355E-01
-  0.634035384763E-01  0.407898120808E-01  0.258595430908E-01  0.161483043720E-01  0.992815188083E-02
-  0.600670032098E-02  0.357447468542E-02  0.209108518893E-02  0.120193474515E-02  0.678419162901E-03
-  0.375814762046E-03  0.204197625257E-03  0.108758556747E-03  0.567464770105E-04  0.289864948733E-04
-  0.144858436153E-04  0.707756608346E-05  0.337836787752E-05  0.157431967128E-05  0.715666075556E-06
-  0.317114132527E-06
- local pseudopotential core
- -0.170419537102E+03 -0.170420949717E+03 -0.170422317842E+03 -0.170423642879E+03 -0.170424926184E+03
- -0.170426169071E+03 -0.170427372814E+03 -0.170428538644E+03 -0.170429667756E+03 -0.170430761305E+03
- -0.170431820413E+03 -0.170432846163E+03 -0.170433839605E+03 -0.170434801757E+03 -0.170435733605E+03
- -0.170436636101E+03 -0.170437510171E+03 -0.170438356709E+03 -0.170439176583E+03 -0.170439970631E+03
- -0.170440739667E+03 -0.170441484477E+03 -0.170442205825E+03 -0.170442904450E+03 -0.170443581066E+03
- -0.170444236365E+03 -0.170444871020E+03 -0.170445485679E+03 -0.170446080973E+03 -0.170446657509E+03
- -0.170447215878E+03 -0.170447756653E+03 -0.170448280385E+03 -0.170448787612E+03 -0.170449278852E+03
- -0.170449754608E+03 -0.170450215366E+03 -0.170450661599E+03 -0.170451093762E+03 -0.170451512298E+03
- -0.170451917634E+03 -0.170452310186E+03 -0.170452690353E+03 -0.170453058526E+03 -0.170453415081E+03
- -0.170453760381E+03 -0.170454094779E+03 -0.170454418618E+03 -0.170454732227E+03 -0.170455035927E+03
- -0.170455330028E+03 -0.170455614830E+03 -0.170455890623E+03 -0.170456157689E+03 -0.170456416298E+03
- -0.170456666716E+03 -0.170456909196E+03 -0.170457143986E+03 -0.170457371323E+03 -0.170457591439E+03
- -0.170457804557E+03 -0.170458010893E+03 -0.170458210657E+03 -0.170458404049E+03 -0.170458591266E+03
- -0.170458772496E+03 -0.170458947923E+03 -0.170459117722E+03 -0.170459282063E+03 -0.170459441112E+03
- -0.170459595027E+03 -0.170459743963E+03 -0.170459888066E+03 -0.170460027479E+03 -0.170460162341E+03
- -0.170460292785E+03 -0.170460418937E+03 -0.170460540921E+03 -0.170460658856E+03 -0.170460772854E+03
- -0.170460883026E+03 -0.170460989477E+03 -0.170461092306E+03 -0.170461191611E+03 -0.170461287482E+03
- -0.170461380009E+03 -0.170461469275E+03 -0.170461555360E+03 -0.170461638339E+03 -0.170461718285E+03
- -0.170461795264E+03 -0.170461869342E+03 -0.170461940576E+03 -0.170462009025E+03 -0.170462074739E+03
- -0.170462137766E+03 -0.170462198149E+03 -0.170462255930E+03 -0.170462311143E+03 -0.170462363820E+03
- -0.170462413988E+03 -0.170462461669E+03 -0.170462506883E+03 -0.170462549643E+03 -0.170462589958E+03
- -0.170462627833E+03 -0.170462663267E+03 -0.170462696254E+03 -0.170462726785E+03 -0.170462754841E+03
- -0.170462780402E+03 -0.170462803439E+03 -0.170462823919E+03 -0.170462841800E+03 -0.170462857035E+03
- -0.170462869571E+03 -0.170462879345E+03 -0.170462886288E+03 -0.170462890322E+03 -0.170462891361E+03
- -0.170462889311E+03 -0.170462884065E+03 -0.170462875510E+03 -0.170462863519E+03 -0.170462847957E+03
- -0.170462828675E+03 -0.170462805511E+03 -0.170462778292E+03 -0.170462746828E+03 -0.170462710916E+03
- -0.170462670337E+03 -0.170462624855E+03 -0.170462574215E+03 -0.170462518144E+03 -0.170462456350E+03
- -0.170462388516E+03 -0.170462314306E+03 -0.170462233358E+03 -0.170462145285E+03 -0.170462049670E+03
- -0.170461946071E+03 -0.170461834011E+03 -0.170461712983E+03 -0.170461582443E+03 -0.170461441809E+03
- -0.170461290461E+03 -0.170461127736E+03 -0.170460952924E+03 -0.170460765269E+03 -0.170460563963E+03
- -0.170460348143E+03 -0.170460116887E+03 -0.170459869212E+03 -0.170459604070E+03 -0.170459320339E+03
- -0.170459016825E+03 -0.170458692253E+03 -0.170458345262E+03 -0.170457974402E+03 -0.170457578124E+03
- -0.170457154777E+03 -0.170456702599E+03 -0.170456219712E+03 -0.170455704112E+03 -0.170455153662E+03
- -0.170454566083E+03 -0.170453938945E+03 -0.170453269655E+03 -0.170452555451E+03 -0.170451793386E+03
- -0.170450980315E+03 -0.170450112890E+03 -0.170449187536E+03 -0.170448200444E+03 -0.170447147552E+03
- -0.170446024529E+03 -0.170444826756E+03 -0.170443549310E+03 -0.170442186941E+03 -0.170440734052E+03
- -0.170439184675E+03 -0.170437532448E+03 -0.170435770588E+03 -0.170433891862E+03 -0.170431888560E+03
- -0.170429752461E+03 -0.170427474801E+03 -0.170425046235E+03 -0.170422456803E+03 -0.170419695882E+03
- -0.170416752151E+03 -0.170413613538E+03 -0.170410267173E+03 -0.170406699335E+03 -0.170402895397E+03
- -0.170398839763E+03 -0.170394515809E+03 -0.170389905809E+03 -0.170384990867E+03 -0.170379750838E+03
- -0.170374164243E+03 -0.170368208187E+03 -0.170361858259E+03 -0.170355088435E+03 -0.170347870972E+03
- -0.170340176292E+03 -0.170331972863E+03 -0.170323227069E+03 -0.170313903070E+03 -0.170303962662E+03
- -0.170293365112E+03 -0.170282066997E+03 -0.170270022024E+03 -0.170257180840E+03 -0.170243490832E+03
- -0.170228895910E+03 -0.170213336276E+03 -0.170196748182E+03 -0.170179063668E+03 -0.170160210283E+03
- -0.170140110788E+03 -0.170118682843E+03 -0.170095838665E+03 -0.170071484675E+03 -0.170045521109E+03
- -0.170017841614E+03 -0.169988332811E+03 -0.169956873833E+03 -0.169923335828E+03 -0.169887581435E+03
- -0.169849464223E+03 -0.169808828091E+03 -0.169765506630E+03 -0.169719322446E+03 -0.169670086435E+03
- -0.169617597009E+03 -0.169561639280E+03 -0.169501984178E+03 -0.169438387525E+03 -0.169370589035E+03
- -0.169298311258E+03 -0.169221258457E+03 -0.169139115401E+03 -0.169051546092E+03 -0.168958192406E+03
- -0.168858672641E+03 -0.168752579981E+03 -0.168639480855E+03 -0.168518913198E+03 -0.168390384594E+03
- -0.168253370309E+03 -0.168107311204E+03 -0.167951611505E+03 -0.167785636454E+03 -0.167608709804E+03
- -0.167420111171E+03 -0.167219073226E+03 -0.167004778724E+03 -0.166776357364E+03 -0.166532882470E+03
- -0.166273367495E+03 -0.165996762340E+03 -0.165701949473E+03 -0.165387739872E+03 -0.165052868771E+03
- -0.164695991214E+03 -0.164315677437E+03 -0.163910408071E+03 -0.163478569188E+03 -0.163018447220E+03
- -0.162528223759E+03 -0.162005970291E+03 -0.161449642903E+03 -0.160857077032E+03 -0.160225982313E+03
- -0.159553937637E+03 -0.158838386520E+03 -0.158076632925E+03 -0.157265837697E+03 -0.156403015813E+03
- -0.155485034673E+03 -0.154508613712E+03 -0.153470325644E+03 -0.152366599705E+03 -0.151193727316E+03
- -0.149947870610E+03 -0.148625074366E+03 -0.147221281861E+03 -0.145732355265E+03 -0.144154101132E+03
- -0.142482301607E+03 -0.140712751934E+03 -0.138841304820E+03 -0.136863922328E+03 -0.134776736105E+03
- -0.132576117318E+03 -0.130258758637E+03 -0.127821772487E+03 -0.125262812538E+03 -0.122580229059E+03
- -0.119773271760E+03 -0.116842352862E+03 -0.113789370936E+03 -0.110618060917E+03 -0.107334264143E+03
- -0.103945902820E+03 -0.100462343388E+03 -0.968929062687E+02 -0.932448542294E+02 -0.895225733479E+02
- -0.857313037065E+02 -0.818880617199E+02 -0.780358333759E+02 -0.742473243088E+02 -0.706440350099E+02
- -0.673676290197E+02 -0.644619319781E+02 -0.619683360442E+02 -0.599284345816E+02 -0.583796623680E+02
- -0.573483530309E+02 -0.564049902626E+02 -0.546210802335E+02 -0.528996689676E+02 -0.512328440922E+02
- -0.496187824367E+02 -0.480557353139E+02 -0.465420447751E+02 -0.450761138085E+02 -0.436564113209E+02
- -0.422814579106E+02 -0.409498296230E+02 -0.396601648757E+02 -0.384111132984E+02 -0.372014105719E+02
- -0.360298090009E+02 -0.348951073700E+02 -0.337961428427E+02 -0.327317889712E+02 -0.317009553098E+02
- -0.307025861793E+02 -0.297356589850E+02 -0.287991834979E+02 -0.278922006685E+02 -0.270137815368E+02
- -0.261630366058E+02 -0.253390651934E+02 -0.245410526913E+02 -0.237681721638E+02 -0.230196321567E+02
- -0.222946661137E+02
- pspotential valence only
- -0.284683254939E+02 -0.284697381271E+02 -0.284711062722E+02 -0.284724313301E+02 -0.284737146577E+02
- -0.284749575687E+02 -0.284761613369E+02 -0.284773271946E+02 -0.284784563356E+02 -0.284795499162E+02
- -0.284806090569E+02 -0.284816348417E+02 -0.284826283219E+02 -0.284835905140E+02 -0.284845224041E+02
- -0.284854249463E+02 -0.284862990646E+02 -0.284871456545E+02 -0.284879655834E+02 -0.284887596902E+02
- -0.284895287887E+02 -0.284902736661E+02 -0.284909950857E+02 -0.284916937861E+02 -0.284923704830E+02
- -0.284930258689E+02 -0.284936606159E+02 -0.284942753734E+02 -0.284948707712E+02 -0.284954474190E+02
- -0.284960059074E+02 -0.284965468085E+02 -0.284970706761E+02 -0.284975780470E+02 -0.284980694407E+02
- -0.284985453605E+02 -0.284990062936E+02 -0.284994527124E+02 -0.284998850740E+02 -0.285003038213E+02
- -0.285007093833E+02 -0.285011021753E+02 -0.285014825995E+02 -0.285018510457E+02 -0.285022078914E+02
- -0.285025535021E+02 -0.285028882318E+02 -0.285032124235E+02 -0.285035264093E+02 -0.285038305108E+02
- -0.285041250397E+02 -0.285044102975E+02 -0.285046865768E+02 -0.285049541606E+02 -0.285052133230E+02
- -0.285054643298E+02 -0.285057074382E+02 -0.285059428973E+02 -0.285061709484E+02 -0.285063918256E+02
- -0.285066057551E+02 -0.285068129563E+02 -0.285070136418E+02 -0.285072080174E+02 -0.285073962824E+02
- -0.285075786302E+02 -0.285077552478E+02 -0.285079263164E+02 -0.285080920118E+02 -0.285082525042E+02
- -0.285084079583E+02 -0.285085585338E+02 -0.285087043857E+02 -0.285088456639E+02 -0.285089825138E+02
- -0.285091150761E+02 -0.285092434873E+02 -0.285093678798E+02 -0.285094883820E+02 -0.285096051179E+02
- -0.285097182082E+02 -0.285098277696E+02 -0.285099339157E+02 -0.285100367561E+02 -0.285101363974E+02
- -0.285102329431E+02 -0.285103264934E+02 -0.285104171457E+02 -0.285105049943E+02 -0.285105901311E+02
- -0.285106726449E+02 -0.285107526223E+02 -0.285108301473E+02 -0.285109053014E+02 -0.285109781641E+02
- -0.285110488125E+02 -0.285111173215E+02 -0.285111837644E+02 -0.285112482121E+02 -0.285113107339E+02
- -0.285113713974E+02 -0.285114302684E+02 -0.285114874111E+02 -0.285115428883E+02 -0.285115967613E+02
- -0.285116490901E+02 -0.285116999333E+02 -0.285117493486E+02 -0.285117973923E+02 -0.285118441197E+02
- -0.285118895855E+02 -0.285119338432E+02 -0.285119769456E+02 -0.285120189449E+02 -0.285120598926E+02
- -0.285120998398E+02 -0.285121388371E+02 -0.285121769347E+02 -0.285122141827E+02 -0.285122506311E+02
- -0.285122863296E+02 -0.285123213283E+02 -0.285123556771E+02 -0.285123894265E+02 -0.285124226271E+02
- -0.285124553304E+02 -0.285124875881E+02 -0.285125194530E+02 -0.285125509785E+02 -0.285125822193E+02
- -0.285126132311E+02 -0.285126440711E+02 -0.285126747978E+02 -0.285127054715E+02 -0.285127361543E+02
- -0.285127669105E+02 -0.285127978063E+02 -0.285128289107E+02 -0.285128602951E+02 -0.285128920341E+02
- -0.285129242051E+02 -0.285129568892E+02 -0.285129901712E+02 -0.285130241396E+02 -0.285130588877E+02
- -0.285130945129E+02 -0.285131311181E+02 -0.285131688112E+02 -0.285132077060E+02 -0.285132479227E+02
- -0.285132895879E+02 -0.285133328354E+02 -0.285133778067E+02 -0.285134246515E+02 -0.285134735280E+02
- -0.285135246042E+02 -0.285135780579E+02 -0.285136340776E+02 -0.285136928634E+02 -0.285137546275E+02
- -0.285138195953E+02 -0.285138880062E+02 -0.285139601145E+02 -0.285140361905E+02 -0.285141165216E+02
- -0.285142014133E+02 -0.285142911905E+02 -0.285143861989E+02 -0.285144868063E+02 -0.285145934040E+02
- -0.285147064088E+02 -0.285148262640E+02 -0.285149534418E+02 -0.285150884449E+02 -0.285152318086E+02
- -0.285153841030E+02 -0.285155459353E+02 -0.285157179524E+02 -0.285159008433E+02 -0.285160953418E+02
- -0.285163022301E+02 -0.285165223414E+02 -0.285167565633E+02 -0.285170058417E+02 -0.285172711848E+02
- -0.285175536665E+02 -0.285178544315E+02 -0.285181746997E+02 -0.285185157709E+02 -0.285188790308E+02
- -0.285192659558E+02 -0.285196781195E+02 -0.285201171993E+02 -0.285205849827E+02 -0.285210833750E+02
- -0.285216144068E+02 -0.285221802425E+02 -0.285227831889E+02 -0.285234257049E+02 -0.285241104112E+02
- -0.285248401009E+02 -0.285256177512E+02 -0.285264465355E+02 -0.285273298358E+02 -0.285282712570E+02
- -0.285292746413E+02 -0.285303440839E+02 -0.285314839493E+02 -0.285326988895E+02 -0.285339938624E+02
- -0.285353741521E+02 -0.285368453903E+02 -0.285384135789E+02 -0.285400851146E+02 -0.285418668143E+02
- -0.285437659428E+02 -0.285457902421E+02 -0.285479479626E+02 -0.285502478960E+02 -0.285526994109E+02
- -0.285553124903E+02 -0.285580977715E+02 -0.285610665889E+02 -0.285642310189E+02 -0.285676039282E+02
- -0.285711990254E+02 -0.285750309147E+02 -0.285791151548E+02 -0.285834683196E+02 -0.285881080644E+02
- -0.285930531950E+02 -0.285983237421E+02 -0.286039410397E+02 -0.286099278085E+02 -0.286163082449E+02
- -0.286231081153E+02 -0.286303548557E+02 -0.286380776784E+02 -0.286463076848E+02 -0.286550779846E+02
- -0.286644238234E+02 -0.286743827172E+02 -0.286849945954E+02 -0.286963019524E+02 -0.287083500084E+02
- -0.287211868802E+02 -0.287348637617E+02 -0.287494351160E+02 -0.287649588782E+02 -0.287814966715E+02
- -0.287991140354E+02 -0.288178806686E+02 -0.288378706855E+02 -0.288591628897E+02 -0.288818410637E+02
- -0.289059942762E+02 -0.289317172092E+02 -0.289591105063E+02 -0.289882811421E+02 -0.290193428172E+02
- -0.290524163789E+02 -0.290876302704E+02 -0.291251210119E+02 -0.291650337155E+02 -0.292075226382E+02
- -0.292527517763E+02 -0.293008955057E+02 -0.293521392725E+02 -0.294066803402E+02 -0.294647285981E+02
- -0.295265074381E+02 -0.295922547054E+02 -0.296622237316E+02 -0.297366844547E+02 -0.298159246331E+02
- -0.299002511574E+02 -0.299899914619E+02 -0.300854950331E+02 -0.301871350062E+02 -0.302953098315E+02
- -0.304104449766E+02 -0.305329946137E+02 -0.306634432095E+02 -0.308023068980E+02 -0.309501344631E+02
- -0.311075076831E+02 -0.312750406914E+02 -0.314533778800E+02 -0.316431897005E+02 -0.318451655059E+02
- -0.320600023150E+02 -0.322883880770E+02 -0.325309776931E+02 -0.327883597634E+02 -0.330610118773E+02
- -0.333492424278E+02 -0.336531176630E+02 -0.339723743103E+02 -0.343063208921E+02 -0.346537346687E+02
- -0.350127648590E+02 -0.353808530483E+02 -0.357546715064E+02 -0.361300480027E+02 -0.365017784125E+02
- -0.368631247339E+02 -0.372047035859E+02 -0.375125522453E+02 -0.377657441997E+02 -0.379353184151E+02
- -0.379879389853E+02 -0.378969925173E+02 -0.376572676136E+02 -0.372895576797E+02 -0.368609888139E+02
- -0.364580391316E+02 -0.360705398812E+02 -0.356893344048E+02 -0.353112759769E+02 -0.349371692593E+02
- -0.345669009289E+02 -0.341257389052E+02 -0.337108267652E+02 -0.332925072698E+02 -0.328642387355E+02
- -0.324255741088E+02 -0.319762374261E+02 -0.315162189773E+02 -0.310457677673E+02 -0.305653859428E+02
- -0.300757994671E+02 -0.295778859655E+02 -0.290726427811E+02 -0.285611001088E+02 -0.280442533230E+02
- -0.275230192225E+02 -0.269981679715E+02 -0.264702980396E+02 -0.259398216884E+02 -0.254069826533E+02
- -0.248718994035E+02 -0.243346314120E+02 -0.237952586509E+02 -0.232539624826E+02 -0.227110955590E+02
- -0.221672327097E+02 -0.216231877485E+02 -0.210800244667E+02 -0.205390174919E+02 -0.200016158604E+02
- -0.194693867508E+02
- core charge-density (pseudized)
-  0.158850899689E-07  0.169349736624E-07  0.180542466866E-07  0.192474951488E-07  0.205196082630E-07
-  0.218757983829E-07  0.233216223594E-07  0.248630043089E-07  0.265062598867E-07  0.282581221651E-07
-  0.301257692211E-07  0.321168535480E-07  0.342395334107E-07  0.365025062734E-07  0.389150444365E-07
-  0.414870330287E-07  0.442290105108E-07  0.471522118554E-07  0.502686145814E-07  0.535909878306E-07
-  0.571329446878E-07  0.609089979589E-07  0.649346196361E-07  0.692263042922E-07  0.738016366658E-07
-  0.786793637127E-07  0.838794714198E-07  0.894232666954E-07  0.953334646720E-07  0.101634281779E-06
-  0.108351534969E-06  0.115512747495E-06  0.123147261690E-06  0.131286359191E-06  0.139963389111E-06
-  0.149213904686E-06  0.159075808951E-06  0.169589510039E-06  0.180798086755E-06  0.192747465083E-06
-  0.205486606363E-06  0.219067707906E-06  0.233546416867E-06  0.248982058249E-06  0.265437877988E-06
-  0.282981302089E-06  0.301684212902E-06  0.321623243648E-06  0.342880092415E-06  0.365541856912E-06
-  0.389701391334E-06  0.415457686827E-06  0.442916277090E-06  0.472189670789E-06  0.503397812546E-06
-  0.536668574398E-06  0.572138279738E-06  0.609952261885E-06  0.650265459564E-06  0.693243051754E-06
-  0.739061134484E-06  0.787907442368E-06  0.839982117817E-06  0.895498531103E-06  0.954684154611E-06
-  0.101778149488E-05  0.108504908622E-05  0.115676255007E-05  0.123321572426E-05  0.131472186699E-05
-  0.140161494038E-05  0.149425097881E-05  0.159300954771E-05  0.169829529876E-05  0.181053962793E-05
-  0.193020244302E-05  0.205777404804E-05  0.219377715217E-05  0.233876901146E-05  0.249334371211E-05
-  0.265813460454E-05  0.283381689853E-05  0.302111042968E-05  0.322078260881E-05  0.343365156625E-05
-  0.366058950397E-05  0.390252626918E-05  0.416045316422E-05  0.443542700810E-05  0.472857446660E-05
-  0.504109666844E-05  0.537427412660E-05  0.572947198482E-05  0.610814561085E-05  0.651184655941E-05
-  0.694222892908E-05  0.740105613948E-05  0.789020815618E-05  0.841168919314E-05  0.896763592422E-05
-  0.956032623723E-05  0.101921885666E-04  0.108658118429E-04  0.115839560993E-04  0.123495637799E-04
-  0.131657717945E-04  0.140359243703E-04  0.149635867530E-04  0.159525598129E-04  0.170068956168E-04
-  0.181309140281E-04  0.193292204042E-04  0.206067244636E-04  0.219686603991E-04  0.234206083207E-04
-  0.249685171141E-04  0.266187288110E-04  0.283780045687E-04  0.302535523666E-04  0.322530565318E-04
-  0.343847092167E-04  0.366572439552E-04  0.390799714357E-04  0.416628176384E-04  0.444163644905E-04
-  0.473518932085E-04  0.504814305022E-04  0.538177978316E-04  0.573746639168E-04  0.611666007161E-04
-  0.652091431015E-04  0.695188524752E-04  0.741133845867E-04  0.790115618292E-04  0.842334503093E-04
-  0.898004420053E-04  0.957353423503E-04  0.102062463597E-03  0.108807724347E-03  0.115998755648E-03
-  0.123665014094E-03  0.131837902394E-03  0.140550897889E-03  0.149839689558E-03  0.159742324059E-03
-  0.170299361400E-03  0.181554040889E-03  0.193552458017E-03  0.206343753015E-03  0.219980311839E-03
-  0.234517980402E-03  0.250016292931E-03  0.266538715372E-03  0.284152904832E-03  0.302930986106E-03
-  0.322949846427E-03  0.344291449616E-03  0.367043170908E-03  0.391298153825E-03  0.417155690514E-03
-  0.444721627115E-03  0.474108795766E-03  0.505437475018E-03  0.538835880487E-03  0.574440687740E-03
-  0.612397589507E-03  0.652861889451E-03  0.695999134887E-03  0.741985790982E-03  0.791009959124E-03
-  0.843272142330E-03  0.898986060746E-03  0.958379520474E-03  0.102169533918E-02  0.108919233216E-02
-  0.116114636271E-02  0.123785146100E-02  0.131962101582E-02  0.140678904387E-02  0.149971154154E-02
-  0.159876792447E-02  0.170436256045E-02  0.181692640162E-02  0.193691872220E-02  0.206482896848E-02
-  0.220117872808E-02  0.234652382591E-02  0.250145655494E-02  0.266660804989E-02  0.284265081290E-02
-  0.303030140045E-02  0.323032328145E-02  0.344352987696E-02  0.367078779245E-02  0.391302025435E-02
-  0.417121076298E-02  0.444640697483E-02  0.473972482752E-02  0.505235292185E-02  0.538555717557E-02
-  0.574068576454E-02  0.611917436752E-02  0.652255173154E-02  0.695244557544E-02  0.741058885008E-02
-  0.789882637401E-02  0.841912186447E-02  0.897356538393E-02  0.956438122282E-02  0.101939362401E-01
-  0.108647486828E-01  0.115794975075E-01  0.123410322246E-01  0.131523832881E-01  0.140167730542E-01
-  0.149376273269E-01  0.159185875152E-01  0.169635234187E-01  0.180765466621E-01  0.192620247931E-01
-  0.205245960596E-01  0.218691848759E-01  0.233010179867E-01  0.248256413302E-01  0.264489375990E-01
-  0.281771444893E-01  0.300168736216E-01  0.319751301066E-01  0.340593327208E-01  0.362773346404E-01
-  0.386374446716E-01  0.411484488953E-01  0.438196326246E-01  0.466608025533E-01  0.496823089450E-01
-  0.528950676826E-01  0.563105819652E-01  0.599409633995E-01  0.637989521880E-01  0.678979360665E-01
-  0.722519675861E-01  0.768757792715E-01  0.817847961130E-01  0.869951447703E-01  0.925236587738E-01
-  0.983878789095E-01  0.104606047856E+00  0.111197098026E+00  0.118180631410E+00  0.125576890089E+00
-  0.133406715896E+00  0.141691497534E+00  0.150453103263E+00  0.159713797041E+00  0.169496135792E+00
-  0.179822845227E+00  0.190716671374E+00  0.202200204726E+00  0.214295673644E+00  0.227024703349E+00
-  0.240408036607E+00  0.254465211927E+00  0.269214194858E+00  0.284670957798E+00  0.300849003557E+00
-  0.317758827869E+00  0.335407316081E+00  0.353797069410E+00  0.372925656495E+00  0.392784786538E+00
-  0.413359401140E+00  0.434626683071E+00  0.456554981802E+00  0.479102657604E+00  0.502216848651E+00
-  0.525832168810E+00  0.549869347839E+00  0.574233830650E+00  0.598814358233E+00  0.623481559867E+00
-  0.648086594575E+00  0.672459889336E+00  0.696410032536E+00  0.719722893489E+00  0.742161052417E+00
-  0.763463640029E+00  0.783346701288E+00  0.801504213699E+00  0.817609905660E+00  0.831320034071E+00
-  0.842277290994E+00  0.850116014825E+00  0.854468879722E+00  0.854975224885E+00  0.851291158898E+00
-  0.843101529429E+00  0.830133779791E+00  0.812173615663E+00  0.789082271343E+00  0.760814989247E+00
-  0.727440103218E+00  0.689157841522E+00  0.646317637620E+00  0.599432358703E+00  0.549187442962E+00
-  0.496442495144E+00  0.442222457189E+00  0.387695093883E+00  0.334131279817E+00  0.282844534494E+00
-  0.235106544671E+00  0.192036181160E+00  0.154460929685E+00  0.122751894914E+00  0.966509407173E-01
-  0.754197350591E-01  0.583105682925E-01  0.446553131657E-01  0.338641471811E-01  0.254227490621E-01
-  0.188882113068E-01  0.138839137385E-01  0.100936590292E-01  0.725537509450E-02  0.515466309716E-02
-  0.361842930266E-02  0.250879268147E-02  0.171741309607E-02  0.116033964584E-02  0.773437417305E-03
-  0.508414784907E-03  0.329443540380E-03  0.210340978410E-03  0.132266603092E-03  0.818759218551E-04
-  0.498690344207E-04  0.298714443437E-04  0.175875916060E-04  0.101729842592E-04  0.577752330293E-05
-  0.321986957660E-05  0.175987680434E-05  0.942778890139E-06  0.494707936977E-06  0.254108048780E-06
-  0.127681574306E-06  0.627159654587E-07  0.300924318689E-07  0.140943050873E-07  0.643877401768E-08
-  0.286674509825E-08
- pseudo wavefunction
-  0.575355347414E-04  0.594064467959E-04  0.613381962429E-04  0.633327613625E-04  0.653921847638E-04
-  0.675185754763E-04  0.697141111098E-04  0.719810400846E-04  0.743216839340E-04  0.767384396819E-04
-  0.792337822973E-04  0.818102672291E-04  0.844705330228E-04  0.872173040230E-04  0.900533931633E-04
-  0.929817048467E-04  0.960052379201E-04  0.991270887455E-04  0.102350454371E-03  0.105678635804E-03
-  0.109115041394E-03  0.112663190320E-03  0.116326716196E-03  0.120109370793E-03  0.124015027879E-03
-  0.128047687189E-03  0.132211478517E-03  0.136510665951E-03  0.140949652232E-03  0.145532983271E-03
-  0.150265352799E-03  0.155151607175E-03  0.160196750351E-03  0.165405948993E-03  0.170784537776E-03
-  0.176338024845E-03  0.182072097454E-03  0.187992627794E-03  0.194105679006E-03  0.200417511387E-03
-  0.206934588804E-03  0.213663585314E-03  0.220611391995E-03  0.227785124008E-03  0.235192127880E-03
-  0.242839989029E-03  0.250736539531E-03  0.258889866144E-03  0.267308318583E-03  0.276000518079E-03
-  0.284975366201E-03  0.294242053974E-03  0.303810071296E-03  0.313689216649E-03  0.323889607138E-03
-  0.334421688850E-03  0.345296247555E-03  0.356524419746E-03  0.368117704048E-03  0.380087972993E-03
-  0.392447485177E-03  0.405208897814E-03  0.418385279700E-03  0.431990124593E-03  0.446037365035E-03
-  0.460541386620E-03  0.475517042723E-03  0.490979669714E-03  0.506945102664E-03  0.523429691556E-03
-  0.540450318037E-03  0.558024412700E-03  0.576169972936E-03  0.594905581365E-03  0.614250424868E-03
-  0.634224314231E-03  0.654847704436E-03  0.676141715611E-03  0.698128154653E-03  0.720829537562E-03
-  0.744269112502E-03  0.768470883604E-03  0.793459635553E-03  0.819260958964E-03  0.845901276593E-03
-  0.873407870393E-03  0.901808909454E-03  0.931133478849E-03  0.961411609419E-03  0.992674308528E-03
-  0.102495359182E-02  0.105828251598E-02  0.109269521264E-02  0.112822692327E-02  0.116491403530E-02
-  0.120279411939E-02  0.124190596788E-02  0.128228963454E-02  0.132398647555E-02  0.136703919190E-02
-  0.141149187307E-02  0.145739004223E-02  0.150478070279E-02  0.155371238660E-02  0.160423520360E-02
-  0.165640089318E-02  0.171026287709E-02  0.176587631424E-02  0.182329815708E-02  0.188258721000E-02
-  0.194380418952E-02  0.200701178645E-02  0.207227473008E-02  0.213965985449E-02  0.220923616697E-02
-  0.228107491867E-02  0.235524967759E-02  0.243183640385E-02  0.251091352754E-02  0.259256202897E-02
-  0.267686552162E-02  0.276391033773E-02  0.285378561671E-02  0.294658339640E-02  0.304239870730E-02
-  0.314132966987E-02  0.324347759500E-02  0.334894708771E-02  0.345784615425E-02  0.357028631269E-02
-  0.368638270708E-02  0.380625422530E-02  0.393002362081E-02  0.405781763827E-02  0.418976714331E-02
-  0.432600725647E-02  0.446667749152E-02  0.461192189824E-02  0.476188920988E-02  0.491673299540E-02
-  0.507661181657E-02  0.524168939035E-02  0.541213475631E-02  0.558812244973E-02  0.576983268009E-02
-  0.595745151554E-02  0.615117107322E-02  0.635118971583E-02  0.655771225459E-02  0.677095015869E-02
-  0.699112177165E-02  0.721845253461E-02  0.745317521688E-02  0.769553015401E-02  0.794576549352E-02
-  0.820413744857E-02  0.847091055996E-02  0.874635796647E-02  0.903076168407E-02  0.932441289409E-02
-  0.962761224075E-02  0.994067013832E-02  0.102639070882E-01  0.105976540061E-01  0.109422525603E-01
-  0.112980555200E-01  0.116654271158E-01  0.120447434111E-01  0.124363926859E-01  0.128407758327E-01
-  0.132583067657E-01  0.136894128422E-01  0.141345352983E-01  0.145941296989E-01  0.150686664009E-01
-  0.155586310324E-01  0.160645249872E-01  0.165868659342E-01  0.171261883444E-01  0.176830440334E-01
-  0.182580027226E-01  0.188516526171E-01  0.194646010028E-01  0.200974748619E-01  0.207509215086E-01
-  0.214256092443E-01  0.221222280340E-01  0.228414902039E-01  0.235841311607E-01  0.243509101343E-01
-  0.251426109430E-01  0.259600427831E-01  0.268040410429E-01  0.276754681426E-01  0.285752143996E-01
-  0.295041989207E-01  0.304633705225E-01  0.314537086791E-01  0.324762244998E-01  0.335319617355E-01
-  0.346219978170E-01  0.357474449230E-01  0.369094510819E-01  0.381092013054E-01  0.393479187556E-01
-  0.406268659478E-01  0.419473459869E-01  0.433107038408E-01  0.447183276504E-01  0.461716500761E-01
-  0.476721496838E-01  0.492213523683E-01  0.508208328170E-01  0.524722160129E-01  0.541771787786E-01
-  0.559374513607E-01  0.577548190562E-01  0.596311238795E-01  0.615682662727E-01  0.635682068564E-01
-  0.656329682232E-01  0.677646367731E-01  0.699653645899E-01  0.722373713589E-01  0.745829463247E-01
-  0.770044502882E-01  0.795043176423E-01  0.820850584435E-01  0.847492605189E-01  0.874995916053E-01
-  0.903388015194E-01  0.932697243532E-01  0.962952806953E-01  0.994184798691E-01  0.102642422187E+00
-  0.105970301215E+00  0.109405406033E+00  0.112951123506E+00  0.116610940521E+00  0.120388446224E+00
-  0.124287334210E+00  0.128311404677E+00  0.132464566515E+00  0.136750839334E+00  0.141174355391E+00
-  0.145739361417E+00  0.150450220313E+00  0.155311412692E+00  0.160327538239E+00  0.165503316871E+00
-  0.170843589644E+00  0.176353319387E+00  0.182037591014E+00  0.187901611466E+00  0.193950709243E+00
-  0.200190333447E+00  0.206626052301E+00  0.213263551044E+00  0.220108629141E+00  0.227167196717E+00
-  0.234445270112E+00  0.241948966447E+00  0.249684497087E+00  0.257658159858E+00  0.265876329868E+00
-  0.274345448775E+00  0.283072012294E+00  0.292062555759E+00  0.301323637496E+00  0.310861819756E+00
-  0.320683646913E+00  0.330795620636E+00  0.341204171652E+00  0.351915627735E+00  0.362936177473E+00
-  0.374271829350E+00  0.385928365590E+00  0.397911290193E+00  0.410225770506E+00  0.422876571603E+00
-  0.435867982691E+00  0.449203734658E+00  0.462886907800E+00  0.476919828678E+00  0.491303954927E+00
-  0.506039746769E+00  0.521126523834E+00  0.536562305798E+00  0.552343635204E+00  0.568465380740E+00
-  0.584920519078E+00  0.601699893320E+00  0.618791945934E+00  0.636182424019E+00  0.653854054636E+00
-  0.671786187949E+00  0.689954405900E+00  0.708330094256E+00  0.726879976015E+00  0.745565604418E+00
-  0.764342814255E+00  0.783161130667E+00  0.801963135452E+00  0.820683791893E+00  0.839249730401E+00
-  0.857578498949E+00  0.875577784285E+00  0.893144612430E+00  0.910164539979E+00  0.926510851286E+00
-  0.942043780836E+00  0.956609784897E+00  0.970040892017E+00  0.982154168004E+00  0.992751337569E+00
-  0.100161861173E+01  0.100852677707E+01  0.101323160973E+01  0.101547468295E+01  0.101498464155E+01
-  0.101147901924E+01  0.100466111497E+01  0.994375950448E+00  0.980707901591E+00  0.963803639329E+00
-  0.943836461172E+00  0.921004116597E+00  0.895526241359E+00  0.867641520215E+00  0.837604615000E+00
-  0.805682938619E+00  0.772153342384E+00  0.737298744582E+00  0.701404760904E+00  0.664756390336E+00
-  0.627634741711E+00  0.590313873286E+00  0.553057756365E+00  0.516117401327E+00  0.479728188657E+00
-  0.444107456577E+00  0.409452404308E+00  0.375938372688E+00  0.343717559055E+00  0.312918210115E+00
-  0.283644316716E+00  0.255975805584E+00  0.229969207138E+00  0.205658740221E+00  0.183057753088E+00
-  0.162160440109E+00
- ae wavefunction
-  0.723210491956E-03  0.746578583770E-03  0.770700951993E-03  0.795601892227E-03  0.821306479369E-03
-  0.847840592488E-03  0.875230940375E-03  0.903505087772E-03  0.932691482807E-03  0.962819484716E-03
-  0.993919392949E-03  0.102602247680E-02  0.105916100625E-02  0.109336828344E-02  0.112867867548E-02
-  0.116512764795E-02  0.120275179956E-02  0.124158889799E-02  0.128167791659E-02  0.132305907237E-02
-  0.136577386512E-02  0.140986511768E-02  0.145537701746E-02  0.150235515925E-02  0.155084658925E-02
-  0.160089985052E-02  0.165256502971E-02  0.170589380529E-02  0.176093949712E-02  0.181775711760E-02
-  0.187640342429E-02  0.193693697409E-02  0.199941817908E-02  0.206390936390E-02  0.213047482499E-02
-  0.219918089139E-02  0.227009598742E-02  0.234329069717E-02  0.241883783086E-02  0.249681249307E-02
-  0.257729215303E-02  0.266035671683E-02  0.274608860172E-02  0.283457281255E-02  0.292589702034E-02
-  0.302015164303E-02  0.311742992854E-02  0.321782804011E-02  0.332144514397E-02  0.342838349946E-02
-  0.353874855160E-02  0.365264902612E-02  0.377019702712E-02  0.389150813722E-02  0.401670152049E-02
-  0.414590002798E-02  0.427923030608E-02  0.441682290755E-02  0.455881240553E-02  0.470533751028E-02
-  0.485654118900E-02  0.501257078845E-02  0.517357816061E-02  0.533971979149E-02  0.551115693279E-02
-  0.568805573680E-02  0.587058739433E-02  0.605892827584E-02  0.625326007563E-02  0.645376995923E-02
-  0.666065071397E-02  0.687410090265E-02  0.709432502044E-02  0.732153365478E-02  0.755594364866E-02
-  0.779777826652E-02  0.804726736390E-02  0.830464755909E-02  0.857016240900E-02  0.884406258640E-02
-  0.912660606132E-02  0.941805828423E-02  0.971869237195E-02  0.100287892964E-01  0.103486380750E-01
-  0.106785359635E-01  0.110187886512E-01  0.113697104566E-01  0.117316245259E-01  0.121048630323E-01
-  0.124897673751E-01  0.128866883819E-01  0.132959865080E-01  0.137180320384E-01  0.141532052878E-01
-  0.146018967997E-01  0.150645075448E-01  0.155414491166E-01  0.160331439246E-01  0.165400253848E-01
-  0.170625381058E-01  0.176011380701E-01  0.181562928105E-01  0.187284815799E-01  0.193181955137E-01
-  0.199259377844E-01  0.205522237464E-01  0.211975810705E-01  0.218625498668E-01  0.225476827944E-01
-  0.232535451563E-01  0.239807149791E-01  0.247297830737E-01  0.255013530778E-01  0.262960414763E-01
-  0.271144775983E-01  0.279573035892E-01  0.288251743544E-01  0.297187574729E-01  0.306387330781E-01
-  0.315857937031E-01  0.325606440870E-01  0.335640009402E-01  0.345965926640E-01  0.356591590220E-01
-  0.367524507593E-01  0.378772291652E-01  0.390342655757E-01  0.402243408110E-01  0.414482445436E-01
-  0.427067745919E-01  0.440007361337E-01  0.453309408352E-01  0.466982058883E-01  0.481033529513E-01
-  0.495472069857E-01  0.510305949826E-01  0.525543445725E-01  0.541192825097E-01  0.557262330238E-01
-  0.573760160317E-01  0.590694451993E-01  0.608073258461E-01  0.625904526816E-01  0.644196073662E-01
-  0.662955558838E-01  0.682190457186E-01  0.701908028232E-01  0.722115283678E-01  0.742818952600E-01
-  0.764025444212E-01  0.785740808093E-01  0.807970691759E-01  0.830720295419E-01  0.853994323839E-01
-  0.877796935126E-01  0.902131686350E-01  0.927001475833E-01  0.952408481994E-01  0.978354098603E-01
-  0.100483886632E+00  0.103186240036E+00  0.105942331426E+00  0.108751913939E+00  0.111614624041E+00
-  0.114529972627E+00  0.117497335686E+00  0.120515944498E+00  0.123584875391E+00  0.126703039005E+00
-  0.129869169099E+00  0.133081810868E+00  0.136339308790E+00  0.139639793985E+00  0.142981171101E+00
-  0.146361104728E+00  0.149777005361E+00  0.153226014901E+00  0.156704991737E+00  0.160210495417E+00
-  0.163738770941E+00  0.167285732697E+00  0.170846948100E+00  0.174417620953E+00  0.177992574602E+00
-  0.181566234937E+00  0.185132613303E+00  0.188685289405E+00  0.192217394292E+00  0.195721593504E+00
-  0.199190070517E+00  0.202614510568E+00  0.205986085027E+00  0.209295436430E+00  0.212532664351E+00
-  0.215687312275E+00  0.218748355654E+00  0.221704191362E+00  0.224542628748E+00  0.227250882534E+00
-  0.229815567796E+00  0.232222697309E+00  0.234457681522E+00  0.236505331475E+00  0.238349864969E+00
-  0.239974916327E+00  0.241363550084E+00  0.242498278978E+00  0.243361086622E+00  0.243933455227E+00
-  0.244196398801E+00  0.244130502213E+00  0.243715966544E+00  0.242932661134E+00  0.241760182755E+00
-  0.240177922301E+00  0.238165139411E+00  0.235701045406E+00  0.232764894903E+00  0.229336086443E+00
-  0.225394272444E+00  0.220919478726E+00  0.215892233821E+00  0.210293708226E+00  0.204105863651E+00
-  0.197311612280E+00  0.189894985941E+00  0.181841314980E+00  0.173137416545E+00  0.163771791829E+00
-  0.153734831728E+00  0.143019030191E+00  0.131619204408E+00  0.119532720834E+00  0.106759725824E+00
-  0.933033795277E-01  0.791700914244E-01  0.643697556857E-01  0.489159842511E-01  0.328263352024E-01
-  0.161225336665E-01 -0.116931789868E-02 -0.190185435298E-01 -0.373897154028E-01 -0.562424969619E-01
- -0.755315106483E-01 -0.952062321565E-01 -0.115210911281E+00 -0.135484517197E+00 -0.155960704264E+00
- -0.176567794242E+00 -0.197228773280E+00 -0.217861307379E+00 -0.238377787431E+00 -0.258685422148E+00
- -0.278686401205E+00 -0.298278148790E+00 -0.317353678585E+00 -0.335802047802E+00 -0.353508896551E+00
- -0.370357054796E+00 -0.386227202908E+00 -0.400998578759E+00 -0.414549729935E+00 -0.426759311736E+00
- -0.437506930652E+00 -0.446674029444E+00 -0.454144808540E+00 -0.459807175066E+00 -0.463553710585E+00
- -0.465282647871E+00 -0.464898847424E+00 -0.462314764450E+00 -0.457451398192E+00 -0.450239215408E+00
- -0.440619040450E+00 -0.428542905017E+00 -0.413974850508E+00 -0.396891676564E+00 -0.377283628995E+00
- -0.355155020605E+00 -0.330524777997E+00 -0.303426906672E+00 -0.273910866599E+00 -0.242041849499E+00
- -0.207900947753E+00 -0.171585205060E+00 -0.133207537940E+00 -0.928965176587E-01 -0.507960038343E-01
- -0.706462318874E-02  0.381249082892E-01  0.845866157243E-01  0.132122236961E+00  0.180522317286E+00
-  0.229567404370E+00  0.279029321687E+00  0.328672508685E+00  0.378255438406E+00  0.427532163428E+00
-  0.476254096171E+00  0.524172207141E+00  0.571039903275E+00  0.616616865042E+00  0.660673900196E+00
-  0.702998097735E+00  0.743396073735E+00  0.781691755158E+00  0.817716506082E+00  0.851295262156E+00
-  0.882238303138E+00  0.910345746539E+00  0.935421494478E+00  0.957287301571E+00  0.975791215624E+00
-  0.990810703323E+00  0.100225314176E+01  0.101005569110E+01  0.101418535318E+01  0.101463927790E+01
-  0.101144510801E+01  0.100466111497E+01  0.994375950448E+00  0.980707901591E+00  0.963803639329E+00
-  0.943836461172E+00  0.921004116597E+00  0.895526241359E+00  0.867641520215E+00  0.837604615000E+00
-  0.805682938619E+00  0.772153342384E+00  0.737298744582E+00  0.701404760904E+00  0.664756390336E+00
-  0.627634741711E+00  0.590313873286E+00  0.553057756365E+00  0.516117401327E+00  0.479728188657E+00
-  0.444107456577E+00  0.409452404308E+00  0.375938372688E+00  0.343717559055E+00  0.312918210115E+00
-  0.283644316716E+00  0.255975805584E+00  0.229969207138E+00  0.205658740221E+00  0.183057753088E+00
-  0.162160440109E+00
- pseudo wavefunction
-  0.815477257113E-04  0.841994543121E-04  0.869374105116E-04  0.897643982160E-04  0.926833125078E-04
-  0.956971426101E-04  0.988089749485E-04  0.102021996311E-03  0.105339497112E-03  0.108764874763E-03
-  0.112301637149E-03  0.115953406224E-03  0.119723921719E-03  0.123617044970E-03  0.127636762877E-03
-  0.131787191981E-03  0.136072582684E-03  0.140497323602E-03  0.145065946054E-03  0.149783128710E-03
-  0.154653702376E-03  0.159682654946E-03  0.164875136506E-03  0.170236464611E-03  0.175772129729E-03
-  0.181487800864E-03  0.187389331363E-03  0.193482764908E-03  0.199774341708E-03  0.206270504887E-03
-  0.212977907082E-03  0.219903417260E-03  0.227054127747E-03  0.234437361494E-03  0.242060679579E-03
-  0.249931888944E-03  0.258059050395E-03  0.266450486854E-03  0.275114791884E-03  0.284060838489E-03
-  0.293297788203E-03  0.302835100467E-03  0.312682542321E-03  0.322850198405E-03  0.333348481284E-03
-  0.344188142117E-03  0.355380281661E-03  0.366936361642E-03  0.378868216494E-03  0.391188065475E-03
-  0.403908525185E-03  0.417042622483E-03  0.430603807827E-03  0.444605969054E-03  0.459063445594E-03
-  0.473991043162E-03  0.489404048917E-03  0.505318247117E-03  0.521749935286E-03  0.538715940900E-03
-  0.556233638623E-03  0.574320968101E-03  0.592996452329E-03  0.612279216623E-03  0.632189008208E-03
-  0.652746216436E-03  0.673971893671E-03  0.695887776845E-03  0.718516309720E-03  0.741880665872E-03
-  0.766004772421E-03  0.790913334538E-03  0.816631860740E-03  0.843186689018E-03  0.870605013804E-03
-  0.898914913826E-03  0.928145380856E-03  0.958326349405E-03  0.989488727376E-03  0.102166442772E-02
-  0.105488640110E-02  0.108918866967E-02  0.112460636188E-02  0.116117574846E-02  0.119893427959E-02
-  0.123792062320E-02  0.127817470463E-02  0.131973774745E-02  0.136265231574E-02  0.140696235763E-02
-  0.145271325033E-02  0.149995184660E-02  0.154872652270E-02  0.159908722798E-02  0.165108553598E-02
-  0.170477469728E-02  0.176020969402E-02  0.181744729618E-02  0.187654611977E-02  0.193756668679E-02
-  0.200057148727E-02  0.206562504320E-02  0.213279397464E-02  0.220214706796E-02  0.227375534621E-02
-  0.234769214192E-02  0.242403317215E-02  0.250285661605E-02  0.258424319488E-02  0.266827625473E-02
-  0.275504185178E-02  0.284462884051E-02  0.293712896461E-02  0.303263695098E-02  0.313125060667E-02
-  0.323307091910E-02  0.333820215938E-02  0.344675198915E-02  0.355883157079E-02  0.367455568123E-02
-  0.379404282948E-02  0.391741537797E-02  0.404479966782E-02  0.417632614823E-02  0.431212951000E-02
-  0.445234882345E-02  0.459712768080E-02  0.474661434319E-02  0.490096189243E-02  0.506032838775E-02
-  0.522487702760E-02  0.539477631671E-02  0.557020023861E-02  0.575132843370E-02  0.593834638314E-02
-  0.613144559871E-02  0.633082381885E-02  0.653668521102E-02  0.674924058070E-02  0.696870758709E-02
-  0.719531096592E-02  0.742928275939E-02  0.767086255365E-02  0.792029772395E-02  0.817784368774E-02
-  0.844376416603E-02  0.871833145320E-02  0.900182669552E-02  0.929454017879E-02  0.959677162528E-02
-  0.990883050022E-02  0.102310363284E-01  0.105637190207E-01  0.109072192118E-01  0.112618886081E-01
-  0.116280903475E-01  0.120061993704E-01  0.123966028031E-01  0.127997003533E-01  0.132159047187E-01
-  0.136456420083E-01  0.140893521779E-01  0.145474894794E-01  0.150205229247E-01  0.155089367643E-01
-  0.160132309818E-01  0.165339218041E-01  0.170715422280E-01  0.176266425639E-01  0.181997909971E-01
-  0.187915741665E-01  0.194025977634E-01  0.200334871477E-01  0.206848879853E-01  0.213574669051E-01
-  0.220519121780E-01  0.227689344162E-01  0.235092672965E-01  0.242736683058E-01  0.250629195101E-01
-  0.258778283492E-01  0.267192284556E-01  0.275879804997E-01  0.284849730625E-01  0.294111235351E-01
-  0.303673790471E-01  0.313547174243E-01  0.323741481766E-01  0.334267135170E-01  0.345134894124E-01
-  0.356355866676E-01  0.367941520430E-01  0.379903694070E-01  0.392254609246E-01  0.405006882824E-01
-  0.418173539515E-01  0.431768024894E-01  0.445804218815E-01  0.460296449237E-01  0.475259506471E-01
-  0.490708657851E-01  0.506659662856E-01  0.523128788672E-01  0.540132826228E-01  0.557689106695E-01
-  0.575815518475E-01  0.594530524680E-01  0.613853181118E-01  0.633803154786E-01  0.654400742896E-01
-  0.675666892425E-01  0.697623220209E-01  0.720292033587E-01  0.743696351597E-01  0.767859926737E-01
-  0.792807267296E-01  0.818563660248E-01  0.845155194735E-01  0.872608786111E-01  0.900952200573E-01
-  0.930214080363E-01  0.960423969533E-01  0.991612340281E-01  0.102381061984E+00  0.105705121788E+00
-  0.109136755450E+00  0.112679408862E+00  0.116336634695E+00  0.120112095333E+00  0.124009565855E+00
-  0.128032937043E+00  0.132186218436E+00  0.136473541398E+00  0.140899162210E+00  0.145467465175E+00
-  0.150182965720E+00  0.155050313498E+00  0.160074295467E+00  0.165259838936E+00  0.170612014565E+00
-  0.176136039306E+00  0.181837279254E+00  0.187721252402E+00  0.193793631261E+00  0.200060245332E+00
-  0.206527083389E+00  0.213200295545E+00  0.220086195059E+00  0.227191259846E+00  0.234522133635E+00
-  0.242085626730E+00  0.249888716306E+00  0.257938546178E+00  0.266242425963E+00  0.274807829557E+00
-  0.283642392830E+00  0.292753910429E+00  0.302150331579E+00  0.311839754749E+00  0.321830421030E+00
-  0.332130706074E+00  0.342749110390E+00  0.353694247819E+00  0.364974831931E+00  0.376599660114E+00
-  0.388577595046E+00  0.400917543253E+00  0.413628430375E+00  0.426719172761E+00  0.440198644933E+00
-  0.454075642432E+00  0.468358839485E+00  0.483056740881E+00  0.498177627359E+00  0.513729493745E+00
-  0.529719978972E+00  0.546156287045E+00  0.563045097863E+00  0.580392466756E+00  0.598203711387E+00
-  0.616483284604E+00  0.635234631621E+00  0.654460029761E+00  0.674160408817E+00  0.694335149890E+00
-  0.714981860357E+00  0.736096122431E+00  0.757671212527E+00  0.779697788452E+00  0.802163541211E+00
-  0.825052808008E+00  0.848346142836E+00  0.872019840898E+00  0.896045412985E+00  0.920389005890E+00
-  0.945010765014E+00  0.969864135460E+00  0.994895098271E+00  0.102004133900E+01  0.104523134664E+01
-  0.107038344193E+01  0.109540473587E+01  0.112019002089E+01  0.114462060011E+01  0.116856306300E+01
-  0.119186802024E+01  0.121436881520E+01  0.123588023556E+01  0.125619725611E+01  0.127509385139E+01
-  0.129232192750E+01  0.130761043238E+01  0.132066471690E+01  0.133116623170E+01  0.133877265895E+01
-  0.134311859223E+01  0.134381689101E+01  0.134046084846E+01  0.133262731962E+01  0.131988096144E+01
-  0.130177973302E+01  0.127788310298E+01  0.124791979347E+01  0.121195594119E+01  0.117012955700E+01
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00
- ae wavefunction
-  0.100411206031E-02  0.103655653257E-02  0.107004824907E-02  0.110462094206E-02  0.114030942574E-02
-  0.117714963085E-02  0.121517864012E-02  0.125443472469E-02  0.129495738219E-02  0.133678737526E-02
-  0.137996677192E-02  0.142453898676E-02  0.147054882368E-02  0.151804251972E-02  0.156706779045E-02
-  0.161767387661E-02  0.166991159220E-02  0.172383337419E-02  0.177949333353E-02  0.183694730789E-02
-  0.189625291594E-02  0.195746961331E-02  0.202065875021E-02  0.208588363083E-02  0.215320957455E-02
-  0.222270397899E-02  0.229443638492E-02  0.236847854317E-02  0.244490448353E-02  0.252379058570E-02
-  0.260521565239E-02  0.268926098453E-02  0.277601045878E-02  0.286555060725E-02  0.295797069967E-02
-  0.305336282787E-02  0.315182199281E-02  0.325344619405E-02  0.335833652195E-02  0.346659725239E-02
-  0.357833594433E-02  0.369366354008E-02  0.381269446850E-02  0.393554675108E-02  0.406234211102E-02
-  0.419320608539E-02  0.432826814042E-02  0.446766179001E-02  0.461152471742E-02  0.475999890040E-02
-  0.491323073976E-02  0.507137119125E-02  0.523457590114E-02  0.540300534538E-02  0.557682497239E-02
-  0.575620534963E-02  0.594132231403E-02  0.613235712617E-02  0.632949662853E-02  0.653293340765E-02
-  0.674286596037E-02  0.695949886420E-02  0.718304295172E-02  0.741371548940E-02  0.765174036045E-02
-  0.789734825209E-02  0.815077684708E-02  0.841227101959E-02  0.868208303549E-02  0.896047275693E-02
-  0.924770785137E-02  0.954406400502E-02  0.984982514059E-02  0.101652836394E-01  0.104907405678E-01
-  0.108265059081E-01  0.111728987934E-01  0.115302477462E-01  0.118988909230E-01  0.122791763595E-01
-  0.126714622234E-01  0.130761170679E-01  0.134935200904E-01  0.139240613943E-01  0.143681422534E-01
-  0.148261753797E-01  0.152985851939E-01  0.157858080982E-01  0.162882927509E-01  0.168065003429E-01
-  0.173409048755E-01  0.178919934394E-01  0.184602664931E-01  0.190462381422E-01  0.196504364175E-01
-  0.202734035517E-01  0.209156962543E-01  0.215778859835E-01  0.222605592145E-01  0.229643177037E-01
-  0.236897787473E-01  0.244375754327E-01  0.252083568839E-01  0.260027884966E-01  0.268215521644E-01
-  0.276653464924E-01  0.285348869993E-01  0.294309063035E-01  0.303541542937E-01  0.313053982813E-01
-  0.322854231324E-01  0.332950313775E-01  0.343350432971E-01  0.354062969793E-01  0.365096483489E-01
-  0.376459711628E-01  0.388161569716E-01  0.400211150407E-01  0.412617722306E-01  0.425390728318E-01
-  0.438539783489E-01  0.452074672324E-01  0.466005345522E-01  0.480341916085E-01  0.495094654752E-01
-  0.510273984710E-01  0.525890475524E-01  0.541954836221E-01  0.558477907490E-01  0.575470652892E-01
-  0.592944149057E-01  0.610909574763E-01  0.629378198839E-01  0.648361366790E-01  0.667870486093E-01
-  0.687917010039E-01  0.708512420048E-01  0.729668206361E-01  0.751395846992E-01  0.773706784836E-01
-  0.796612402836E-01  0.820123997070E-01  0.844252747640E-01  0.869009687250E-01  0.894405667320E-01
-  0.920451321506E-01  0.947157026489E-01  0.974532859865E-01  0.100258855501E+00  0.103133345273E+00
-  0.106077644955E+00  0.109092594252E+00  0.112178977021E+00  0.115337514994E+00  0.118568861090E+00
-  0.121873592304E+00  0.125252202151E+00  0.128705092655E+00  0.132232565851E+00  0.135834814797E+00
-  0.139511914062E+00  0.143263809684E+00  0.147090308573E+00  0.150991067341E+00  0.154965580557E+00
-  0.159013168383E+00  0.163132963604E+00  0.167323898026E+00  0.171584688232E+00  0.175913820679E+00
-  0.180309536147E+00  0.184769813516E+00  0.189292352876E+00  0.193874557970E+00  0.198513517983E+00
-  0.203205988665E+00  0.207948372826E+00  0.212736700201E+00  0.217566606727E+00  0.222433313240E+00
-  0.227331603655E+00  0.232255802656E+00  0.237199752953E+00  0.242156792174E+00  0.247119729454E+00
-  0.252080821818E+00  0.257031750433E+00  0.261963596859E+00  0.266866819394E+00  0.271731229666E+00
-  0.276545969613E+00  0.281299489013E+00  0.285979523755E+00  0.290573075042E+00  0.295066389746E+00
-  0.299444942160E+00  0.303693417394E+00  0.307795696707E+00  0.311734845064E+00  0.315493101250E+00
-  0.319051870893E+00  0.322391722743E+00  0.325492388640E+00  0.328332767535E+00  0.330890934065E+00
-  0.333144152089E+00  0.335068893704E+00  0.336640864237E+00  0.337835033734E+00  0.338625675483E+00
-  0.338986412149E+00  0.338890270056E+00  0.338309742224E+00  0.337216860715E+00  0.335583278886E+00
-  0.333380364113E+00  0.330579301540E+00  0.327151209410E+00  0.323067266460E+00  0.318298851881E+00
-  0.312817698250E+00  0.306596057794E+00  0.299606882299E+00  0.291824016847E+00  0.283222407513E+00
-  0.273778323006E+00  0.263469590136E+00  0.252275842824E+00  0.240178784252E+00  0.227162461529E+00
-  0.213213552127E+00  0.198321661083E+00  0.182479627800E+00  0.165683841030E+00  0.147934560383E+00
-  0.129236242450E+00  0.109597869328E+00  0.890332769980E-01  0.675614806516E-01  0.452069935885E-01
-  0.220001358488E-01 -0.202267179947E-02 -0.268186333727E-01 -0.523383278445E-01 -0.785254890752E-01
- -0.105316819838E+00 -0.132641842628E+00 -0.160422787359E+00 -0.188574512968E+00 -0.217004457521E+00
- -0.245612611158E+00 -0.274291509649E+00 -0.302926253778E+00 -0.331394570066E+00 -0.359566938358E+00
- -0.387306817382E+00 -0.414470996398E+00 -0.440910088322E+00 -0.466469161094E+00 -0.490988488296E+00
- -0.514304394485E+00 -0.536250175925E+00 -0.556657087061E+00 -0.575355390912E+00 -0.592175474576E+00
- -0.606949029250E+00 -0.619510290028E+00 -0.629697327922E+00 -0.637353382408E+00 -0.642328222232E+00
- -0.644479521263E+00 -0.643674236664E+00 -0.639789976727E+00 -0.632716347271E+00 -0.622356265451E+00
- -0.608627230644E+00 -0.591462542992E+00 -0.570812459931E+00 -0.546645281908E+00 -0.518948357967E+00
- -0.487729002212E+00 -0.453015311567E+00 -0.414856874075E+00 -0.373325356806E+00 -0.328514960967E+00
- -0.280542730002E+00 -0.229548696640E+00 -0.175695853364E+00 -0.119169931471E+00 -0.601789761144E-01
-  0.104729211497E-02  0.642583319031E-01  0.129183846977E+00  0.195535047578E+00  0.263006083041E+00
-  0.331275614340E+00  0.400008497553E+00  0.468857563600E+00  0.537465511386E+00  0.605466987922E+00
-  0.672491005793E+00  0.738163955532E+00  0.802113577363E+00  0.863974274314E+00  0.923393832698E+00
-  0.980040530008E+00  0.103360754150E+01  0.108380973017E+01  0.113036987200E+01  0.117299954389E+01
-  0.121138806437E+01  0.124520914300E+01  0.127414049534E+01  0.129788344230E+01  0.131617463165E+01
-  0.132879041294E+01  0.133554760128E+01  0.133630339312E+01  0.133095550857E+01  0.131944261315E+01
-  0.130174470424E+01  0.127788310298E+01  0.124791979347E+01  0.121195594119E+01  0.117012955700E+01
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00
- pseudo wavefunction
-  0.291401325933E-08  0.310660738532E-08  0.331193051905E-08  0.353082395115E-08  0.376418457520E-08
-  0.401296856259E-08  0.427819528042E-08  0.456095146815E-08  0.486239569049E-08  0.518376308447E-08
-  0.552637042028E-08  0.589162149659E-08  0.628101289253E-08  0.669614009969E-08  0.713870405956E-08
-  0.761051813289E-08  0.811351552983E-08  0.864975723099E-08  0.922144043214E-08  0.983090754699E-08
-  0.104806558050E-07  0.111733474834E-07  0.119118208158E-07  0.126991016216E-07  0.135384157035E-07
-  0.144332020655E-07  0.153871270036E-07  0.164040991280E-07  0.174882853783E-07  0.186441280971E-07
-  0.198763632322E-07  0.211900397413E-07  0.225905402799E-07  0.240836032562E-07  0.256753463434E-07
-  0.273722915463E-07  0.291813919246E-07  0.311100600826E-07  0.331661985409E-07  0.353582321169E-07
-  0.376951424442E-07  0.401865047739E-07  0.428425272086E-07  0.456740925285E-07  0.486928027827E-07
-  0.519110268276E-07  0.553419510066E-07  0.589996331800E-07  0.628990603257E-07  0.670562099465E-07
-  0.714881155364E-07  0.762129363737E-07  0.812500319263E-07  0.866200411755E-07  0.923449671818E-07
-  0.984482672403E-07  0.104954948994E-06  0.111891672901E-06  0.119286861471E-06  0.127170815725E-06
-  0.135575839351E-06  0.144536371063E-06  0.154089125712E-06  0.164273244717E-06  0.175130456449E-06
-  0.186705247203E-06  0.199045043477E-06  0.212200406300E-06  0.226225238396E-06  0.241177005044E-06
-  0.257116969541E-06  0.274110444214E-06  0.292227058035E-06  0.311541041917E-06  0.332131532864E-06
-  0.354082898227E-06  0.377485081388E-06  0.402433970297E-06  0.429031790352E-06  0.457387523265E-06
-  0.487617353594E-06  0.519845144797E-06  0.554202946748E-06  0.590831536791E-06  0.629880996560E-06
-  0.671511326916E-06  0.715893103531E-06  0.763208175796E-06  0.813650411926E-06  0.867426493305E-06
-  0.924756761334E-06  0.985876120248E-06  0.105103499960E-05  0.112050038036E-05  0.119455688881E-05
-  0.127350796280E-05  0.135767709497E-05  0.144740915825E-05  0.154307181892E-05  0.164505704302E-05
-  0.175378270241E-05  0.186969428687E-05  0.199326672943E-05  0.212500635232E-05  0.226545294151E-05
-  0.241518195837E-05  0.257480689749E-05  0.274498180033E-05  0.292640393503E-05  0.311981665323E-05
-  0.332601243583E-05  0.354583613993E-05  0.378018846037E-05  0.403002962015E-05  0.429638330457E-05
-  0.458034085547E-05  0.488306574269E-05  0.520579833094E-05  0.554986096174E-05  0.591666337125E-05
-  0.630770846606E-05  0.672459848077E-05  0.716904154238E-05  0.764285866862E-05  0.814799122864E-05
-  0.868650889678E-05  0.926061813200E-05  0.987267121753E-05  0.105251758980E-04  0.112208056533E-04
-  0.119624106514E-04  0.127530294250E-04  0.135959013195E-04  0.144944797639E-04  0.154524464180E-04
-  0.164737262553E-04  0.175625036414E-04  0.187232394758E-04  0.199606894654E-04  0.212799236061E-04
-  0.226863469507E-04  0.241857217502E-04  0.257841910562E-04  0.274883038842E-04  0.293050420377E-04
-  0.312418487062E-04  0.333066589503E-04  0.355079322021E-04  0.378546869117E-04  0.403565374822E-04
-  0.430237336441E-04  0.458672024310E-04  0.488985929263E-04  0.521303239658E-04  0.555756349902E-04
-  0.592486402555E-04  0.631643866225E-04  0.673389151628E-04  0.717893268303E-04  0.765338524702E-04
-  0.815919274473E-04  0.869842712009E-04  0.927329720510E-04  0.988615775995E-04  0.105395191097E-03
-  0.112360574171E-03  0.119786256323E-03  0.127702651659E-03  0.136142183310E-03  0.145139416064E-03
-  0.154731197738E-03  0.164956809872E-03  0.175858128359E-03  0.187479794654E-03  0.199869398273E-03
-  0.213077671305E-03  0.227158695740E-03  0.242170124453E-03  0.258173416722E-03  0.275234089266E-03
-  0.293421983779E-03  0.312811552079E-03  0.333482159993E-03  0.355518411228E-03  0.379010492513E-03
-  0.404054541419E-03  0.430753038322E-03  0.459215224092E-03  0.489557545183E-03  0.521904127897E-03
-  0.556387283727E-03  0.593148047805E-03  0.632336752571E-03  0.674113638984E-03  0.718649507668E-03
-  0.766126412590E-03  0.816738400009E-03  0.870692295607E-03  0.928208542896E-03  0.989522096188E-03
-  0.105488337163E-02  0.112455925999E-02  0.119883420516E-02  0.127801135246E-02  0.136241377136E-02
-  0.145238575706E-02  0.154829421610E-02  0.165053014116E-02  0.175951018072E-02  0.187567830934E-02
-  0.199950760496E-02  0.213150213972E-02  0.227219899132E-02  0.242217038221E-02  0.258202595451E-02
-  0.275241518875E-02  0.293402997498E-02  0.312760734560E-02  0.333393237906E-02  0.355384128481E-02
-  0.378822467978E-02  0.403803106746E-02  0.430427053110E-02  0.458801865300E-02  0.489042067249E-02
-  0.521269589551E-02  0.555614236937E-02  0.592214183672E-02  0.631216498309E-02  0.672777699290E-02
-  0.717064342923E-02  0.764253645283E-02  0.814534139630E-02  0.868106370932E-02  0.925183629115E-02
-  0.985992722626E-02  0.105077479391E-01  0.111978617832E-01  0.119329930798E-01  0.127160366201E-01
-  0.135500676430E-01  0.144383523024E-01  0.153843586304E-01  0.163917680069E-01  0.174644871387E-01
-  0.186066605500E-01  0.198226835816E-01  0.211172158919E-01  0.224951954467E-01  0.239618529776E-01
-  0.255227268840E-01  0.271836785399E-01  0.289509079627E-01  0.308309697832E-01  0.328307894472E-01
-  0.349576795609E-01  0.372193562769E-01  0.396239555947E-01  0.421800494316E-01  0.448966612888E-01
-  0.477832813164E-01  0.508498805412E-01  0.541069239936E-01  0.575653824260E-01  0.612367422726E-01
-  0.651330134572E-01  0.692667345974E-01  0.736509751040E-01  0.782993336099E-01  0.832259320992E-01
-  0.884454050389E-01  0.939728827426E-01  0.998239681194E-01  0.106014705886E+00  0.112561543240E+00
-  0.119481280915E+00  0.126791013465E+00  0.134508057562E+00  0.142649867018E+00  0.151233933217E+00
-  0.160277669592E+00  0.169798278812E+00  0.179812601329E+00  0.190336944040E+00  0.201386887920E+00
-  0.212977073642E+00  0.225120964474E+00  0.237830586025E+00  0.251116242866E+00  0.264986212540E+00
-  0.279446418120E+00  0.294500081243E+00  0.310147358389E+00  0.326384964240E+00  0.343205787016E+00
-  0.360598501964E+00  0.378547190403E+00  0.397030973061E+00  0.416023667596E+00  0.435493481275E+00
-  0.455402750406E+00  0.475707738325E+00  0.496358503092E+00  0.517298844394E+00  0.538466336048E+00
-  0.559792445588E+00  0.581202735249E+00  0.602617128756E+00  0.623950215269E+00  0.645111545175E+00
-  0.666005852012E+00  0.686533110574E+00  0.706588313742E+00  0.726060820598E+00  0.744833097986E+00
-  0.762778649522E+00  0.779758904490E+00  0.795618829863E+00  0.810181039602E+00  0.823238215978E+00
-  0.834543739524E+00  0.843795380124E+00  0.850759109567E+00  0.855372161004E+00  0.857616014165E+00
-  0.857488659294E+00  0.855004671928E+00  0.850195047582E+00  0.843106865393E+00  0.833802777701E+00
-  0.822360362211E+00  0.808871363829E+00  0.793440811751E+00  0.776186049690E+00  0.757235651501E+00
-  0.736728220047E+00  0.714811061352E+00  0.691638711026E+00  0.667371314245E+00  0.642172855225E+00
-  0.616209261527E+00  0.589646422683E+00  0.562648185013E+00  0.535374398390E+00  0.507979097643E+00
-  0.480608903449E+00  0.453401664511E+00  0.426485488588E+00  0.399978037834E+00  0.373986187145E+00
-  0.348605971935E+00
- ae wavefunction
- -0.227640005255E-06 -0.241553109009E-06 -0.256238555862E-06 -0.271743807437E-06 -0.288119059293E-06
- -0.305417409476E-06 -0.323695040919E-06 -0.343011420299E-06 -0.363429495424E-06 -0.385015922933E-06
- -0.407841293332E-06 -0.431980383418E-06 -0.457512411824E-06 -0.484521323890E-06 -0.513096081958E-06
- -0.543330981917E-06 -0.575325988290E-06 -0.609187085051E-06 -0.645026656992E-06 -0.682963888178E-06
- -0.723125189070E-06 -0.765644650027E-06 -0.810664522779E-06 -0.858335733716E-06 -0.908818428675E-06
- -0.962282552862E-06 -0.101890846811E-05 -0.107888760881E-05 -0.114242318028E-05 -0.120973090157E-05
- -0.128103979581E-05 -0.135659303138E-05 -0.143664881687E-05 -0.152148135361E-05 -0.161138184934E-05
- -0.170665959719E-05 -0.180764312397E-05 -0.191468141270E-05 -0.202814520350E-05 -0.214842837891E-05
- -0.227594943811E-05 -0.241115306706E-05 -0.255451180887E-05 -0.270652784384E-05 -0.286773488278E-05
- -0.303870018477E-05 -0.322002670283E-05 -0.341235537132E-05 -0.361636753939E-05 -0.383278756495E-05
- -0.406238557063E-05 -0.430598038508E-05 -0.456444267121E-05 -0.483869825746E-05 -0.512973168541E-05
- -0.543858998763E-05 -0.576638670788E-05 -0.611430618730E-05 -0.648360812039E-05 -0.687563241512E-05
- -0.729180435834E-05 -0.773364012362E-05 -0.820275263428E-05 -0.870085779960E-05 -0.922978116481E-05
- -0.979146498304E-05 -0.103879757491E-04 -0.110215122190E-04 -0.116944139499E-04 -0.124091703881E-04
- -0.131684305501E-04 -0.139750133231E-04 -0.148319184326E-04 -0.157423381229E-04 -0.167096695752E-04
- -0.177375281589E-04 -0.188297614847E-04 -0.199904644287E-04 -0.212239950522E-04 -0.225349916140E-04
- -0.239283906270E-04 -0.254094460867E-04 -0.269837499631E-04 -0.286572539548E-04 -0.304362926902E-04
- -0.323276083849E-04 -0.343383770722E-04 -0.364762365488E-04 -0.387493160542E-04 -0.411662678874E-04
- -0.437363010297E-04 -0.464692168819E-04 -0.493754473295E-04 -0.524660951748E-04 -0.557529771750E-04
- -0.592486697906E-04 -0.629665578455E-04 -0.669208862560E-04 -0.711268150389E-04 -0.756004777882E-04
- -0.803590438379E-04 -0.854207843420E-04 -0.908051425042E-04 -0.965328082167E-04 -0.102625797380E-03
- -0.109107536177E-03 -0.116002950618E-03 -0.123338561665E-03 -0.131142586270E-03 -0.139445044700E-03
- -0.148277874493E-03 -0.157675051496E-03 -0.167672718328E-03 -0.178309320794E-03 -0.189625752649E-03
- -0.201665509253E-03 -0.214474850611E-03 -0.228102974334E-03 -0.242602199160E-03 -0.258028159541E-03
- -0.274440012047E-03 -0.291900654171E-03 -0.310476956278E-03 -0.330240007458E-03 -0.351265376027E-03
- -0.373633385506E-03 -0.397429406962E-03 -0.422744168568E-03 -0.449674083345E-03 -0.478321596087E-03
- -0.508795550462E-03 -0.541211577400E-03 -0.575692505860E-03 -0.612368797176E-03 -0.651379004183E-03
- -0.692870256384E-03 -0.736998772502E-03 -0.783930401758E-03 -0.833841195310E-03 -0.886918009300E-03
- -0.943359141058E-03 -0.100337499998E-02 -0.106718881472E-02 -0.113503737838E-02 -0.120717183327E-02
- -0.128385849716E-02 -0.136537973262E-02 -0.145203486135E-02 -0.154414112528E-02 -0.164203469631E-02
- -0.174607173654E-02 -0.185662951080E-02 -0.197410755347E-02 -0.209892889124E-02 -0.223154132379E-02
- -0.237241876400E-02 -0.252206263958E-02 -0.268100335757E-02 -0.284980183333E-02 -0.302905108546E-02
- -0.321937789790E-02 -0.342144455020E-02 -0.363595061718E-02 -0.386363483818E-02 -0.410527705682E-02
- -0.436170023094E-02 -0.463377251275E-02 -0.492240939836E-02 -0.522857594571E-02 -0.555328905920E-02
- -0.589761983893E-02 -0.626269599168E-02 -0.664970430008E-02 -0.705989314585E-02 -0.749457508176E-02
- -0.795512944634E-02 -0.844300501417E-02 -0.895972267341E-02 -0.950687812113E-02 -0.100861445655E-01
- -0.106992754225E-01 -0.113481069932E-01 -0.120345611055E-01 -0.127606477039E-01 -0.135284673660E-01
- -0.143402137256E-01 -0.151981757772E-01 -0.161047400361E-01 -0.170623925242E-01 -0.180737205506E-01
- -0.191414142506E-01 -0.202682678463E-01 -0.214571805872E-01 -0.227111573254E-01 -0.240333086777E-01
- -0.254268507220E-01 -0.268951041730E-01 -0.284414929755E-01 -0.300695422528E-01 -0.317828755418E-01
- -0.335852112415E-01 -0.354803581988E-01 -0.374722103520E-01 -0.395647403441E-01 -0.417619920209E-01
- -0.440680717173E-01 -0.464871382391E-01 -0.490233914373E-01 -0.516810592766E-01 -0.544643832889E-01
- -0.573776023104E-01 -0.604249343909E-01 -0.636105567713E-01 -0.669385838208E-01 -0.704130428314E-01
- -0.740378475674E-01 -0.778167694752E-01 -0.817534064637E-01 -0.858511491736E-01 -0.901131446652E-01
- -0.945422574669E-01 -0.991410279388E-01 -0.103911627924E+00 -0.108855813683E+00 -0.113974876119E+00
- -0.119269588339E+00 -0.124740150612E+00 -0.130386132824E+00 -0.136206414546E+00 -0.142199122910E+00
- -0.148361568461E+00 -0.154690179275E+00 -0.161180433629E+00 -0.167826791604E+00 -0.174622626074E+00
- -0.181560153598E+00 -0.188630365898E+00 -0.195822962666E+00 -0.203126286646E+00 -0.210527262067E+00
- -0.218011337617E+00 -0.225562435281E+00 -0.233162906153E+00 -0.240793494317E+00 -0.248433308678E+00
- -0.256059802119E+00 -0.263648755337E+00 -0.271174261340E+00 -0.278608705431E+00 -0.285922735843E+00
- -0.293085222680E+00 -0.300063207642E+00 -0.306821853310E+00 -0.313324406907E+00 -0.319532197048E+00
- -0.325404681082E+00 -0.330899553728E+00 -0.335972916269E+00 -0.340579493605E+00 -0.344672879916E+00
- -0.348205795435E+00 -0.351130344647E+00 -0.353398274582E+00 -0.354961236968E+00 -0.355771059088E+00
- -0.355780026627E+00 -0.354941178528E+00 -0.353208612936E+00 -0.350537800929E+00 -0.346885905093E+00
- -0.342212099803E+00 -0.336477890709E+00 -0.329647431117E+00 -0.321687833920E+00 -0.312569477680E+00
- -0.302266305867E+00 -0.290756118642E+00 -0.278020856318E+00 -0.264046873976E+00 -0.248825206279E+00
- -0.232351821598E+00 -0.214627864069E+00 -0.195659881552E+00 -0.175460037164E+00 -0.154046301204E+00
- -0.131442619230E+00 -0.107679051851E+00 -0.827918807912E-01 -0.568236757344E-01 -0.298233169267E-01
- -0.184596946076E-02  0.270469925154E-01  0.567881103967E-01  0.873040093439E-01  0.118515601298E+00
-  0.150338311437E+00  0.182682317934E+00  0.215452801690E+00  0.248550217585E+00  0.281870625756E+00
-  0.315306159094E+00  0.348745757632E+00  0.382076358511E+00  0.415184751019E+00  0.447960169991E+00
-  0.480297184335E+00  0.512097402331E+00  0.543267514780E+00  0.573711997895E+00  0.603322786216E+00
-  0.631972550728E+00  0.659516794793E+00  0.685802869564E+00  0.710679507526E+00  0.734002706130E+00
-  0.755638016764E+00  0.775461068324E+00  0.793357768618E+00  0.809224794004E+00  0.822970440992E+00
-  0.834515701559E+00  0.843795380124E+00  0.850759109567E+00  0.855372161004E+00  0.857616014165E+00
-  0.857488659294E+00  0.855004671928E+00  0.850195047582E+00  0.843106865393E+00  0.833802777701E+00
-  0.822360362211E+00  0.808871363829E+00  0.793440811751E+00  0.776186049690E+00  0.757235651501E+00
-  0.736728220047E+00  0.714811061352E+00  0.691638711026E+00  0.667371314245E+00  0.642172855225E+00
-  0.616209261527E+00  0.589646422683E+00  0.562648185013E+00  0.535374398390E+00  0.507979097643E+00
-  0.480608903449E+00  0.453401664511E+00  0.426485488588E+00  0.399978037834E+00  0.373986187145E+00
-  0.348605971935E+00
- pseudo wavefunction
-  0.571859011433E-08  0.609654545181E-08  0.649948076408E-08  0.692904703757E-08  0.738700437639E-08
-  0.787522921411E-08  0.839572200233E-08  0.895061540728E-08  0.954218304822E-08  0.101728488133E-07
-  0.108451967914E-07  0.115619818599E-07  0.123261409726E-07  0.131408051936E-07  0.140093125268E-07
-  0.149352215925E-07  0.159223262088E-07  0.169746709363E-07  0.180965676505E-07  0.192926132088E-07
-  0.205677082861E-07  0.219270774547E-07  0.233762905912E-07  0.249212856987E-07  0.265683932374E-07
-  0.283243620625E-07  0.301963870773E-07  0.321921387136E-07  0.343197943601E-07  0.365880718690E-07
-  0.390062652761E-07  0.415842828822E-07  0.443326878514E-07  0.472627414928E-07  0.503864494020E-07
-  0.537166106534E-07  0.572668702427E-07  0.610517749960E-07  0.650868331739E-07  0.693885780150E-07
-  0.739746354790E-07  0.788637964676E-07  0.840760938177E-07  0.896328843845E-07  0.955569365484E-07
-  0.101872523507E-06  0.108605522730E-06  0.115783521992E-06  0.123435932409E-06  0.131594108947E-06
-  0.140291478898E-06  0.149563678840E-06  0.159448700661E-06  0.169987047220E-06  0.181221898307E-06
-  0.193199287567E-06  0.205968291118E-06  0.219581228634E-06  0.234093877719E-06  0.249565702454E-06
-  0.266060097037E-06  0.283644645541E-06  0.302391398829E-06  0.322377169775E-06  0.343683847994E-06
-  0.366398735382E-06  0.390614903817E-06  0.416431576518E-06  0.443954534597E-06  0.473296550488E-06
-  0.504577850014E-06  0.537926605003E-06  0.573479458457E-06  0.611382084429E-06  0.651789784903E-06
-  0.694868126132E-06  0.740793617018E-06  0.789754432343E-06  0.841951183784E-06  0.897597741903E-06
-  0.956922112447E-06  0.102016737058E-05  0.108759265684E-05  0.115947423894E-05  0.123610664376E-05
-  0.131780386409E-05  0.140490064518E-05  0.149775385636E-05  0.159674395320E-05  0.170227653640E-05
-  0.181478401368E-05  0.193472737149E-05  0.206259806386E-05  0.219892002601E-05  0.234425182114E-05
-  0.249918892902E-05  0.266436618586E-05  0.284046038547E-05  0.302819305228E-05  0.322833339765E-05
-  0.344170147158E-05  0.366917152271E-05  0.391167558034E-05  0.417020727329E-05  0.444582590101E-05
-  0.473966077387E-05  0.505291584021E-05  0.538687461930E-05  0.574290546014E-05  0.612246714800E-05
-  0.652711488135E-05  0.695850664388E-05  0.741840999759E-05  0.790870932483E-05  0.843141354897E-05
-  0.898866436529E-05  0.958274501585E-05  0.102160896442E-04  0.108912932684E-04  0.116111224130E-04
-  0.123785264438E-04  0.131966496516E-04  0.140688441343E-04  0.149986835308E-04  0.159899776617E-04
-  0.170467881383E-04  0.181734450030E-04  0.193745644683E-04  0.206550678297E-04  0.220202016265E-04
-  0.234755591366E-04  0.250271032906E-04  0.266811910997E-04  0.284445996990E-04  0.303245541103E-04
-  0.323287568402E-04  0.344654194334E-04  0.367432961109E-04  0.391717196309E-04  0.417606395186E-04
-  0.445206628220E-04  0.474630975606E-04  0.505999990437E-04  0.539442192495E-04  0.575094594655E-04
-  0.613103264068E-04  0.653623920412E-04  0.696822573653E-04  0.742876203945E-04  0.791973486423E-04
-  0.844315563875E-04  0.900116870435E-04  0.959606009681E-04  0.102302669071E-03  0.109063872604E-03
-  0.116271909536E-03  0.123956307960E-03  0.132148546974E-03  0.140882185556E-03  0.150192999936E-03
-  0.160119130038E-03  0.170701235589E-03  0.181982662526E-03  0.194009620390E-03  0.206831371412E-03
-  0.220500432088E-03  0.235072788041E-03  0.250608123054E-03  0.267170063210E-03  0.284826437132E-03
-  0.303649553366E-03  0.323716496065E-03  0.345109440149E-03  0.367915987228E-03  0.392229523661E-03
-  0.418149602194E-03  0.445782348728E-03  0.475240895864E-03  0.506645844977E-03  0.540125758697E-03
-  0.575817685783E-03  0.613867720498E-03  0.654431598766E-03  0.697675333489E-03  0.743775891598E-03
-  0.792921915550E-03  0.845314492176E-03  0.901167971957E-03  0.960710842010E-03  0.102418665628E-02
-  0.109185502664E-02  0.116399267887E-02  0.124089457767E-02  0.132287512520E-02  0.141026943799E-02
-  0.150343470699E-02  0.160275164648E-02  0.170862603724E-02  0.182149037022E-02  0.194180559698E-02
-  0.207006299390E-02  0.220678614720E-02  0.235253306661E-02  0.250789843574E-02  0.267351600781E-02
-  0.285006115589E-02  0.303825358734E-02  0.323886023271E-02  0.345269831994E-02  0.368063864538E-02
-  0.392360905372E-02  0.418259813975E-02  0.445865918532E-02  0.475291434595E-02  0.506655910210E-02
-  0.540086699085E-02  0.575719463481E-02  0.613698708574E-02  0.654178350122E-02  0.697322317377E-02
-  0.743305193259E-02  0.792312893904E-02  0.844543389789E-02  0.900207470735E-02  0.959529557187E-02
-  0.102274856023E-01  0.109011879290E-01  0.116191093550E-01  0.123841305757E-01  0.131993169929E-01
-  0.140679301526E-01  0.149934398347E-01  0.159795368236E-01  0.170301463902E-01  0.181494425124E-01
-  0.193418628649E-01  0.206121246052E-01  0.219652409824E-01  0.234065387949E-01  0.249416767187E-01
-  0.265766645285E-01  0.283178832261E-01  0.301721060910E-01  0.321465206585E-01  0.342487516267E-01
-  0.364868846862E-01  0.388694912556E-01  0.414056540969E-01  0.441049937706E-01  0.469776958777E-01
-  0.500345390167E-01  0.532869233644E-01  0.567468997676E-01  0.604271992062E-01  0.643412624556E-01
-  0.685032697477E-01  0.729281701846E-01  0.776317106202E-01  0.826304636723E-01  0.879418544734E-01
-  0.935841857035E-01  0.995766603828E-01  0.105939401817E+00  0.112693470009E+00  0.119860873746E+00
-  0.127464577480E+00  0.135528501980E+00  0.144077517640E+00  0.153137429157E+00  0.162734950176E+00
-  0.172897666316E+00  0.183653984845E+00  0.195033069077E+00  0.207064755401E+00  0.219779450647E+00
-  0.233208007313E+00  0.247381573997E+00  0.262331418175E+00  0.278088718331E+00  0.294684322281E+00
-  0.312148468415E+00  0.330510466534E+00  0.349798334922E+00  0.370038390351E+00  0.391254787886E+00
-  0.413469007585E+00  0.436699285593E+00  0.460959987670E+00  0.486260923917E+00  0.512606604396E+00
-  0.539995436506E+00  0.568418866379E+00  0.597860468269E+00  0.628294987815E+00  0.659687347350E+00
-  0.691991623811E+00  0.725150012533E+00  0.759091792928E+00  0.793732314786E+00  0.828972026523E+00
-  0.864695568746E+00  0.900770957920E+00  0.937048885087E+00  0.973362153233E+00  0.100952527329E+01
-  0.104533423238E+01  0.108056643801E+01  0.111498082794E+01  0.114831811634E+01  0.118030112315E+01
-  0.121063510361E+01  0.123900796074E+01  0.126509018530E+01  0.128853432805E+01  0.130897377168E+01
-  0.132602054064E+01  0.133926187406E+01  0.134825530053E+01  0.135252200835E+01  0.135153841669E+01
-  0.134472604132E+01  0.133144140608E+01  0.131113985918E+01  0.128359157702E+01  0.124863807676E+01
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00
- ae wavefunction
- -0.419591673479E-06 -0.445236660954E-06 -0.472305250687E-06 -0.500884925173E-06 -0.531068206171E-06
- -0.562952965377E-06 -0.596642760627E-06 -0.632247202450E-06 -0.669882317876E-06 -0.709670970157E-06
- -0.751743273549E-06 -0.796237058589E-06 -0.843298343123E-06 -0.893081857389E-06 -0.945751579095E-06
- -0.100148131688E-05 -0.106045532797E-05 -0.112286896479E-05 -0.118892937793E-05 -0.125885625057E-05
- -0.133288258579E-05 -0.141125554245E-05 -0.149423732267E-05 -0.158210611794E-05 -0.167515711327E-05
- -0.177370355614E-05 -0.187807789421E-05 -0.198863298444E-05 -0.210574338018E-05 -0.222980670049E-05
- -0.236124508686E-05 -0.250050675369E-05 -0.264806763788E-05 -0.280443315455E-05 -0.297014006557E-05
- -0.314575846823E-05 -0.333189391186E-05 -0.352918965126E-05 -0.373832904445E-05 -0.396003810621E-05
- -0.419508822539E-05 -0.444429905901E-05 -0.470854161112E-05 -0.498874151386E-05 -0.528588251725E-05
- -0.560101020839E-05 -0.593523596640E-05 -0.628974117866E-05 -0.666578172614E-05 -0.706469276477E-05
- -0.748789380520E-05 -0.793689413439E-05 -0.841329858154E-05 -0.891881365848E-05 -0.945525409868E-05
- -0.100245498207E-04 -0.106287533383E-04 -0.112700476609E-04 -0.119507546913E-04 -0.126733441838E-04
- -0.134404432655E-04 -0.142548465883E-04 -0.151195271357E-04 -0.160376477180E-04 -0.170125732291E-04
- -0.180478836822E-04 -0.191473880961E-04 -0.203151392770E-04 -0.215554495594E-04 -0.228729075576E-04
- -0.242723960099E-04 -0.257591107648E-04 -0.273385809967E-04 -0.290166907359E-04 -0.307997017578E-04
- -0.326942780077E-04 -0.347075115045E-04 -0.368469500336E-04 -0.391206264891E-04 -0.415370902338E-04
- -0.441054403792E-04 -0.468353612296E-04 -0.497371600521E-04 -0.528218071755E-04 -0.561009787541E-04
- -0.595871022176E-04 -0.632934046196E-04 -0.672339641473E-04 -0.714237648284E-04 -0.758787548062E-04
- -0.806159083152E-04 -0.856532915520E-04 -0.910101328385E-04 -0.967068971463E-04 -0.102765365426E-03
- -0.109208718933E-03 -0.116061628915E-03 -0.123350351965E-03 -0.131102831408E-03 -0.139348805092E-03
- -0.148119919962E-03 -0.157449853863E-03 -0.167374444991E-03 -0.177931829462E-03 -0.189162587521E-03
- -0.201109898875E-03 -0.213819707747E-03 -0.227340898203E-03 -0.241725480395E-03 -0.257028788379E-03
- -0.273309690165E-03 -0.290630810807E-03 -0.309058769194E-03 -0.328664429493E-03 -0.349523167966E-03
- -0.371715156200E-03 -0.395325661615E-03 -0.420445366275E-03 -0.447170705143E-03 -0.475604224753E-03
- -0.505854963647E-03 -0.538038855679E-03 -0.572279157541E-03 -0.608706901916E-03 -0.647461377632E-03
- -0.688690638341E-03 -0.732552041357E-03 -0.779212818233E-03 -0.828850678842E-03 -0.881654450829E-03
- -0.937824756232E-03 -0.997574727349E-03 -0.106113076385E-02 -0.112873333333E-02 -0.120063781758E-02
- -0.127711540679E-02 -0.135845404425E-02 -0.144495942405E-02 -0.153695604425E-02 -0.163478831840E-02
- -0.173882174815E-02 -0.184944415970E-02 -0.196706700731E-02 -0.209212674663E-02 -0.222508628119E-02
- -0.236643648517E-02 -0.251669780565E-02 -0.267642194774E-02 -0.284619364598E-02 -0.302663252522E-02
- -0.321839505467E-02 -0.342217659827E-02 -0.363871356504E-02 -0.386878566260E-02 -0.411321825733E-02
- -0.437288484423E-02 -0.464870962994E-02 -0.494167023156E-02 -0.525280049427E-02 -0.558319343043E-02
- -0.593400428227E-02 -0.630645371041E-02 -0.670183110977E-02 -0.712149805405E-02 -0.756689186960E-02
- -0.803952933881E-02 -0.854101053252E-02 -0.907302277019E-02 -0.963734470585E-02 -0.102358505368E-01
- -0.108705143308E-01 -0.115434144674E-01 -0.122567381851E-01 -0.130127862287E-01 -0.138139775855E-01
- -0.146628542996E-01 -0.155620863515E-01 -0.165144765871E-01 -0.175229656786E-01 -0.185906370974E-01
- -0.197207220752E-01 -0.209166045292E-01 -0.221818259204E-01 -0.235200900133E-01 -0.249352675010E-01
- -0.264314004551E-01 -0.280127065554E-01 -0.296835830510E-01 -0.314486103986E-01 -0.333125555181E-01
- -0.352803746019E-01 -0.373572154063E-01 -0.395484189494E-01 -0.418595205316E-01 -0.442962499902E-01
- -0.468645310902E-01 -0.495704799483E-01 -0.524204023797E-01 -0.554207900464E-01 -0.585783152843E-01
- -0.618998244709E-01 -0.653923297941E-01 -0.690629992720E-01 -0.729191448635E-01 -0.769682085087E-01
- -0.812177459231E-01 -0.856754079688E-01 -0.903489194169E-01 -0.952460549124E-01 -0.100374611944E+00
- -0.105742380623E+00 -0.111357110073E+00 -0.117226471226E+00 -0.123358015834E+00 -0.129759131487E+00
- -0.136436992474E+00 -0.143398506273E+00 -0.150650255536E+00 -0.158198435396E+00 -0.166048785958E+00
- -0.174206519886E+00 -0.182676244971E+00 -0.191461881646E+00 -0.200566575426E+00 -0.209992604279E+00
- -0.219741281025E+00 -0.229812850838E+00 -0.240206384069E+00 -0.250919664576E+00 -0.261949073908E+00
- -0.273289471686E+00 -0.284934072667E+00 -0.296874321046E+00 -0.309099762684E+00 -0.321597916090E+00
- -0.334354143130E+00 -0.347351520683E+00 -0.360570714663E+00 -0.373989858114E+00 -0.387584435372E+00
- -0.401327174519E+00 -0.415187950525E+00 -0.429133701186E+00 -0.443128357849E+00 -0.457132790725E+00
- -0.471104767691E+00 -0.484998921703E+00 -0.498766719483E+00 -0.512356422012E+00 -0.525713027989E+00
- -0.538778196066E+00 -0.551490150480E+00 -0.563783586393E+00 -0.575589602443E+00 -0.586835694684E+00
- -0.597445844316E+00 -0.607340718942E+00 -0.616437986018E+00 -0.624652715226E+00 -0.631897834510E+00
- -0.638084607775E+00 -0.643123116697E+00 -0.646922744393E+00 -0.649392668142E+00 -0.650442370237E+00
- -0.649982173269E+00 -0.647923800099E+00 -0.644180957099E+00 -0.638669934919E+00 -0.631310221677E+00
- -0.622025123195E+00 -0.610742386067E+00 -0.597394819740E+00 -0.581920915553E+00 -0.564265460645E+00
- -0.544380145344E+00 -0.522224163384E+00 -0.497764803837E+00 -0.470978034224E+00 -0.441849073512E+00
- -0.410372953728E+00 -0.376555068042E+00 -0.340411701856E+00 -0.301970542890E+00 -0.261271164549E+00
- -0.218365474934E+00 -0.173318123362E+00 -0.126206854463E+00 -0.771227997739E-01 -0.261706977118E-01
-  0.265309653866E-01  0.808498960908E-01  0.136640013874E+00  0.193741540297E+00  0.251981141124E+00
-  0.311172100787E+00  0.371114512072E+00  0.431595477829E+00  0.492389350851E+00  0.553258089799E+00
-  0.613951880087E+00  0.674210269543E+00  0.733764172796E+00  0.792339126527E+00  0.849659904580E+00
-  0.905455616556E+00  0.959462488428E+00  0.101141974424E+01  0.106105567211E+01  0.110806847980E+01
-  0.115211437455E+01  0.119281223958E+01  0.122976095463E+01  0.126255737984E+01  0.129080748835E+01
-  0.131413097418E+01  0.133216280306E+01  0.134455435589E+01  0.135097524786E+01  0.135111592592E+01
-  0.134469077582E+01  0.133144140608E+01  0.131113985918E+01  0.128359157702E+01  0.124863807676E+01
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00  0.000000000000E+00
-  0.000000000000E+00
- End of Dataset
diff --git a/public/it4i/software/chemistry/files-phono3py/gofree-cond1.sh b/public/it4i/software/chemistry/files-phono3py/gofree-cond1.sh
deleted file mode 100644
index 8dbf6d276685a7f2275a97e568bc18014c1a31c8..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/gofree-cond1.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-#PBS -A OPEN-6-23
-#PBS -N Si-test1
-#PBS -q qfree 
-#PBS -l select=1:ncpus=24:mpiprocs=24:ompthreads=1
-#PBS -l walltime=01:59:59
-##PBS-l mem=6gb
-#PBS -j oe
-#PBS -S /bin/bash
-module purge
-module load phono3py/0.9.14-ictce-7.3.5-Python-2.7.9
-export OMP_NUM_THREADS=1
-export I_MPI_COMPATIBILITY=4
-##export OMP_STACKSIZE=10gb
-##0	1	2	3	4	10	11	12	13	20	21	22	30	31	40	91	92	93	94	101	102	103	111	112	121	182	183	184	192	193	202	273	274	283	364
-cd $PBS_O_WORKDIR
-phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="0 1 3 4 10" 
-#phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="11 12 13 20 21" 
-#phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="21 22 30 31 40"
-#phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="91 92 93 94 101"
-#phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="102 103 111 112 121"
-#phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="182 183 184 192 193"
-#phono3py --fc3 --fc2 --dim="2 2 2" --mesh="9 9 9" -c POSCAR  --sigma 0.1 --br --write_gamma --gp="202 273 274 283 364"
diff --git a/public/it4i/software/chemistry/files-phono3py/prepare.sh b/public/it4i/software/chemistry/files-phono3py/prepare.sh
deleted file mode 100644
index a057dbbadd94d0298e7a4ba19244cb753bea7a9f..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/prepare.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-P=`pwd`
-
-# number of displacements
-poc=9
-
-        for i in `seq 1 $poc `;
-        do
-        cd $P
-        mkdir disp-0000"$i"
-        cd disp-0000"$i"   
-        cp ../KPOINTS .
-        cp ../INCAR .
-        cp ../POTCAR .
-        cp ../POSCAR-0000"$i" POSCAR
-                echo $i
-        done 
-
-poc=99
-
-        for i in `seq 10 $poc `;
-        do
-        cd $P
-        mkdir disp-000"$i"
-        cd disp-000"$i"
-        cp ../KPOINTS .
-        cp ../INCAR .
-        cp ../POTCAR .
-        cp ../POSCAR-000"$i" POSCAR
-                echo $i
-        done
-poc=111
-
-        for i in `seq 100 $poc `;
-        do
-        cd $P
-        mkdir disp-00"$i"
-        cd disp-00"$i"
-        cp ../KPOINTS .
-        cp ../INCAR .
-        cp ../POTCAR .
-        cp ../POSCAR-00"$i" POSCAR
-                echo $i
-        done
diff --git a/public/it4i/software/chemistry/files-phono3py/run.sh b/public/it4i/software/chemistry/files-phono3py/run.sh
deleted file mode 100644
index 63faf63ba41f0f6846c8b59030a64ae9c1415a55..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/run.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-#PBS -A IT4I-9-11
-#PBS -N Si-test
-#PBS -q qprod 
-#PBS -l select=8:ncpus=16:mpiprocs=16:ompthreads=1
-#PBS -l walltime=23:59:59
-##PBS-l mem=6gb
-#PBS -j oe
-#PBS -S /bin/bash
-module load impi/4.1.1.036 intel/13.5.192 fftw3-mpi/3.3.3-icc
-export OMP_NUM_THREADS=1
-export I_MPI_COMPATIBILITY=4
-##export OMP_STACKSIZE=10gb
-b=`basename $PBS_O_WORKDIR`
-echo $b >log.vasp
-SCRDIR=/scratch/$USER/$b
-mkdir -p $SCRDIR
-cd $SCRDIR || exit
-
-# copy input file to scratch 
-cp $PBS_O_WORKDIR/* .
-
-mpirun ~/bin/vasp5.4.1 > log.exc
-
-# copy output file to home
-cp * $PBS_O_WORKDIR/. && cd ..
-
-rm -rf "$SCRDIR"
-
-#exit
-exit
diff --git a/public/it4i/software/chemistry/files-phono3py/submit.sh b/public/it4i/software/chemistry/files-phono3py/submit.sh
deleted file mode 100644
index 12fa02ecc489a10df486cfd2fc55065c02d4eea4..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phono3py/submit.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-P=`pwd`
-
-# number of displacements
-poc=9
-
-        for i in `seq 1 $poc `;
-        do
-        cd $P
-        cd disp-0000"$i"   
-        cp ../run.sh .
-        qsub run.sh
-                echo $i
-        done 
-
-poc=99
-
-        for i in `seq 10 $poc `;
-        do
-        cd $P
-        cd disp-000"$i"
-        cp ../run.sh .
-        qsub run.sh
-                echo $i
-        done
-poc=111
-
-        for i in `seq 100 $poc `;
-        do
-        cd $P
-        cd disp-00"$i"
-        cp ../run.sh .
-        qsub run.sh
-                echo $i
-        done
diff --git a/public/it4i/software/chemistry/files-phonopy/INCAR.txt b/public/it4i/software/chemistry/files-phonopy/INCAR.txt
deleted file mode 100644
index 03a9c7a37710f56364693bcd4260356787b2dc73..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phonopy/INCAR.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-# General Setup
-SYSTEM = Aluminum	# Calculation Title
-PREC = Accurate		# Options: Low, Medium, High, Normal, accurate
-ENCUT = 350		# Kinetic Energy Cutoff in eV
-
-# Electronic Relaxation
-NELMIN = 5		# Min Number of ESC steps
-EDIFF = 1E-8		# Global Break Condition for the Elec SC-loop
-LREAL = .FALSE.		# Real Space Projection
-ADDGRID = .TRUE.	# Improve the Grid Accuracy
-
-# Ionic Relaxation - we need to calculate one displacement
-SIGMA = 0.1		# Insulators/semiconductors=0.1 metals=0.05
-ISMEAR = 1
-IBRION = -1
-
diff --git a/public/it4i/software/chemistry/files-phonopy/KPOINTS.txt b/public/it4i/software/chemistry/files-phonopy/KPOINTS.txt
deleted file mode 100644
index b56ceb877ef74965aedbb9bdcffcb06057da7d58..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phonopy/KPOINTS.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Auto corresponding to 8 8 8
-0
-Auto
-35
diff --git a/public/it4i/software/chemistry/files-phonopy/POSCAR.txt b/public/it4i/software/chemistry/files-phonopy/POSCAR.txt
deleted file mode 100644
index 41a59b6536fefb03f70bb9b3d2b44656094f7c12..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phonopy/POSCAR.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Al4
-   1.00000000000000
-     4.0432254711710000    0.0000000000000000    0.0000000000000000
-     0.0000000000000000    4.0432254711710000    0.0000000000000000
-     0.0000000000000000    0.0000000000000000    4.0432254711710000
-   Al
-     4
-Direct
-  0.0000000000000000  0.0000000000000000  0.0000000000000000
-  0.0000000000000000  0.5000000000000000  0.5000000000000000
-  0.5000000000000000  0.0000000000000000  0.5000000000000000
-  0.5000000000000000  0.5000000000000000  0.0000000000000000
diff --git a/public/it4i/software/chemistry/files-phonopy/mesh.conf b/public/it4i/software/chemistry/files-phonopy/mesh.conf
deleted file mode 100644
index 34bf660fd8af1d6b0b3288442c02533c34aa7f12..0000000000000000000000000000000000000000
--- a/public/it4i/software/chemistry/files-phonopy/mesh.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-ATOM_NAME = Al
-DIM = 2 2 2
-MESH = 12 12 12
-DISPLACEMENT_DISTANCE = 0.01
-PRIMITIVE_AXES = Auto
diff --git a/public/it4i/software/data-science/imgs/dask-arch.svg b/public/it4i/software/data-science/imgs/dask-arch.svg
deleted file mode 100644
index dc8e36cc125782b4fed453060f1af67317e9b103..0000000000000000000000000000000000000000
--- a/public/it4i/software/data-science/imgs/dask-arch.svg
+++ /dev/null
@@ -1,920 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="96"
-   inkscape:export-xdpi="96"
-   inkscape:export-filename="/home/spirali/tmp/arch.png"
-   sodipodi:docname="arch1.svg"
-   inkscape:version="1.0.2 (1.0.2+r75+1)"
-   id="svg8"
-   version="1.1"
-   viewBox="0 0 234.37095 116.09758"
-   height="116.09756mm"
-   width="234.37096mm">
-  <defs
-     id="defs2">
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker8919"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path8917"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker8909"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path8907"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker8197"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path8195" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker8187"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path8185" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker7243"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path7241" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker7233"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path7231" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5579"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5577" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5569"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5567" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5221"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5219" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5211"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5209" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4895"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4893"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4885"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4883"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4505"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4503" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4495"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4493" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4375"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4373"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4365"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4363"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker3649"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path3647" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker3639"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path3637" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker3323"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path3321"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker3313"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path3311"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1869"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1867" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1859"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1857"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow1Lend"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow1Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         id="path1449" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1709"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow1Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(0.8,0,0,0.8,10,0)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         id="path1446" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5201"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path5199"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4135"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4133"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.8,0,0,0.8,10,0)" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker3541"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path3539" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker3471"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3469"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.8,0,0,0.8,10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker2271"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2269"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.8,0,0,0.8,10,0)" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker2153"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path2151" />
-    </marker>
-    <marker
-       inkscape:collect="always"
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lend"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path880" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464-3"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart-9-7"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464-3-8"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart-9-7-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464-3-8-6"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart-9-7-3-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464-3-8-6-2"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart-9-7-5"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464-3-8-5"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="Arrow2Lstart-9-7-3-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1464-3-8-6-9"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     inkscape:document-rotation="0"
-     fit-margin-bottom="2"
-     fit-margin-right="10"
-     fit-margin-left="10"
-     fit-margin-top="2"
-     inkscape:window-maximized="1"
-     inkscape:window-y="32"
-     inkscape:window-x="0"
-     inkscape:window-height="1131"
-     inkscape:window-width="1600"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:document-units="mm"
-     inkscape:cy="346.18045"
-     inkscape:cx="145.60755"
-     inkscape:zoom="0.70710678"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base" />
-  <metadata
-     id="metadata5">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-49.357762,-18.315286)"
-     id="layer1"
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1">
-    <g
-       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       transform="rotate(-90,98.055536,42.96916)"
-       id="g1036">
-      <rect
-         rx="4.5357141"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         id="rect815"
-         width="34.773808"
-         height="24.568455"
-         x="4.7662115"
-         y="-109.93287"
-         ry="4.5357141"
-         transform="rotate(90)" />
-      <text
-         xml:space="preserve"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         x="11.947762"
-         y="-94.813812"
-         id="text819"
-         transform="rotate(90)"><tspan
-           sodipodi:role="line"
-           id="tspan817"
-           x="11.947762"
-           y="-94.813812"
-           style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1">Client</tspan></text>
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path857"
-       d="M 136.8065,43.376049 H 95.424473"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
-    <g
-       transform="rotate(-90,106.55797,34.466718)"
-       id="g1041">
-      <text
-         id="text843"
-         y="-95.569778"
-         x="73.935844"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"
-         transform="rotate(90)"><tspan
-           style="stroke-width:0.264583px"
-           y="-95.569778"
-           x="73.935844"
-           id="tspan841"
-           sodipodi:role="line">Server</tspan></text>
-      <rect
-         rx="4.5357141"
-         ry="4.5357141"
-         y="-109.93287"
-         x="65.620377"
-         height="24.568459"
-         width="37.797623"
-         id="rect920"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         transform="rotate(90)" />
-    </g>
-    <g
-       id="g3273"
-       transform="rotate(-90,143.24932,0.81892398)">
-      <text
-         transform="rotate(90)"
-         xml:space="preserve"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         x="75.80127"
-         y="-98.484352"
-         id="text3269"><tspan
-           sodipodi:role="line"
-           id="tspan3267"
-           x="75.80127"
-           y="-98.484352"
-           style="stroke-width:0.264583px">Worker</tspan></text>
-      <rect
-         transform="rotate(90)"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         id="rect3271"
-         width="43.929955"
-         height="17.480896"
-         x="65.620377"
-         y="-109.93287"
-         ry="4.5357141"
-         rx="4.5357141" />
-      <text
-         id="text3277"
-         y="-76.44973"
-         x="75.80127"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"
-         transform="rotate(90)"><tspan
-           style="stroke-width:0.264583px"
-           y="-76.44973"
-           x="75.80127"
-           id="tspan3275"
-           sodipodi:role="line">Worker</tspan></text>
-      <rect
-         rx="4.5357141"
-         ry="4.5357141"
-         y="-87.898247"
-         x="65.620377"
-         height="17.480896"
-         width="43.929955"
-         id="rect3279"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         transform="rotate(90)" />
-      <rect
-         rx="0"
-         ry="0"
-         y="-113.58769"
-         x="57.881962"
-         height="46.451172"
-         width="62.246155"
-         id="rect3295"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.16103995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         transform="rotate(90)" />
-    </g>
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker3313);marker-end:url(#marker3323)"
-       d="M 207.3022,43.376049 175.69463,39.148507"
-       id="path3309"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <g
-       transform="rotate(-90,169.26264,26.83224)"
-       id="g3621">
-      <text
-         id="text3609"
-         y="-98.484352"
-         x="75.80127"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"
-         transform="rotate(90)"><tspan
-           style="stroke-width:0.264583px"
-           y="-98.484352"
-           x="75.80127"
-           id="tspan3607"
-           sodipodi:role="line">Worker</tspan></text>
-      <rect
-         rx="4.5357141"
-         ry="4.5357141"
-         y="-109.93287"
-         x="65.620377"
-         height="17.480896"
-         width="43.929955"
-         id="rect3611"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         transform="rotate(90)" />
-      <text
-         transform="rotate(90)"
-         xml:space="preserve"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         x="75.80127"
-         y="-76.44973"
-         id="text3615"><tspan
-           sodipodi:role="line"
-           id="tspan3613"
-           x="75.80127"
-           y="-76.44973"
-           style="stroke-width:0.264583px">Worker</tspan></text>
-      <rect
-         transform="rotate(90)"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         id="rect3617"
-         width="43.929955"
-         height="17.480896"
-         x="65.620377"
-         y="-87.898247"
-         ry="4.5357141"
-         rx="4.5357141" />
-      <rect
-         transform="rotate(90)"
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.16103995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
-         id="rect3619"
-         width="62.246155"
-         height="46.451172"
-         x="57.881962"
-         y="-113.58769"
-         ry="0"
-         rx="0" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path3635"
-       d="M 207.3022,65.549829 175.69463,42.960123"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker3639);marker-end:url(#marker3649)" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4365);marker-end:url(#marker4375)"
-       d="M 207.3022,94.825981 175.69463,47.511548"
-       id="path3901"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path4491"
-       d="M 207.3022,117.1646 175.69463,53.755312"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4495);marker-end:url(#marker4505)" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4885);marker-end:url(#marker4895)"
-       d="m 253.55589,65.568192 c 18.19456,-0.990507 34.05618,-18.885798 -0.55595,-23.043826"
-       id="path4881"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path5565"
-       d="M 253.55589,117.68378 C 264.33601,106.90366 275.1499,91.650086 252.99994,69.500126"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker5569);marker-end:url(#marker5579)" />
-    <g
-       id="g5961"
-       transform="rotate(-90,127.91362,60.358087)">
-      <text
-         transform="rotate(90)"
-         xml:space="preserve"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         x="133.41148"
-         y="-162.54834"
-         id="text5957"><tspan
-           sodipodi:role="line"
-           id="tspan5955"
-           x="133.41148"
-           y="-162.54834"
-           style="stroke-width:0.264583px">Computing Node</tspan></text>
-    </g>
-    <g
-       id="g5969"
-       transform="rotate(-90,104.10113,112.75608)">
-      <text
-         transform="rotate(90)"
-         xml:space="preserve"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         x="73.935844"
-         y="-95.569778"
-         id="text5965" />
-    </g>
-    <text
-       id="text5981"
-       y="133.43214"
-       x="65.54464"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.40833px;line-height:125%;font-family:Raleway-v4020;-inkscape-font-specification:Raleway-v4020;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       xml:space="preserve" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:Raleway;-inkscape-font-specification:'Raleway, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:lining-nums;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
-       x="105.69199"
-       y="41.064568"
-       id="text1510"><tspan
-         sodipodi:role="line"
-         id="tspan1508"
-         x="105.69199"
-         y="41.064568"
-         style="font-size:6.35px;stroke-width:0.264583">TCP/IP</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:Raleway;-inkscape-font-specification:'Raleway, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:lining-nums;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
-       x="176.5417"
-       y="36.430691"
-       id="text1510-5"><tspan
-         sodipodi:role="line"
-         id="tspan1508-0"
-         x="176.5417"
-         y="36.430691"
-         style="font-size:6.35px;stroke-width:0.264583">TCP/IP</tspan></text>
-    <image
-       width="50.874741"
-       height="50.874741"
-       preserveAspectRatio="none"
-       style="image-rendering:optimizeQuality"
-       xlink:href="data:image/png;base64,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 "
-       id="image12799"
-       x="51.80212"
-       y="19.917583" />
-  </g>
-</svg>
diff --git a/public/it4i/software/debuggers/mympiprog_32p_2014-10-15_16-56.html b/public/it4i/software/debuggers/mympiprog_32p_2014-10-15_16-56.html
deleted file mode 100644
index ce60070a9ee25a91973a577fd048d88f31d4680e..0000000000000000000000000000000000000000
--- a/public/it4i/software/debuggers/mympiprog_32p_2014-10-15_16-56.html
+++ /dev/null
@@ -1,610 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>mympiprog.x - Performance Report</title>
-<style type="text/css">
-body {
-    font-family: "Lucida Grande", "Lucida Sans Unicode", "Bitstream Vera Sans",sans-serif;
-    font-size: 1em;
-    color: #2c1a0a;
-}
-div#content {
-    width: 900px;
-    margin-left: auto;
-    margin-right: auto;
-}
-.header {
-    padding-top: 16px;
-}
-.header_left {
-    float:left;
-    width: 532px;
-}
-.logo {
-    float: left;
-}
-.logo img { height: 150px; }
-#time_radar {
-    float: right;
-}
-#time_radar .legend_CPU { fill: #4fd32e; font-size: 1.5em; }
-#time_radar .legend_MPI { fill: #409ded; font-size: 1.5em; }
-#time_radar .legend_IO { fill: #ed8140; font-size: 1.5em; }
-.clear {
-    clear: both;
-}
-table {
-    border-spacing: 0;
-}
-td {
-    padding-left: 0;
-    padding-right: 16px;
-    padding-top: 1px;
-    padding-bottom: 1px;
-}
-#error {
-    border: 1px solid;
-    margin: 16px 0px;
-    padding: 16px 16px 16px 16px;
-    color: #C80000;
-    background-color: #FFC0C0;
-}
-#error p {
-    margin: 8px;
-}
-.application_details {
-    margin-top: 8px;
-    margin-left: 16px;
-    margin-right: 16px;
-}
-.application_details .details_key { width: 100px; color: #bdc4d5;}
-.application_details table {
-    table-layout: fixed;
-    width: 100%;
-    color: #37537b;
-}
-.application_details #cmdline {
-    word-wrap: break-word;
-}
-.application_details #exe_path {
-    word-wrap: break-word;
-}
-.summary {
-}
-hr {
-    margin-top: 32px;
-    margin-bottom: 32px;
-    visibility: hidden;
-}
-.summary .heading {
-    font-family: inherit;
-    font-size: 1.8em;
-    padding-bottom: 8px;
-}
-#summary_cpu_class {
-    font-weight: bold;
-}
-#summary_mpi_class {
-    font-weight: bold;
-}
-#summary_io_class {
-    font-weight: bold;
-}
-.overview_general_advice p {
-    margin-top: 8px;
-    margin-bottom: 8px;
-}
-.subsections {
-    margin-bottom: 32px;
-}
-.subsections .heading {
-    font-family: inherit;
-    font-size: 2em;
-    padding-bottom: 8px;
-}
-.subsections .heading_cpu {
-    padding-bottom: 8px;
-}
-.subsections .heading_mpi {
-    padding-bottom: 8px;
-}
-.subsections .heading_ram {
-    padding-bottom: 8px;
-}
-.subsections .heading_io {
-    padding-bottom: 8px;
-}
-.subsections .explanation {
-    font-size: 0.9em;
-    color: #404040;
-    padding-top: 8px;
-}
-
-.ltcol, .ctcol { float: left; width: 436px; padding-right: 16px; }
-.rtcol { float: right; width: 436px; }
-
-.heading_cpu { color: #4fd32e; font-size: 1.5em; }
-.heading_mpi { color: #409ded; font-size: 1.5em; }
-.heading_ram { color: #ed4040; font-size: 1.5em; }
-.heading_io { color: #ed8140; font-size: 1.5em; }
-.cpu_span { color: #4fd32e; }
-.mpi_span { color: #409ded; }
-.ram { color: #ed4040; }
-.io_span { color: #ed8140; }
-.bar_graph { width: 200px; }
-#cpu_bar { background-color: #4fd32e; width: 0; height: 2em; }
-#mpi_bar { background-color: #409ded; width: 0; height: 2em; }
-#io_bar { background-color: #ed8140; width: 0; height: 2em; }
-.summary_table { padding-top: 16px; padding-bottom: 8px; }
-.summary_table td p { margin: 0px; margin-bottom: 4px; }
-.summary_table td { padding-bottom: 8px; }
-.summary_table .details { font-size: 0.9em; }
-.balanced_span { color: #bb58d6; }
-.right_cell { text-align: right; }
-
-#cpu_chart { padding-top: 8px; }
-#cpu_chart td { font-size: 0.9em; padding-bottom: 8px; }
-.mini_bar_graph { width: 50px; }
-#cpu_num_bar { background-color: #4fd32e; width: 0; height: 1em; }
-#cpu_vec_bar { background-color: #3c9f23; width: 0; height: 1em; }
-#cpu_mem_bar { background-color: #266516; width: 0; height: 1em; }
-#cpu_other_bar { background-color: #808080; width: 0; height: 1em; }
-.cpu_num_span { color: #4fd32e; }
-.cpu_vec_span { color: #3c9f23; }
-.cpu_mem_span { color: #266516; }
-.cpu_other_span { color: #808080; }
-
-#mpi_chart { padding-top: 8px; }
-#mpi_chart td { font-size: 0.9em; padding-bottom: 8px; }
-#mpi_col_bar { background-color: #409ded; width: 0; height: 1em; }
-#mpi_p2p_bar { background-color: #2f73ad; width: 0; height: 1em; }
-#mpi_colrate_bar { background-color: #255a87; width: 0; height: 1em; }
-#mpi_p2prate_bar { background-color: #1f4a70; width: 0; height: 1em; }
-.mpi_col_span { color: #409ded; }
-.mpi_p2p_span { color: #2f73ad; }
-.mpi_colrate_span { color: #255a87; }
-.mpi_p2prate_span { color: #1f4a70; }
-
-#ram_chart { padding-top: 8px; }
-#ram_chart td { font-size: 0.9em; padding-bottom: 8px; }
-#ram_mean_bar { background-color: #ed4040; width: 0; height: 1em; }
-#ram_peak_bar { background-color: #b53131; width: 0; height: 1em; }
-#ram_node_bar { background-color: #742020; width: 0; height: 1em; }
-.ram_mean_span { color: #ed4040; }
-.ram_peak_span { color: #b53131; }
-.ram_node_span { color: #742020; }
-
-#io_chart { padding-top: 8px; }
-#io_chart td { font-size: 0.9em; padding-bottom: 8px; }
-#io_read_bar { background-color: #ed8140; width: 0; height: 1em; }
-#io_write_bar { background-color: #a95e0b; width: 0; height: 1em; }
-#io_readrate_bar { background-color: #9b7c14; width: 0; height: 1em; }
-#io_writerate_bar { background-color: #7b6210; width: 0; height: 1em; }
-.io_read_span { color: #ed8140; }
-.io_write_span { color: #a95e0b; }
-.io_readrate_span { color: #9b7c14; }
-.io_writerate_span { color: #7b6210; }
-
-</style>
-<script type="text/javascript">d3=function(){function n(n){return null!=n&&!isNaN(n)}function t(n){return n.length}function e(n){for(var t=1;n*t%1;)t*=10;return t}function r(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function u(){}function i(){}function o(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function a(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=la.length;r>e;++e){var u=la[e]+t;if(u in n)return u}}function c(){}function s(){}function l(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new u;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function f(){$o.event.preventDefault()}function h(){for(var n,t=$o.event;n=t.sourceEvent;)t=n;return t}function g(n){for(var t=new s,e=0,r=arguments.length;++e<r;)t[arguments[e]]=l(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=$o.event;u.target=n,$o.event=u,t[u.type].apply(e,r)}finally{$o.event=i}}},t}function p(n){return ha(n,ma),n}function v(n){return"function"==typeof n?n:function(){return ga(n,this)}}function d(n){return"function"==typeof n?n:function(){return pa(n,this)}}function m(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=$o.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function y(n){return n.trim().replace(/\s+/g," ")}function x(n){return new RegExp("(?:^|\\s+)"+$o.requote(n)+"(?:\\s+|$)","g")}function M(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=n.trim().split(/\s+/).map(_);var u=n.length;return"function"==typeof t?r:e}function _(n){var t=x(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",y(u+" "+n))):e.setAttribute("class",y(u.replace(t," ")))}}function b(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function w(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function S(n){return"function"==typeof n?n:(n=$o.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function k(n){return{__data__:n}}function E(n){return function(){return da(this,n)}}function A(n){return arguments.length||(n=$o.ascending),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function C(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function N(n){return ha(n,xa),n}function L(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function T(){var n=this.__transition__;n&&++n.active}function q(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=s(t,Wo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+$o.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),s=z;a>0&&(n=n.substring(0,a));var l=_a.get(n);return l&&(n=l,s=R),a?t?u:r:t?c:i}function z(n,t){return function(e){var r=$o.event;$o.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{$o.event=r}}}function R(n,t){var e=z(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function D(){var n=".dragsuppress-"+ ++wa,t="click"+n,e=$o.select(Ko).on("touchmove"+n,f).on("dragstart"+n,f).on("selectstart"+n,f);if(ba){var r=Go.style,u=r[ba];r[ba]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),ba&&(r[ba]=u),i&&(e.on(t,function(){f(),o()},!0),setTimeout(o,0))}}function P(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Sa&&(Ko.scrollX||Ko.scrollY)){e=$o.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();Sa=!(u.f||u.e),e.remove()}return Sa?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function U(n){return n>0?1:0>n?-1:0}function j(n){return n>1?0:-1>n?ka:Math.acos(n)}function H(n){return n>1?Aa:-1>n?-Aa:Math.asin(n)}function F(n){return((n=Math.exp(n))-1/n)/2}function O(n){return((n=Math.exp(n))+1/n)/2}function Y(n){return((n=Math.exp(2*n))-1)/(n+1)}function I(n){return(n=Math.sin(n/2))*n}function Z(){}function V(n,t,e){return new X(n,t,e)}function X(n,t,e){this.h=n,this.s=t,this.l=e}function $(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,ot(u(n+120),u(n),u(n-120))}function B(n,t,e){return new W(n,t,e)}function W(n,t,e){this.h=n,this.c=t,this.l=e}function J(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),G(e,Math.cos(n*=La)*t,Math.sin(n)*t)}function G(n,t,e){return new K(n,t,e)}function K(n,t,e){this.l=n,this.a=t,this.b=e}function Q(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=tt(u)*Oa,r=tt(r)*Ya,i=tt(i)*Ia,ot(rt(3.2404542*u-1.5371385*r-.4985314*i),rt(-.969266*u+1.8760108*r+.041556*i),rt(.0556434*u-.2040259*r+1.0572252*i))}function nt(n,t,e){return n>0?B(Math.atan2(e,t)*Ta,Math.sqrt(t*t+e*e),n):B(0/0,0/0,n)}function tt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function et(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function rt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function ut(n){return ot(n>>16,255&n>>8,255&n)}function it(n){return ut(n)+""}function ot(n,t,e){return new at(n,t,e)}function at(n,t,e){this.r=n,this.g=t,this.b=e}function ct(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function st(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(gt(u[0]),gt(u[1]),gt(u[2]))}return(i=Xa.get(n))?t(i.r,i.g,i.b):(null!=n&&"#"===n.charAt(0)&&(4===n.length?(o=n.charAt(1),o+=o,a=n.charAt(2),a+=a,c=n.charAt(3),c+=c):7===n.length&&(o=n.substring(1,3),a=n.substring(3,5),c=n.substring(5,7)),o=parseInt(o,16),a=parseInt(a,16),c=parseInt(c,16)),t(o,a,c))}function lt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),V(r,u,c)}function ft(n,t,e){n=ht(n),t=ht(t),e=ht(e);var r=et((.4124564*n+.3575761*t+.1804375*e)/Oa),u=et((.2126729*n+.7151522*t+.072175*e)/Ya),i=et((.0193339*n+.119192*t+.9503041*e)/Ia);return G(116*u-16,500*(r-u),200*(u-i))}function ht(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function gt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function pt(n){return"function"==typeof n?n:function(){return n}}function vt(n){return n}function dt(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),mt(t,e,n,r)}}function mt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=$o.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Ko.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=$o.event;$o.event=n;try{o.progress.call(i,c)}finally{$o.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Wo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},$o.rebind(i,o,"on"),null==r?i:i.get(yt(r))}function yt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function xt(){var n=Mt(),t=_t()-n;t>24?(isFinite(t)&&(clearTimeout(Ja),Ja=setTimeout(xt,t)),Wa=0):(Wa=1,Ka(xt))}function Mt(){var n=Date.now();for(Ga=$a;Ga;)n>=Ga.t&&(Ga.f=Ga.c(n-Ga.t)),Ga=Ga.n;return n}function _t(){for(var n,t=$a,e=1/0;t;)t.f?t=n?n.n=t.n:$a=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Ba=n,e}function bt(n,t){var e=Math.pow(10,3*aa(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function wt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function St(n){return n+""}function kt(){}function Et(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function At(n,t){n&&lc.hasOwnProperty(n.type)&&lc[n.type](n,t)}function Ct(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function Nt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)Ct(n[e],t,1);t.polygonEnd()}function Lt(){function n(n,t){n*=La,t=t*La/2+ka/4;var e=n-r,o=Math.cos(t),a=Math.sin(t),c=i*a,s=u*o+c*Math.cos(e),l=c*Math.sin(e);hc.add(Math.atan2(l,s)),r=n,u=o,i=a}var t,e,r,u,i;gc.point=function(o,a){gc.point=n,r=(t=o)*La,u=Math.cos(a=(e=a)*La/2+ka/4),i=Math.sin(a)},gc.lineEnd=function(){n(t,e)}}function Tt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function qt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function zt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Rt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Dt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Pt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Ut(n){return[Math.atan2(n[1],n[0]),H(n[2])]}function jt(n,t){return aa(n[0]-t[0])<Ca&&aa(n[1]-t[1])<Ca}function Ht(n,t){n*=La;var e=Math.cos(t*=La);Ft(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function Ft(n,t,e){++pc,dc+=(n-dc)/pc,mc+=(t-mc)/pc,yc+=(e-yc)/pc}function Ot(){function n(n,u){n*=La;var i=Math.cos(u*=La),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),s=Math.atan2(Math.sqrt((s=e*c-r*a)*s+(s=r*o-t*c)*s+(s=t*a-e*o)*s),t*o+e*a+r*c);vc+=s,xc+=s*(t+(t=o)),Mc+=s*(e+(e=a)),_c+=s*(r+(r=c)),Ft(t,e,r)}var t,e,r;kc.point=function(u,i){u*=La;var o=Math.cos(i*=La);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),kc.point=n,Ft(t,e,r)}}function Yt(){kc.point=Ht}function It(){function n(n,t){n*=La;var e=Math.cos(t*=La),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),s=u*c-i*a,l=i*o-r*c,f=r*a-u*o,h=Math.sqrt(s*s+l*l+f*f),g=r*o+u*a+i*c,p=h&&-j(g)/h,v=Math.atan2(h,g);bc+=p*s,wc+=p*l,Sc+=p*f,vc+=v,xc+=v*(r+(r=o)),Mc+=v*(u+(u=a)),_c+=v*(i+(i=c)),Ft(r,u,i)}var t,e,r,u,i;kc.point=function(o,a){t=o,e=a,kc.point=n,o*=La;var c=Math.cos(a*=La);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),Ft(r,u,i)},kc.lineEnd=function(){n(t,e),kc.lineEnd=Yt,kc.point=Ht}}function Zt(){return!0}function Vt(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(jt(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new $t(e,n,null,!0),s=new $t(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new $t(r,n,null,!1),s=new $t(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),Xt(i),Xt(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function Xt(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function $t(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Bt(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function s(){y.point=o,d.lineEnd()}function l(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){l(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r){if(1&t){n=e[0];var u,r=n.length-1,o=-1;for(i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);return i.lineEnd(),void 0}r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Wt))}}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[],i.polygonStart()},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=$o.merge(g);var n=Kt(m,p);g.length?Vt(g,Gt,n,e,i):n&&(i.lineStart(),e(null,null,1,i),i.lineEnd()),i.polygonEnd(),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Jt(),M=t(x);return y}}function Wt(n){return n.length>1}function Jt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:c,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Gt(n,t){return((n=n.x)[0]<0?n[1]-Aa-Ca:Aa-n[1])-((t=t.x)[0]<0?t[1]-Aa-Ca:Aa-t[1])}function Kt(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;hc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ka/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ka/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=aa(_)>ka,w=p*x;if(hc.add(Math.atan2(w*Math.sin(_),v*M+w*Math.cos(_))),i+=b?_+(_>=0?Ea:-Ea):_,b^h>=e^m>=e){var S=zt(Tt(f),Tt(n));Pt(S);var k=zt(u,S);Pt(k);var E=(b^_>=0?-1:1)*H(k[2]);(r>E||r===E&&(S[0]||S[1]))&&(o+=b^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-Ca>i||Ca>i&&0>hc)^1&o}function Qt(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ka:-ka,c=aa(i-e);aa(c-ka)<Ca?(n.point(e,r=(r+o)/2>0?Aa:-Aa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ka&&(aa(e-u)<Ca&&(e-=u*Ca),aa(i-a)<Ca&&(i-=a*Ca),r=ne(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function ne(n,t,e,r){var u,i,o=Math.sin(n-e);return aa(o)>Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function te(n,t,e,r){var u;if(null==n)u=e*Aa,r.point(-ka,u),r.point(0,u),r.point(ka,u),r.point(ka,0),r.point(ka,-u),r.point(0,-u),r.point(-ka,-u),r.point(-ka,0),r.point(-ka,u);else if(aa(n[0]-t[0])>Ca){var i=n[0]<t[0]?ka:-ka;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function ee(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ka:-ka),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(jt(e,g)||jt(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&jt(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=Tt(n),u=Tt(t),o=[1,0,0],a=zt(r,u),c=qt(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=zt(o,a),p=Dt(o,f),v=Dt(a,h);Rt(p,v);var d=g,m=qt(p,d),y=qt(d,d),x=m*m-y*(qt(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=Dt(d,(-m-M)/y);if(Rt(_,p),_=Ut(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=aa(A-ka)<Ca,N=C||Ca>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(aa(_[0]-w)<Ca?k:E):k<=_[1]&&_[1]<=E:A>ka^(w<=_[0]&&_[0]<=S)){var L=Dt(d,(-m+M)/y);return Rt(L,p),[_,Ut(L)]}}}function u(t,e){var r=o?n:ka-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=aa(i)>Ca,c=Le(n,6*La);return Bt(t,e,c,o?[0,-n]:[-ka,n-ka])}function re(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function ue(n,t,e,r){function u(r,u){return aa(r[0]-n)<Ca?u>0?0:3:aa(r[0]-e)<Ca?u>0?2:1:aa(r[1]-t)<Ca?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=m.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=m[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&s(l,i,n)>0&&++t:i[1]<=r&&s(l,i,n)<0&&--t,l=i;return 0!==t}function s(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(e[0]-n[0])*(t[1]-n[1])}function l(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function f(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function h(n,t){f(n,t)&&a.point(n,t)}function g(){L.point=v,m&&m.push(y=[]),k=!0,S=!1,b=w=0/0}function p(){d&&(v(x,M),_&&S&&C.rejoin(),d.push(C.buffer())),L.point=h,S&&a.lineEnd()}function v(n,t){n=Math.max(-Ac,Math.min(Ac,n)),t=Math.max(-Ac,Math.min(Ac,t));var e=f(n,t);if(m&&y.push([n,t]),k)x=n,M=t,_=e,k=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&S)a.point(n,t);else{var r={a:{x:b,y:w},b:{x:n,y:t}};N(r)?(S||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),E=!1):e&&(a.lineStart(),a.point(n,t),E=!1)}b=n,w=t,S=e}var d,m,y,x,M,_,b,w,S,k,E,A=a,C=Jt(),N=re(n,t,e,r),L={point:h,lineStart:g,lineEnd:p,polygonStart:function(){a=C,d=[],m=[],E=!0},polygonEnd:function(){a=A,d=$o.merge(d);var t=c([n,r]),e=E&&t,u=d.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Vt(d,i,t,l,a),a.polygonEnd()),d=m=y=null}};return L}}function ie(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function oe(n){var t=0,e=ka/3,r=be(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ka/180,e=n[1]*ka/180):[180*(t/ka),180*(e/ka)]},u}function ae(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,H((i-(n*n+e*e)*u*u)/(2*u))]},e}function ce(){function n(n,t){Nc+=u*n-r*t,r=n,u=t}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,t=r=i,e=u=o},Rc.lineEnd=function(){n(t,e)}}function se(n,t){Lc>n&&(Lc=n),n>qc&&(qc=n),Tc>t&&(Tc=t),t>zc&&(zc=t)}function le(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=fe(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=fe(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function fe(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function he(n,t){dc+=n,mc+=t,++yc}function ge(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);xc+=o*(t+n)/2,Mc+=o*(e+r)/2,_c+=o,he(t=n,e=r)}var t,e;Pc.point=function(r,u){Pc.point=n,he(t=r,e=u)}}function pe(){Pc.point=he}function ve(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);xc+=o*(r+n)/2,Mc+=o*(u+t)/2,_c+=o,o=u*n-r*t,bc+=o*(r+n),wc+=o*(u+t),Sc+=3*o,he(r=n,u=t)}var t,e,r,u;Pc.point=function(i,o){Pc.point=n,he(t=r=i,e=u=o)},Pc.lineEnd=function(){n(t,e)}}function de(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,Ea)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:c};return a}function me(n){function t(n){return(a?r:e)(n)}function e(t){return Me(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=Tt([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=aa(aa(w)-1)<Ca?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],L=C-t,T=N-e,q=x*L-y*T;(q*q/M>i||aa((y*L+x*T)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*La),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function ye(n){var t=me(function(t,e){return n([t*Ta,e*Ta])});return function(n){return we(t(n))}}function xe(n){this.stream=n}function Me(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function _e(n){return be(function(){return n})()}function be(n){function t(n){return n=a(n[0]*La,n[1]*La),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ta,n[1]*Ta]}function r(){a=ie(o=Ee(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=me(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Ec,_=vt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=we(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Ec):ee((b=+n)*La),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?ue(n[0][0],n[0][1],n[1][0],n[1][1]):vt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*La,d=n[1]%360*La,r()):[v*Ta,d*Ta]},t.rotate=function(n){return arguments.length?(m=n[0]%360*La,y=n[1]%360*La,x=n.length>2?n[2]%360*La:0,r()):[m*Ta,y*Ta,x*Ta]},$o.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function we(n){return Me(n,function(t,e){n.point(t*La,e*La)})}function Se(n,t){return[n,t]}function ke(n,t){return[n>ka?n-Ea:-ka>n?n+Ea:n,t]}function Ee(n,t,e){return n?t||e?ie(Ce(n),Ne(t,e)):Ce(n):t||e?Ne(t,e):ke}function Ae(n){return function(t,e){return t+=n,[t>ka?t-Ea:-ka>t?t+Ea:t,e]}}function Ce(n){var t=Ae(n);return t.invert=Ae(-n),t}function Ne(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),H(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),H(l*r-a*u)]},e}function Le(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=Te(e,u),i=Te(e,i),(o>0?i>u:u>i)&&(u+=o*Ea)):(u=n+o*Ea,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=Ut([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function Te(n,t){var e=Tt(t);e[0]-=n,Pt(e);var r=j(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function qe(n,t,e){var r=$o.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function ze(n,t,e){var r=$o.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Re(n){return n.source}function De(n){return n.target}function Pe(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(I(r-t)+u*o*I(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ta,Math.atan2(o,Math.sqrt(r*r+u*u))*Ta]}:function(){return[n*Ta,t*Ta]};return p.distance=h,p}function Ue(){function n(n,u){var i=Math.sin(u*=La),o=Math.cos(u),a=aa((n*=La)-t),c=Math.cos(a);Uc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;jc.point=function(u,i){t=u*La,e=Math.sin(i*=La),r=Math.cos(i),jc.point=n},jc.lineEnd=function(){jc.point=jc.lineEnd=c}}function je(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function He(n,t){function e(n,t){var e=aa(aa(t)-Aa)<Ca?0:o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ka/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=U(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Aa]},e):Oe}function Fe(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return aa(u)<Ca?Se:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-U(u)*Math.sqrt(n*n+e*e)]},e)}function Oe(n,t){return[n,Math.log(Math.tan(ka/4+t/2))]}function Ye(n){var t,e=_e(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=ka*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ie(n,t){var e=Math.cos(t)*Math.sin(n);return[Math.log((1+e)/(1-e))/2,Math.atan2(Math.tan(t),Math.cos(n))]}function Ze(n){return n[0]}function Ve(n){return n[1]}function Xe(n,t,e,r){var u,i,o,a,c,s,l;return u=r[n],i=u[0],o=u[1],u=r[t],a=u[0],c=u[1],u=r[e],s=u[0],l=u[1],(l-o)*(a-i)-(c-o)*(s-i)>0}function $e(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Be(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function We(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Je(){mr(this),this.edge=this.site=this.circle=null}function Ge(n){var t=Jc.pop()||new Je;return t.site=n,t}function Ke(n){cr(n),$c.remove(n),Jc.push(n),mr(n)}function Qe(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Ke(n);for(var c=i;c.circle&&aa(e-c.circle.x)<Ca&&aa(r-c.circle.cy)<Ca;)i=c.P,a.unshift(c),Ke(c),c=i;a.unshift(c),cr(c);for(var s=o;s.circle&&aa(e-s.circle.x)<Ca&&aa(r-s.circle.cy)<Ca;)o=s.N,a.push(s),Ke(s),s=o;a.push(s),cr(s);var l,f=a.length;for(l=1;f>l;++l)s=a[l],c=a[l-1],pr(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=hr(c.site,s.site,null,u),ar(c),ar(s)}function nr(n){for(var t,e,r,u,i=n.x,o=n.y,a=$c._;a;)if(r=tr(a,o)-i,r>Ca)a=a.L;else{if(u=i-er(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Ge(n);if($c.insert(t,c),t||e){if(t===e)return cr(t),e=Ge(t.site),$c.insert(c,e),c.edge=e.edge=hr(t.site,c.site),ar(t),ar(e),void 0;if(!e)return c.edge=hr(t.site,c.site),void 0;cr(t),cr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};pr(e.edge,s,p,M),c.edge=hr(s,n,null,M),e.edge=hr(n,p,null,M),ar(t),ar(e)}}function tr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function er(n,t){var e=n.N;if(e)return tr(e,t);var r=n.site;return r.y===t?r.x:1/0}function rr(n){this.site=n,this.edges=[]}function ur(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Xc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(aa(r-t)>Ca||aa(u-e)>Ca)&&(a.splice(o,0,new vr(gr(i.site,l,aa(r-f)<Ca&&p-u>Ca?{x:f,y:aa(t-f)<Ca?e:p}:aa(u-p)<Ca&&h-r>Ca?{x:aa(e-p)<Ca?t:h,y:p}:aa(r-h)<Ca&&u-g>Ca?{x:h,y:aa(t-h)<Ca?e:g}:aa(u-g)<Ca&&r-f>Ca?{x:aa(e-g)<Ca?t:f,y:g}:null),i.site,null)),++c)}function ir(n,t){return t.angle-n.angle}function or(){mr(this),this.x=this.y=this.arc=this.site=this.cy=null}function ar(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,s=r.y-a,l=i.x-o,f=i.y-a,h=2*(c*f-s*l);if(!(h>=-Na)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Gc.pop()||new or;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=Wc._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}Wc.insert(y,m),y||(Bc=m)}}}}function cr(n){var t=n.circle;t&&(t.P||(Bc=t.N),Wc.remove(t),Gc.push(t),mr(t),n.circle=null)}function sr(n){for(var t,e=Vc,r=re(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!lr(t,n)||!r(t)||aa(t.a.x-t.b.x)<Ca&&aa(t.a.y-t.b.y)<Ca)&&(t.a=t.b=null,e.splice(u,1))}function lr(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],s=t[1][1],l=n.l,f=n.r,h=l.x,g=l.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;
-if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.y<c)return}else i={x:d,y:s};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.y<c)return}else i={x:(s-u)/r,y:s};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function fr(n,t){this.l=n,this.r=t,this.a=this.b=null}function hr(n,t,e,r){var u=new fr(n,t);return Vc.push(u),e&&pr(u,n,t,e),r&&pr(u,t,n,r),Xc[n.i].edges.push(new vr(u,n,t)),Xc[t.i].edges.push(new vr(u,t,n)),u}function gr(n,t,e){var r=new fr(n,null);return r.a=t,r.b=e,Vc.push(r),r}function pr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function vr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function dr(){this._=null}function mr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function yr(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function xr(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function Mr(n){for(;n.L;)n=n.L;return n}function _r(n,t){var e,r,u,i=n.sort(br).pop();for(Vc=[],Xc=new Array(n.length),$c=new dr,Wc=new dr;;)if(u=Bc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Xc[i.i]=new rr(i),nr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Qe(u.arc)}t&&(sr(t),ur(t));var o={cells:Xc,edges:Vc};return $c=Wc=Vc=Xc=null,o}function br(n,t){return t.y-n.y||t.x-n.x}function wr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function Sr(n){return n.x}function kr(n){return n.y}function Er(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function Ar(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&Ar(n,c[0],e,r,o,a),c[1]&&Ar(n,c[1],o,r,u,a),c[2]&&Ar(n,c[2],e,a,o,i),c[3]&&Ar(n,c[3],o,a,u,i)}}function Cr(n,t){n=$o.rgb(n),t=$o.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+ct(Math.round(e+i*n))+ct(Math.round(r+o*n))+ct(Math.round(u+a*n))}}function Nr(n,t){var e,r={},u={};for(e in n)e in t?r[e]=qr(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function Lr(n,t){return t-=n=+n,function(e){return n+t*e}}function Tr(n,t){var e,r,u,i,o,a=0,c=0,s=[],l=[];for(n+="",t+="",Qc.lastIndex=0,r=0;e=Qc.exec(t);++r)e.index&&s.push(t.substring(a,c=e.index)),l.push({i:s.length,x:e[0]}),s.push(null),a=Qc.lastIndex;for(a<t.length&&s.push(t.substring(a)),r=0,i=l.length;(e=Qc.exec(n))&&i>r;++r)if(o=l[r],o.x==e[0]){if(o.i)if(null==s[o.i+1])for(s[o.i-1]+=o.x,s.splice(o.i,1),u=r+1;i>u;++u)l[u].i--;else for(s[o.i-1]+=o.x+s[o.i+1],s.splice(o.i,2),u=r+1;i>u;++u)l[u].i-=2;else if(null==s[o.i+1])s[o.i]=o.x;else for(s[o.i]=o.x+s[o.i+1],s.splice(o.i+1,1),u=r+1;i>u;++u)l[u].i--;l.splice(r,1),i--,r--}else o.x=Lr(parseFloat(e[0]),parseFloat(o.x));for(;i>r;)o=l.pop(),null==s[o.i+1]?s[o.i]=o.x:(s[o.i]=o.x+s[o.i+1],s.splice(o.i+1,1)),i--;return 1===s.length?null==s[0]?(o=l[0].x,function(n){return o(n)+""}):function(){return t}:function(n){for(r=0;i>r;++r)s[(o=l[r]).i]=o.x(n);return s.join("")}}function qr(n,t){for(var e,r=$o.interpolators.length;--r>=0&&!(e=$o.interpolators[r](n,t)););return e}function zr(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(qr(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Rr(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function Dr(n){return function(t){return 1-n(1-t)}}function Pr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Ur(n){return n*n}function jr(n){return n*n*n}function Hr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Fr(n){return function(t){return Math.pow(t,n)}}function Or(n){return 1-Math.cos(n*Aa)}function Yr(n){return Math.pow(2,10*(n-1))}function Ir(n){return 1-Math.sqrt(1-n*n)}function Zr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ea*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ea/t)}}function Vr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Xr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function $r(n,t){n=$o.hcl(n),t=$o.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return J(e+i*n,r+o*n,u+a*n)+""}}function Br(n,t){n=$o.hsl(n),t=$o.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return $(e+i*n,r+o*n,u+a*n)+""}}function Wr(n,t){n=$o.lab(n),t=$o.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return Q(e+i*n,r+o*n,u+a*n)+""}}function Jr(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Gr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Qr(t),u=Kr(t,e),i=Qr(nu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Ta,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Ta:0}function Kr(n,t){return n[0]*t[0]+n[1]*t[1]}function Qr(n){var t=Math.sqrt(Kr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function nu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function tu(n,t){var e,r=[],u=[],i=$o.transform(n),o=$o.transform(t),a=i.translate,c=o.translate,s=i.rotate,l=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:Lr(a[0],c[0])},{i:3,x:Lr(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),s!=l?(s-l>180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:Lr(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:Lr(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:Lr(g[0],p[0])},{i:e-2,x:Lr(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function eu(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return(e-n)*t}}function ru(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return Math.max(0,Math.min(1,(e-n)*t))}}function uu(n){for(var t=n.source,e=n.target,r=ou(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function iu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function ou(n,t){if(n===t)return n;for(var e=iu(n),r=iu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function au(n){n.fixed|=2}function cu(n){n.fixed&=-7}function su(n){n.fixed|=4,n.px=n.x,n.py=n.y}function lu(n){n.fixed&=-5}function fu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(fu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var s=t*e[n.point.index];n.charge+=n.pointCharge=s,r+=s*n.point.x,u+=s*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function hu(n,t){return $o.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=du,n}function gu(n){return n.children}function pu(n){return n.value}function vu(n,t){return t.value-n.value}function du(n){return $o.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function mu(n){return n.x}function yu(n){return n.y}function xu(n,t,e){n.y0=t,n.y=e}function Mu(n){return $o.range(n.length)}function _u(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function bu(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function wu(n){return n.reduce(Su,0)}function Su(n,t){return n+t[1]}function ku(n,t){return Eu(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function Eu(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function Au(n){return[$o.min(n),$o.max(n)]}function Cu(n,t){return n.parent==t.parent?1:2}function Nu(n){var t=n.children;return t&&t.length?t[0]:n._tree.thread}function Lu(n){var t,e=n.children;return e&&(t=e.length)?e[t-1]:n._tree.thread}function Tu(n,t){var e=n.children;if(e&&(u=e.length))for(var r,u,i=-1;++i<u;)t(r=Tu(e[i],t),n)>0&&(n=r);return n}function qu(n,t){return n.x-t.x}function zu(n,t){return t.x-n.x}function Ru(n,t){return n.depth-t.depth}function Du(n,t){function e(n,r){var u=n.children;if(u&&(o=u.length))for(var i,o,a=null,c=-1;++c<o;)i=u[c],e(i,a),a=i;t(n,r)}e(n,null)}function Pu(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i]._tree,t.prelim+=e,t.mod+=e,e+=t.shift+(r+=t.change)}function Uu(n,t,e){n=n._tree,t=t._tree;var r=e/(t.number-n.number);n.change+=r,t.change-=r,t.shift+=e,t.prelim+=e,t.mod+=e}function ju(n,t,e){return n._tree.ancestor.parent==t.parent?n._tree.ancestor:e}function Hu(n,t){return n.value-t.value}function Fu(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Ou(n,t){n._pack_next=t,t._pack_prev=n}function Yu(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Iu(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(Zu),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],$u(r,u,i),t(i),Fu(r,i),r._pack_prev=i,Fu(i,u),u=r._pack_next,o=3;s>o;o++){$u(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(Yu(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!Yu(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?Ou(r,u=a):Ou(r=c,u),o--):(Fu(r,i),u=i,t(i))}var m=(l+f)/2,y=(h+g)/2,x=0;for(o=0;s>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(Vu)}}function Zu(n){n._pack_next=n._pack_prev=n}function Vu(n){delete n._pack_next,delete n._pack_prev}function Xu(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)Xu(u[i],t,e,r)}function $u(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),s=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+s*i,e.y=n.y+c*i-s*u}else e.x=n.x+r,e.y=n.y}function Bu(n){return 1+$o.max(n,function(n){return n.y})}function Wu(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ju(n){var t=n.children;return t&&t.length?Ju(t[0]):n}function Gu(n){var t,e=n.children;return e&&(t=e.length)?Gu(e[t-1]):n}function Ku(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Qu(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function ni(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function ti(n){return n.rangeExtent?n.rangeExtent():ni(n.range())}function ei(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function ui(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function ii(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=$o.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function oi(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?ii:ei,c=r?ru:eu;return o=u(n,t,c,e),a=u(t,n,c,qr),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Jr)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return li(n,t)},i.tickFormat=function(t,e){return fi(n,t,e)},i.nice=function(t){return ci(n,t),u()},i.copy=function(){return oi(n,t,e,r)},u()}function ai(n,t){return $o.rebind(n,t,"range","rangeRound","interpolate","clamp")}function ci(n,t){return ri(n,ui(si(n,t)[2]))}function si(n,t){null==t&&(t=10);var e=ni(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function li(n,t){return $o.range.apply($o,si(n,t))}function fi(n,t,e){var r=si(n,t);return $o.format(e?e.replace(uc,function(n,t,e,u,i,o,a,c,s,l){return[t,e,u,i,o,a,c,s||"."+gi(l,r),l].join("")}):",."+hi(r[2])+"f")}function hi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function gi(n,t){var e=hi(t[2]);return n in ls?Math.abs(e-hi(Math.max(Math.abs(t[0]),Math.abs(t[1]))))+ +("e"!==n):e-2*("%"===n)}function pi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=ni(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++<l;)for(var h=f-1;h>0;h--)o.push(i(s)*h);for(s=0;o[s]<a;s++);for(l=o.length;o[l-1]>c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=$o.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return pi(n.copy(),t,e,r)},ai(o,n)}function vi(n,t,e){function r(t){return n(u(t))}var u=di(t),i=di(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return li(e,n)},r.tickFormat=function(n,t){return fi(e,n,t)},r.nice=function(n){return r.domain(ci(e,n))},r.exponent=function(o){return arguments.length?(u=di(t=o),i=di(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return vi(n.copy(),t,e)},ai(r,n)}function di(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function mi(n,t){function e(e){return o[((i.get(e)||"range"===t.t&&i.set(e,n.push(e)))-1)%o.length]}function r(t,e){return $o.range(n.length).map(function(n){return t+e*n})}var i,o,a;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new u;for(var o,a=-1,c=r.length;++a<c;)i.has(o=r[a])||i.set(o,n.push(o));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(o=n,a=0,t={t:"range",a:arguments},e):o},e.rangePoints=function(u,i){arguments.length<2&&(i=0);var c=u[0],s=u[1],l=(s-c)/(Math.max(1,n.length-1)+i);return o=r(n.length<2?(c+s)/2:c+l*i/2,l),a=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=(f-l)/(n.length-i+2*c);return o=r(l+h*c,h),s&&o.reverse(),a=h*(1-i),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=Math.floor((f-l)/(n.length-i+2*c)),g=f-l-(n.length-i)*h;return o=r(l+Math.round(g/2),h),s&&o.reverse(),a=Math.round(h*(1-i)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return a},e.rangeExtent=function(){return ni(t.a[0])},e.copy=function(){return mi(n,t)},e.domain(n)}function yi(n,t){function e(){var e=0,i=t.length;for(u=[];++e<i;)u[e-1]=$o.quantile(n,e/i);return r}function r(n){return isNaN(n=+n)?void 0:t[$o.bisect(u,n)]}var u;return r.domain=function(t){return arguments.length?(n=t.filter(function(n){return!isNaN(n)}).sort($o.ascending),e()):n},r.range=function(n){return arguments.length?(t=n,e()):t},r.quantiles=function(){return u},r.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?u[e-1]:n[0],e<u.length?u[e]:n[n.length-1]]},r.copy=function(){return yi(n,t)},e()}function xi(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return xi(n,t,e)},u()}function Mi(n,t){function e(e){return e>=e?t[$o.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Mi(n,t)},e}function _i(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return li(n,t)},t.tickFormat=function(t,e){return fi(n,t,e)},t.copy=function(){return _i(n)},t}function bi(n){return n.innerRadius}function wi(n){return n.outerRadius}function Si(n){return n.startAngle}function ki(n){return n.endAngle}function Ei(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=pt(e),p=pt(r);++f<h;)u.call(this,c=t[f],f)?l.push([+g.call(this,c,f),+p.call(this,c,f)]):l.length&&(o(),l=[]);return l.length&&o(),s.length?s.join(""):null}var e=Ze,r=Ve,u=Zt,i=Ai,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=xs.get(n)||Ai).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function Ai(n){return n.join("L")}function Ci(n){return Ai(n)+"Z"}function Ni(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function Li(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function Ti(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function qi(n,t){return n.length<4?Ai(n):n[1]+Di(n.slice(1,n.length-1),Pi(n,t))}function zi(n,t){return n.length<3?Ai(n):n[0]+Di((n.push(n[0]),n),Pi([n[n.length-2]].concat(n,[n[1]]),t))}function Ri(n,t){return n.length<3?Ai(n):n[0]+Di(n,Pi(n,t))}function Di(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return Ai(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s<t.length;s++,c++)i=n[c],a=t[s],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var l=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+l[0]+","+l[1]}return r}function Pi(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function Ui(n){if(n.length<3)return Ai(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",Oi(bs,o),",",Oi(bs,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Yi(c,o,a);return n.pop(),c.push("L",r),c.join("")}function ji(n){if(n.length<4)return Ai(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(Oi(bs,i)+","+Oi(bs,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Yi(e,i,o);return e.join("")}function Hi(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[Oi(bs,o),",",Oi(bs,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Yi(t,o,a);return t.join("")}function Fi(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,s=-1;++s<=e;)r=n[s],u=s/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return Ui(n)}function Oi(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Yi(n,t,e){n.push("C",Oi(Ms,t),",",Oi(Ms,e),",",Oi(_s,t),",",Oi(_s,e),",",Oi(bs,t),",",Oi(bs,e))}function Ii(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Zi(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=Ii(u,i);++t<e;)r[t]=(o+(o=Ii(u=i,i=n[t+1])))/2;return r[t]=o,r}function Vi(n){for(var t,e,r,u,i=[],o=Zi(n),a=-1,c=n.length-1;++a<c;)t=Ii(n[a],n[a+1]),aa(t)<Ca?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function Xi(n){return n.length<3?Ai(n):n[0]+Di(n,Vi(n))}function $i(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+ms,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Bi(n){function t(t){function c(){v.push("M",a(n(m),f),l,s(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=pt(e),_=pt(u),b=e===r?function(){return g}:pt(r),w=u===i?function(){return p}:pt(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ze,r=Ze,u=0,i=Ve,o=Zt,a=Ai,c=a.key,s=a,l="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=xs.get(n)||Ai).key,s=a.reverse||a,l=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Wi(n){return n.radius}function Ji(n){return[n.x,n.y]}function Gi(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+ms;return[e*Math.cos(r),e*Math.sin(r)]}}function Ki(){return 64}function Qi(){return"circle"}function no(n){var t=Math.sqrt(n/ka);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function to(n,t){return ha(n,Cs),n.id=t,n}function eo(n,t,e,r){var u=n.id;return C(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function ro(n){return null==n&&(n=""),function(){this.textContent=n}}function uo(n,t,e,r){var i=n.__transition__||(n.__transition__={active:0,count:0}),o=i[e];if(!o){var a=r.time;o=i[e]={tween:new u,time:a,ease:r.ease,delay:r.delay,duration:r.duration},++i.count,$o.timer(function(r){function u(r){return i.active>e?s():(i.active=e,o.event&&o.event.start.call(n,l,t),o.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),$o.timer(function(){return p.c=c(r||1)?Zt:c,1},0,a),void 0)}function c(r){if(i.active!==e)return s();for(var u=r/g,a=f(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,l,t),s()):void 0}function s(){return--i.count?delete i[e]:delete n.__transition__,1}var l=n.__data__,f=o.ease,h=o.delay,g=o.duration,p=Ga,v=[];return p.t=h+a,r>=h?u(r-h):(p.c=u,void 0)},0,a)}}function io(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function oo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function ao(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function co(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new Ds(e-1)),1),e}function i(n,e){return t(n=new Ds(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{Ds=ao;var r=new ao;return r._=n,o(r,t,e)}finally{Ds=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=so(n);return c.floor=c,c.round=so(r),c.ceil=so(u),c.offset=so(i),c.range=a,n}function so(n){return function(t,e){try{Ds=ao;var r=new ao;return r._=t,n(r,e)._}finally{Ds=Date}}}function lo(n){function t(t){for(var r,u,i,o=[],a=-1,c=0;++a<e;)37===n.charCodeAt(a)&&(o.push(n.substring(c,a)),null!=(u=nl[r=n.charAt(++a)])&&(r=n.charAt(++a)),(i=tl[r])&&(r=i(t,null==u?"e"===r?" ":"0":u)),o.push(r),c=a+1);return o.push(n.substring(c,a)),o.join("")}var e=n.length;return t.parse=function(t){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},r=fo(e,n,t,0);if(r!=t.length)return null;"p"in e&&(e.H=e.H%12+12*e.p);var u=null!=e.Z&&Ds!==ao,i=new(u?ao:Ds);return"j"in e?i.setFullYear(e.y,0,e.j):"w"in e&&("W"in e||"U"in e)?(i.setFullYear(e.y,0,1),i.setFullYear(e.y,0,"W"in e?(e.w+6)%7+7*e.W-(i.getDay()+5)%7:e.w+7*e.U-(i.getDay()+6)%7)):i.setFullYear(e.y,e.m,e.d),i.setHours(e.H+Math.floor(e.Z/100),e.M+e.Z%100,e.S,e.L),u?i._:i},t.toString=function(){return n},t}function fo(n,t,e,r){for(var u,i,o,a=0,c=t.length,s=e.length;c>a;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=el[o in nl?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function ho(n){return new RegExp("^(?:"+n.map($o.requote).join("|")+")","i")}function go(n){for(var t=new u,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function po(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function vo(n,t,e){$s.lastIndex=0;var r=$s.exec(t.substring(e));return r?(n.w=Bs.get(r[0].toLowerCase()),e+r[0].length):-1}function mo(n,t,e){Vs.lastIndex=0;var r=Vs.exec(t.substring(e));return r?(n.w=Xs.get(r[0].toLowerCase()),e+r[0].length):-1}function yo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function xo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e));return r?(n.U=+r[0],e+r[0].length):-1}function Mo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e));return r?(n.W=+r[0],e+r[0].length):-1}function _o(n,t,e){Gs.lastIndex=0;var r=Gs.exec(t.substring(e));return r?(n.m=Ks.get(r[0].toLowerCase()),e+r[0].length):-1}function bo(n,t,e){Ws.lastIndex=0;var r=Ws.exec(t.substring(e));return r?(n.m=Js.get(r[0].toLowerCase()),e+r[0].length):-1}function wo(n,t,e){return fo(n,tl.c.toString(),t,e)}function So(n,t,e){return fo(n,tl.x.toString(),t,e)}function ko(n,t,e){return fo(n,tl.X.toString(),t,e)}function Eo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Ao(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.y=No(+r[0]),e+r[0].length):-1}function Co(n,t,e){return/^[+-]\d{4}$/.test(t=t.substring(e,e+5))?(n.Z=+t,e+5):-1}function No(n){return n+(n>68?1900:2e3)}function Lo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function To(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function qo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function zo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Ro(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Do(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function Po(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function Uo(n,t,e){var r=ul.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}function jo(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(aa(t)/60),u=aa(t)%60;return e+po(r,"0",2)+po(u,"0",2)}function Ho(n,t,e){Qs.lastIndex=0;var r=Qs.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function Fo(n){function t(n){try{Ds=ao;var t=new Ds;return t._=n,e(t)}finally{Ds=Date}}var e=lo(n);return t.parse=function(n){try{Ds=ao;var t=e.parse(n);return t&&t._}finally{Ds=Date}},t.toString=e.toString,t}function Oo(n){return n.toISOString()}function Yo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=$o.bisect(ol,u);return i==ol.length?[t.year,si(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/ol[i-1]<ol[i]/u?i-1:i]:[ll,si(n,e)[2]]}return r.invert=function(t){return Io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Io(+e+1),t).length}var i=r.domain(),o=ni(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(ri(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=ni(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Yo(n.copy(),t,e)},ai(r,n)}function Io(n){return new Date(n)}function Zo(n){return function(t){for(var e=n.length-1,r=n[e];!r[1](t);)r=n[--e];return r[0](t)}}function Vo(n){return JSON.parse(n.responseText)}function Xo(n){var t=Jo.createRange();return t.selectNode(Jo.body),t.createContextualFragment(n.responseText)}var $o={version:"3.3.9"};Date.now||(Date.now=function(){return+new Date});var Bo=[].slice,Wo=function(n){return Bo.call(n)},Jo=document,Go=Jo.documentElement,Ko=window;try{Wo(Go.childNodes)[0].nodeType}catch(Qo){Wo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Jo.createElement("div").style.setProperty("opacity",0,"")}catch(na){var ta=Ko.Element.prototype,ea=ta.setAttribute,ra=ta.setAttributeNS,ua=Ko.CSSStyleDeclaration.prototype,ia=ua.setProperty;ta.setAttribute=function(n,t){ea.call(this,n,t+"")},ta.setAttributeNS=function(n,t,e){ra.call(this,n,t,e+"")},ua.setProperty=function(n,t,e){ia.call(this,n,t+"",e)}}$o.ascending=function(n,t){return t>n?-1:n>t?1:n>=t?0:0/0},$o.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},$o.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},$o.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},$o.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},$o.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i<u;)isNaN(e=+n[i])||(r+=e);else for(;++i<u;)isNaN(e=+t.call(n,n[i],i))||(r+=e);return r},$o.mean=function(t,e){var r,u=t.length,i=0,o=-1,a=0;if(1===arguments.length)for(;++o<u;)n(r=t[o])&&(i+=(r-i)/++a);else for(;++o<u;)n(r=e.call(t,t[o],o))&&(i+=(r-i)/++a);return a?i:void 0},$o.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;
-return i?u+i*(n[r]-u):u},$o.median=function(t,e){return arguments.length>1&&(t=t.map(e)),t=t.filter(n),t.length?$o.quantile(t.sort($o.ascending),.5):void 0},$o.bisector=function(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n.call(t,t[i],i)<e?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;e<n.call(t,t[i],i)?u=i:r=i+1}return r}}};var oa=$o.bisector(function(n){return n});$o.bisectLeft=oa.left,$o.bisect=$o.bisectRight=oa.right,$o.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},$o.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},$o.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},$o.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,e=$o.min(arguments,t),r=new Array(e);++n<e;)for(var u,i=-1,o=r[n]=new Array(u);++i<u;)o[i]=arguments[i][n];return r},$o.transpose=function(n){return $o.zip.apply($o,n)},$o.keys=function(n){var t=[];for(var e in n)t.push(e);return t},$o.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},$o.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},$o.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var aa=Math.abs;$o.range=function(n,t,r){if(arguments.length<3&&(r=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/r)throw new Error("infinite range");var u,i=[],o=e(aa(r)),a=-1;if(n*=o,t*=o,r*=o,0>r)for(;(u=n+r*++a)>t;)i.push(u/o);else for(;(u=n+r*++a)<t;)i.push(u/o);return i},$o.map=function(n){var t=new u;if(n instanceof u)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t},r(u,{has:function(n){return ca+n in this},get:function(n){return this[ca+n]},set:function(n,t){return this[ca+n]=t},remove:function(n){return n=ca+n,n in this&&delete this[n]},keys:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},values:function(){var n=[];return this.forEach(function(t,e){n.push(e)}),n},entries:function(){var n=[];return this.forEach(function(t,e){n.push({key:t,value:e})}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===sa&&n.call(this,t.substring(1),this[t])}});var ca="\x00",sa=ca.charCodeAt(0);$o.nest=function(){function n(t,a,c){if(c>=o.length)return r?r.call(i,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=o[c++],d=new u;++g<p;)(h=d.get(s=v(l=a[g])))?h.push(l):d.set(s,[l]);return t?(l=t(),f=function(e,r){l.set(e,n(t,r,c))}):(l={},f=function(e,r){l[e]=n(t,r,c)}),d.forEach(f),l}function t(n,e){if(e>=o.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,i={},o=[],a=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n($o.map,e,0),0)},i.key=function(n){return o.push(n),i},i.sortKeys=function(n){return a[o.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},$o.set=function(n){var t=new i;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},r(i,{has:function(n){return ca+n in this},add:function(n){return this[ca+n]=!0,n},remove:function(n){return n=ca+n,n in this&&delete this[n]},values:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===sa&&n.call(this,t.substring(1))}}),$o.behavior={},$o.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=o(n,t,t[e]);return n};var la=["webkit","ms","moz","Moz","o","O"];$o.dispatch=function(){for(var n=new s,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=l(n);return n},s.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},$o.event=null,$o.requote=function(n){return n.replace(fa,"\\$&")};var fa=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ha={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},ga=function(n,t){return t.querySelector(n)},pa=function(n,t){return t.querySelectorAll(n)},va=Go[a(Go,"matchesSelector")],da=function(n,t){return va.call(n,t)};"function"==typeof Sizzle&&(ga=function(n,t){return Sizzle(n,t)[0]||null},pa=function(n,t){return Sizzle.uniqueSort(Sizzle(n,t))},da=Sizzle.matchesSelector),$o.selection=function(){return Ma};var ma=$o.selection.prototype=[];ma.select=function(n){var t,e,r,u,i=[];n=v(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,s=r.length;++c<s;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return p(i)},ma.selectAll=function(n){var t,e,r=[];n=d(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Wo(n.call(e,e.__data__,a,u))),t.parentNode=e);return p(r)};var ya={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};$o.ns={prefix:ya,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.substring(0,t),n=n.substring(t+1)),ya.hasOwnProperty(e)?{space:ya[e],local:n}:n}},ma.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=$o.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(m(t,n[t]));return this}return this.each(m(n,t))},ma.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=n.trim().split(/^|\s+/g)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!x(n[u]).test(t))return!1;return!0}for(t in n)this.each(M(t,n[t]));return this}return this.each(M(n,t))},ma.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(b(e,n[e],t));return this}if(2>r)return Ko.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(b(n,t,e))},ma.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(w(t,n[t]));return this}return this.each(w(n,t))},ma.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},ma.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},ma.append=function(n){return n=S(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},ma.insert=function(n,t){return n=S(n),t=v(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},ma.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},ma.data=function(n,t){function e(n,e){var r,i,o,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new u,y=new u,x=[];for(r=-1;++r<a;)d=t.call(i=n[r],i.__data__,r),m.has(d)?v[r]=i:m.set(d,i),x.push(d);for(r=-1;++r<f;)d=t.call(e,o=e[r],r),(i=m.get(d))?(g[r]=i,i.__data__=o):y.has(d)||(p[r]=k(o)),y.set(d,o),m.remove(d);for(r=-1;++r<a;)m.has(x[r])&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],o=e[r],i?(i.__data__=o,g[r]=i):p[r]=k(o);for(;f>r;++r)p[r]=k(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,i,o=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++o<a;)(i=r[o])&&(n[o]=i.__data__);return n}var c=N([]),s=p([]),l=p([]);if("function"==typeof n)for(;++o<a;)e(r=this[o],n.call(r,r.parentNode.__data__,o));else for(;++o<a;)e(r=this[o],n);return s.enter=function(){return c},s.exit=function(){return l},s},ma.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},ma.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=E(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a)&&t.push(r)}return p(u)},ma.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ma.sort=function(n){n=A.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},ma.each=function(n){return C(this,function(t,e,r){n.call(t,t.__data__,e,r)})},ma.call=function(n){var t=Wo(arguments);return n.apply(t[0]=this,t),this},ma.empty=function(){return!this.node()},ma.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ma.size=function(){var n=0;return this.each(function(){++n}),n};var xa=[];$o.selection.enter=N,$o.selection.enter.prototype=xa,xa.append=ma.append,xa.empty=ma.empty,xa.node=ma.node,xa.call=ma.call,xa.size=ma.size,xa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var s=-1,l=u.length;++s<l;)(i=u[s])?(t.push(r[s]=e=n.call(u.parentNode,i.__data__,s,a)),e.__data__=i.__data__):t.push(null)}return p(o)},xa.insert=function(n,t){return arguments.length<2&&(t=L(this)),ma.insert.call(this,n,t)},ma.transition=function(){for(var n,t,e=Ss||++Ns,r=[],u=ks||{time:Date.now(),ease:Hr,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,s=a.length;++c<s;)(t=a[c])&&uo(t,c,e,u),n.push(t)}return to(r,e)},ma.interrupt=function(){return this.each(T)},$o.select=function(n){var t=["string"==typeof n?ga(n,Jo):n];return t.parentNode=Go,p([t])},$o.selectAll=function(n){var t=Wo("string"==typeof n?pa(n,Jo):n);return t.parentNode=Go,p([t])};var Ma=$o.select(Go);ma.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(q(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(q(n,t,e))};var _a=$o.map({mouseenter:"mouseover",mouseleave:"mouseout"});_a.forEach(function(n){"on"+n in Jo&&_a.remove(n)});var ba="onselectstart"in Jo?null:a(Go.style,"userSelect"),wa=0;$o.mouse=function(n){return P(n,h())};var Sa=/WebKit/.test(Ko.navigator.userAgent)?-1:0;$o.touches=function(n,t){return arguments.length<2&&(t=h().touches),t?Wo(t).map(function(t){var e=P(n,t);return e.identifier=t.identifier,e}):[]},$o.behavior.drag=function(){function n(){this.on("mousedown.drag",o).on("touchstart.drag",a)}function t(){return $o.event.changedTouches[0].identifier}function e(n,t){return $o.touches(n).filter(function(n){return n.identifier===t})[0]}function r(n,t,e,r){return function(){function o(){var n=t(l,g),e=n[0]-v[0],r=n[1]-v[1];d|=e|r,v=n,f({type:"drag",x:n[0]+c[0],y:n[1]+c[1],dx:e,dy:r})}function a(){m.on(e+"."+p,null).on(r+"."+p,null),y(d&&$o.event.target===h),f({type:"dragend"})}var c,s=this,l=s.parentNode,f=u.of(s,arguments),h=$o.event.target,g=n(),p=null==g?"drag":"drag-"+g,v=t(l,g),d=0,m=$o.select(Ko).on(e+"."+p,o).on(r+"."+p,a),y=D();i?(c=i.apply(s,arguments),c=[c.x-v[0],c.y-v[1]]):c=[0,0],f({type:"dragstart"})}}var u=g(n,"drag","dragstart","dragend"),i=null,o=r(c,$o.mouse,"mousemove","mouseup"),a=r(t,e,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},$o.rebind(n,u,"on")};var ka=Math.PI,Ea=2*ka,Aa=ka/2,Ca=1e-6,Na=Ca*Ca,La=ka/180,Ta=180/ka,qa=Math.SQRT2,za=2,Ra=4;$o.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=O(v),o=i/(za*h)*(e*Y(qa*t+v)-F(v));return[r+o*s,u+o*l,i*e/O(qa*t+v)]}return[r+n*s,u+n*l,i*Math.exp(qa*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+Ra*f)/(2*i*za*h),p=(c*c-i*i-Ra*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/qa;return e.duration=1e3*y,e},$o.behavior.zoom=function(){function n(n){n.on(A,s).on(Ua+".zoom",h).on(C,p).on("dblclick.zoom",v).on(L,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(M.range().map(function(n){return(n-S.x)/S.k}).map(M.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u($o.mouse(r),h),a(i)}function e(){f.on(C,Ko===r?p:null).on(N,null),g(l&&$o.event.target===s),c(i)}var r=this,i=q.of(r,arguments),s=$o.event.target,l=0,f=$o.select(Ko).on(C,n).on(N,e),h=t($o.mouse(r)),g=D();T.call(r),o(i)}function l(){function n(){var n=$o.touches(p);return g=S.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=t(n))}),n}function e(){for(var t=$o.event.changedTouches,e=0,i=t.length;i>e;++e)d[t[e].identifier]=null;var o=n(),c=Date.now();if(1===o.length){if(500>c-x){var s=o[0],l=d[s.identifier];r(2*S.k),u(s,l),f(),a(v)}x=c}else if(o.length>1){var s=o[0],h=o[1],g=s[0]-h[0],p=s[1]-h[1];m=g*g+p*p}}function i(){for(var n,t,e,i,o=$o.touches(p),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=d[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=m&&Math.sqrt(l/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*g)}x=null,u(n,t),a(v)}function h(){if($o.event.touches.length){for(var t=$o.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}b.on(M,null).on(_,null),w.on(A,s).on(L,l),k(),c(v)}var g,p=this,v=q.of(p,arguments),d={},m=0,y=$o.event.changedTouches[0].identifier,M="touchmove.zoom-"+y,_="touchend.zoom-"+y,b=$o.select(Ko).on(M,i).on(_,h),w=$o.select(p).on(A,null).on(L,e),k=D();T.call(p),e(),o(v)}function h(){var n=q.of(this,arguments);y?clearTimeout(y):(T.call(this),o(n)),y=setTimeout(function(){y=null,c(n)},50),f();var e=m||$o.mouse(this);d||(d=t(e)),r(Math.pow(2,.002*Da())*S.k),u(e,d),a(n)}function p(){d=null}function v(){var n=q.of(this,arguments),e=$o.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,$o.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var d,m,y,x,M,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=Pa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",L="touchstart.zoom",q=g(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=q.of(this,arguments),t=S;Ss?$o.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=$o.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Pa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,M=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},$o.rebind(n,q,"on")};var Da,Pa=[0,1/0],Ua="onwheel"in Jo?(Da=function(){return-$o.event.deltaY*($o.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Jo?(Da=function(){return $o.event.wheelDelta},"mousewheel"):(Da=function(){return-$o.event.detail},"MozMousePixelScroll");Z.prototype.toString=function(){return this.rgb()+""},$o.hsl=function(n,t,e){return 1===arguments.length?n instanceof X?V(n.h,n.s,n.l):st(""+n,lt,V):V(+n,+t,+e)};var ja=X.prototype=new Z;ja.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),V(this.h,this.s,this.l/n)},ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),V(this.h,this.s,n*this.l)},ja.rgb=function(){return $(this.h,this.s,this.l)},$o.hcl=function(n,t,e){return 1===arguments.length?n instanceof W?B(n.h,n.c,n.l):n instanceof K?nt(n.l,n.a,n.b):nt((n=ft((n=$o.rgb(n)).r,n.g,n.b)).l,n.a,n.b):B(+n,+t,+e)};var Ha=W.prototype=new Z;Ha.brighter=function(n){return B(this.h,this.c,Math.min(100,this.l+Fa*(arguments.length?n:1)))},Ha.darker=function(n){return B(this.h,this.c,Math.max(0,this.l-Fa*(arguments.length?n:1)))},Ha.rgb=function(){return J(this.h,this.c,this.l).rgb()},$o.lab=function(n,t,e){return 1===arguments.length?n instanceof K?G(n.l,n.a,n.b):n instanceof W?J(n.l,n.c,n.h):ft((n=$o.rgb(n)).r,n.g,n.b):G(+n,+t,+e)};var Fa=18,Oa=.95047,Ya=1,Ia=1.08883,Za=K.prototype=new Z;Za.brighter=function(n){return G(Math.min(100,this.l+Fa*(arguments.length?n:1)),this.a,this.b)},Za.darker=function(n){return G(Math.max(0,this.l-Fa*(arguments.length?n:1)),this.a,this.b)},Za.rgb=function(){return Q(this.l,this.a,this.b)},$o.rgb=function(n,t,e){return 1===arguments.length?n instanceof at?ot(n.r,n.g,n.b):st(""+n,ot,$):ot(~~n,~~t,~~e)};var Va=at.prototype=new Z;Va.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),ot(Math.min(255,~~(t/n)),Math.min(255,~~(e/n)),Math.min(255,~~(r/n)))):ot(u,u,u)},Va.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),ot(~~(n*this.r),~~(n*this.g),~~(n*this.b))},Va.hsl=function(){return lt(this.r,this.g,this.b)},Va.toString=function(){return"#"+ct(this.r)+ct(this.g)+ct(this.b)};var Xa=$o.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Xa.forEach(function(n,t){Xa.set(n,ut(t))}),$o.functor=pt,$o.xhr=dt(vt),$o.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=$o.xhr(n,t,i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o.row(e)}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function o(t){return t.map(a).join(n)}function a(n){return c.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var c=new RegExp('["'+n+"\n]"),s=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=c)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}l=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++l):10===r&&(u=!0),n.substring(t+1,e).replace(/""/g,'"')}for(;c>l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==s)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],c=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new i,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(a).join(n)].concat(t.map(function(t){return u.map(function(n){return a(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(o).join("\n")},e},$o.csv=$o.dsv(",","text/csv"),$o.tsv=$o.dsv("	","text/tab-separated-values");var $a,Ba,Wa,Ja,Ga,Ka=Ko[a(Ko,"requestAnimationFrame")]||function(n){setTimeout(n,17)};$o.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Ba?Ba.n=i:$a=i,Ba=i,Wa||(Ja=clearTimeout(Ja),Wa=1,Ka(xt))},$o.timer.flush=function(){Mt(),_t()};var Qa=".",nc=",",tc=[3,3],ec="$",rc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(bt);$o.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=$o.round(n,wt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),rc[8+e/3]},$o.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)},$o.format=function(n){var t=uc.exec(n),e=t[1]||" ",r=t[2]||">",u=t[3]||"",i=t[4]||"",o=t[5],a=+t[6],c=t[7],s=t[8],l=t[9],f=1,h="",g=!1;switch(s&&(s=+s.substring(1)),(o||"0"===e&&"="===r)&&(o=e="0",r="=",c&&(a-=Math.floor((a-1)/4))),l){case"n":c=!0,l="g";break;case"%":f=100,h="%",l="f";break;case"p":f=100,h="%",l="r";break;case"b":case"o":case"x":case"X":"#"===i&&(i="0"+l.toLowerCase());case"c":case"d":g=!0,s=0;break;case"s":f=-1,l="r"}"#"===i?i="":"$"===i&&(i=ec),"r"!=l||s||(l="g"),null!=s&&("g"==l?s=Math.max(1,Math.min(21,s)):("e"==l||"f"==l)&&(s=Math.max(0,Math.min(20,s)))),l=ic.get(l)||St;var p=o&&c;return function(n){if(g&&n%1)return"";var t=0>n||0===n&&0>1/n?(n=-n,"-"):u;if(0>f){var v=$o.formatPrefix(n,s);n=v.scale(n),h=v.symbol}else n*=f;n=l(n,s);var d=n.lastIndexOf("."),m=0>d?n:n.substring(0,d),y=0>d?"":Qa+n.substring(d+1);!o&&c&&(m=oc(m));var x=i.length+m.length+y.length+(p?0:t.length),M=a>x?new Array(x=a-x+1).join(e):"";return p&&(m=oc(M+m)),t+=i,n=m+y,("<"===r?t+n+M:">"===r?M+t+n:"^"===r?M.substring(0,x>>=1)+t+n+M.substring(x):t+(p?n:M+n))+h}};var uc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ic=$o.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=$o.round(n,wt(n,t))).toFixed(Math.max(0,Math.min(20,wt(n*(1+1e-15),t))))}}),oc=vt;if(tc){var ac=tc.length;oc=function(n){for(var t=n.length,e=[],r=0,u=tc[0];t>0&&u>0;)e.push(n.substring(t-=u,t+u)),u=tc[r=(r+1)%ac];return e.reverse().join(nc)}}$o.geo={},kt.prototype={s:0,t:0,add:function(n){Et(n,this.t,cc),Et(cc.s,this.s,this),this.s?this.t+=cc.t:this.s=cc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var cc=new kt;$o.geo.stream=function(n,t){n&&sc.hasOwnProperty(n.type)?sc[n.type](n,t):At(n,t)};var sc={Feature:function(n,t){At(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)At(e[r].geometry,t)}},lc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){Ct(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)Ct(e[r],t,0)},Polygon:function(n,t){Nt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)Nt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)At(e[r],t)}};$o.geo.area=function(n){return fc=0,$o.geo.stream(n,gc),fc};var fc,hc=new kt,gc={sphere:function(){fc+=4*ka},point:c,lineStart:c,lineEnd:c,polygonStart:function(){hc.reset(),gc.lineStart=Lt},polygonEnd:function(){var n=2*hc;fc+=0>n?4*ka+n:n,gc.lineStart=gc.lineEnd=gc.point=c}};$o.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=Tt([t*La,e*La]);if(m){var u=zt(m,r),i=[u[1],-u[0],0],o=zt(i,u);Pt(o),o=Ut(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ta*s,d=aa(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ta;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ta;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=aa(r)>180?r+(r>0?360:-360):r}else v=n,d=e;gc.point(n,e),t(n,e)}function i(){gc.lineStart()}function o(){u(v,d),gc.lineEnd(),aa(y)>Ca&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var l,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,gc.polygonStart()},polygonEnd:function(){gc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>hc?(l=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],$o.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),$o.geo.centroid=function(n){pc=vc=dc=mc=yc=xc=Mc=_c=bc=wc=Sc=0,$o.geo.stream(n,kc);var t=bc,e=wc,r=Sc,u=t*t+e*e+r*r;return Na>u&&(t=xc,e=Mc,r=_c,Ca>vc&&(t=dc,e=mc,r=yc),u=t*t+e*e+r*r,Na>u)?[0/0,0/0]:[Math.atan2(e,t)*Ta,H(r/Math.sqrt(u))*Ta]};var pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc,Sc,kc={sphere:c,point:Ht,lineStart:Ot,lineEnd:Yt,polygonStart:function(){kc.lineStart=It},polygonEnd:function(){kc.lineStart=Ot}},Ec=Bt(Zt,Qt,te,[-ka,-ka/2]),Ac=1e9;$o.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},($o.geo.conicEqualArea=function(){return oe(ae)}).raw=ae,$o.geo.albers=function(){return $o.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},$o.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=$o.geo.albers(),o=$o.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=$o.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+Ca,f+.12*s+Ca],[l-.214*s-Ca,f+.234*s-Ca]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+Ca,f+.166*s+Ca],[l-.115*s-Ca,f+.234*s-Ca]]).stream(c).point,n},n.scale(1070)};var Cc,Nc,Lc,Tc,qc,zc,Rc={point:c,lineStart:c,lineEnd:c,polygonStart:function(){Nc=0,Rc.lineStart=ce},polygonEnd:function(){Rc.lineStart=Rc.lineEnd=Rc.point=c,Cc+=aa(Nc/2)}},Dc={point:se,lineStart:c,lineEnd:c,polygonStart:c,polygonEnd:c},Pc={point:he,lineStart:ge,lineEnd:pe,polygonStart:function(){Pc.lineStart=ve},polygonEnd:function(){Pc.point=he,Pc.lineStart=ge,Pc.lineEnd=pe}};$o.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),$o.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Cc=0,$o.geo.stream(n,u(Rc)),Cc},n.centroid=function(n){return dc=mc=yc=xc=Mc=_c=bc=wc=Sc=0,$o.geo.stream(n,u(Pc)),Sc?[bc/Sc,wc/Sc]:_c?[xc/_c,Mc/_c]:yc?[dc/yc,mc/yc]:[0/0,0/0]},n.bounds=function(n){return qc=zc=-(Lc=Tc=1/0),$o.geo.stream(n,u(Dc)),[[Lc,Tc],[qc,zc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||ye(n):vt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new le:new de(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection($o.geo.albersUsa()).context(null)},$o.geo.transform=function(n){return{stream:function(t){var e=new xe(t);for(var r in n)e[r]=n[r];return e}}},xe.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()
-},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},$o.geo.projection=_e,$o.geo.projectionMutator=be,($o.geo.equirectangular=function(){return _e(Se)}).raw=Se.invert=Se,$o.geo.rotation=function(n){function t(t){return t=n(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t}return n=Ee(n[0]%360*La,n[1]*La,n.length>2?n[2]*La:0),t.invert=function(t){return t=n.invert(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t},t},ke.invert=Se,$o.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=Ee(-n[0]*La,-n[1]*La,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ta,n[1]*=Ta}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=Le((t=+r)*La,u*La),n):t},n.precision=function(r){return arguments.length?(e=Le(t*La,(u=+r)*La),n):u},n.angle(90)},$o.geo.distance=function(n,t){var e,r=(t[0]-n[0])*La,u=n[1]*La,i=t[1]*La,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},$o.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return $o.range(Math.ceil(i/d)*d,u,d).map(h).concat($o.range(Math.ceil(s/m)*m,c,m).map(g)).concat($o.range(Math.ceil(r/p)*p,e,p).filter(function(n){return aa(n%d)>Ca}).map(l)).concat($o.range(Math.ceil(a/v)*v,o,v).filter(function(n){return aa(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=qe(a,o,90),f=ze(r,e,y),h=qe(s,c,90),g=ze(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},$o.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=Re,u=De;return n.distance=function(){return $o.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},$o.geo.interpolate=function(n,t){return Pe(n[0]*La,n[1]*La,t[0]*La,t[1]*La)},$o.geo.length=function(n){return Uc=0,$o.geo.stream(n,jc),Uc};var Uc,jc={sphere:c,point:c,lineStart:Ue,lineEnd:c,polygonStart:c,polygonEnd:c},Hc=je(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});($o.geo.azimuthalEqualArea=function(){return _e(Hc)}).raw=Hc;var Fc=je(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},vt);($o.geo.azimuthalEquidistant=function(){return _e(Fc)}).raw=Fc,($o.geo.conicConformal=function(){return oe(He)}).raw=He,($o.geo.conicEquidistant=function(){return oe(Fe)}).raw=Fe;var Oc=je(function(n){return 1/n},Math.atan);($o.geo.gnomonic=function(){return _e(Oc)}).raw=Oc,Oe.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Aa]},($o.geo.mercator=function(){return Ye(Oe)}).raw=Oe;var Yc=je(function(){return 1},Math.asin);($o.geo.orthographic=function(){return _e(Yc)}).raw=Yc;var Ic=je(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});($o.geo.stereographic=function(){return _e(Ic)}).raw=Ic,Ie.invert=function(n,t){return[Math.atan2(F(n),Math.cos(t)),H(Math.sin(t)/O(n))]},($o.geo.transverseMercator=function(){return Ye(Ie)}).raw=Ie,$o.geom={},$o.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u,i,o,a,c,s,l,f,h,g,p,v=pt(e),d=pt(r),m=n.length,y=m-1,x=[],M=[],_=0;if(v===Ze&&r===Ve)t=n;else for(i=0,t=[];m>i;++i)t.push([+v.call(this,u=n[i],i),+d.call(this,u,i)]);for(i=1;m>i;++i)(t[i][1]<t[_][1]||t[i][1]==t[_][1]&&t[i][0]<t[_][0])&&(_=i);for(i=0;m>i;++i)i!==_&&(c=t[i][1]-t[_][1],a=t[i][0]-t[_][0],x.push({angle:Math.atan2(c,a),index:i}));for(x.sort(function(n,t){return n.angle-t.angle}),g=x[0].angle,h=x[0].index,f=0,i=1;y>i;++i){if(o=x[i].index,g==x[i].angle){if(a=t[h][0]-t[_][0],c=t[h][1]-t[_][1],s=t[o][0]-t[_][0],l=t[o][1]-t[_][1],a*a+c*c>=s*s+l*l){x[i].index=-1;continue}x[f].index=-1}g=x[i].angle,f=i,h=o}for(M.push(_),i=0,o=0;2>i;++o)x[o].index>-1&&(M.push(x[o].index),i++);for(p=M.length;y>o;++o)if(!(x[o].index<0)){for(;!Xe(M[p-2],M[p-1],x[o].index,t);)--p;M[p++]=x[o].index}var b=[];for(i=p-1;i>=0;--i)b.push(n[M[i]]);return b}var e=Ze,r=Ve;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},$o.geom.polygon=function(n){return ha(n,Zc),n};var Zc=$o.geom.polygon.prototype=[];Zc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Zc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Zc.clip=function(n){for(var t,e,r,u,i,o,a=We(n),c=-1,s=this.length-We(this),l=this[s-1];++c<s;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],$e(o,l,u)?($e(i,l,u)||n.push(Be(i,o,l,u)),n.push(o)):$e(i,l,u)&&n.push(Be(i,o,l,u)),i=o;a&&n.push(n[0]),l=u}return n};var Vc,Xc,$c,Bc,Wc,Jc=[],Gc=[];rr.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(ir),t.length},vr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},dr.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=Mr(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(yr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,xr(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(xr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,yr(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?Mr(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,yr(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,xr(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,yr(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,xr(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,yr(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,xr(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},$o.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return _r(e(n),a).cells.forEach(function(e,a){var c=e.edges,s=e.site,l=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):s.x>=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ze,u=Ve,i=r,o=u,a=Kc;return n?t(n):(t.links=function(n){return _r(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return _r(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(ir),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c<s;)u=l,i=f,l=a[c].edge,f=l.l===o?l.r:l.l,r<i.i&&r<f.i&&wr(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=pt(r=n),t):r},t.y=function(n){return arguments.length?(o=pt(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?Kc:n,t):a===Kc?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===Kc?null:a&&a[1]},t)};var Kc=[[-1e6,-1e6],[1e6,1e6]];$o.geom.delaunay=function(n){return $o.geom.voronoi().triangles(n)},$o.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,l=n.y;if(null!=c)if(aa(c-e)+aa(l-r)<.01)s(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,s(n,f,c,l,u,i,o,a),s(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else s(n,t,e,r,u,i,o,a)}function s(n,t,e,r,u,o,a,c){var s=.5*(u+a),l=.5*(o+c),f=e>=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=Er()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=pt(a),M=pt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.x<v&&(v=l.x),l.y<d&&(d=l.y),l.x>m&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=Er();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){Ar(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=l=null,k}var o,a=Ze,c=Ve;return(o=arguments.length)?(a=Sr,c=kr,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},$o.interpolateRgb=Cr,$o.interpolateObject=Nr,$o.interpolateNumber=Lr,$o.interpolateString=Tr;var Qc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;$o.interpolate=qr,$o.interpolators=[function(n,t){var e=typeof t;return("string"===e?Xa.has(t)||/^(#|rgb\(|hsl\()/.test(t)?Cr:Tr:t instanceof Z?Cr:"object"===e?Array.isArray(t)?zr:Nr:Lr)(n,t)}],$o.interpolateArray=zr;var ns=function(){return vt},ts=$o.map({linear:ns,poly:Fr,quad:function(){return Ur},cubic:function(){return jr},sin:function(){return Or},exp:function(){return Yr},circle:function(){return Ir},elastic:Zr,back:Vr,bounce:function(){return Xr}}),es=$o.map({"in":vt,out:Dr,"in-out":Pr,"out-in":function(n){return Pr(Dr(n))}});$o.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ts.get(e)||ns,r=es.get(r)||vt,Rr(r(e.apply(null,Bo.call(arguments,1))))},$o.interpolateHcl=$r,$o.interpolateHsl=Br,$o.interpolateLab=Wr,$o.interpolateRound=Jr,$o.transform=function(n){var t=Jo.createElementNS($o.ns.prefix.svg,"g");return($o.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Gr(e?e.matrix:rs)})(n)},Gr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var rs={a:1,b:0,c:0,d:1,e:0,f:0};$o.interpolateTransform=tu,$o.layout={},$o.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(uu(n[e]));return t}},$o.layout.chord=function(){function n(){var n,s,f,h,g,p={},v=[],d=$o.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(s=0,g=-1;++g<i;)s+=u[h][g];v.push(s),m.push($o.range(i)),n+=s}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(Ea-l*i)/n,s=0,h=-1;++h<i;){for(f=s,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=s,b=s+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:s,value:(s-f)/n},s+=l}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,s={},l=0;return s.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,s):u},s.padding=function(n){return arguments.length?(l=n,e=r=null,s):l},s.sortGroups=function(n){return arguments.length?(o=n,e=r=null,s):o},s.sortSubgroups=function(n){return arguments.length?(a=n,e=null,s):a},s.sortChords=function(n){return arguments.length?(c=n,e&&t(),s):c},s.chords=function(){return e||n(),e},s.groups=function(){return r||n(),r},s},$o.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=1/Math.sqrt(i*i+o*o);if(v>(u-e)*a){var c=t.charge*a*a;return n.px-=i*c,n.py-=o*c,!0}if(t.point&&isFinite(a)){var c=t.pointCharge*a*a;n.px-=i*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=$o.event.x,n.py=$o.event.y,a.resume()}var e,r,u,i,o,a={},c=$o.dispatch("start","tick","end"),s=[1,1],l=.9,f=us,h=is,g=-30,p=.1,v=.8,d=[],m=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,v,y,x,M,_=d.length,b=m.length;for(e=0;b>e;++e)a=m[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(v=x*x+M*M)&&(v=r*i[e]*((v=Math.sqrt(v))-u[e])/v,x*=v,M*=v,h.x-=x*(y=f.weight/(h.weight+f.weight)),h.y-=M*y,f.x+=x*(y=1-y),f.y+=M*y);if((y=r*p)&&(x=s[0]/2,M=s[1]/2,e=-1,y))for(;++e<_;)a=d[e],a.x+=(x-a.x)*y,a.y+=(M-a.y)*y;if(g)for(fu(t=$o.geom.quadtree(d),r,o),e=-1;++e<_;)(a=d[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=d[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(d=n,a):d},a.links=function(n){return arguments.length?(m=n,a):m},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.gravity=function(n){return arguments.length?(p=+n,a):p},a.theta=function(n){return arguments.length?(v=+n,a):v},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),$o.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=m[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++a<s;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=d.length,l=m.length,p=s[0],v=s[1];for(t=0;c>t;++t)(r=d[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=m[t],"number"==typeof r.source&&(r.source=d[r.source]),"number"==typeof r.target&&(r.target=d[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=d[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,m[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,m[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,d[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=$o.behavior.drag().origin(vt).on("dragstart.force",au).on("drag.force",t).on("dragend.force",cu)),arguments.length?(this.on("mouseover.force",su).on("mouseout.force",lu).call(e),void 0):e},$o.rebind(a,c,"on")};var us=20,is=1;$o.layout.hierarchy=function(){function n(t,o,a){var c=u.call(e,t,o);if(t.depth=o,a.push(t),c&&(s=c.length)){for(var s,l,f=-1,h=t.children=new Array(s),g=0,p=o+1;++f<s;)l=h[f]=n(c[f],p,a),l.parent=t,g+=l.value;r&&h.sort(r),i&&(t.value=g)}else delete t.children,i&&(t.value=+i.call(e,t,o)||0);return t}function t(n,r){var u=n.children,o=0;if(u&&(a=u.length))for(var a,c=-1,s=r+1;++c<a;)o+=t(u[c],s);else i&&(o=+i.call(e,n,r)||0);return i&&(n.value=o),o}function e(t){var e=[];return n(t,0,e),e}var r=vu,u=gu,i=pu;return e.sort=function(n){return arguments.length?(r=n,e):r},e.children=function(n){return arguments.length?(u=n,e):u},e.value=function(n){return arguments.length?(i=n,e):i},e.revalue=function(n){return t(n,0),n},e},$o.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++s<o;)n(a=i[s],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=$o.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},hu(e,r)},$o.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/$o.sum(o),s=$o.range(i.length);null!=e&&s.sort(e===os?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var l=[];return s.forEach(function(n){var t;l[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),l}var t=Number,e=os,r=0,u=Ea;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var os={};$o.layout.stack=function(){function n(a,c){var s=a.map(function(e,r){return t.call(n,e,r)}),l=s.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,l,c);s=$o.permute(s,f),l=$o.permute(l,f);var h,g,p,v=r.call(n,l,c),d=s.length,m=s[0].length;for(g=0;m>g;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=vt,e=Mu,r=_u,u=xu,i=mu,o=yu;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||Mu,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||_u,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=$o.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(bu),i=n.map(wu),o=$o.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return $o.range(n.length).reverse()},"default":Mu}),cs=$o.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:_u});$o.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=s[i],a>=l[0]&&a<=l[1]&&(o=c[$o.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=Au,u=ku;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=pt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return Eu(n,t)}:pt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},$o.layout.tree=function(){function n(n,i){function o(n,t){var r=n.children,u=n._tree;if(r&&(i=r.length)){for(var i,a,s,l=r[0],f=l,h=-1;++h<i;)s=r[h],o(s,a),f=c(s,a,f),a=s;Pu(n);var g=.5*(l._tree.prelim+s._tree.prelim);t?(u.prelim=t._tree.prelim+e(n,t),u.mod=u.prelim-g):u.prelim=g}else t&&(u.prelim=t._tree.prelim+e(n,t))}function a(n,t){n.x=n._tree.prelim+t;var e=n.children;if(e&&(r=e.length)){var r,u=-1;for(t+=n._tree.mod;++u<r;)a(e[u],t)}}function c(n,t,r){if(t){for(var u,i=n,o=n,a=t,c=n.parent.children[0],s=i._tree.mod,l=o._tree.mod,f=a._tree.mod,h=c._tree.mod;a=Lu(a),i=Nu(i),a&&i;)c=Nu(c),o=Lu(o),o._tree.ancestor=n,u=a._tree.prelim+f-i._tree.prelim-s+e(a,i),u>0&&(Uu(ju(a,n,r),n,u),s+=u,l+=u),f+=a._tree.mod,s+=i._tree.mod,h+=c._tree.mod,l+=o._tree.mod;a&&!Lu(o)&&(o._tree.thread=a,o._tree.mod+=f-l),i&&!Nu(c)&&(c._tree.thread=i,c._tree.mod+=s-h,r=n)}return r}var s=t.call(this,n,i),l=s[0];Du(l,function(n,t){n._tree={ancestor:n,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),o(l),a(l,-l._tree.prelim);var f=Tu(l,zu),h=Tu(l,qu),g=Tu(l,Ru),p=f.x-e(f,h)/2,v=h.x+e(h,f)/2,d=g.depth||1;return Du(l,u?function(n){n.x*=r[0],n.y=n.depth*r[1],delete n._tree}:function(n){n.x=(n.x-p)/(v-p)*r[0],n.y=n.depth/d*r[1],delete n._tree}),s}var t=$o.layout.hierarchy().sort(null).value(null),e=Cu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},hu(n,t)},$o.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Du(a,function(n){n.r=+l(n.value)}),Du(a,Iu),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Du(a,function(n){n.r+=f}),Du(a,Iu),Du(a,function(n){n.r-=f})}return Xu(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=$o.layout.hierarchy().sort(Hu),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},hu(n,e)},$o.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Du(c,function(n){var t=n.children;t&&t.length?(n.x=Wu(t),n.y=Bu(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ju(c),f=Gu(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Du(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=$o.layout.hierarchy().sort(null).value(null),e=Cu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},hu(n,t)},$o.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++i<o;)u=n[i],u.x=a,u.y=s,u.dy=l,a+=u.dx=Math.min(e.x+e.dx-a,l?c(u.area/l):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=l,e.dy-=l}else{for((r||l>e.dx)&&(l=e.dx);++i<o;)u=n[i],u.x=a,u.y=s,u.dx=l,s+=u.dy=Math.min(e.y+e.dy-s,l?c(u.area/l):0);u.z=!1,u.dy+=e.y+e.dy-s,e.x+=l,e.dx-=l}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=s[0],i.dy=s[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=$o.layout.hierarchy(),c=Math.round,s=[1,1],l=null,f=Ku,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(s=n,i):s},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ku(t):Qu(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Qu(t,n)}if(!arguments.length)return l;var r;return f=null==(l=n)?Ku:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},hu(i,a)},$o.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=$o.random.normal.apply($o,arguments);return function(){return Math.exp(n())}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t/n}}},$o.scale={};var ss={floor:vt,ceil:vt};$o.scale.linear=function(){return oi([0,1],[0,1],qr,!1)};var ls={s:1,g:1,p:1,r:1,e:1};$o.scale.log=function(){return pi($o.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=$o.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};$o.scale.pow=function(){return vi($o.scale.linear(),1,[0,1])},$o.scale.sqrt=function(){return $o.scale.pow().exponent(.5)},$o.scale.ordinal=function(){return mi([],{t:"range",a:[[]]})},$o.scale.category10=function(){return $o.scale.ordinal().range(gs)},$o.scale.category20=function(){return $o.scale.ordinal().range(ps)},$o.scale.category20b=function(){return $o.scale.ordinal().range(vs)},$o.scale.category20c=function(){return $o.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(it),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(it),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(it),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(it);$o.scale.quantile=function(){return yi([],[])},$o.scale.quantize=function(){return xi(0,1,[0,1])},$o.scale.threshold=function(){return Mi([.5],[0,1])},$o.scale.identity=function(){return _i([0,1])},$o.svg={},$o.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ka>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=bi,e=wi,r=Si,u=ki;return n.innerRadius=function(e){return arguments.length?(t=pt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=pt(t),n):e},n.startAngle=function(t){return arguments.length?(r=pt(t),n):r},n.endAngle=function(t){return arguments.length?(u=pt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Aa,ys=Ea-Ca;$o.svg.line=function(){return Ei(vt)};var xs=$o.map({linear:Ai,"linear-closed":Ci,step:Ni,"step-before":Li,"step-after":Ti,basis:Ui,"basis-open":ji,"basis-closed":Hi,bundle:Fi,cardinal:Ri,"cardinal-open":qi,"cardinal-closed":zi,monotone:Xi});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];$o.svg.line.radial=function(){var n=Ei($i);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},Li.reverse=Ti,Ti.reverse=Li,$o.svg.area=function(){return Bi(vt)},$o.svg.area.radial=function(){var n=Bi($i);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},$o.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ka)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=Re,o=De,a=Wi,c=Si,s=ki;return n.radius=function(t){return arguments.length?(a=pt(t),n):a},n.source=function(t){return arguments.length?(i=pt(t),n):i},n.target=function(t){return arguments.length?(o=pt(t),n):o},n.startAngle=function(t){return arguments.length?(c=pt(t),n):c},n.endAngle=function(t){return arguments.length?(s=pt(t),n):s},n},$o.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=Re,e=De,r=Ji;return n.source=function(e){return arguments.length?(t=pt(e),n):t},n.target=function(t){return arguments.length?(e=pt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},$o.svg.diagonal.radial=function(){var n=$o.svg.diagonal(),t=Ji,e=n.projection;return n.projection=function(n){return arguments.length?e(Gi(t=n)):t},n},$o.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||no)(e.call(this,n,r))}var t=Qi,e=Ki;return n.type=function(e){return arguments.length?(t=pt(e),n):t},n.size=function(t){return arguments.length?(e=pt(t),n):e},n};var ws=$o.map({circle:no,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});$o.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*La),Cs=[],Ns=0;
-Cs.call=ma.call,Cs.empty=ma.empty,Cs.node=ma.node,Cs.size=ma.size,$o.transition=function(n){return arguments.length?Ss?n.transition():n:Ma.transition()},$o.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=v(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],s=-1,l=c.length;++s<l;)(r=c[s])&&(e=n.call(r,r.__data__,s,o))?("__data__"in r&&(e.__data__=r.__data__),uo(e,s,u,r.__transition__[u]),t.push(e)):t.push(null)}return to(i,u)},Cs.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=d(n);for(var c=-1,s=this.length;++c<s;)for(var l=this[c],f=-1,h=l.length;++f<h;)if(r=l[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&uo(u,g,o,i),t.push(u)}return to(a,o)},Cs.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=E(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a)&&t.push(r)}return to(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):C(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?tu:qr,a=$o.ns.qualify(n);return eo(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=$o.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Ko.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=qr(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return eo(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Ko.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return eo(this,"text",n,ro)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=$o.ease.apply($o,arguments)),C(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return C(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return C(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,C(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else C(this,function(r){var u=r.__transition__[e];(u.event||(u.event=$o.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,uo(e,s,i,r)),n.push(e)}return to(o,i)},$o.svg.axis=function(){function n(n){n.each(function(){var n,s=$o.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):vt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=$o.transition(p.exit()).style("opacity",Ca).remove(),m=$o.transition(p).style("opacity",1),y=ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),$o.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=io,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=io,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=oo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=oo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f.rangeBand()/2,A=function(n){return f(n)+E};v.call(n,A),m.call(n,A)}else v.call(n,l),m.call(n,f),d.call(n,f)})}var t,e=$o.scale.linear(),r=Ls,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ts?t+"":Ls,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Ls="bottom",Ts={top:1,right:1,bottom:1,left:1};$o.svg.brush=function(){function n(i){i.each(function(){var i=$o.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(d,vt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return qs[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=$o.transition(i),h=$o.transition(o);c&&(l=ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==$o.event.keyCode&&(C||(x=null,L[0]-=l[1],L[1]-=h[1],C=2),f())}function g(){32==$o.event.keyCode&&2==C&&(L[0]+=l[1],L[1]+=h[1],C=0,f())}function d(){var n=$o.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||($o.event.altKey?(x||(x=[(l[0]+l[1])/2,(h[0]+h[1])/2]),L[0]=l[+(n[0]<x[0])],L[1]=h[+(n[1]<x[1])]):x=null),E&&m(n,c,0)&&(e(S),u=!0),A&&m(n,s,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,a=ti(t),c=a[0],s=a[1],f=L[e],g=e?h:l,d=g[1]-g[0];return C&&(c-=f,s-=d+f),r=(e?v:p)?Math.max(c,Math.min(s,n[e])):n[e],C?u=(r+=f)+d:(x&&(f=Math.max(c,Math.min(s,2*x[e]-r))),r>f?(u=r,r=f):u=f),g[0]!=r||g[1]!=u?(e?o=null:i=null,g[0]=r,g[1]=u,!0):void 0}function y(){d(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),$o.select("body").style("cursor",null),T.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=$o.select($o.event.target),w=a.of(_,arguments),S=$o.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=D(),L=$o.mouse(_),T=$o.select(Ko).on("keydown.brush",u).on("keyup.brush",g);if($o.event.changedTouches?T.on("touchmove.brush",d).on("touchend.brush",y):T.on("mousemove.brush",d).on("mouseup.brush",y),S.interrupt().selectAll("*").interrupt(),C)L[0]=l[0]-L[0],L[1]=h[0]-L[1];else if(k){var q=+/w$/.test(k),z=+/^n/.test(k);M=[l[1-q]-L[0],h[1-z]-L[1]],L[0]=l[q],L[1]=h[z]}else $o.event.altKey&&(x=L.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),$o.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),d()}var i,o,a=g(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],h=[0,0],p=!0,v=!0,d=zs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:h,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?$o.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=zr(l,t.x),r=zr(h,t.y);return i=o=null,function(u){l=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,d=zs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,d=zs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(p=!!t[0],v=!!t[1]):c?p=!!t:s&&(v=!!t),n):c&&s?[p,v]:c?p:s?v:null},n.extent=function(t){var e,r,u,a,f;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(f=e,e=r,r=f),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(f=u,u=a,a=f),(u!=h[0]||a!=h[1])&&(h=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(f=e,e=r,r=f))),s&&(o?(u=o[0],a=o[1]):(u=h[0],a=h[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(f=u,u=a,a=f))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],h=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&h[0]==h[1]},$o.rebind(n,a,"on")};var qs={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},zs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=$o.time={},Ds=Date,Ps=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];ao.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Us.setUTCDate.apply(this._,arguments)},setDay:function(){Us.setUTCDay.apply(this._,arguments)},setFullYear:function(){Us.setUTCFullYear.apply(this._,arguments)},setHours:function(){Us.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Us.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Us.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Us.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Us.setUTCSeconds.apply(this._,arguments)},setTime:function(){Us.setTime.apply(this._,arguments)}};var Us=Date.prototype,js="%a %b %e %X %Y",Hs="%m/%d/%Y",Fs="%H:%M:%S",Os=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Ys=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Is=["January","February","March","April","May","June","July","August","September","October","November","December"],Zs=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];Rs.year=co(function(n){return n=Rs.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Rs.years=Rs.year.range,Rs.years.utc=Rs.year.utc.range,Rs.day=co(function(n){var t=new Ds(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Rs.days=Rs.day.range,Rs.days.utc=Rs.day.utc.range,Rs.dayOfYear=function(n){var t=Rs.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},Ps.forEach(function(n,t){n=n.toLowerCase(),t=7-t;var e=Rs[n]=co(function(n){return(n=Rs.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Rs.year(n).getDay();return Math.floor((Rs.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Rs[n+"s"]=e.range,Rs[n+"s"].utc=e.utc.range,Rs[n+"OfYear"]=function(n){var e=Rs.year(n).getDay();return Math.floor((Rs.dayOfYear(n)+(e+t)%7)/7)}}),Rs.week=Rs.sunday,Rs.weeks=Rs.sunday.range,Rs.weeks.utc=Rs.sunday.utc.range,Rs.weekOfYear=Rs.sundayOfYear,Rs.format=lo;var Vs=ho(Os),Xs=go(Os),$s=ho(Ys),Bs=go(Ys),Ws=ho(Is),Js=go(Is),Gs=ho(Zs),Ks=go(Zs),Qs=/^%/,nl={"-":"",_:" ",0:"0"},tl={a:function(n){return Ys[n.getDay()]},A:function(n){return Os[n.getDay()]},b:function(n){return Zs[n.getMonth()]},B:function(n){return Is[n.getMonth()]},c:lo(js),d:function(n,t){return po(n.getDate(),t,2)},e:function(n,t){return po(n.getDate(),t,2)},H:function(n,t){return po(n.getHours(),t,2)},I:function(n,t){return po(n.getHours()%12||12,t,2)},j:function(n,t){return po(1+Rs.dayOfYear(n),t,3)},L:function(n,t){return po(n.getMilliseconds(),t,3)},m:function(n,t){return po(n.getMonth()+1,t,2)},M:function(n,t){return po(n.getMinutes(),t,2)},p:function(n){return n.getHours()>=12?"PM":"AM"},S:function(n,t){return po(n.getSeconds(),t,2)},U:function(n,t){return po(Rs.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return po(Rs.mondayOfYear(n),t,2)},x:lo(Hs),X:lo(Fs),y:function(n,t){return po(n.getFullYear()%100,t,2)},Y:function(n,t){return po(n.getFullYear()%1e4,t,4)},Z:jo,"%":function(){return"%"}},el={a:vo,A:mo,b:_o,B:bo,c:wo,d:To,e:To,H:zo,I:zo,j:qo,L:Po,m:Lo,M:Ro,p:Uo,S:Do,U:xo,w:yo,W:Mo,x:So,X:ko,y:Ao,Y:Eo,Z:Co,"%":Ho},rl=/^\s*\d+/,ul=$o.map({am:0,pm:1});lo.utc=Fo;var il=Fo("%Y-%m-%dT%H:%M:%S.%LZ");lo.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Oo:il,Oo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Oo.toString=il.toString,Rs.second=co(function(n){return new Ds(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Rs.seconds=Rs.second.range,Rs.seconds.utc=Rs.second.utc.range,Rs.minute=co(function(n){return new Ds(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Rs.minutes=Rs.minute.range,Rs.minutes.utc=Rs.minute.utc.range,Rs.hour=co(function(n){var t=n.getTimezoneOffset()/60;return new Ds(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Rs.hours=Rs.hour.range,Rs.hours.utc=Rs.hour.utc.range,Rs.month=co(function(n){return n=Rs.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Rs.months=Rs.month.range,Rs.months.utc=Rs.month.utc.range;var ol=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],al=[[Rs.second,1],[Rs.second,5],[Rs.second,15],[Rs.second,30],[Rs.minute,1],[Rs.minute,5],[Rs.minute,15],[Rs.minute,30],[Rs.hour,1],[Rs.hour,3],[Rs.hour,6],[Rs.hour,12],[Rs.day,1],[Rs.day,2],[Rs.week,1],[Rs.month,1],[Rs.month,3],[Rs.year,1]],cl=[[lo("%Y"),Zt],[lo("%B"),function(n){return n.getMonth()}],[lo("%b %d"),function(n){return 1!=n.getDate()}],[lo("%a %d"),function(n){return n.getDay()&&1!=n.getDate()}],[lo("%I %p"),function(n){return n.getHours()}],[lo("%I:%M"),function(n){return n.getMinutes()}],[lo(":%S"),function(n){return n.getSeconds()}],[lo(".%L"),function(n){return n.getMilliseconds()}]],sl=Zo(cl);al.year=Rs.year,Rs.scale=function(){return Yo($o.scale.linear(),al,sl)};var ll={range:function(n,t,e){return $o.range(+n,+t,e).map(Io)}},fl=al.map(function(n){return[n[0].utc,n[1]]}),hl=[[Fo("%Y"),Zt],[Fo("%B"),function(n){return n.getUTCMonth()}],[Fo("%b %d"),function(n){return 1!=n.getUTCDate()}],[Fo("%a %d"),function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],[Fo("%I %p"),function(n){return n.getUTCHours()}],[Fo("%I:%M"),function(n){return n.getUTCMinutes()}],[Fo(":%S"),function(n){return n.getUTCSeconds()}],[Fo(".%L"),function(n){return n.getUTCMilliseconds()}]],gl=Zo(hl);return fl.year=Rs.year.utc,Rs.scale.utc=function(){return Yo($o.scale.linear(),fl,gl)},$o.text=dt(function(n){return n.responseText}),$o.json=function(n,t){return mt(n,"application/json",Vo,t)},$o.html=function(n,t){return mt(n,"text/html",Xo,t)},$o.xml=dt(function(n){return n.responseXML}),$o}();</script>
-<script type="text/javascript">var RadarChart = {
-  draw: function(id, d, options){
-    var cfg = {
-     radius: 5,
-     w: 600,
-     h: 600,
-     factor: .95,
-     factorLegend: 1,
-     levels: 3,
-     maxValue: 0,
-     radians: 2 * Math.PI,
-     opacityArea: 0.5,
-     color: d3.scale.category10(),
-     fontSize: 10
-    };
-    if('undefined' !== typeof options){
-      for(var i in options){
-        if('undefined' !== typeof options[i]){
-          cfg[i] = options[i];
-        }
-      }
-    }
-    cfg.maxValue = Math.max(cfg.maxValue, d3.max(d, function(i){return d3.max(i.map(function(o){return o.value;}))}));
-    var allAxis = (d[0].map(function(i, j){return i.axis}));
-    var total = allAxis.length;
-    var radius = cfg.factor*Math.min(cfg.w/2, cfg.h/2);
-    d3.select(id).select("svg").remove();
-    var g = d3.select(id).append("svg").attr("width", cfg.w).attr("height", 0.75 * cfg.h).append("g");
-
-    var tooltip;
-    function getPosition(i, range, factor, func){
-      factor = typeof factor !== 'undefined' ? factor : 1;
-      return range * (1 - factor * func(i * cfg.radians / total));
-    }
-    function getHorizontalPosition(i, range, factor){
-      return getPosition(i, range, factor, Math.sin);
-    }
-    function getVerticalPosition(i, range, factor){
-      return getPosition(i, range, factor, Math.cos);
-    }
-
-    for(var j=0; j<cfg.levels; j++){
-      var levelFactor = radius*((j+1)/cfg.levels);
-      g.selectAll(".levels").data(allAxis).enter().append("svg:line")
-       .attr("x1", function(d, i){return getHorizontalPosition(i, levelFactor);})
-       .attr("y1", function(d, i){return getVerticalPosition(i, levelFactor);})
-       .attr("x2", function(d, i){return getHorizontalPosition(i+1, levelFactor);})
-       .attr("y2", function(d, i){return getVerticalPosition(i+1, levelFactor);})
-       .attr("class", "line").style("stroke", "grey").style("stroke-width", "0.5px").attr("transform", "translate(" + (cfg.w/2-levelFactor) + ", " + (cfg.h/2-levelFactor) + ")");
-
-    }
-
-    series = 0;
-
-    var axis = g.selectAll(".axis").data(allAxis).enter().append("g").attr("class", "axis");
-
-    axis.append("line")
-        .attr("x1", cfg.w/2)
-        .attr("y1", cfg.h/2)
-        .attr("x2", function(j, i){return getHorizontalPosition(i, cfg.w/2, cfg.factor);})
-        .attr("y2", function(j, i){return getVerticalPosition(i, cfg.h/2, cfg.factor);})
-        .attr("class", "line").style("stroke", "grey").style("stroke-width", "1px");
-
-    axis.append("text").attr("class", function(d){ return "legend_" + d.replace("/", "") })
-        .text(function(d){return d})
-        .style("font-size", cfg.fontSize + "px")
-        .style("text-anchor", function(d, i){
-          var p = getHorizontalPosition(i, 0.5);
-          return (p < 0.4) ? "start" : ((p > 0.6) ? "end" : "middle");
-        })
-        .attr("transform", function(d, i){
-          var p = getVerticalPosition(i, cfg.h / 2);
-          return p < cfg.fontSize ? "translate(0, " + (cfg.fontSize - p) + ")" : "";
-        })
-        .attr("x", function(d, i){return getHorizontalPosition(i, cfg.w / 2, cfg.factorLegend);})
-        .attr("y", function(d, i){return getVerticalPosition(i, cfg.h / 2, cfg.factorLegend);});
- 
-    d.forEach(function(y, x){
-      dataValues = [];
-      g.selectAll(".nodes")
-        .data(y, function(j, i){
-          dataValues.push([
-            getHorizontalPosition(i, cfg.w/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor),
-            getVerticalPosition(i, cfg.h/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor)
-          ]);
-        });
-      dataValues.push(dataValues[0]);
-      g.selectAll(".area")
-                     .data([dataValues])
-                     .enter()
-                     .append("polygon")
-                     .attr("class", "radar-chart-serie"+series)
-                     .style("stroke-width", "2px")
-                     .style("stroke", cfg.color(series))
-                     .attr("points",function(d) {
-                         var str="";
-                         for(var pti=0;pti<d.length;pti++){
-                             str=str+d[pti][0]+","+d[pti][1]+" ";
-                         }
-                         return str;
-                      })
-                     .style("fill", function(j, i){return cfg.color(series)})
-                     .style("fill-opacity", cfg.opacityArea)
-                     .on('mouseover', function (d){
-                                        z = "polygon."+d3.select(this).attr("class");
-                                        g.selectAll("polygon").transition(200).style("fill-opacity", 0.1); 
-                                        g.selectAll(z).transition(200).style("fill-opacity", .7);
-                                      })
-                     .on('mouseout', function(){
-                                        g.selectAll("polygon").transition(200).style("fill-opacity", cfg.opacityArea);
-                     });
-      series++;
-    });
-    series=0;
-
-
-    d.forEach(function(y, x){
-      g.selectAll(".nodes")
-        .data(y).enter()
-        .append("svg:circle").attr("class", "radar-chart-serie"+series)
-        .attr('r', cfg.radius)
-        .attr("alt", function(j){return Math.max(j.value, 0)})
-        .attr("cx", function(j, i){
-          dataValues.push([
-            getHorizontalPosition(i, cfg.w/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor),
-            getVerticalPosition(i, cfg.h/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor)
-          ]);
-          return getHorizontalPosition(i, cfg.w/2, (Math.max(j.value, 0)/cfg.maxValue)*cfg.factor);
-        })
-        .attr("cy", function(j, i){
-          return getVerticalPosition(i, cfg.h/2, (Math.max(j.value, 0)/cfg.maxValue)*cfg.factor);
-        })
-        .attr("data-id", function(j){return j.axis})
-        .style("fill", cfg.color(series)).style("fill-opacity", .9)
-        .on('mouseover', function (d){
-                    newX =  parseFloat(d3.select(this).attr('cx')) - 10;
-                    newY =  parseFloat(d3.select(this).attr('cy')) - 5;
-                    tooltip.attr('x', newX).attr('y', newY).text(d.value).transition(200).style('opacity', 1);
-                    z = "polygon."+d3.select(this).attr("class");
-                    g.selectAll("polygon").transition(200).style("fill-opacity", 0.1); 
-                    g.selectAll(z).transition(200).style("fill-opacity", .7);
-                  })
-        .on('mouseout', function(){
-                    tooltip.transition(200).style('opacity', 0);
-                    g.selectAll("polygon").transition(200).style("fill-opacity", cfg.opacityArea);
-                  })
-        .append("svg:title")
-        .text(function(j){return Math.max(j.value, 0)});
-
-      series++;
-    });
-    //Tooltip
-    tooltip = g.append('text').style('opacity', 0).style('font-family', 'sans-serif').style('font-size', '13px');
-  }
-}
-
-</script>
-<script type="text/javascript">window.onload = function() {
-    var cpu = 88.6;
-    var mpi = 11.4;
-    var io = 0.0;
-
-    // Draw radar chart, choose its color based on application classification
-    var radar_data = [[ { axis: "CPU", value: cpu },
-                        { axis: "MPI", value: mpi },
-                        { axis: "I/O", value: io } ]];
-    var radar_options = { w: 200, h: 200, factor: 0.7, fontSize: 16, radius: 0, 
-                          opacityArea: 0.64, maxValue: 100, 
-                          color: function() {
-                              if ("cpu" == "io")  return "#ed8140";
-                              if ("cpu" == "cpu") return "#4fd32e";
-                              if ("cpu" == "mpi") return "#409ded";
-                              else return "#bb58d6";
-                          }
-                        };
-    RadarChart.draw("#time_radar", radar_data, radar_options);
-
-    // Wrap the exe path on slashes if necessary
-    var exe_path = document.getElementById("exe_path");
-    exe_path.innerHTML = exe_path.innerHTML.replace(/\//g, '/&#x200b;'); // insert a zero width space after slashes as a word wrap hint
-
-    // Format our byte value numbers to show at most 2 decimal places, but only if required to attain 3 digits of precision
-    // 1234.56 -> "1234"
-    // 12.3456 -> "12.3"
-    // 1.23456 -> "1.23"
-    // 0.00000 -> "0.00"
-    var formatNumber = function(num) {
-        if (num > 100) return new Number(num).toFixed(0); // 1234.56 -> 1234
-        if (num > 10)  return new Number(num).toFixed(1); // 12.3456 -> 12.3
-        else           return new Number(num).toFixed(2); // 1.23456 -> 1.23 and 0 -> 0.00
-    }
-
-    // Parse a number, but return 0 for invalid numbers, not NaN
-    var toNumber = function(num_str) {
-        var num = Number(num_str)
-        return isNaN(num) ? 0 : num;
-    }
-
-    // Scale byte values to bytes, kB, MB or GB as appropriate
-    var fillBytes = function(base_name, bytes_str, per_second) {
-        var units = "bytes";
-        var scale = 1.0;
-        var bytes = Number(bytes_str)
-        if      (isNaN(bytes)      ) { units = ""  ;                           }
-        else if (bytes > 1000000000) { units = "GB"; scale = 1*1000*1000*1000; }
-        else if (bytes > 1000000   ) { units = "MB"; scale = 1*1000*1000       }
-        else if (bytes > 1000      ) { units = "kB"; scale = 1*1000            }
-        var num = isNaN(bytes) ? bytes_str : formatNumber(bytes / scale);
-        var elementNum = document.getElementById(base_name + "_num");
-        elementNum.innerHTML = num;
-        var elementUnits = document.getElementById(base_name + "_units");
-        elementUnits.innerHTML = units + (per_second && !isNaN(bytes) ? "/s" : "");
-    };
-
-    // Fill all the byte numbers and their units with the scaled values
-    fillBytes("mpi_colrate", "1.65e+02", true);
-    fillBytes("mpi_p2prate", "0.00e+00", true);
-    fillBytes("io_readrate", "0.00e+00", true);
-    fillBytes("io_writerate", "0.00e+00", true);
-    fillBytes("ram_mean", "2.33e+07", false);
-    fillBytes("ram_peak", "2.35e+07", false);
-
-    // Set widths for all graphs
-    var bar = function(name, width) {
-        var rounded = Math.round(width);
-        if (!isFinite(rounded) || rounded < 1)
-            document.getElementById(name).style.width = "1px"
-        else
-            document.getElementById(name).style.width = rounded + "px";
-    };
-    bar("cpu_bar", cpu * 2);
-    bar("mpi_bar", mpi * 2);
-    bar("io_bar", io * 2);
-
-    bar("cpu_num_bar", toNumber("50.0") / 2);
-    bar("cpu_vec_bar", toNumber("50.0") / 2);
-    bar("cpu_mem_bar", toNumber("0.0") / 2);
-    bar("cpu_other_bar", toNumber("0.0") / 2);
-
-    bar("mpi_col_bar", toNumber("100.0") / 2);
-    bar("mpi_p2p_bar", toNumber("0.0") / 2);
-    var mpi_scale = Math.max(toNumber("1.65e+02"), toNumber("0.00e+00"));
-    bar("mpi_colrate_bar", 50 * toNumber("1.65e+02") / mpi_scale);
-    bar("mpi_p2prate_bar", 50 * toNumber("0.00e+00") / mpi_scale);
-
-    bar("io_read_bar", toNumber("0.0") / 2);
-    bar("io_write_bar", toNumber("0.0") / 2);
-    var io_scale = Math.max(toNumber("0.00e+00"), toNumber("0.00e+00"));
-    bar("io_readrate_bar", 50 * toNumber("0.00e+00") / io_scale);
-    bar("io_writerate_bar", 50 * toNumber("0.00e+00") / io_scale);
-
-    bar("ram_mean_bar", 50 * toNumber("2.33e+07") / toNumber("2.35e+07"));
-    bar("ram_peak_bar", 50);
-    bar("ram_node_bar", toNumber("2.8") / 2);
-
-    // Formatting replacement helper function
-    var replaceIn = function(elementId, re, new_text) {
-        element = document.getElementById(elementId);
-        element.innerHTML = element.innerHTML.replace(re, new_text);
-    };
-
-    // Add formatting for the overview advice section
-    replaceIn('overview_advice', /CPU/g,  '<span class="cpu_span">CPU</span>');
-    replaceIn('overview_advice', /MPI/g,  '<span class="mpi_span">MPI</span>');
-    replaceIn('overview_advice', /I\/O/g, '<span class="io_span">I\/O</span>');
-
-    // Add formatting for the CPU advice section
-    if ( 88.6 < 0.05 )
-        replaceIn('cpu_explanation', /application code/g, '<span class="cpu_span">application code</span>');
-    replaceIn('cpu_explanation', /vectorized instructions/g, '<span class="cpu_vec_span">vectorized instructions</span>');
-    replaceIn('cpu_explanation', /memory accesses/g,         '<span class="cpu_mem_span">memory accesses</span>');
-    replaceIn('cpu_explanation', /memory-bound/g,            '<span class="cpu_mem_span">memory-bound</span>');
-    replaceIn('cpu_explanation', /arithmetic-bound/g,        '<span class="cpu_num_span">arithmetic-bound</span>');
-    replaceIn('cpu_explanation', /numerical computation/g,   '<span class="cpu_num_span">numerical computation</span>');
-
-    // Add formatting for the MPI advice section
-    if ( 11.4 < 0.05 )
-        replaceIn('mpi_explanation', /MPI/g, '<span class="mpi_span">MPI</span>');
-    replaceIn('mpi_explanation', /collective calls/g, '<span class="mpi_col_span">collective calls</span>');
-    replaceIn('mpi_explanation', /point-to-point calls/g, '<span class="mpi_p2p_span">point-to-point calls</span>');
-    replaceIn('mpi_explanation', / very low/g,  ' <span class="mpi_colrate_span">very low</span>');
-    replaceIn('mpi_explanation', / low/g,       ' <span class="mpi_colrate_span">low</span>');
-    replaceIn('mpi_explanation', / average/g,   ' <span class="mpi_colrate_span">average</span>');
-    replaceIn('mpi_explanation', / very high/g, ' <span class="mpi_colrate_span">very high</span>');
-    replaceIn('mpi_explanation', / high/g,      ' <span class="mpi_colrate_span">high</span>');
-
-    // Add formatting for the I/O advice section
-    if ( 0.0 < 0.05 )
-        replaceIn('io_explanation', /I\/O/g, '<span class="io_span">I/O</span>');
-    replaceIn('io_explanation', /read operations/g, '<span class="io_read_span">read operations</span>');
-    replaceIn('io_explanation', /write operations/g, '<span class="io_write_span">write operations</span>');
-    replaceIn('io_explanation', / very low/g,  ' <span class="io_readrate_span">very low</span>');
-    replaceIn('io_explanation', / low/g,       ' <span class="io_readrate_span">low</span>');
-    replaceIn('io_explanation', / average/g,   ' <span class="io_readrate_span">average</span>');
-    replaceIn('io_explanation', / very high/g, ' <span class="io_readrate_span">very high</span>');
-    replaceIn('io_explanation', / high/g,      ' <span class="io_readrate_span">high</span>');
-
-    // Add formatting for the RAM advice section
-    replaceIn('ram_explanation', /high/g, ' <span class="ram_node_span">high</span>');
-    replaceIn('ram_explanation', /well-balanced/g, '<span class="ram_peak_span">well-balanced</span>');
-    replaceIn('ram_explanation', /significant variation/g, '<span class="ram_peak_span">significant variation</span>');
-    replaceIn('ram_explanation', /peak node memory usage/g, '<span class="ram_node_span">peak node memory usage</span>');
-
-    // Hide the error warning if the script got this far
-    document.getElementById('error').style.display = 'none';
-};
-</script>
-</head>
-
-<body>
-<div id="content">
-
-<div class="header">
-    <div class="logo"><img src="http://content.allinea.com/downloads/performance-report-logo.png" alt="Allinea Performance Reports" /></div>
-    <div class="header_left">
-        <div class="application_details">
-            <table>
-                <tr><td class="details_key">Executable:</td><td id="exe_name">mympiprog.x</td></tr>
-                <tr><td class="details_key">Resources:</td><td id="num_procs">32 processes, 2 nodes</td></tr>
-                <tr><td class="details_key">Machine:</td><td id="machine_name">cn182</td></tr>
-                <tr><td class="details_key">Start time:</td><td id="start_date">Wed Oct 15 16:56:23 2014</td></tr>
-                <tr><td class="details_key">Total time:</td><td id="time_string">7 seconds (0 minutes)</td></tr>
-                <tr><td class="details_key">Full path:</td><td id="exe_path">/home/user</td></tr>
-                <tr><td class="details_key">Notes:</td><td id="notes"></td></tr>
-            </table>
-        </div>
-    </div>
-    <div id="time_radar"></div>
-    <div class="clear"></div>
-</div>
-<hr />
-<div id="error">
-<p><strong>Error: javascript is not running</strong></p>
-<p>The graphs in this Performance Report require <strong>javascript</strong>, which is disabled or not working.</p>
-<p>Check whether your javascript support is enabled or try another browser.<p>
-<p>Remember, you can always contact <a href="mailto:support@allinea.com">support@allinea.com</a>, we're very nice!</p>
-</div>
-<div class="summary">
-    <div class="heading">Summary: mympiprog.x is <span class="cpu_span">CPU-bound</span> in this configuration</div>
-    <div>The total wallclock time was spent as follows:</div>
-    <table class="summary_table">
-        <tr><td class="heading_cpu">CPU</td><td class="percent">88.6%</td><td class="bar_graph"><div id="cpu_bar" /></td>
-            <td class="details"><p>Time spent running application code. High values are usually good.</p><p>This is <span id="summary_cpu_class">high</span>; check the CPU performance section for optimization advice.</p></td></tr>
-        <tr><td class="heading_mpi">MPI</td><td class="percent">11.4%</td><td class="bar_graph"><div id="mpi_bar" /></td>
-            <td class="details"><p>Time spent in MPI calls. High values are usually bad.</p><p>This is <span id="summary_mpi_class">very low</span>; this code may benefit from increasing the process count.</p></td></tr>
-        <tr><td class="heading_io">I/O</td><td class="percent">0.0%</td><td class="bar_graph"><div id="io_bar" /></td>
-            <td class="details"><p>Time spent in filesystem I/O. High values are usually bad.</p><p>This is <span id="summary_io_class">negligible</span>; there's no need to investigate I/O performance.</p></td></tr>
-    </table>
-    <div class="overview_general_advice"><p>This application run was <span class="cpu_span">CPU-bound</span>. A breakdown of this time and advice for investigating further is in the <span class="cpu_span">CPU</span> section below.</p><p id="overview_advice">As very little time is spent in MPI calls, this code may also benefit from running at larger scales.</p></div>
-</div>
-<hr />
-<div class="subsections">
-    <div class="ltcol">
-        <div class="heading_cpu">CPU</div>
-        <div>A breakdown of how the <span class="cpu_span">88.6</span>% total CPU time was spent:</div>
-        <table id="cpu_chart">
-            <tr><td>Scalar numeric ops</td><td class="right_cell"><span class="cpu_num_span">50.0</span>%</td><td class="mini_bar_graph"><div id="cpu_num_bar" /></td></tr>
-            <tr><td>Vector numeric ops</td><td class="right_cell"><span class="cpu_vec_span">50.0</span>%</td><td class="mini_bar_graph"><div id="cpu_vec_bar" /></td></tr>
-            <tr><td>Memory accesses</td><td class="right_cell"><span class="cpu_mem_span">0.0</span>%</td><td class="mini_bar_graph"><div id="cpu_mem_bar" /></td></tr>
-            <tr><td>Other</td><td class="right_cell"><span class="cpu_other_span">0.0</span>%</td><td class="mini_bar_graph"><div id="cpu_other_bar" /></td></tr>
-        </table>
-        <div id="cpu_explanation">
-            <div class="explanation">The per-core performance is arithmetic-bound. Try to increase the amount of time spent in vectorized instructions by analyzing the compiler's vectorization reports.</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="rtcol">
-        <div class="heading_mpi">MPI</div>
-        <div>Of the <span class="mpi_span">11.4</span>% total time spent in MPI calls:</div>
-        <table id="mpi_chart">
-            <tr><td>Time in collective calls</td><td class="right_cell"><span class="mpi_col_span">100.0</span>%</td><td class="mini_bar_graph"><div id="mpi_col_bar" /></td></tr>
-            <tr><td>Time in point-to-point calls</td><td class="right_cell"><span class="mpi_p2p_span">0.0</span>%</td><td class="mini_bar_graph"><div id="mpi_p2p_bar" /></td></tr>
-            <tr><td>Effective process collective rate</td><td class="right_cell"><span class="mpi_colrate_span"><span id="mpi_colrate_num">1.65e+02</span></span>&nbsp;<span id="mpi_colrate_units"></span></td><td class="mini_bar_graph"><div id="mpi_colrate_bar" /></td></tr>
-            <tr><td>Effective process point-to-point rate</td><td class="right_cell"><span class="mpi_p2prate_span"><span id="mpi_p2prate_num">0.00e+00</span></span>&nbsp;<span id="mpi_p2prate_units"></span></td><td class="mini_bar_graph"><div id="mpi_p2prate_bar" /></td></tr>
-        </table>
-        <div id="mpi_explanation">
-            <div class="explanation">Most of the time is spent in collective calls with a very low transfer rate. This suggests load imbalance is causing synchonization overhead; use an MPI profiler to investigate further.</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="clear"></div>
-</div>
-<div class="subsections">
-    <div class="ltcol">
-        <div class="heading_io">I/O</div>
-        <div>A breakdown of how the <span class="io_span">0.0</span>% total I/O time was spent:</div>
-        <table id="io_chart">
-            <tr><td>Time in reads</td><td class="right_cell"><span class="io_read_span">0.0</span>%</td><td class="mini_bar_graph"><div id="io_read_bar" /></td></tr>
-            <tr><td>Time in writes</td><td class="right_cell"><span class="io_write_span">0.0</span>%</td><td class="mini_bar_graph"><div id="io_write_bar" /></td></tr>
-            <tr><td>Effective process read rate</td><td class="right_cell"><span class="io_readrate_span"><span id="io_readrate_num">0.00e+00</span></span>&nbsp;<span id="io_readrate_units"></span></td><td class="mini_bar_graph"><div id="io_readrate_bar" /></td></tr>
-            <tr><td>Effective process write rate</td><td class="right_cell"><span class="io_writerate_span"><span id="io_writerate_num">0.00e+00</span></span>&nbsp;<span id="io_writerate_units"></span></td><td class="mini_bar_graph"><div id="io_writerate_bar" /></td></tr>
-        </table>
-        <div id="io_explanation">
-            <div class="explanation">No time is spent in I/O operations. There's nothing to optimize here!</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="rtcol">
-        <div class="heading_ram">Memory</div>
-        <div>Per-process memory usage may also affect scaling:</div>
-        <table id="ram_chart">
-            <tr><td>Mean process memory usage</td><td class="right_cell"><span class="ram_mean_span"><span id="ram_mean_num">2.33e+07</span></span>&nbsp;<span id="ram_mean_units"></span></td><td class="mini_bar_graph"><div id="ram_mean_bar" /></td></tr>
-            <tr><td>Peak process memory usage</td><td class="right_cell"><span class="ram_peak_span"><span id="ram_peak_num">2.35e+07</span></span>&nbsp;<span id="ram_peak_units"></span></td><td class="mini_bar_graph"><div id="ram_peak_bar" /></td></tr>
-            <tr><td>Peak node memory usage</td><td class="right_cell"><span class="ram_node_span">2.8</span>%</td><td class="mini_bar_graph"><div id="ram_node_bar" /></td></tr>
-        </table>
-        <div id="ram_explanation">
-            <div class="explanation">The peak node memory usage is very low. You may be able to reduce the amount of allocation time used by running with fewer MPI processes and more data on each process.</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="clear"></div>
-</div>
-</div> <!-- content -->
-</body>
-</html>
diff --git a/public/it4i/software/debuggers/mympiprog_32p_2014-10-15_16-56.txt b/public/it4i/software/debuggers/mympiprog_32p_2014-10-15_16-56.txt
deleted file mode 100644
index de8449179640fd943a9f007f9eda084b11f2a455..0000000000000000000000000000000000000000
--- a/public/it4i/software/debuggers/mympiprog_32p_2014-10-15_16-56.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Executable:	mympiprog.x
-Resources:	32 processes, 2 nodes
-Machine:	cn182
-Started on:	Wed Oct 15 16:56:23 2014
-Total time:	7 seconds (0 minutes)
-Full path:	/home/user
-Notes:		
-
-Summary: mympiprog.x is CPU-bound in this configuration
-CPU:				  88.6% |========|
-MPI:				  11.4% ||
-I/O:				   0.0% |
-This application run was CPU-bound. A breakdown of this time and advice for investigating further is found in the CPU section below.
-As very little time is spent in MPI calls, this code may also benefit from running at larger scales.
-
-CPU:
-A breakdown of how the 88.6% total CPU time was spent:
-Scalar numeric ops:		   50.0% |====|
-Vector numeric ops:		   50.0% |====|
-Memory accesses:		    0.0% |
-Other:				    0.0% |
-The per-core performance is arithmetic-bound. Try to increase the amount of time spent in vectorized instructions by analyzing the compiler's vectorization reports.
-
-
-MPI:
-A breakdown of how the 11.4% total MPI time was spent:
-Time in collective calls:	  100.0% |=========|
-Time in point-to-point calls:	    0.0% |
-Effective collective rate:	1.65e+02 bytes/s
-Effective point-to-point rate:	0.00e+00 bytes/s
-Most of the time is spent in collective calls with a very low transfer rate. This suggests load imbalance is causing synchonization overhead; use an MPI profiler to investigate further.
-
-
-I/O:
-A breakdown of how the 0.0% total I/O time was spent:
-Time in reads:			    0.0% |
-Time in writes:			    0.0% |
-Effective read rate:		0.00e+00 bytes/s
-Effective write rate:		0.00e+00 bytes/s
-No time is spent in I/O operations. There's nothing to optimize here!
-
-
-Memory:
-Per-process memory usage may also affect scaling:
-Mean process memory usage:	2.33e+07 bytes
-Peak process memory usage:	2.35e+07 bytes
-Peak node memory usage:		    2.8% |
-The peak node memory usage is very low. You may be able to reduce the amount of allocation time used by running with fewer MPI processes and more data on each process.
-
-
diff --git a/public/it4i/software/lang/winston.svg b/public/it4i/software/lang/winston.svg
deleted file mode 100644
index cb8c06c2a4ba3cfe94eac6b131819376d8bf0a35..0000000000000000000000000000000000000000
--- a/public/it4i/software/lang/winston.svg
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450pt" height="300pt" viewBox="0 0 450 300" version="1.1">
-<defs>
-<g>
-<symbol overflow="visible" id="glyph0-0">
-<path style="stroke:none;" d="M 0.640625 2.296875 L 0.640625 -9.171875 L 7.140625 -9.171875 L 7.140625 2.296875 Z M 1.375 1.578125 L 6.421875 1.578125 L 6.421875 -8.4375 L 1.375 -8.4375 Z M 1.375 1.578125 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-1">
-<path style="stroke:none;" d="M 1.375 -4.609375 L 9.515625 -4.609375 L 9.515625 -3.53125 L 1.375 -3.53125 Z M 1.375 -4.609375 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-2">
-<path style="stroke:none;" d="M 4.90625 -8.359375 L 1.671875 -3.296875 L 4.90625 -3.296875 Z M 4.578125 -9.484375 L 6.1875 -9.484375 L 6.1875 -3.296875 L 7.546875 -3.296875 L 7.546875 -2.234375 L 6.1875 -2.234375 L 6.1875 0 L 4.90625 0 L 4.90625 -2.234375 L 0.640625 -2.234375 L 0.640625 -3.46875 Z M 4.578125 -9.484375 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-3">
-<path style="stroke:none;" d="M 2.5 -1.078125 L 6.96875 -1.078125 L 6.96875 0 L 0.953125 0 L 0.953125 -1.078125 C 1.441406 -1.578125 2.101562 -2.25 2.9375 -3.09375 C 3.78125 -3.945312 4.3125 -4.5 4.53125 -4.75 C 4.9375 -5.207031 5.21875 -5.597656 5.375 -5.921875 C 5.539062 -6.242188 5.625 -6.554688 5.625 -6.859375 C 5.625 -7.367188 5.445312 -7.78125 5.09375 -8.09375 C 4.75 -8.40625 4.289062 -8.5625 3.71875 -8.5625 C 3.3125 -8.5625 2.882812 -8.492188 2.4375 -8.359375 C 2 -8.222656 1.523438 -8.007812 1.015625 -7.71875 L 1.015625 -9.015625 C 1.535156 -9.222656 2.019531 -9.378906 2.46875 -9.484375 C 2.914062 -9.597656 3.320312 -9.65625 3.6875 -9.65625 C 4.675781 -9.65625 5.460938 -9.40625 6.046875 -8.90625 C 6.628906 -8.414062 6.921875 -7.757812 6.921875 -6.9375 C 6.921875 -6.550781 6.847656 -6.179688 6.703125 -5.828125 C 6.554688 -5.484375 6.289062 -5.078125 5.90625 -4.609375 C 5.800781 -4.484375 5.460938 -4.125 4.890625 -3.53125 C 4.328125 -2.945312 3.53125 -2.128906 2.5 -1.078125 Z M 2.5 -1.078125 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-4">
-<path style="stroke:none;" d="M 4.125 -8.640625 C 3.46875 -8.640625 2.972656 -8.3125 2.640625 -7.65625 C 2.304688 -7.007812 2.140625 -6.035156 2.140625 -4.734375 C 2.140625 -3.429688 2.304688 -2.453125 2.640625 -1.796875 C 2.972656 -1.148438 3.46875 -0.828125 4.125 -0.828125 C 4.789062 -0.828125 5.289062 -1.148438 5.625 -1.796875 C 5.957031 -2.453125 6.125 -3.429688 6.125 -4.734375 C 6.125 -6.035156 5.957031 -7.007812 5.625 -7.65625 C 5.289062 -8.3125 4.789062 -8.640625 4.125 -8.640625 Z M 4.125 -9.65625 C 5.1875 -9.65625 6 -9.234375 6.5625 -8.390625 C 7.125 -7.546875 7.40625 -6.328125 7.40625 -4.734375 C 7.40625 -3.140625 7.125 -1.921875 6.5625 -1.078125 C 6 -0.234375 5.1875 0.1875 4.125 0.1875 C 3.070312 0.1875 2.265625 -0.234375 1.703125 -1.078125 C 1.140625 -1.921875 0.859375 -3.140625 0.859375 -4.734375 C 0.859375 -6.328125 1.140625 -7.546875 1.703125 -8.390625 C 2.265625 -9.234375 3.070312 -9.65625 4.125 -9.65625 Z M 4.125 -9.65625 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-5">
-<path style="stroke:none;" d="M 4.296875 -5.25 C 3.710938 -5.25 3.253906 -5.050781 2.921875 -4.65625 C 2.585938 -4.257812 2.421875 -3.722656 2.421875 -3.046875 C 2.421875 -2.359375 2.585938 -1.816406 2.921875 -1.421875 C 3.253906 -1.023438 3.710938 -0.828125 4.296875 -0.828125 C 4.867188 -0.828125 5.320312 -1.023438 5.65625 -1.421875 C 5.988281 -1.816406 6.15625 -2.359375 6.15625 -3.046875 C 6.15625 -3.722656 5.988281 -4.257812 5.65625 -4.65625 C 5.320312 -5.050781 4.867188 -5.25 4.296875 -5.25 Z M 6.84375 -9.265625 L 6.84375 -8.09375 C 6.519531 -8.25 6.191406 -8.363281 5.859375 -8.4375 C 5.535156 -8.519531 5.210938 -8.5625 4.890625 -8.5625 C 4.046875 -8.5625 3.398438 -8.273438 2.953125 -7.703125 C 2.503906 -7.140625 2.25 -6.28125 2.1875 -5.125 C 2.4375 -5.488281 2.75 -5.769531 3.125 -5.96875 C 3.5 -6.164062 3.914062 -6.265625 4.375 -6.265625 C 5.320312 -6.265625 6.070312 -5.972656 6.625 -5.390625 C 7.175781 -4.816406 7.453125 -4.035156 7.453125 -3.046875 C 7.453125 -2.066406 7.160156 -1.28125 6.578125 -0.6875 C 6.003906 -0.101562 5.242188 0.1875 4.296875 0.1875 C 3.191406 0.1875 2.347656 -0.234375 1.765625 -1.078125 C 1.191406 -1.921875 0.90625 -3.140625 0.90625 -4.734375 C 0.90625 -6.222656 1.257812 -7.414062 1.96875 -8.3125 C 2.6875 -9.207031 3.644531 -9.65625 4.84375 -9.65625 C 5.15625 -9.65625 5.472656 -9.617188 5.796875 -9.546875 C 6.128906 -9.484375 6.476562 -9.390625 6.84375 -9.265625 Z M 6.84375 -9.265625 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-6">
-<path style="stroke:none;" d="M 4.125 -4.5 C 3.519531 -4.5 3.039062 -4.332031 2.6875 -4 C 2.34375 -3.675781 2.171875 -3.234375 2.171875 -2.671875 C 2.171875 -2.097656 2.34375 -1.644531 2.6875 -1.3125 C 3.039062 -0.988281 3.519531 -0.828125 4.125 -0.828125 C 4.738281 -0.828125 5.21875 -0.988281 5.5625 -1.3125 C 5.914062 -1.644531 6.09375 -2.097656 6.09375 -2.671875 C 6.09375 -3.234375 5.914062 -3.675781 5.5625 -4 C 5.21875 -4.332031 4.738281 -4.5 4.125 -4.5 Z M 2.84375 -5.046875 C 2.300781 -5.179688 1.875 -5.4375 1.5625 -5.8125 C 1.257812 -6.1875 1.109375 -6.644531 1.109375 -7.1875 C 1.109375 -7.945312 1.375 -8.546875 1.90625 -8.984375 C 2.445312 -9.429688 3.1875 -9.65625 4.125 -9.65625 C 5.070312 -9.65625 5.8125 -9.429688 6.34375 -8.984375 C 6.882812 -8.546875 7.15625 -7.945312 7.15625 -7.1875 C 7.15625 -6.644531 7 -6.1875 6.6875 -5.8125 C 6.382812 -5.4375 5.960938 -5.179688 5.421875 -5.046875 C 6.035156 -4.898438 6.515625 -4.617188 6.859375 -4.203125 C 7.203125 -3.785156 7.375 -3.273438 7.375 -2.671875 C 7.375 -1.742188 7.09375 -1.035156 6.53125 -0.546875 C 5.976562 -0.0546875 5.175781 0.1875 4.125 0.1875 C 3.082031 0.1875 2.28125 -0.0546875 1.71875 -0.546875 C 1.15625 -1.035156 0.875 -1.742188 0.875 -2.671875 C 0.875 -3.273438 1.046875 -3.785156 1.390625 -4.203125 C 1.742188 -4.617188 2.226562 -4.898438 2.84375 -5.046875 Z M 2.375 -7.078125 C 2.375 -6.578125 2.523438 -6.191406 2.828125 -5.921875 C 3.140625 -5.648438 3.570312 -5.515625 4.125 -5.515625 C 4.675781 -5.515625 5.109375 -5.648438 5.421875 -5.921875 C 5.734375 -6.191406 5.890625 -6.578125 5.890625 -7.078125 C 5.890625 -7.566406 5.734375 -7.945312 5.421875 -8.21875 C 5.109375 -8.5 4.675781 -8.640625 4.125 -8.640625 C 3.570312 -8.640625 3.140625 -8.5 2.828125 -8.21875 C 2.523438 -7.945312 2.375 -7.566406 2.375 -7.078125 Z M 2.375 -7.078125 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-7">
-<path style="stroke:none;" d="M 1.609375 -1.078125 L 3.703125 -1.078125 L 3.703125 -8.3125 L 1.421875 -7.859375 L 1.421875 -9.015625 L 3.6875 -9.484375 L 4.984375 -9.484375 L 4.984375 -1.078125 L 7.078125 -1.078125 L 7.078125 0 L 1.609375 0 Z M 1.609375 -1.078125 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-8">
-<path style="stroke:none;" d="M 5.28125 -5.109375 C 5.894531 -4.972656 6.375 -4.695312 6.71875 -4.28125 C 7.0625 -3.875 7.234375 -3.363281 7.234375 -2.75 C 7.234375 -1.820312 6.910156 -1.097656 6.265625 -0.578125 C 5.617188 -0.0664062 4.703125 0.1875 3.515625 0.1875 C 3.117188 0.1875 2.707031 0.144531 2.28125 0.0625 C 1.863281 -0.0078125 1.429688 -0.125 0.984375 -0.28125 L 0.984375 -1.53125 C 1.347656 -1.320312 1.738281 -1.160156 2.15625 -1.046875 C 2.582031 -0.941406 3.023438 -0.890625 3.484375 -0.890625 C 4.285156 -0.890625 4.894531 -1.046875 5.3125 -1.359375 C 5.738281 -1.679688 5.953125 -2.144531 5.953125 -2.75 C 5.953125 -3.3125 5.753906 -3.75 5.359375 -4.0625 C 4.972656 -4.375 4.429688 -4.53125 3.734375 -4.53125 L 2.625 -4.53125 L 2.625 -5.59375 L 3.78125 -5.59375 C 4.414062 -5.59375 4.898438 -5.71875 5.234375 -5.96875 C 5.566406 -6.21875 5.734375 -6.582031 5.734375 -7.0625 C 5.734375 -7.539062 5.5625 -7.910156 5.21875 -8.171875 C 4.875 -8.429688 4.378906 -8.5625 3.734375 -8.5625 C 3.378906 -8.5625 3 -8.523438 2.59375 -8.453125 C 2.195312 -8.378906 1.757812 -8.257812 1.28125 -8.09375 L 1.28125 -9.25 C 1.757812 -9.382812 2.210938 -9.484375 2.640625 -9.546875 C 3.066406 -9.617188 3.46875 -9.65625 3.84375 -9.65625 C 4.820312 -9.65625 5.59375 -9.429688 6.15625 -8.984375 C 6.726562 -8.546875 7.015625 -7.945312 7.015625 -7.1875 C 7.015625 -6.664062 6.863281 -6.222656 6.5625 -5.859375 C 6.257812 -5.492188 5.832031 -5.242188 5.28125 -5.109375 Z M 5.28125 -5.109375 "/>
-</symbol>
-<symbol overflow="visible" id="glyph0-9">
-<path style="stroke:none;" d="M 1.40625 -9.484375 L 6.4375 -9.484375 L 6.4375 -8.390625 L 2.578125 -8.390625 L 2.578125 -6.078125 C 2.765625 -6.140625 2.953125 -6.1875 3.140625 -6.21875 C 3.328125 -6.25 3.507812 -6.265625 3.6875 -6.265625 C 4.75 -6.265625 5.585938 -5.972656 6.203125 -5.390625 C 6.828125 -4.816406 7.140625 -4.035156 7.140625 -3.046875 C 7.140625 -2.023438 6.820312 -1.226562 6.1875 -0.65625 C 5.550781 -0.09375 4.65625 0.1875 3.5 0.1875 C 3.101562 0.1875 2.695312 0.148438 2.28125 0.078125 C 1.863281 0.015625 1.4375 -0.0820312 1 -0.21875 L 1 -1.515625 C 1.382812 -1.304688 1.78125 -1.148438 2.1875 -1.046875 C 2.59375 -0.941406 3.019531 -0.890625 3.46875 -0.890625 C 4.207031 -0.890625 4.789062 -1.082031 5.21875 -1.46875 C 5.644531 -1.851562 5.859375 -2.378906 5.859375 -3.046875 C 5.859375 -3.703125 5.644531 -4.222656 5.21875 -4.609375 C 4.789062 -4.992188 4.207031 -5.1875 3.46875 -5.1875 C 3.125 -5.1875 2.78125 -5.144531 2.4375 -5.0625 C 2.101562 -4.988281 1.757812 -4.875 1.40625 -4.71875 Z M 1.40625 -9.484375 "/>
-</symbol>
-</g>
-<clipPath id="clip1">
-  <path d="M 53 166 L 166 166 L 166 265.75 L 53 265.75 Z M 53 166 "/>
-</clipPath>
-<clipPath id="clip2">
-  <path d="M 318 15 L 423 15 L 423 153 L 318 153 Z M 318 15 "/>
-</clipPath>
-</defs>
-<g id="surface45">
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 65.746094 184.742188 L 66.4375 187.765625 L 67.128906 186.746094 L 67.820312 178.636719 L 68.507812 187.574219 L 69.199219 196.019531 L 69.890625 204.5 L 70.582031 203.855469 L 71.269531 204.714844 L 71.960938 200.078125 L 72.652344 208.082031 L 73.34375 206.835938 L 74.03125 198.875 L 74.722656 195.683594 L 75.414062 188.042969 L 76.105469 194.558594 L 76.792969 189.554688 L 77.484375 192.332031 L 78.175781 190.027344 L 78.867188 194.230469 L 79.554688 200.730469 L 80.246094 197.371094 L 80.9375 198.34375 L 81.628906 204.410156 L 82.316406 199.839844 L 83.007812 200.503906 L 83.699219 202.144531 L 84.390625 202.300781 L 85.078125 200.015625 L 85.769531 203.554688 L 86.460938 211.707031 L 87.152344 219.273438 L 87.839844 212.527344 L 88.53125 219.097656 L 89.222656 222.40625 L 89.914062 220.824219 L 90.601562 221.734375 L 91.292969 224.421875 L 91.984375 225.644531 L 92.675781 227.585938 L 93.363281 225.769531 L 94.054688 218.96875 L 94.746094 218.160156 L 95.4375 211.414062 L 96.128906 204.007812 L 96.816406 207.203125 L 97.507812 213.332031 L 98.199219 204.328125 L 98.890625 199.023438 L 99.578125 206.480469 L 100.269531 199.015625 L 100.960938 203.097656 L 101.652344 209.425781 L 102.339844 217.5 L 103.03125 211.09375 L 103.722656 213.789062 L 104.414062 211.347656 L 105.101562 217.386719 L 105.792969 219.132812 L 106.484375 219.339844 L 107.175781 212.023438 L 107.863281 204.355469 L 108.554688 196.28125 L 109.246094 200.84375 L 109.9375 196.429688 L 110.625 194.125 L 111.316406 201.539062 L 112.007812 201.007812 L 112.699219 194.28125 L 113.386719 201.957031 L 114.078125 203.238281 L 114.769531 202.875 L 115.460938 205.628906 L 116.148438 201.074219 L 116.839844 205.359375 L 117.53125 209.160156 L 118.222656 208.898438 L 118.910156 215.582031 L 119.601562 221.285156 L 120.292969 213.707031 L 120.984375 213.035156 L 121.671875 214.113281 L 122.363281 215.179688 L 123.054688 212.726562 L 123.746094 206.707031 L 124.433594 202.972656 L 125.125 201.636719 L 125.816406 204.148438 L 126.507812 207.515625 L 127.195312 208.179688 L 127.886719 212.183594 L 128.578125 207.226562 L 129.269531 207.117188 L 129.957031 200.328125 L 130.648438 192.488281 L 131.339844 198.480469 L 132.03125 205.988281 L 132.71875 197.113281 L 133.410156 203.714844 L 134.101562 195.613281 L 134.792969 190.847656 L 135.480469 194.273438 L 136.171875 200.6875 L 136.863281 195.222656 L 137.554688 190.21875 L 138.242188 183.472656 L 138.933594 182.324219 L 139.625 190.910156 L 140.316406 188.316406 L 141.003906 190.277344 L 141.695312 199.34375 L 142.386719 205.507812 L 143.078125 210.085938 L 143.765625 219.046875 L 144.457031 218.640625 L 145.148438 210.242188 L 145.839844 213.558594 L 146.527344 206.863281 L 147.21875 204.960938 L 147.910156 196.65625 L 148.601562 190.046875 L 149.289062 181.253906 L 149.980469 186.496094 L 150.671875 186.851562 L 151.363281 182.386719 L 152.050781 182.757812 L 152.742188 177.558594 L 153.433594 176.535156 "/>
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.433594 176.535156 L 154.125 168.285156 L 154.8125 167.597656 L 155.503906 175.214844 L 156.195312 173.621094 L 156.886719 182.082031 L 157.574219 180.375 L 158.265625 179.5625 L 158.957031 173.746094 L 159.648438 174.769531 L 160.335938 169.75 L 161.027344 164 L 161.71875 163.308594 L 162.410156 156.359375 L 163.097656 151.125 L 163.789062 145.957031 L 164.480469 142.183594 L 165.171875 140.875 L 165.859375 143.761719 L 166.550781 144.023438 L 167.242188 147.230469 L 167.933594 155.320312 L 168.621094 148.609375 L 169.3125 145.84375 L 170.003906 139.675781 L 170.695312 141.980469 L 171.382812 136.6875 L 172.074219 133.65625 L 172.765625 128.714844 L 173.457031 135.691406 L 174.144531 136.4375 L 174.835938 139.320312 L 175.527344 135.953125 L 176.21875 138.007812 L 176.90625 140.066406 L 177.597656 134.910156 L 178.289062 142.886719 L 178.980469 138.234375 L 179.667969 135.234375 L 180.359375 137.515625 L 181.050781 135.601562 L 181.742188 140.246094 L 182.429688 148.335938 L 183.121094 141.140625 L 183.8125 134.304688 L 184.503906 127.488281 L 185.191406 123.042969 L 185.882812 118.960938 L 186.574219 122.175781 L 187.265625 120.308594 L 187.953125 116.695312 L 188.644531 117.011719 L 189.335938 119.125 L 190.027344 124.566406 L 190.714844 123.664062 L 191.40625 115.644531 L 192.097656 120.910156 L 192.789062 124.535156 L 193.476562 128.125 L 194.167969 131.527344 L 194.859375 125.199219 L 195.550781 122.703125 L 196.238281 124.199219 L 196.929688 131.503906 L 197.621094 130.402344 L 198.3125 137.035156 L 199 135.289062 L 199.691406 129.230469 L 200.382812 132.425781 L 201.074219 141.371094 L 201.761719 138.039062 L 202.453125 143.988281 L 203.144531 145.058594 L 203.835938 144.875 L 204.523438 146.152344 L 205.214844 139.28125 L 205.90625 135.128906 L 206.597656 133.832031 L 207.285156 137.761719 L 207.976562 138.421875 L 208.667969 143.476562 L 209.359375 150.480469 L 210.046875 152.226562 L 210.738281 145.195312 L 211.429688 149.625 L 212.121094 151.285156 L 212.808594 147.300781 L 213.5 141.644531 L 214.191406 141.265625 L 214.882812 139.1875 L 215.570312 138.652344 L 216.261719 137.773438 L 216.953125 146.65625 L 217.644531 149.929688 L 218.332031 150.292969 L 219.023438 154.644531 L 219.714844 148.371094 L 220.40625 151.523438 L 221.09375 151.179688 L 221.785156 151.097656 L 222.476562 150.289062 L 223.167969 146.742188 L 223.855469 137.851562 L 224.546875 136.085938 L 225.238281 129.226562 L 225.929688 124.425781 L 226.617188 131.222656 L 227.308594 140.300781 L 228 133.355469 L 228.691406 141.476562 L 229.378906 147.816406 L 230.070312 140.972656 L 230.761719 140.488281 L 231.453125 149.542969 L 232.140625 145.988281 L 232.832031 138.644531 L 233.523438 146.386719 L 234.214844 147.886719 L 234.902344 142.21875 L 235.59375 141.796875 L 236.285156 140.109375 L 236.976562 143.632812 L 237.664062 137.074219 L 238.355469 143.300781 L 239.046875 141.550781 L 239.738281 140.425781 L 240.425781 139.738281 L 241.117188 138.433594 L 241.808594 136.894531 "/>
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 241.808594 136.894531 L 242.5 129.683594 L 243.1875 137.179688 L 243.878906 130.164062 L 244.570312 131.421875 L 245.261719 135.050781 L 245.949219 138.792969 L 246.640625 145.089844 L 247.332031 143.746094 L 248.023438 136.125 L 248.710938 144.503906 L 249.402344 148.210938 L 250.09375 142.414062 L 250.785156 146.457031 L 251.472656 144.902344 L 252.164062 140.238281 L 252.855469 141.289062 L 253.546875 132.667969 L 254.234375 135.585938 L 254.925781 138.679688 L 255.617188 140.894531 L 256.308594 148.578125 L 256.996094 149.164062 L 257.6875 157.507812 L 258.378906 149.835938 L 259.070312 156.96875 L 259.757812 153.074219 L 260.449219 159.882812 L 261.140625 162.398438 L 261.832031 171.417969 L 262.519531 177.835938 L 263.210938 182.8125 L 263.902344 191.789062 L 264.59375 183.96875 L 265.28125 180.496094 L 265.972656 179.453125 L 266.664062 175.453125 L 267.355469 183.210938 L 268.042969 187.597656 L 268.734375 192.375 L 269.425781 183.394531 L 270.117188 180.175781 L 270.804688 184.003906 L 271.496094 187.015625 L 272.1875 183.257812 L 272.878906 189.703125 L 273.566406 182.753906 L 274.257812 186.5 L 274.949219 182.53125 L 275.640625 176.492188 L 276.328125 179.402344 L 277.019531 178.808594 L 277.710938 177.519531 L 278.402344 170.457031 L 279.089844 163.746094 L 279.78125 169.625 L 280.472656 173.15625 L 281.164062 177.953125 L 281.851562 172.8125 L 282.542969 164.695312 L 283.234375 157.472656 L 283.925781 164.429688 L 284.613281 156.175781 L 285.304688 147.363281 L 285.996094 152.285156 L 286.6875 160.066406 L 287.375 169 L 288.066406 165.839844 L 288.757812 169.378906 L 289.449219 172.585938 L 290.136719 175.90625 L 290.828125 180.761719 L 291.519531 174.199219 L 292.210938 177.667969 L 292.898438 181.410156 L 293.589844 175.261719 L 294.28125 175.332031 L 294.972656 177.566406 L 295.660156 169.265625 L 296.351562 166.886719 L 297.042969 167.371094 L 297.734375 166.578125 L 298.421875 174.105469 L 299.113281 176.136719 L 299.804688 176.894531 L 300.496094 175.128906 L 301.183594 175.910156 L 301.875 176.871094 L 302.566406 172.15625 L 303.257812 172.570312 L 303.945312 179.945312 L 304.636719 177.316406 L 305.328125 177.015625 L 306.019531 178.082031 L 306.707031 173.449219 L 307.398438 180.046875 L 308.089844 178.339844 L 308.78125 174.292969 L 309.46875 177.949219 L 310.160156 186.863281 L 310.851562 192.355469 L 311.542969 188.714844 L 312.230469 192.617188 L 312.921875 199.609375 L 313.613281 208.039062 L 314.304688 214.246094 L 314.992188 212.972656 L 315.683594 216.734375 L 316.375 213.171875 L 317.066406 204.636719 L 317.753906 204.726562 L 318.445312 199.898438 L 319.136719 198.328125 L 319.828125 191.9375 L 320.515625 186.582031 L 321.207031 190.640625 L 321.898438 191.414062 L 322.589844 188.019531 L 323.277344 191.566406 L 323.96875 182.792969 L 324.660156 176.511719 L 325.351562 170.613281 L 326.039062 178.75 L 326.730469 181.421875 L 327.421875 176.726562 L 328.113281 169.871094 L 328.800781 164.429688 L 329.492188 156.359375 L 330.183594 152.730469 "/>
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 330.183594 152.730469 L 330.875 155.539062 L 331.5625 151.082031 L 332.253906 142.398438 L 332.945312 141.886719 L 333.636719 136.871094 L 334.324219 141.507812 L 335.015625 147.171875 L 335.707031 149.445312 L 336.398438 152.960938 L 337.085938 159.335938 L 337.777344 154.445312 L 338.46875 156.84375 L 339.160156 163.132812 L 339.847656 168.179688 L 340.539062 162.445312 L 341.230469 158.65625 L 341.921875 164.984375 L 342.613281 172.832031 L 343.300781 167.492188 L 343.992188 160.441406 L 344.683594 162.65625 L 345.375 154.714844 L 346.0625 162.320312 L 346.753906 170.28125 L 347.445312 176.398438 L 348.136719 184.726562 L 348.824219 181.957031 L 349.515625 182.4375 L 350.207031 188.382812 L 350.898438 187.082031 L 351.585938 192.40625 L 352.277344 188.882812 L 352.96875 197.636719 L 353.660156 190.6875 L 354.347656 191.171875 L 355.039062 184.800781 L 355.730469 189.382812 L 356.421875 182.878906 L 357.109375 177.5625 L 357.800781 182.644531 L 358.492188 190.351562 L 359.183594 188.03125 L 359.871094 191.125 L 360.5625 192.300781 L 361.253906 186.410156 L 361.945312 180.582031 L 362.632812 174.015625 L 363.324219 177.296875 L 364.015625 170.597656 L 364.707031 165.183594 L 365.394531 166.808594 L 366.085938 164.929688 L 366.777344 162.636719 L 367.46875 166.890625 L 368.15625 172.363281 L 368.847656 163.570312 L 369.539062 168.335938 L 370.230469 164.480469 L 370.917969 158.753906 L 371.609375 164.199219 L 372.300781 168.226562 L 372.992188 168.992188 L 373.679688 167.523438 L 374.371094 174.425781 L 375.0625 166.335938 L 375.753906 157.558594 L 376.441406 154.59375 L 377.132812 153.90625 L 377.824219 151.363281 L 378.515625 154.195312 L 379.203125 146.785156 L 379.894531 151.203125 L 380.585938 155.789062 L 381.277344 157.175781 L 381.964844 158.609375 L 382.65625 154.980469 L 383.347656 161.558594 L 384.039062 155.097656 L 384.726562 159.085938 L 385.417969 152.277344 L 386.109375 160.808594 L 386.800781 167.421875 L 387.488281 170.699219 L 388.179688 175.917969 L 388.871094 178.355469 L 389.5625 174.632812 L 390.25 182.910156 L 390.941406 181.777344 L 391.632812 184.28125 L 392.324219 177.515625 L 393.011719 169.648438 L 393.703125 162.761719 L 394.394531 165.328125 L 395.085938 165.929688 L 395.773438 167.757812 L 396.464844 158.839844 L 397.15625 156.054688 L 397.847656 154.359375 L 398.535156 153.445312 L 399.226562 154.105469 L 399.917969 148.242188 L 400.609375 139.882812 L 401.296875 136.238281 L 401.988281 139.890625 L 402.679688 143.039062 L 403.371094 145.253906 L 404.058594 139.445312 L 404.75 132.792969 L 405.441406 141.859375 L 406.132812 132.972656 L 406.820312 137.332031 L 407.511719 143.351562 L 408.203125 143.84375 L 408.894531 140.710938 L 409.582031 146.609375 L 410.273438 150.082031 "/>
-<g clip-path="url(#clip1)" clip-rule="nonzero">
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 65.746094 192.507812 L 66.4375 200.253906 L 67.128906 202.152344 L 67.820312 196.925781 L 68.507812 202.089844 L 69.199219 208.316406 L 69.890625 212.085938 L 70.582031 209.59375 L 71.269531 204.332031 L 71.960938 203.140625 L 72.652344 209.046875 L 73.34375 210.300781 L 74.03125 210.863281 L 74.722656 210.296875 L 75.414062 210.675781 L 76.105469 219.632812 L 76.792969 217.78125 L 77.484375 212.75 L 78.175781 207.828125 L 78.867188 211.441406 L 79.554688 219.683594 L 80.246094 213.011719 L 80.9375 205.667969 L 81.628906 207.335938 L 82.316406 198.714844 L 83.007812 189.828125 L 83.699219 194.488281 L 84.390625 191.011719 L 85.078125 196.386719 L 85.769531 199.855469 L 86.460938 201.445312 L 87.152344 204.941406 L 87.839844 212.835938 L 88.53125 216.574219 L 89.222656 219.425781 L 89.914062 217.308594 L 90.601562 218.773438 L 91.292969 222.109375 L 91.984375 219.320312 L 92.675781 226.335938 L 93.363281 223.527344 L 94.054688 226.328125 L 94.746094 221.375 L 95.4375 225.976562 L 96.128906 226.726562 L 96.816406 219.613281 L 97.507812 224.785156 L 98.199219 230.058594 L 98.890625 232.777344 L 99.578125 234.066406 L 100.269531 225.09375 L 100.960938 223.195312 L 101.652344 224.753906 L 102.339844 224.527344 L 103.03125 227.644531 L 103.722656 222.59375 L 104.414062 214.5 L 105.101562 222.925781 L 105.792969 229.871094 L 106.484375 221.257812 L 107.175781 213.601562 L 107.863281 213.757812 L 108.554688 211.378906 L 109.246094 212.527344 L 109.9375 212.96875 L 110.625 216.363281 L 111.316406 214.28125 L 112.007812 214.351562 L 112.699219 222.597656 L 113.386719 216.53125 L 114.078125 219.125 L 114.769531 217.179688 L 115.460938 224.660156 L 116.148438 221.804688 L 116.839844 230.082031 L 117.53125 228.398438 L 118.222656 235.882812 L 118.910156 233.195312 L 119.601562 233.914062 L 120.292969 242.691406 L 120.984375 244.21875 L 121.671875 250.613281 L 122.363281 252.925781 L 123.054688 248.847656 L 123.746094 254.351562 L 124.433594 251.617188 L 125.125 243.886719 L 125.816406 245.074219 L 126.507812 249.519531 L 127.195312 252.457031 L 127.886719 249.488281 L 128.578125 244.472656 L 129.269531 237.101562 L 129.957031 229.367188 L 130.648438 232.988281 L 131.339844 230.9375 L 132.03125 237.367188 L 132.71875 236.808594 L 133.410156 231.011719 L 134.101562 229.964844 L 134.792969 229.976562 L 135.480469 226.984375 L 136.171875 225.515625 L 136.863281 217.007812 L 137.554688 222.183594 L 138.242188 213.144531 L 138.933594 210.878906 L 139.625 206.179688 L 140.316406 199.5 L 141.003906 199.253906 L 141.695312 198.214844 L 142.386719 191.222656 L 143.078125 186.929688 L 143.765625 178.628906 L 144.457031 178.972656 L 145.148438 184.9375 L 145.839844 190.875 L 146.527344 191.109375 L 147.21875 199.160156 L 147.910156 197.207031 L 148.601562 204.183594 L 149.289062 209.488281 L 149.980469 202.878906 L 150.671875 203.539062 L 151.363281 209.351562 L 152.050781 210.644531 L 152.742188 203.960938 L 153.433594 204.585938 "/>
-</g>
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.433594 204.585938 L 154.125 210.578125 L 154.8125 213.5625 L 155.503906 220.292969 L 156.195312 222.894531 L 156.886719 215.640625 L 157.574219 212.410156 L 158.265625 220.785156 L 158.957031 222.460938 L 159.648438 229.878906 L 160.335938 225.117188 L 161.027344 218.386719 L 161.71875 221.699219 L 162.410156 215.746094 L 163.097656 209.574219 L 163.789062 217.546875 L 164.480469 225.105469 L 165.171875 226.425781 L 165.859375 226.253906 L 166.550781 221.828125 L 167.242188 228.101562 L 167.933594 223.230469 L 168.621094 224.109375 L 169.3125 229.121094 L 170.003906 236.175781 L 170.695312 233.9375 L 171.382812 224.96875 L 172.074219 231.132812 L 172.765625 222.339844 L 173.457031 223.144531 L 174.144531 228.441406 L 174.835938 224.191406 L 175.527344 218.132812 L 176.21875 221.558594 L 176.90625 213.128906 L 177.597656 205.621094 L 178.289062 209.238281 L 178.980469 210.09375 L 179.667969 204.164062 L 180.359375 195.890625 L 181.050781 190.617188 L 181.742188 196.0625 L 182.429688 200.851562 L 183.121094 198.675781 L 183.8125 206.820312 L 184.503906 200.125 L 185.191406 208.722656 L 185.882812 201.953125 L 186.574219 205.777344 L 187.265625 202.722656 L 187.953125 200.523438 L 188.644531 193.285156 L 189.335938 201.75 L 190.027344 205.53125 L 190.714844 204.214844 L 191.40625 206.800781 L 192.097656 214.09375 L 192.789062 221.367188 L 193.476562 214.945312 L 194.167969 215.753906 L 194.859375 222.40625 L 195.550781 226.863281 L 196.238281 234.238281 L 196.929688 228.847656 L 197.621094 230.871094 L 198.3125 231.621094 L 199 236.925781 L 199.691406 241.046875 L 200.382812 233.394531 L 201.074219 228.484375 L 201.761719 228.917969 L 202.453125 234.34375 L 203.144531 233.550781 L 203.835938 232.269531 L 204.523438 237.25 L 205.214844 242.472656 L 205.90625 234.179688 L 206.597656 230.476562 L 207.285156 239.210938 L 207.976562 233.519531 L 208.667969 224.769531 L 209.359375 215.761719 L 210.046875 218.96875 L 210.738281 218.441406 L 211.429688 225.402344 L 212.121094 232.144531 L 212.808594 230.960938 L 213.5 225.164062 L 214.191406 233.503906 L 214.882812 229.03125 L 215.570312 225.285156 L 216.261719 221.125 L 216.953125 217.164062 L 217.644531 211.164062 L 218.332031 214.890625 L 219.023438 209.019531 L 219.714844 201.679688 L 220.40625 201.058594 L 221.09375 193.894531 L 221.785156 186.066406 L 222.476562 184.925781 L 223.167969 183.976562 L 223.855469 180.28125 L 224.546875 173.257812 L 225.238281 164.21875 L 225.929688 171.367188 L 226.617188 164.679688 L 227.308594 157.253906 L 228 151.546875 L 228.691406 156.777344 L 229.378906 153.394531 L 230.070312 145.808594 L 230.761719 142.304688 L 231.453125 135.855469 L 232.140625 135.027344 L 232.832031 141.507812 L 233.523438 145.203125 L 234.214844 141.699219 L 234.902344 147.410156 L 235.59375 145.082031 L 236.285156 144.042969 L 236.976562 147.566406 L 237.664062 151.875 L 238.355469 151.984375 L 239.046875 145.511719 L 239.738281 146.03125 L 240.425781 140.980469 L 241.117188 132.839844 L 241.808594 136.949219 "/>
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 241.808594 136.949219 L 242.5 134.265625 L 243.1875 131.84375 L 243.878906 135.738281 L 244.570312 142.734375 L 245.261719 149.179688 L 245.949219 153.242188 L 246.640625 150.707031 L 247.332031 152.886719 L 248.023438 160.671875 L 248.710938 153.894531 L 249.402344 158.996094 L 250.09375 152.289062 L 250.785156 149.214844 L 251.472656 143.230469 L 252.164062 142.453125 L 252.855469 150.40625 L 253.546875 143.269531 L 254.234375 147.199219 L 254.925781 142.191406 L 255.617188 146.519531 L 256.308594 142.96875 L 256.996094 144.835938 L 257.6875 137.421875 L 258.378906 141.699219 L 259.070312 145.875 L 259.757812 140.589844 L 260.449219 132.890625 L 261.140625 131.054688 L 261.832031 133.25 L 262.519531 127.933594 L 263.210938 125.039062 L 263.902344 121.078125 L 264.59375 122.414062 L 265.28125 124.511719 L 265.972656 117.363281 L 266.664062 124.984375 L 267.355469 130.753906 L 268.042969 128.324219 L 268.734375 132.589844 L 269.425781 128.015625 L 270.117188 128.464844 L 270.804688 122.265625 L 271.496094 117.820312 L 272.1875 111.15625 L 272.878906 102.300781 L 273.566406 104.175781 L 274.257812 102.289062 L 274.949219 99.125 L 275.640625 94.910156 L 276.328125 88.675781 L 277.019531 80.964844 L 277.710938 75.609375 L 278.402344 82.628906 L 279.089844 90.617188 L 279.78125 82.570312 L 280.472656 90.300781 L 281.164062 87.984375 L 281.851562 79.660156 L 282.542969 83.074219 L 283.234375 78.050781 L 283.925781 86.925781 L 284.613281 81.019531 L 285.304688 86.675781 L 285.996094 83.359375 L 286.6875 85.621094 L 287.375 80.488281 L 288.066406 75.273438 L 288.757812 68.578125 L 289.449219 67.226562 L 290.136719 75.203125 L 290.828125 68.792969 L 291.519531 69.640625 L 292.210938 78.585938 L 292.898438 82.164062 L 293.589844 90.925781 L 294.28125 86.347656 L 294.972656 89.820312 L 295.660156 94.816406 L 296.351562 96.597656 L 297.042969 101.660156 L 297.734375 96.582031 L 298.421875 98.472656 L 299.113281 104.304688 L 299.804688 96.355469 L 300.496094 99.960938 L 301.183594 105.734375 L 301.875 99.207031 L 302.566406 104.410156 L 303.257812 104.335938 L 303.945312 105.027344 L 304.636719 101.480469 L 305.328125 107.769531 L 306.019531 109.089844 L 306.707031 101.988281 L 307.398438 94.320312 L 308.089844 101.777344 L 308.78125 97.550781 L 309.46875 92.0625 L 310.160156 94.390625 L 310.851562 86.695312 L 311.542969 85.785156 L 312.230469 94.210938 L 312.921875 87.546875 L 313.613281 89.488281 L 314.304688 81.589844 L 314.992188 86.492188 L 315.683594 80.632812 L 316.375 87.648438 L 317.066406 95.816406 L 317.753906 99.675781 L 318.445312 101.753906 L 319.136719 106.117188 L 319.828125 109.15625 L 320.515625 106.492188 L 321.207031 106.894531 L 321.898438 107.855469 L 322.589844 113.316406 L 323.277344 120.496094 L 323.96875 111.503906 L 324.660156 117.074219 L 325.351562 117.914062 L 326.039062 124.390625 L 326.730469 127.039062 L 327.421875 128.71875 L 328.113281 127 L 328.800781 133.769531 L 329.492188 139.566406 L 330.183594 140.496094 "/>
-<g clip-path="url(#clip2)" clip-rule="nonzero">
-<path style="fill:none;stroke-width:0.853645;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 330.183594 140.496094 L 330.875 134.402344 L 331.5625 127.617188 L 332.253906 124.976562 L 332.945312 132.210938 L 333.636719 128.21875 L 334.324219 120.890625 L 335.015625 117.351562 L 335.707031 113.066406 L 336.398438 120.929688 L 337.085938 115.011719 L 337.777344 108.089844 L 338.46875 107.992188 L 339.160156 108.558594 L 339.847656 117.0625 L 340.539062 119.738281 L 341.230469 124.585938 L 341.921875 122.5 L 342.613281 115.695312 L 343.300781 116.578125 L 343.992188 122.257812 L 344.683594 128.835938 L 345.375 129.257812 L 346.0625 133.730469 L 346.753906 125.894531 L 347.445312 127.886719 L 348.136719 123.839844 L 348.824219 121.496094 L 349.515625 129.117188 L 350.207031 136.519531 L 350.898438 128.757812 L 351.585938 131.039062 L 352.277344 124.648438 L 352.96875 124.203125 L 353.660156 115.886719 L 354.347656 108.660156 L 355.039062 113.949219 L 355.730469 108.867188 L 356.421875 108.835938 L 357.109375 101.648438 L 357.800781 96.644531 L 358.492188 103.375 L 359.183594 97.042969 L 359.871094 97.316406 L 360.5625 100.078125 L 361.253906 91.8125 L 361.945312 86.304688 L 362.632812 83.757812 L 363.324219 74.890625 L 364.015625 73.632812 L 364.707031 71.542969 L 365.394531 75.726562 L 366.085938 72.945312 L 366.777344 64.292969 L 367.46875 56.5625 L 368.15625 60.433594 L 368.847656 55.367188 L 369.539062 57.308594 L 370.230469 61.507812 L 370.917969 67.558594 L 371.609375 66.648438 L 372.300781 72.792969 L 372.992188 72.117188 L 373.679688 72.382812 L 374.371094 72.675781 L 375.0625 67.886719 L 375.753906 75.253906 L 376.441406 82.488281 L 377.132812 76.109375 L 377.824219 82.207031 L 378.515625 80.402344 L 379.203125 87.070312 L 379.894531 82.875 L 380.585938 89.9375 L 381.277344 97.882812 L 381.964844 93.449219 L 382.65625 85.320312 L 383.347656 81.507812 L 384.039062 81.546875 L 384.726562 74.398438 L 385.417969 81.605469 L 386.109375 86.925781 L 386.800781 81.277344 L 387.488281 90.042969 L 388.179688 83.351562 L 388.871094 75.625 L 389.5625 69.75 L 390.25 74.546875 L 390.941406 73.339844 L 391.632812 75.621094 L 392.324219 71.421875 L 393.011719 74.226562 L 393.703125 74.640625 L 394.394531 69.957031 L 395.085938 71.074219 L 395.773438 64.96875 L 396.464844 63.308594 L 397.15625 69.375 L 397.847656 61.972656 L 398.535156 54.789062 L 399.226562 46.726562 L 399.917969 49.550781 L 400.609375 53.683594 L 401.296875 62.152344 L 401.988281 53.222656 L 402.679688 61.878906 L 403.371094 66.929688 L 404.058594 62.246094 L 404.75 60.601562 L 405.441406 51.851562 L 406.132812 44.886719 L 406.820312 38.675781 L 407.511719 33.242188 L 408.203125 30.820312 L 408.894531 31.585938 L 409.582031 26.398438 L 410.273438 31.789062 "/>
-</g>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.5 261.613281 L 424.300781 261.613281 M 427.5 252.527344 L 424.300781 252.527344 M 427.5 243.441406 L 424.300781 243.441406 M 427.5 234.355469 L 424.300781 234.355469 M 427.5 225.269531 L 424.300781 225.269531 M 427.5 216.183594 L 424.300781 216.183594 M 427.5 207.097656 L 424.300781 207.097656 M 427.5 198.011719 L 424.300781 198.011719 M 427.5 188.925781 L 424.300781 188.925781 M 427.5 179.839844 L 424.300781 179.839844 M 427.5 170.753906 L 424.300781 170.753906 M 427.5 161.667969 L 424.300781 161.667969 M 427.5 152.585938 L 424.300781 152.585938 M 427.5 143.5 L 424.300781 143.5 M 427.5 134.414062 L 424.300781 134.414062 M 427.5 125.328125 L 424.300781 125.328125 M 427.5 116.242188 L 424.300781 116.242188 M 427.5 107.15625 L 424.300781 107.15625 M 427.5 98.070312 L 424.300781 98.070312 M 427.5 88.984375 L 424.300781 88.984375 M 427.5 79.898438 L 424.300781 79.898438 M 427.5 70.8125 L 424.300781 70.8125 M 427.5 61.726562 L 424.300781 61.726562 M 427.5 52.640625 L 424.300781 52.640625 M 427.5 43.554688 L 424.300781 43.554688 M 427.5 34.46875 L 424.300781 34.46875 M 427.5 25.382812 L 424.300781 25.382812 M 427.5 16.296875 L 424.300781 16.296875 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.5 261.613281 L 421.097656 261.613281 M 427.5 225.269531 L 421.097656 225.269531 M 427.5 188.925781 L 421.097656 188.925781 M 427.5 152.585938 L 421.097656 152.585938 M 427.5 116.242188 L 421.097656 116.242188 M 427.5 79.898438 L 421.097656 79.898438 M 427.5 43.554688 L 421.097656 43.554688 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.5 265.75 L 427.5 15 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 51.25 15 L 51.25 18.199219 M 65.058594 15 L 65.058594 18.199219 M 78.867188 15 L 78.867188 18.199219 M 92.675781 15 L 92.675781 18.199219 M 106.484375 15 L 106.484375 18.199219 M 120.292969 15 L 120.292969 18.199219 M 134.101562 15 L 134.101562 18.199219 M 147.910156 15 L 147.910156 18.199219 M 161.71875 15 L 161.71875 18.199219 M 175.527344 15 L 175.527344 18.199219 M 189.335938 15 L 189.335938 18.199219 M 203.144531 15 L 203.144531 18.199219 M 216.953125 15 L 216.953125 18.199219 M 230.761719 15 L 230.761719 18.199219 M 244.570312 15 L 244.570312 18.199219 M 258.378906 15 L 258.378906 18.199219 M 272.1875 15 L 272.1875 18.199219 M 285.996094 15 L 285.996094 18.199219 M 299.804688 15 L 299.804688 18.199219 M 313.613281 15 L 313.613281 18.199219 M 327.421875 15 L 327.421875 18.199219 M 341.230469 15 L 341.230469 18.199219 M 355.039062 15 L 355.039062 18.199219 M 368.847656 15 L 368.847656 18.199219 M 382.65625 15 L 382.65625 18.199219 M 396.464844 15 L 396.464844 18.199219 M 410.273438 15 L 410.273438 18.199219 M 424.082031 15 L 424.082031 18.199219 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 65.058594 15 L 65.058594 21.402344 M 134.101562 15 L 134.101562 21.402344 M 203.144531 15 L 203.144531 21.402344 M 272.1875 15 L 272.1875 21.402344 M 341.230469 15 L 341.230469 21.402344 M 410.273438 15 L 410.273438 21.402344 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 48.523438 15 L 427.5 15 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 48.523438 261.613281 L 51.722656 261.613281 M 48.523438 252.527344 L 51.722656 252.527344 M 48.523438 243.441406 L 51.722656 243.441406 M 48.523438 234.355469 L 51.722656 234.355469 M 48.523438 225.269531 L 51.722656 225.269531 M 48.523438 216.183594 L 51.722656 216.183594 M 48.523438 207.097656 L 51.722656 207.097656 M 48.523438 198.011719 L 51.722656 198.011719 M 48.523438 188.925781 L 51.722656 188.925781 M 48.523438 179.839844 L 51.722656 179.839844 M 48.523438 170.753906 L 51.722656 170.753906 M 48.523438 161.667969 L 51.722656 161.667969 M 48.523438 152.585938 L 51.722656 152.585938 M 48.523438 143.5 L 51.722656 143.5 M 48.523438 134.414062 L 51.722656 134.414062 M 48.523438 125.328125 L 51.722656 125.328125 M 48.523438 116.242188 L 51.722656 116.242188 M 48.523438 107.15625 L 51.722656 107.15625 M 48.523438 98.070312 L 51.722656 98.070312 M 48.523438 88.984375 L 51.722656 88.984375 M 48.523438 79.898438 L 51.722656 79.898438 M 48.523438 70.8125 L 51.722656 70.8125 M 48.523438 61.726562 L 51.722656 61.726562 M 48.523438 52.640625 L 51.722656 52.640625 M 48.523438 43.554688 L 51.722656 43.554688 M 48.523438 34.46875 L 51.722656 34.46875 M 48.523438 25.382812 L 51.722656 25.382812 M 48.523438 16.296875 L 51.722656 16.296875 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 48.523438 261.613281 L 54.925781 261.613281 M 48.523438 225.269531 L 54.925781 225.269531 M 48.523438 188.925781 L 54.925781 188.925781 M 48.523438 152.585938 L 54.925781 152.585938 M 48.523438 116.242188 L 54.925781 116.242188 M 48.523438 79.898438 L 54.925781 79.898438 M 48.523438 43.554688 L 54.925781 43.554688 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 48.523438 265.75 L 48.523438 15 "/>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-1" x="23.121094" y="265.999023"/>
-  <use xlink:href="#glyph0-2" x="33.856445" y="265.999023"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-1" x="23.121094" y="229.655273"/>
-  <use xlink:href="#glyph0-3" x="33.856445" y="229.655273"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-4" x="33.121094" y="193.311523"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-3" x="33.121094" y="156.97168"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-2" x="33.121094" y="120.62793"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-5" x="33.121094" y="84.28418"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-6" x="33.121094" y="47.94043"/>
-</g>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 51.25 265.75 L 51.25 262.550781 M 65.058594 265.75 L 65.058594 262.550781 M 78.867188 265.75 L 78.867188 262.550781 M 92.675781 265.75 L 92.675781 262.550781 M 106.484375 265.75 L 106.484375 262.550781 M 120.292969 265.75 L 120.292969 262.550781 M 134.101562 265.75 L 134.101562 262.550781 M 147.910156 265.75 L 147.910156 262.550781 M 161.71875 265.75 L 161.71875 262.550781 M 175.527344 265.75 L 175.527344 262.550781 M 189.335938 265.75 L 189.335938 262.550781 M 203.144531 265.75 L 203.144531 262.550781 M 216.953125 265.75 L 216.953125 262.550781 M 230.761719 265.75 L 230.761719 262.550781 M 244.570312 265.75 L 244.570312 262.550781 M 258.378906 265.75 L 258.378906 262.550781 M 272.1875 265.75 L 272.1875 262.550781 M 285.996094 265.75 L 285.996094 262.550781 M 299.804688 265.75 L 299.804688 262.550781 M 313.613281 265.75 L 313.613281 262.550781 M 327.421875 265.75 L 327.421875 262.550781 M 341.230469 265.75 L 341.230469 262.550781 M 355.039062 265.75 L 355.039062 262.550781 M 368.847656 265.75 L 368.847656 262.550781 M 382.65625 265.75 L 382.65625 262.550781 M 396.464844 265.75 L 396.464844 262.550781 M 410.273438 265.75 L 410.273438 262.550781 M 424.082031 265.75 L 424.082031 262.550781 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 65.058594 265.75 L 65.058594 259.347656 M 134.101562 265.75 L 134.101562 259.347656 M 203.144531 265.75 L 203.144531 259.347656 M 272.1875 265.75 L 272.1875 259.347656 M 341.230469 265.75 L 341.230469 259.347656 M 410.273438 265.75 L 410.273438 259.347656 "/>
-<path style="fill:none;stroke-width:0.640234;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 48.523438 265.75 L 427.5 265.75 "/>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-4" x="60.558594" y="284.038086"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-7" x="121.601562" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="129.75293" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="137.904297" y="284.038086"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-3" x="190.644531" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="198.795898" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="206.947266" y="284.038086"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-8" x="259.6875" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="267.838867" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="275.990234" y="284.038086"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-2" x="328.730469" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="336.881836" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="345.033203" y="284.038086"/>
-</g>
-<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
-  <use xlink:href="#glyph0-9" x="397.773438" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="405.924805" y="284.038086"/>
-  <use xlink:href="#glyph0-4" x="414.076172" y="284.038086"/>
-</g>
-</g>
-</svg>
diff --git a/public/it4i/software/mpi/img/jupyter_new.png b/public/it4i/software/mpi/img/jupyter_new.png
deleted file mode 100644
index 6ca7601671c60098ef8023d9f417dcba106fb1e3..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/mpi/img/jupyter_new.png and /dev/null differ
diff --git a/public/it4i/software/mpi/img/jupyter_ood_start.png b/public/it4i/software/mpi/img/jupyter_ood_start.png
deleted file mode 100644
index 0b8868fea230307a25a9103a1aa9e4ec91af90b8..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/mpi/img/jupyter_ood_start.png and /dev/null differ
diff --git a/public/it4i/software/mpi/img/jupyter_run.png b/public/it4i/software/mpi/img/jupyter_run.png
deleted file mode 100644
index 15bdc0d850036bf8fe6e0ab727be67a73e506fbd..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/mpi/img/jupyter_run.png and /dev/null differ
diff --git a/public/it4i/software/mpi/img/ood_jupyter.png b/public/it4i/software/mpi/img/ood_jupyter.png
deleted file mode 100644
index faad0701cb42ac1fa2d8ed1e3e16604b5226c406..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/mpi/img/ood_jupyter.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/CMakeLists.txt b/public/it4i/software/viz/insitu/CMakeLists.txt
deleted file mode 100644
index b0b7d630a00e55b1ca20af86995cc7dae5648194..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/CMakeLists.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-cmake_minimum_required(VERSION 3.3)
-project(CatalystCxxFullExample)
-
-set(USE_CATALYST ON CACHE BOOL "Link the simulator with Catalyst")
-if(USE_CATALYST)
-  find_package(ParaView 5.6 REQUIRED COMPONENTS vtkPVPythonCatalyst)
-  include("${PARAVIEW_USE_FILE}")
-  set(Adaptor_SRCS
-    FEAdaptor.cxx
-    )
-  add_library(CxxFullExampleAdaptor ${Adaptor_SRCS})
-  target_link_libraries(CxxFullExampleAdaptor vtkPVPythonCatalyst vtkParallelMPI)
-  add_definitions("-DUSE_CATALYST")
-  if(NOT PARAVIEW_USE_MPI)
-    message(SEND_ERROR "ParaView must be built with MPI enabled")
-  endif()
-else()
-  find_package(MPI REQUIRED)
-  include_directories(${MPI_C_INCLUDE_PATH})
-endif()
-
-add_executable(CxxFullExample FEDriver.cxx FEDataStructures.cxx)
-if(USE_CATALYST)
-  target_link_libraries(CxxFullExample LINK_PRIVATE CxxFullExampleAdaptor)
-  include(vtkModuleMacros)
-  include(vtkMPI)
-  vtk_mpi_link(CxxFullExample)
-else()
-  target_link_libraries(CxxFullExample LINK_PRIVATE ${MPI_LIBRARIES})
-endif()
-
-option(BUILD_TESTING "Build Testing" OFF)
-# Setup testing.
-if (BUILD_TESTING)
-  include(CTest)
-  add_test(NAME CxxFullExampleTest COMMAND CxxFullExample ${CMAKE_CURRENT_SOURCE_DIR}/feslicescript.py)
-  set_tests_properties(CxxFullExampleTest PROPERTIES LABELS "PARAVIEW;CATALYST")
-endif()
diff --git a/public/it4i/software/viz/insitu/FEAdaptor.cxx b/public/it4i/software/viz/insitu/FEAdaptor.cxx
deleted file mode 100644
index a3fc3a9d4b6127b43a250905eb0feb6e36d22756..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/FEAdaptor.cxx
+++ /dev/null
@@ -1,160 +0,0 @@
-#include "FEAdaptor.h"
-#include "FEDataStructures.h"
-#include <iostream>
-
-#include <vtkCPDataDescription.h>
-#include <vtkCPInputDataDescription.h>
-#include <vtkCPProcessor.h>
-#include <vtkCPPythonScriptPipeline.h>
-#include <vtkCellData.h>
-#include <vtkCellType.h>
-#include <vtkDoubleArray.h>
-#include <vtkFloatArray.h>
-#include <vtkNew.h>
-#include <vtkPointData.h>
-#include <vtkPoints.h>
-#include <vtkUnstructuredGrid.h>
-
-namespace
-{
-vtkCPProcessor* Processor = NULL;
-vtkUnstructuredGrid* VTKGrid;
-
-void BuildVTKGrid(Grid& grid)
-{
-  // create the points information
-  vtkNew<vtkDoubleArray> pointArray;
-  pointArray->SetNumberOfComponents(3);
-  pointArray->SetArray(
-    grid.GetPointsArray(), static_cast<vtkIdType>(grid.GetNumberOfPoints() * 3), 1);
-  vtkNew<vtkPoints> points;
-  points->SetData(pointArray.GetPointer());
-  VTKGrid->SetPoints(points.GetPointer());
-
-  // create the cells
-  size_t numCells = grid.GetNumberOfCells();
-  VTKGrid->Allocate(static_cast<vtkIdType>(numCells * 9));
-  for (size_t cell = 0; cell < numCells; cell++)
-  {
-    unsigned int* cellPoints = grid.GetCellPoints(cell);
-    vtkIdType tmp[8] = { cellPoints[0], cellPoints[1], cellPoints[2], cellPoints[3], cellPoints[4],
-      cellPoints[5], cellPoints[6], cellPoints[7] };
-    VTKGrid->InsertNextCell(VTK_HEXAHEDRON, 8, tmp);
-  }
-}
-
-void UpdateVTKAttributes(Grid& grid, Attributes& attributes, vtkCPInputDataDescription* idd)
-{
-  if (idd->IsFieldNeeded("velocity", vtkDataObject::POINT) == true)
-  {
-    if (VTKGrid->GetPointData()->GetNumberOfArrays() == 0)
-    {
-      // velocity array
-      vtkNew<vtkDoubleArray> velocity;
-      velocity->SetName("velocity");
-      velocity->SetNumberOfComponents(3);
-      velocity->SetNumberOfTuples(static_cast<vtkIdType>(grid.GetNumberOfPoints()));
-      VTKGrid->GetPointData()->AddArray(velocity.GetPointer());
-    }
-    vtkDoubleArray* velocity =
-      vtkDoubleArray::SafeDownCast(VTKGrid->GetPointData()->GetArray("velocity"));
-    // The velocity array is ordered as vx0,vx1,vx2,..,vy0,vy1,vy2,..,vz0,vz1,vz2,..
-    // so we need to create a full copy of it with VTK's ordering of
-    // vx0,vy0,vz0,vx1,vy1,vz1,..
-    double* velocityData = attributes.GetVelocityArray();
-    vtkIdType numTuples = velocity->GetNumberOfTuples();
-    for (vtkIdType i = 0; i < numTuples; i++)
-    {
-      double values[3] = { velocityData[i], velocityData[i + numTuples],
-        velocityData[i + 2 * numTuples] };
-      velocity->SetTypedTuple(i, values);
-    }
-  }
-  if (idd->IsFieldNeeded("pressure", vtkDataObject::CELL) == true)
-  {
-    if (VTKGrid->GetCellData()->GetNumberOfArrays() == 0)
-    {
-      // pressure array
-      vtkNew<vtkFloatArray> pressure;
-      pressure->SetName("pressure");
-      pressure->SetNumberOfComponents(1);
-      VTKGrid->GetCellData()->AddArray(pressure.GetPointer());
-    }
-    vtkFloatArray* pressure =
-      vtkFloatArray::SafeDownCast(VTKGrid->GetCellData()->GetArray("pressure"));
-    // The pressure array is a scalar array so we can reuse
-    // memory as long as we ordered the points properly.
-    float* pressureData = attributes.GetPressureArray();
-    pressure->SetArray(pressureData, static_cast<vtkIdType>(grid.GetNumberOfCells()), 1);
-  }
-}
-
-void BuildVTKDataStructures(Grid& grid, Attributes& attributes, vtkCPInputDataDescription* idd)
-{
-  if (VTKGrid == NULL)
-  {
-    // The grid structure isn't changing so we only build it
-    // the first time it's needed. If we needed the memory
-    // we could delete it and rebuild as necessary.
-    VTKGrid = vtkUnstructuredGrid::New();
-    BuildVTKGrid(grid);
-  }
-  UpdateVTKAttributes(grid, attributes, idd);
-}
-}
-
-namespace FEAdaptor
-{
-
-void Initialize(char* script)
-{
-  if (Processor == NULL)
-  {
-    Processor = vtkCPProcessor::New();
-    Processor->Initialize();
-  }
-  else
-  {
-    Processor->RemoveAllPipelines();
-  }
-  
-  vtkNew<vtkCPPythonScriptPipeline> pipeline;
-  pipeline->Initialize(script);
-  Processor->AddPipeline(pipeline.GetPointer()); 
-}
-
-void Finalize()
-{
-  if (Processor)
-  {
-    Processor->Delete();
-    Processor = NULL;
-  }
-  if (VTKGrid)
-  {
-    VTKGrid->Delete();
-    VTKGrid = NULL;
-  }
-}
-
-void CoProcess(
-  Grid& grid, Attributes& attributes, double time, unsigned int timeStep, bool lastTimeStep)
-{
-  vtkNew<vtkCPDataDescription> dataDescription;
-  dataDescription->AddInput("input");
-  dataDescription->SetTimeData(time, timeStep);
-  if (lastTimeStep == true)
-  {
-    // assume that we want to execute all the pipelines if it
-    // is the last time step.
-    dataDescription->ForceOutputOn();
-  }
-  if (Processor->RequestDataDescription(dataDescription.GetPointer()) != 0)
-  {
-    vtkCPInputDataDescription* idd = dataDescription->GetInputDescriptionByName("input");
-    BuildVTKDataStructures(grid, attributes, idd);
-    idd->SetGrid(VTKGrid);
-    Processor->CoProcess(dataDescription.GetPointer());
-  }
-}
-} // end of Catalyst namespace
diff --git a/public/it4i/software/viz/insitu/FEAdaptor.h b/public/it4i/software/viz/insitu/FEAdaptor.h
deleted file mode 100644
index 86154b252eaec4b95065cc7b838d37e996d462fe..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/FEAdaptor.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef FEADAPTOR_HEADER
-#define FEADAPTOR_HEADER
-
-class Attributes;
-class Grid;
-
-namespace FEAdaptor
-{
-void Initialize(char* script);
-
-void Finalize();
-
-void CoProcess(
-  Grid& grid, Attributes& attributes, double time, unsigned int timeStep, bool lastTimeStep);
-}
-
-#endif
diff --git a/public/it4i/software/viz/insitu/FEDataStructures.cxx b/public/it4i/software/viz/insitu/FEDataStructures.cxx
deleted file mode 100644
index 858e450aa94dea6ccc598e0387596e2c7b96d15d..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/FEDataStructures.cxx
+++ /dev/null
@@ -1,155 +0,0 @@
-#include "FEDataStructures.h"
-
-#include <iostream>
-#include <mpi.h>
-
-Grid::Grid()
-{
-}
-
-void Grid::Initialize(const unsigned int numPoints[3], const double spacing[3])
-{
-  if (numPoints[0] == 0 || numPoints[1] == 0 || numPoints[2] == 0)
-  {
-    std::cerr << "Must have a non-zero amount of points in each direction.\n";
-  }
-  // in parallel, we do a simple partitioning in the x-direction.
-  int mpiSize = 1;
-  int mpiRank = 0;
-  MPI_Comm_rank(MPI_COMM_WORLD, &mpiRank);
-  MPI_Comm_size(MPI_COMM_WORLD, &mpiSize);
-
-  unsigned int startXPoint = mpiRank * numPoints[0] / mpiSize;
-  unsigned int endXPoint = (mpiRank + 1) * numPoints[0] / mpiSize;
-  if (mpiSize != mpiRank + 1)
-  {
-    endXPoint++;
-  }
-
-  // create the points -- slowest in the x and fastest in the z directions
-  double coord[3] = { 0, 0, 0 };
-  for (unsigned int i = startXPoint; i < endXPoint; i++)
-  {
-    coord[0] = i * spacing[0];
-    for (unsigned int j = 0; j < numPoints[1]; j++)
-    {
-      coord[1] = j * spacing[1];
-      for (unsigned int k = 0; k < numPoints[2]; k++)
-      {
-        coord[2] = k * spacing[2];
-        // add the coordinate to the end of the vector
-        std::copy(coord, coord + 3, std::back_inserter(this->Points));
-      }
-    }
-  }
-  // create the hex cells
-  unsigned int cellPoints[8];
-  unsigned int numXPoints = endXPoint - startXPoint;
-  for (unsigned int i = 0; i < numXPoints - 1; i++)
-  {
-    for (unsigned int j = 0; j < numPoints[1] - 1; j++)
-    {
-      for (unsigned int k = 0; k < numPoints[2] - 1; k++)
-      {
-        cellPoints[0] = i * numPoints[1] * numPoints[2] + j * numPoints[2] + k;
-        cellPoints[1] = (i + 1) * numPoints[1] * numPoints[2] + j * numPoints[2] + k;
-        cellPoints[2] = (i + 1) * numPoints[1] * numPoints[2] + (j + 1) * numPoints[2] + k;
-        cellPoints[3] = i * numPoints[1] * numPoints[2] + (j + 1) * numPoints[2] + k;
-        cellPoints[4] = i * numPoints[1] * numPoints[2] + j * numPoints[2] + k + 1;
-        cellPoints[5] = (i + 1) * numPoints[1] * numPoints[2] + j * numPoints[2] + k + 1;
-        cellPoints[6] = (i + 1) * numPoints[1] * numPoints[2] + (j + 1) * numPoints[2] + k + 1;
-        cellPoints[7] = i * numPoints[1] * numPoints[2] + (j + 1) * numPoints[2] + k + 1;
-        std::copy(cellPoints, cellPoints + 8, std::back_inserter(this->Cells));
-      }
-    }
-  }
-}
-
-size_t Grid::GetNumberOfPoints()
-{
-  return this->Points.size() / 3;
-}
-
-size_t Grid::GetNumberOfCells()
-{
-  return this->Cells.size() / 8;
-}
-
-double* Grid::GetPointsArray()
-{
-  if (this->Points.empty())
-  {
-    return NULL;
-  }
-  return &(this->Points[0]);
-}
-
-double* Grid::GetPoint(size_t pointId)
-{
-  if (pointId >= this->Points.size())
-  {
-    return NULL;
-  }
-  return &(this->Points[pointId * 3]);
-}
-
-unsigned int* Grid::GetCellPoints(size_t cellId)
-{
-  if (cellId >= this->Cells.size())
-  {
-    return NULL;
-  }
-  return &(this->Cells[cellId * 8]);
-}
-
-Attributes::Attributes()
-{
-  this->GridPtr = NULL;
-}
-
-void Attributes::Initialize(Grid* grid)
-{
-  this->GridPtr = grid;
-}
-
-void Attributes::UpdateFields(double time)
-{
-  size_t  numPoints = this->GridPtr->GetNumberOfPoints();
-  this->Velocity.resize(numPoints * 3);
-  
-  // provide different update setting for different parallel process
-  int mpiSize = 1;
-  int mpiRank = 0;
-  MPI_Comm_rank(MPI_COMM_WORLD, &mpiRank);
-  MPI_Comm_size(MPI_COMM_WORLD, &mpiSize);
-  double setting = 1.0 + (double) mpiRank / (double) mpiSize;
-  
-  for (size_t pt = 0; pt < numPoints; pt++)
-  {
-    double* coord = this->GridPtr->GetPoint(pt);
-    this->Velocity[pt] = coord[1] * time * setting;
-  }
-  std::fill(this->Velocity.begin() + numPoints, this->Velocity.end(), 0.0);
-
-  size_t numCells = this->GridPtr->GetNumberOfCells();
-  this->Pressure.resize(numCells);
-  std::fill(this->Pressure.begin(), this->Pressure.end(), setting);
-}
-
-double* Attributes::GetVelocityArray()
-{
-  if (this->Velocity.empty())
-  {
-    return NULL;
-  }
-  return &this->Velocity[0];
-}
-
-float* Attributes::GetPressureArray()
-{
-  if (this->Pressure.empty())
-  {
-    return NULL;
-  }
-  return &this->Pressure[0];
-}
diff --git a/public/it4i/software/viz/insitu/FEDataStructures.h b/public/it4i/software/viz/insitu/FEDataStructures.h
deleted file mode 100644
index bbfdf66991e3939f1a7d439b7ee81da6d0ce963b..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/FEDataStructures.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef FEDATASTRUCTURES_HEADER
-#define FEDATASTRUCTURES_HEADER
-
-#include <cstddef>
-#include <vector>
-
-class Grid
-{
-public:
-  Grid();
-  void Initialize(const unsigned int numPoints[3], const double spacing[3]);
-  size_t GetNumberOfPoints();
-  size_t GetNumberOfCells();
-  double* GetPointsArray();
-  double* GetPoint(size_t pointId);
-  unsigned int* GetCellPoints(size_t cellId);
-
-private:
-  std::vector<double> Points;
-  std::vector<unsigned int> Cells;
-};
-
-class Attributes
-{
-  // A class for generating and storing point and cell fields.
-  // Velocity is stored at the points and pressure is stored
-  // for the cells.
-
-public:
-  Attributes();
-  void Initialize(Grid* grid);
-  void UpdateFields(double time);
-  double* GetVelocityArray();
-  float* GetPressureArray();
-
-private:
-  std::vector<double> Velocity;
-  std::vector<float> Pressure;
-  Grid* GridPtr;
-};
-#endif
diff --git a/public/it4i/software/viz/insitu/FEDriver.cxx b/public/it4i/software/viz/insitu/FEDriver.cxx
deleted file mode 100644
index 90848a04d6790dec836ec115abb03126e48e9458..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/FEDriver.cxx
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "FEDataStructures.h"
-#include <mpi.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <iostream>
-#include <stdlib.h>
-
-#ifdef USE_CATALYST
-#include "FEAdaptor.h"
-#endif
-
-int main(int argc, char** argv)
-{
-  // Check the input arguments
-  if (argc < 5) {
-	printf("Not all arguments supplied (grid definition, Python script name)\n");
-	return 0;
-  }
-
-  unsigned int pointsX = abs(std::stoi(argv[1])); 
-  unsigned int pointsY = abs(std::stoi(argv[2]));
-  unsigned int pointsZ = abs(std::stoi(argv[3]));
-  
-  // MPI_Init(&argc, &argv);
-  MPI_Init(NULL, NULL);
-  Grid grid;
-
-  unsigned int numPoints[3] = { pointsX, pointsY, pointsZ };
-  double spacing[3] = { 1, 1.1, 1.3 };
-  grid.Initialize(numPoints, spacing);
-  Attributes attributes;
-  attributes.Initialize(&grid);
-
-#ifdef USE_CATALYST
-  // The argument nr. 4 is the Python script name
-  FEAdaptor::Initialize(argv[4]);
-#endif
-  unsigned int numberOfTimeSteps = 1000;
-  for (unsigned int timeStep = 0; timeStep < numberOfTimeSteps; timeStep++)
-  {
-    // Use a time step of length 0.1
-    double time = timeStep * 0.1;
-    attributes.UpdateFields(time);
-#ifdef USE_CATALYST
-    FEAdaptor::CoProcess(grid, attributes, time, timeStep, timeStep == numberOfTimeSteps - 1);
-#endif
-    
-    // Get the name of the processor
-    char processor_name[MPI_MAX_PROCESSOR_NAME];
-    int name_len;
-    MPI_Get_processor_name(processor_name, &name_len);
-
-    // Print actual time step and processor name that handles the calculation
-    printf("This is processor %s, time step: %0.3f\n", processor_name, time);
-    usleep(500000);
-  }
-
-#ifdef USE_CATALYST
-  FEAdaptor::Finalize();
-#endif
-  MPI_Finalize();
-
-  return 0;
-}
diff --git a/public/it4i/software/viz/insitu/feslicescript.py b/public/it4i/software/viz/insitu/feslicescript.py
deleted file mode 100644
index 1a3344ec7a932093374eb41dfa605ae973e73c72..0000000000000000000000000000000000000000
--- a/public/it4i/software/viz/insitu/feslicescript.py
+++ /dev/null
@@ -1,72 +0,0 @@
-from paraview.simple import *
-from paraview import coprocessing
-
-#--------------------------------------------------------------
-# Code generated from cpstate.py to create the CoProcessor.
-
-
-# ----------------------- CoProcessor definition -----------------------
-
-def CreateCoProcessor():
-  def _CreatePipeline(coprocessor, datadescription):
-    class Pipeline:
-      coprocessor.CreateProducer( datadescription, "input" )
-
-    return Pipeline()
-
-  class CoProcessor(coprocessing.CoProcessor):
-    def CreatePipeline(self, datadescription):
-      self.Pipeline = _CreatePipeline(self, datadescription)
-
-  coprocessor = CoProcessor()
-  freqs = {'input': []}
-  coprocessor.SetUpdateFrequencies(freqs)
-  return coprocessor
-
-#--------------------------------------------------------------
-# Global variables that will hold the pipeline for each timestep
-# Creating the CoProcessor object, doesn't actually create the ParaView pipeline.
-# It will be automatically setup when coprocessor.UpdateProducers() is called the
-# first time.
-coprocessor = CreateCoProcessor()
-
-#--------------------------------------------------------------
-# Enable Live-Visualizaton with ParaView
-coprocessor.EnableLiveVisualization(True)
-
-
-# ---------------------- Data Selection method ----------------------
-
-def RequestDataDescription(datadescription):
-    "Callback to populate the request for current timestep"
-    global coprocessor
-    if datadescription.GetForceOutput() == True:
-        # We are just going to request all fields and meshes from the simulation
-        # code/adaptor.
-        for i in range(datadescription.GetNumberOfInputDescriptions()):
-            datadescription.GetInputDescription(i).AllFieldsOn()
-            datadescription.GetInputDescription(i).GenerateMeshOn()
-        return
-
-    # setup requests for all inputs based on the requirements of the
-    # pipeline.
-    coprocessor.LoadRequestedData(datadescription)
-
-# ------------------------ Processing method ------------------------
-
-def DoCoProcessing(datadescription):
-    "Callback to do co-processing for current timestep"
-    global coprocessor
-
-    # Update the coprocessor by providing it the newly generated simulation data.
-    # If the pipeline hasn't been setup yet, this will setup the pipeline.
-    coprocessor.UpdateProducers(datadescription)
-
-    # Write output data, if appropriate.
-    coprocessor.WriteData(datadescription);
-
-    # Write image capture (Last arg: rescale lookup table), if appropriate.
-    coprocessor.WriteImages(datadescription, rescale_lookuptable=False)
-
-    # Live Visualization, if enabled.
-    coprocessor.DoLiveVisualization(datadescription, "localhost", 22222)
diff --git a/public/it4i/software/viz/insitu/img/Catalyst_connect.png b/public/it4i/software/viz/insitu/img/Catalyst_connect.png
deleted file mode 100644
index f9a4901c52728b552ce8f4000d7906836e7aee20..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Catalyst_connect.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/CoProcess.png b/public/it4i/software/viz/insitu/img/CoProcess.png
deleted file mode 100644
index 4cc8f5d9af44f55d93db026706b594ba12cfb53a..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/CoProcess.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Data_shown.png b/public/it4i/software/viz/insitu/img/Data_shown.png
deleted file mode 100644
index 2342962bd946dae806625f8c692688e9c3a57da7..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Data_shown.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Extract_input.png b/public/it4i/software/viz/insitu/img/Extract_input.png
deleted file mode 100644
index 6bdcba1b6609f5aa4def63c91c261ec31210dd58..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Extract_input.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/FEDriver.png b/public/it4i/software/viz/insitu/img/FEDriver.png
deleted file mode 100644
index 59c3b8b18d930106c77a51c33f8a7b624b054c2b..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/FEDriver.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Finalize.png b/public/it4i/software/viz/insitu/img/Finalize.png
deleted file mode 100644
index 9d7ae9fb1853898a4a4c8b3a0a097b98b5fc40a7..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Finalize.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Initialize.png b/public/it4i/software/viz/insitu/img/Initialize.png
deleted file mode 100644
index 19ff205cc2b257a4334e227dce28d2208dd99ea4..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Initialize.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Input_pipeline.png b/public/it4i/software/viz/insitu/img/Input_pipeline.png
deleted file mode 100644
index 82f8ca1c9952fc94bb05095dc5a65eb83e455955..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Input_pipeline.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Result.png b/public/it4i/software/viz/insitu/img/Result.png
deleted file mode 100644
index f198073a0209e4afc562708c0bb68e3b94d85dd1..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Result.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Show_velocity.png b/public/it4i/software/viz/insitu/img/Show_velocity.png
deleted file mode 100644
index 5870f929f30fdb201687705a46e79122abcc619c..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Show_velocity.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/Simulator_response.png b/public/it4i/software/viz/insitu/img/Simulator_response.png
deleted file mode 100644
index c52f48a69dc20bc9966f05e35181c95485cdcc34..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/Simulator_response.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/UpdateFields.png b/public/it4i/software/viz/insitu/img/UpdateFields.png
deleted file mode 100644
index a238a69d790f0e347b3d76a87230a3c8633096a3..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/UpdateFields.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/img/feslicescript.png b/public/it4i/software/viz/insitu/img/feslicescript.png
deleted file mode 100644
index 29d5b7fa395b007990d49e0acab120f4f72ddf26..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/img/feslicescript.png and /dev/null differ
diff --git a/public/it4i/software/viz/insitu/insitu.tar.gz b/public/it4i/software/viz/insitu/insitu.tar.gz
deleted file mode 100644
index a58ee6017e061765ba7dcbf405a8ff60a8a2c222..0000000000000000000000000000000000000000
Binary files a/public/it4i/software/viz/insitu/insitu.tar.gz and /dev/null differ
diff --git a/public/it4i/src/IB_single-plane_topology_-_Accelerated_nodes.pdf b/public/it4i/src/IB_single-plane_topology_-_Accelerated_nodes.pdf
deleted file mode 100644
index d46c9b8fcc178bad31b7e7c11f2e120f784fc414..0000000000000000000000000000000000000000
Binary files a/public/it4i/src/IB_single-plane_topology_-_Accelerated_nodes.pdf and /dev/null differ
diff --git a/public/it4i/src/IB_single-plane_topology_-_ICEX_Mcell.pdf b/public/it4i/src/IB_single-plane_topology_-_ICEX_Mcell.pdf
deleted file mode 100644
index a2c7ce24e94cfbbadec3500a515e519a584671ac..0000000000000000000000000000000000000000
Binary files a/public/it4i/src/IB_single-plane_topology_-_ICEX_Mcell.pdf and /dev/null differ
diff --git a/public/it4i/src/css.css b/public/it4i/src/css.css
deleted file mode 100644
index 50dcdc37fc1f2f448cf7badca3de9dfb8763d57e..0000000000000000000000000000000000000000
--- a/public/it4i/src/css.css
+++ /dev/null
@@ -1,227 +0,0 @@
-:root {
-  --md-details-icon: url("data:image/svg+xml; utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z' /></svg>")
-}
-
-.md-typeset details {
-  display:block;
-  padding-top:0;
-  overflow:visible
-}
-
-.md-typeset details[open]>summary::after {
-  transform:rotate(90deg)
-}
-
-.md-typeset details:not([open]) {
-  padding-bottom:0
-}
-
-.md-typeset details:not([open])>summary {
-  border-bottom-right-radius:.1rem
-}
-
-.md-typeset details::after {
-  display:table;
-  content:""
-}
-
-.md-typeset summary {
-  display:block;
-  min-height:1rem;
-  padding:.4rem 1.8rem .4rem 2rem;
-  border-top-right-radius:.1rem;
-  cursor:pointer
-}
-
-[dir=rtl] .md-typeset summary {
-  padding:.4rem 2rem .4rem 1.8rem
-}
-
-.md-typeset summary::-webkit-details-marker {
-  display:none
-}
-
-.md-typeset summary::after {
-  position:absolute;
-  top:.4rem;
-  right:.4rem;
-  width:1rem;
-  height:1rem;
-  background-color:currentColor;
-  -webkit-mask-image:var(--md-details-icon);
-  mask-image:var(--md-details-icon);
-  transform:rotate(0deg);
-  transition:transform 250ms;
-  content:""
-}
-
-[dir=rtl] .md-typeset summary::after {
-  right:initial;
-  left:.4rem;
-  transform:rotate(180deg)
-}
-
-html .md-nav__link[for=__toc] {
-  display:none
-}
-
-html .md-nav__link[for=__toc]~.md-nav {
-  display: none;
-}
-
-
-.md-nav__icon.md-icon svg {
-    display: inline-block;
-    width: 0.9rem;
-    height: 0.9rem;
-    vertical-align: -0.1rem;}
-/*
-.md-nav__icon.md-icon {
-  float: left;
-  padding-right: .2rem;
-}
-*/
-.md-nav__it4i_link {
-    display: block;
-    transition: color 0.125s;
-    text-overflow: ellipsis;
-    cursor: pointer;
-    overflow: hidden
-}
-
-a:not([href*="//"]) {
-    /* CSS for internal links */
-}
-
-a.md-footer-social__link.fa.fa-globe {
-    !background: none;
-}
-
-a[href*="//"]:not( [href*='127.0.0.1'] ):not( [href*='docs.it4i.cz'] ):not( [href*='gitlab.it4i.cz'] ):not( [href*='code.it4i.cz'] ):not( [href*='https://www.it4i.cz'] ):not( [href*='https://support.it4i.cz'] )  {
-    /*CSS for external links */
-    background: transparent url("/img/external.png") no-repeat right 0px top 1px;
-    background-size: 12px;
-    padding: 1px 16px 1px 0px;
-}
-
-
-.md-nav__it4i_link:after {
-    font-family: Material Icons;
-    font-style: normal;
-    font-variant: normal;
-    font-weight: 400;
-    line-height: 1;
-    text-transform: none;
-    white-space: nowrap;
-    speak: none;
-    word-wrap: normal;
-    direction: ltr
-}
-
-/*
-.md-nav__item--nested>.md-nav__it4i_link:after {
-    content: "keyboard_arrow_down"
-}*/
-
-html .md-nav__it4i_link[for=toc],html .md-nav__it4i_link[for=toc]+.md-nav__it4i_link:after,html .md-nav__it4i_link[for=toc]~.md-nav {
-    display: none;
-}
-
-/*
-.md-nav__it4i_link[data-md-state=blur] {
-    color: rgba(0,0,0,.54)
-}
-*/
-
-.md-nav__it4i_link--active,.md-nav__it4i_link:active {
-    color: #3f51b5
-}
-
-.md-nav__it4i_link:focus,.md-nav__it4i_link:hover {
-    color: #536dfe
-}
-@media only screen and (max-width: 59.9375em) {
-    html .md-nav__it4i_link[for=toc] {
-        display: block;
-        padding-right: 4.8rem
-    }
-
-    html .md-nav__it4i_link[for=toc]:after {
-        color: inherit;
-        content: "toc"
-    }
-
-    html .md-nav__it4i_link[for=toc]+.md-nav__it4i_link {
-        display: none
-    }
-
-    html .md-nav__it4i_link[for=toc]~.md-nav {
-        display: -webkit-box;
-        display: -ms-flexbox;
-        display: flex
-    }
-    /*
-    .md-nav--primary .md-nav__item--nested>.md-nav__it4i_link {
-        padding-right: 4.8rem
-    }
-
-    .md-nav--primary .md-nav__item--nested>.md-nav__it4i_link:after {
-        display: none;
-    }*/
-
-    .md-nav--primary .md-nav__it4i_link {
-        position: relative;
-        padding: 1.6rem
-    }
-
-    .md-nav--primary .md-nav__it4i_link:after {
-        position: absolute;
-        top: 50%;
-        right: 1.2rem;
-        margin-top: -1.2rem;
-        color: rgba(0,0,0,.54);
-        font-size: 2.4rem
-    }
-
-    .md-nav--primary .md-nav__it4i_link:focus:after,.md-nav--primary .md-nav__it4i_link:hover:after {
-        color: inherit
-    }
-
-    .md-nav--primary .md-nav--secondary .md-nav .md-nav__it4i_link {
-        padding-left: 2.8rem
-    }
-
-    .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__it4i_link {
-        padding-left: 4rem
-    }
-
-    .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__it4i_link {
-        padding-left: 5.2rem
-    }
-
-    .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__it4i_link {
-        padding-left: 6.4rem
-    }
-}
-@media only screen and (min-width: 76.25em) {
-    .md-nav__item--nested>.md-nav__it4i_link:after {
-        display: inline-block;
-        -webkit-transform-origin: .45em .45em;
-        transform-origin: .45em .45em;
-        -webkit-transform-style: preserve-3d;
-        transform-style: preserve-3d;
-        vertical-align: -.125em
-    }
-
-    .js .md-nav__item--nested>.md-nav__it4i_link:after {
-        -webkit-transition: -webkit-transform .4s;
-        transition: -webkit-transform .4s;
-        transition: transform .4s;
-        transition: transform .4s,-webkit-transform .4s
-    }
-
-    .md-nav__item--nested .md-nav__toggle:checked~.md-nav__it4i_link:after {
-        -webkit-transform: rotateX(180deg);
-        transform: rotateX(180deg)
-    }
-}
diff --git a/public/it4i/src/mympiprog_32p_2014-10-15_16-56.html b/public/it4i/src/mympiprog_32p_2014-10-15_16-56.html
deleted file mode 100644
index ce60070a9ee25a91973a577fd048d88f31d4680e..0000000000000000000000000000000000000000
--- a/public/it4i/src/mympiprog_32p_2014-10-15_16-56.html
+++ /dev/null
@@ -1,610 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>mympiprog.x - Performance Report</title>
-<style type="text/css">
-body {
-    font-family: "Lucida Grande", "Lucida Sans Unicode", "Bitstream Vera Sans",sans-serif;
-    font-size: 1em;
-    color: #2c1a0a;
-}
-div#content {
-    width: 900px;
-    margin-left: auto;
-    margin-right: auto;
-}
-.header {
-    padding-top: 16px;
-}
-.header_left {
-    float:left;
-    width: 532px;
-}
-.logo {
-    float: left;
-}
-.logo img { height: 150px; }
-#time_radar {
-    float: right;
-}
-#time_radar .legend_CPU { fill: #4fd32e; font-size: 1.5em; }
-#time_radar .legend_MPI { fill: #409ded; font-size: 1.5em; }
-#time_radar .legend_IO { fill: #ed8140; font-size: 1.5em; }
-.clear {
-    clear: both;
-}
-table {
-    border-spacing: 0;
-}
-td {
-    padding-left: 0;
-    padding-right: 16px;
-    padding-top: 1px;
-    padding-bottom: 1px;
-}
-#error {
-    border: 1px solid;
-    margin: 16px 0px;
-    padding: 16px 16px 16px 16px;
-    color: #C80000;
-    background-color: #FFC0C0;
-}
-#error p {
-    margin: 8px;
-}
-.application_details {
-    margin-top: 8px;
-    margin-left: 16px;
-    margin-right: 16px;
-}
-.application_details .details_key { width: 100px; color: #bdc4d5;}
-.application_details table {
-    table-layout: fixed;
-    width: 100%;
-    color: #37537b;
-}
-.application_details #cmdline {
-    word-wrap: break-word;
-}
-.application_details #exe_path {
-    word-wrap: break-word;
-}
-.summary {
-}
-hr {
-    margin-top: 32px;
-    margin-bottom: 32px;
-    visibility: hidden;
-}
-.summary .heading {
-    font-family: inherit;
-    font-size: 1.8em;
-    padding-bottom: 8px;
-}
-#summary_cpu_class {
-    font-weight: bold;
-}
-#summary_mpi_class {
-    font-weight: bold;
-}
-#summary_io_class {
-    font-weight: bold;
-}
-.overview_general_advice p {
-    margin-top: 8px;
-    margin-bottom: 8px;
-}
-.subsections {
-    margin-bottom: 32px;
-}
-.subsections .heading {
-    font-family: inherit;
-    font-size: 2em;
-    padding-bottom: 8px;
-}
-.subsections .heading_cpu {
-    padding-bottom: 8px;
-}
-.subsections .heading_mpi {
-    padding-bottom: 8px;
-}
-.subsections .heading_ram {
-    padding-bottom: 8px;
-}
-.subsections .heading_io {
-    padding-bottom: 8px;
-}
-.subsections .explanation {
-    font-size: 0.9em;
-    color: #404040;
-    padding-top: 8px;
-}
-
-.ltcol, .ctcol { float: left; width: 436px; padding-right: 16px; }
-.rtcol { float: right; width: 436px; }
-
-.heading_cpu { color: #4fd32e; font-size: 1.5em; }
-.heading_mpi { color: #409ded; font-size: 1.5em; }
-.heading_ram { color: #ed4040; font-size: 1.5em; }
-.heading_io { color: #ed8140; font-size: 1.5em; }
-.cpu_span { color: #4fd32e; }
-.mpi_span { color: #409ded; }
-.ram { color: #ed4040; }
-.io_span { color: #ed8140; }
-.bar_graph { width: 200px; }
-#cpu_bar { background-color: #4fd32e; width: 0; height: 2em; }
-#mpi_bar { background-color: #409ded; width: 0; height: 2em; }
-#io_bar { background-color: #ed8140; width: 0; height: 2em; }
-.summary_table { padding-top: 16px; padding-bottom: 8px; }
-.summary_table td p { margin: 0px; margin-bottom: 4px; }
-.summary_table td { padding-bottom: 8px; }
-.summary_table .details { font-size: 0.9em; }
-.balanced_span { color: #bb58d6; }
-.right_cell { text-align: right; }
-
-#cpu_chart { padding-top: 8px; }
-#cpu_chart td { font-size: 0.9em; padding-bottom: 8px; }
-.mini_bar_graph { width: 50px; }
-#cpu_num_bar { background-color: #4fd32e; width: 0; height: 1em; }
-#cpu_vec_bar { background-color: #3c9f23; width: 0; height: 1em; }
-#cpu_mem_bar { background-color: #266516; width: 0; height: 1em; }
-#cpu_other_bar { background-color: #808080; width: 0; height: 1em; }
-.cpu_num_span { color: #4fd32e; }
-.cpu_vec_span { color: #3c9f23; }
-.cpu_mem_span { color: #266516; }
-.cpu_other_span { color: #808080; }
-
-#mpi_chart { padding-top: 8px; }
-#mpi_chart td { font-size: 0.9em; padding-bottom: 8px; }
-#mpi_col_bar { background-color: #409ded; width: 0; height: 1em; }
-#mpi_p2p_bar { background-color: #2f73ad; width: 0; height: 1em; }
-#mpi_colrate_bar { background-color: #255a87; width: 0; height: 1em; }
-#mpi_p2prate_bar { background-color: #1f4a70; width: 0; height: 1em; }
-.mpi_col_span { color: #409ded; }
-.mpi_p2p_span { color: #2f73ad; }
-.mpi_colrate_span { color: #255a87; }
-.mpi_p2prate_span { color: #1f4a70; }
-
-#ram_chart { padding-top: 8px; }
-#ram_chart td { font-size: 0.9em; padding-bottom: 8px; }
-#ram_mean_bar { background-color: #ed4040; width: 0; height: 1em; }
-#ram_peak_bar { background-color: #b53131; width: 0; height: 1em; }
-#ram_node_bar { background-color: #742020; width: 0; height: 1em; }
-.ram_mean_span { color: #ed4040; }
-.ram_peak_span { color: #b53131; }
-.ram_node_span { color: #742020; }
-
-#io_chart { padding-top: 8px; }
-#io_chart td { font-size: 0.9em; padding-bottom: 8px; }
-#io_read_bar { background-color: #ed8140; width: 0; height: 1em; }
-#io_write_bar { background-color: #a95e0b; width: 0; height: 1em; }
-#io_readrate_bar { background-color: #9b7c14; width: 0; height: 1em; }
-#io_writerate_bar { background-color: #7b6210; width: 0; height: 1em; }
-.io_read_span { color: #ed8140; }
-.io_write_span { color: #a95e0b; }
-.io_readrate_span { color: #9b7c14; }
-.io_writerate_span { color: #7b6210; }
-
-</style>
-<script type="text/javascript">d3=function(){function n(n){return null!=n&&!isNaN(n)}function t(n){return n.length}function e(n){for(var t=1;n*t%1;)t*=10;return t}function r(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function u(){}function i(){}function o(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function a(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=la.length;r>e;++e){var u=la[e]+t;if(u in n)return u}}function c(){}function s(){}function l(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new u;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function f(){$o.event.preventDefault()}function h(){for(var n,t=$o.event;n=t.sourceEvent;)t=n;return t}function g(n){for(var t=new s,e=0,r=arguments.length;++e<r;)t[arguments[e]]=l(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=$o.event;u.target=n,$o.event=u,t[u.type].apply(e,r)}finally{$o.event=i}}},t}function p(n){return ha(n,ma),n}function v(n){return"function"==typeof n?n:function(){return ga(n,this)}}function d(n){return"function"==typeof n?n:function(){return pa(n,this)}}function m(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=$o.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function y(n){return n.trim().replace(/\s+/g," ")}function x(n){return new RegExp("(?:^|\\s+)"+$o.requote(n)+"(?:\\s+|$)","g")}function M(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=n.trim().split(/\s+/).map(_);var u=n.length;return"function"==typeof t?r:e}function _(n){var t=x(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",y(u+" "+n))):e.setAttribute("class",y(u.replace(t," ")))}}function b(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function w(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function S(n){return"function"==typeof n?n:(n=$o.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function k(n){return{__data__:n}}function E(n){return function(){return da(this,n)}}function A(n){return arguments.length||(n=$o.ascending),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function C(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function N(n){return ha(n,xa),n}function L(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function T(){var n=this.__transition__;n&&++n.active}function q(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=s(t,Wo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+$o.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),s=z;a>0&&(n=n.substring(0,a));var l=_a.get(n);return l&&(n=l,s=R),a?t?u:r:t?c:i}function z(n,t){return function(e){var r=$o.event;$o.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{$o.event=r}}}function R(n,t){var e=z(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function D(){var n=".dragsuppress-"+ ++wa,t="click"+n,e=$o.select(Ko).on("touchmove"+n,f).on("dragstart"+n,f).on("selectstart"+n,f);if(ba){var r=Go.style,u=r[ba];r[ba]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),ba&&(r[ba]=u),i&&(e.on(t,function(){f(),o()},!0),setTimeout(o,0))}}function P(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Sa&&(Ko.scrollX||Ko.scrollY)){e=$o.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();Sa=!(u.f||u.e),e.remove()}return Sa?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function U(n){return n>0?1:0>n?-1:0}function j(n){return n>1?0:-1>n?ka:Math.acos(n)}function H(n){return n>1?Aa:-1>n?-Aa:Math.asin(n)}function F(n){return((n=Math.exp(n))-1/n)/2}function O(n){return((n=Math.exp(n))+1/n)/2}function Y(n){return((n=Math.exp(2*n))-1)/(n+1)}function I(n){return(n=Math.sin(n/2))*n}function Z(){}function V(n,t,e){return new X(n,t,e)}function X(n,t,e){this.h=n,this.s=t,this.l=e}function $(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,ot(u(n+120),u(n),u(n-120))}function B(n,t,e){return new W(n,t,e)}function W(n,t,e){this.h=n,this.c=t,this.l=e}function J(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),G(e,Math.cos(n*=La)*t,Math.sin(n)*t)}function G(n,t,e){return new K(n,t,e)}function K(n,t,e){this.l=n,this.a=t,this.b=e}function Q(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=tt(u)*Oa,r=tt(r)*Ya,i=tt(i)*Ia,ot(rt(3.2404542*u-1.5371385*r-.4985314*i),rt(-.969266*u+1.8760108*r+.041556*i),rt(.0556434*u-.2040259*r+1.0572252*i))}function nt(n,t,e){return n>0?B(Math.atan2(e,t)*Ta,Math.sqrt(t*t+e*e),n):B(0/0,0/0,n)}function tt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function et(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function rt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function ut(n){return ot(n>>16,255&n>>8,255&n)}function it(n){return ut(n)+""}function ot(n,t,e){return new at(n,t,e)}function at(n,t,e){this.r=n,this.g=t,this.b=e}function ct(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function st(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(gt(u[0]),gt(u[1]),gt(u[2]))}return(i=Xa.get(n))?t(i.r,i.g,i.b):(null!=n&&"#"===n.charAt(0)&&(4===n.length?(o=n.charAt(1),o+=o,a=n.charAt(2),a+=a,c=n.charAt(3),c+=c):7===n.length&&(o=n.substring(1,3),a=n.substring(3,5),c=n.substring(5,7)),o=parseInt(o,16),a=parseInt(a,16),c=parseInt(c,16)),t(o,a,c))}function lt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),V(r,u,c)}function ft(n,t,e){n=ht(n),t=ht(t),e=ht(e);var r=et((.4124564*n+.3575761*t+.1804375*e)/Oa),u=et((.2126729*n+.7151522*t+.072175*e)/Ya),i=et((.0193339*n+.119192*t+.9503041*e)/Ia);return G(116*u-16,500*(r-u),200*(u-i))}function ht(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function gt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function pt(n){return"function"==typeof n?n:function(){return n}}function vt(n){return n}function dt(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),mt(t,e,n,r)}}function mt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=$o.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Ko.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=$o.event;$o.event=n;try{o.progress.call(i,c)}finally{$o.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Wo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},$o.rebind(i,o,"on"),null==r?i:i.get(yt(r))}function yt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function xt(){var n=Mt(),t=_t()-n;t>24?(isFinite(t)&&(clearTimeout(Ja),Ja=setTimeout(xt,t)),Wa=0):(Wa=1,Ka(xt))}function Mt(){var n=Date.now();for(Ga=$a;Ga;)n>=Ga.t&&(Ga.f=Ga.c(n-Ga.t)),Ga=Ga.n;return n}function _t(){for(var n,t=$a,e=1/0;t;)t.f?t=n?n.n=t.n:$a=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Ba=n,e}function bt(n,t){var e=Math.pow(10,3*aa(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function wt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function St(n){return n+""}function kt(){}function Et(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function At(n,t){n&&lc.hasOwnProperty(n.type)&&lc[n.type](n,t)}function Ct(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function Nt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)Ct(n[e],t,1);t.polygonEnd()}function Lt(){function n(n,t){n*=La,t=t*La/2+ka/4;var e=n-r,o=Math.cos(t),a=Math.sin(t),c=i*a,s=u*o+c*Math.cos(e),l=c*Math.sin(e);hc.add(Math.atan2(l,s)),r=n,u=o,i=a}var t,e,r,u,i;gc.point=function(o,a){gc.point=n,r=(t=o)*La,u=Math.cos(a=(e=a)*La/2+ka/4),i=Math.sin(a)},gc.lineEnd=function(){n(t,e)}}function Tt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function qt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function zt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Rt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Dt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Pt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Ut(n){return[Math.atan2(n[1],n[0]),H(n[2])]}function jt(n,t){return aa(n[0]-t[0])<Ca&&aa(n[1]-t[1])<Ca}function Ht(n,t){n*=La;var e=Math.cos(t*=La);Ft(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function Ft(n,t,e){++pc,dc+=(n-dc)/pc,mc+=(t-mc)/pc,yc+=(e-yc)/pc}function Ot(){function n(n,u){n*=La;var i=Math.cos(u*=La),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),s=Math.atan2(Math.sqrt((s=e*c-r*a)*s+(s=r*o-t*c)*s+(s=t*a-e*o)*s),t*o+e*a+r*c);vc+=s,xc+=s*(t+(t=o)),Mc+=s*(e+(e=a)),_c+=s*(r+(r=c)),Ft(t,e,r)}var t,e,r;kc.point=function(u,i){u*=La;var o=Math.cos(i*=La);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),kc.point=n,Ft(t,e,r)}}function Yt(){kc.point=Ht}function It(){function n(n,t){n*=La;var e=Math.cos(t*=La),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),s=u*c-i*a,l=i*o-r*c,f=r*a-u*o,h=Math.sqrt(s*s+l*l+f*f),g=r*o+u*a+i*c,p=h&&-j(g)/h,v=Math.atan2(h,g);bc+=p*s,wc+=p*l,Sc+=p*f,vc+=v,xc+=v*(r+(r=o)),Mc+=v*(u+(u=a)),_c+=v*(i+(i=c)),Ft(r,u,i)}var t,e,r,u,i;kc.point=function(o,a){t=o,e=a,kc.point=n,o*=La;var c=Math.cos(a*=La);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),Ft(r,u,i)},kc.lineEnd=function(){n(t,e),kc.lineEnd=Yt,kc.point=Ht}}function Zt(){return!0}function Vt(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(jt(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new $t(e,n,null,!0),s=new $t(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new $t(r,n,null,!1),s=new $t(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),Xt(i),Xt(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function Xt(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function $t(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Bt(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function s(){y.point=o,d.lineEnd()}function l(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){l(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r){if(1&t){n=e[0];var u,r=n.length-1,o=-1;for(i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);return i.lineEnd(),void 0}r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Wt))}}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[],i.polygonStart()},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=$o.merge(g);var n=Kt(m,p);g.length?Vt(g,Gt,n,e,i):n&&(i.lineStart(),e(null,null,1,i),i.lineEnd()),i.polygonEnd(),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Jt(),M=t(x);return y}}function Wt(n){return n.length>1}function Jt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:c,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Gt(n,t){return((n=n.x)[0]<0?n[1]-Aa-Ca:Aa-n[1])-((t=t.x)[0]<0?t[1]-Aa-Ca:Aa-t[1])}function Kt(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;hc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ka/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ka/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=aa(_)>ka,w=p*x;if(hc.add(Math.atan2(w*Math.sin(_),v*M+w*Math.cos(_))),i+=b?_+(_>=0?Ea:-Ea):_,b^h>=e^m>=e){var S=zt(Tt(f),Tt(n));Pt(S);var k=zt(u,S);Pt(k);var E=(b^_>=0?-1:1)*H(k[2]);(r>E||r===E&&(S[0]||S[1]))&&(o+=b^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-Ca>i||Ca>i&&0>hc)^1&o}function Qt(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ka:-ka,c=aa(i-e);aa(c-ka)<Ca?(n.point(e,r=(r+o)/2>0?Aa:-Aa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ka&&(aa(e-u)<Ca&&(e-=u*Ca),aa(i-a)<Ca&&(i-=a*Ca),r=ne(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function ne(n,t,e,r){var u,i,o=Math.sin(n-e);return aa(o)>Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function te(n,t,e,r){var u;if(null==n)u=e*Aa,r.point(-ka,u),r.point(0,u),r.point(ka,u),r.point(ka,0),r.point(ka,-u),r.point(0,-u),r.point(-ka,-u),r.point(-ka,0),r.point(-ka,u);else if(aa(n[0]-t[0])>Ca){var i=n[0]<t[0]?ka:-ka;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function ee(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ka:-ka),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(jt(e,g)||jt(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&jt(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=Tt(n),u=Tt(t),o=[1,0,0],a=zt(r,u),c=qt(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=zt(o,a),p=Dt(o,f),v=Dt(a,h);Rt(p,v);var d=g,m=qt(p,d),y=qt(d,d),x=m*m-y*(qt(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=Dt(d,(-m-M)/y);if(Rt(_,p),_=Ut(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=aa(A-ka)<Ca,N=C||Ca>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(aa(_[0]-w)<Ca?k:E):k<=_[1]&&_[1]<=E:A>ka^(w<=_[0]&&_[0]<=S)){var L=Dt(d,(-m+M)/y);return Rt(L,p),[_,Ut(L)]}}}function u(t,e){var r=o?n:ka-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=aa(i)>Ca,c=Le(n,6*La);return Bt(t,e,c,o?[0,-n]:[-ka,n-ka])}function re(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function ue(n,t,e,r){function u(r,u){return aa(r[0]-n)<Ca?u>0?0:3:aa(r[0]-e)<Ca?u>0?2:1:aa(r[1]-t)<Ca?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=m.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=m[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&s(l,i,n)>0&&++t:i[1]<=r&&s(l,i,n)<0&&--t,l=i;return 0!==t}function s(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(e[0]-n[0])*(t[1]-n[1])}function l(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function f(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function h(n,t){f(n,t)&&a.point(n,t)}function g(){L.point=v,m&&m.push(y=[]),k=!0,S=!1,b=w=0/0}function p(){d&&(v(x,M),_&&S&&C.rejoin(),d.push(C.buffer())),L.point=h,S&&a.lineEnd()}function v(n,t){n=Math.max(-Ac,Math.min(Ac,n)),t=Math.max(-Ac,Math.min(Ac,t));var e=f(n,t);if(m&&y.push([n,t]),k)x=n,M=t,_=e,k=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&S)a.point(n,t);else{var r={a:{x:b,y:w},b:{x:n,y:t}};N(r)?(S||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),E=!1):e&&(a.lineStart(),a.point(n,t),E=!1)}b=n,w=t,S=e}var d,m,y,x,M,_,b,w,S,k,E,A=a,C=Jt(),N=re(n,t,e,r),L={point:h,lineStart:g,lineEnd:p,polygonStart:function(){a=C,d=[],m=[],E=!0},polygonEnd:function(){a=A,d=$o.merge(d);var t=c([n,r]),e=E&&t,u=d.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Vt(d,i,t,l,a),a.polygonEnd()),d=m=y=null}};return L}}function ie(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function oe(n){var t=0,e=ka/3,r=be(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ka/180,e=n[1]*ka/180):[180*(t/ka),180*(e/ka)]},u}function ae(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,H((i-(n*n+e*e)*u*u)/(2*u))]},e}function ce(){function n(n,t){Nc+=u*n-r*t,r=n,u=t}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,t=r=i,e=u=o},Rc.lineEnd=function(){n(t,e)}}function se(n,t){Lc>n&&(Lc=n),n>qc&&(qc=n),Tc>t&&(Tc=t),t>zc&&(zc=t)}function le(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=fe(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=fe(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function fe(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function he(n,t){dc+=n,mc+=t,++yc}function ge(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);xc+=o*(t+n)/2,Mc+=o*(e+r)/2,_c+=o,he(t=n,e=r)}var t,e;Pc.point=function(r,u){Pc.point=n,he(t=r,e=u)}}function pe(){Pc.point=he}function ve(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);xc+=o*(r+n)/2,Mc+=o*(u+t)/2,_c+=o,o=u*n-r*t,bc+=o*(r+n),wc+=o*(u+t),Sc+=3*o,he(r=n,u=t)}var t,e,r,u;Pc.point=function(i,o){Pc.point=n,he(t=r=i,e=u=o)},Pc.lineEnd=function(){n(t,e)}}function de(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,Ea)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:c};return a}function me(n){function t(n){return(a?r:e)(n)}function e(t){return Me(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=Tt([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=aa(aa(w)-1)<Ca?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],L=C-t,T=N-e,q=x*L-y*T;(q*q/M>i||aa((y*L+x*T)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*La),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function ye(n){var t=me(function(t,e){return n([t*Ta,e*Ta])});return function(n){return we(t(n))}}function xe(n){this.stream=n}function Me(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function _e(n){return be(function(){return n})()}function be(n){function t(n){return n=a(n[0]*La,n[1]*La),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ta,n[1]*Ta]}function r(){a=ie(o=Ee(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=me(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Ec,_=vt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=we(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Ec):ee((b=+n)*La),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?ue(n[0][0],n[0][1],n[1][0],n[1][1]):vt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*La,d=n[1]%360*La,r()):[v*Ta,d*Ta]},t.rotate=function(n){return arguments.length?(m=n[0]%360*La,y=n[1]%360*La,x=n.length>2?n[2]%360*La:0,r()):[m*Ta,y*Ta,x*Ta]},$o.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function we(n){return Me(n,function(t,e){n.point(t*La,e*La)})}function Se(n,t){return[n,t]}function ke(n,t){return[n>ka?n-Ea:-ka>n?n+Ea:n,t]}function Ee(n,t,e){return n?t||e?ie(Ce(n),Ne(t,e)):Ce(n):t||e?Ne(t,e):ke}function Ae(n){return function(t,e){return t+=n,[t>ka?t-Ea:-ka>t?t+Ea:t,e]}}function Ce(n){var t=Ae(n);return t.invert=Ae(-n),t}function Ne(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),H(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),H(l*r-a*u)]},e}function Le(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=Te(e,u),i=Te(e,i),(o>0?i>u:u>i)&&(u+=o*Ea)):(u=n+o*Ea,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=Ut([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function Te(n,t){var e=Tt(t);e[0]-=n,Pt(e);var r=j(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function qe(n,t,e){var r=$o.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function ze(n,t,e){var r=$o.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Re(n){return n.source}function De(n){return n.target}function Pe(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(I(r-t)+u*o*I(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ta,Math.atan2(o,Math.sqrt(r*r+u*u))*Ta]}:function(){return[n*Ta,t*Ta]};return p.distance=h,p}function Ue(){function n(n,u){var i=Math.sin(u*=La),o=Math.cos(u),a=aa((n*=La)-t),c=Math.cos(a);Uc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;jc.point=function(u,i){t=u*La,e=Math.sin(i*=La),r=Math.cos(i),jc.point=n},jc.lineEnd=function(){jc.point=jc.lineEnd=c}}function je(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function He(n,t){function e(n,t){var e=aa(aa(t)-Aa)<Ca?0:o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ka/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=U(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Aa]},e):Oe}function Fe(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return aa(u)<Ca?Se:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-U(u)*Math.sqrt(n*n+e*e)]},e)}function Oe(n,t){return[n,Math.log(Math.tan(ka/4+t/2))]}function Ye(n){var t,e=_e(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=ka*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ie(n,t){var e=Math.cos(t)*Math.sin(n);return[Math.log((1+e)/(1-e))/2,Math.atan2(Math.tan(t),Math.cos(n))]}function Ze(n){return n[0]}function Ve(n){return n[1]}function Xe(n,t,e,r){var u,i,o,a,c,s,l;return u=r[n],i=u[0],o=u[1],u=r[t],a=u[0],c=u[1],u=r[e],s=u[0],l=u[1],(l-o)*(a-i)-(c-o)*(s-i)>0}function $e(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Be(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function We(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Je(){mr(this),this.edge=this.site=this.circle=null}function Ge(n){var t=Jc.pop()||new Je;return t.site=n,t}function Ke(n){cr(n),$c.remove(n),Jc.push(n),mr(n)}function Qe(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Ke(n);for(var c=i;c.circle&&aa(e-c.circle.x)<Ca&&aa(r-c.circle.cy)<Ca;)i=c.P,a.unshift(c),Ke(c),c=i;a.unshift(c),cr(c);for(var s=o;s.circle&&aa(e-s.circle.x)<Ca&&aa(r-s.circle.cy)<Ca;)o=s.N,a.push(s),Ke(s),s=o;a.push(s),cr(s);var l,f=a.length;for(l=1;f>l;++l)s=a[l],c=a[l-1],pr(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=hr(c.site,s.site,null,u),ar(c),ar(s)}function nr(n){for(var t,e,r,u,i=n.x,o=n.y,a=$c._;a;)if(r=tr(a,o)-i,r>Ca)a=a.L;else{if(u=i-er(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Ge(n);if($c.insert(t,c),t||e){if(t===e)return cr(t),e=Ge(t.site),$c.insert(c,e),c.edge=e.edge=hr(t.site,c.site),ar(t),ar(e),void 0;if(!e)return c.edge=hr(t.site,c.site),void 0;cr(t),cr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};pr(e.edge,s,p,M),c.edge=hr(s,n,null,M),e.edge=hr(n,p,null,M),ar(t),ar(e)}}function tr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function er(n,t){var e=n.N;if(e)return tr(e,t);var r=n.site;return r.y===t?r.x:1/0}function rr(n){this.site=n,this.edges=[]}function ur(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Xc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(aa(r-t)>Ca||aa(u-e)>Ca)&&(a.splice(o,0,new vr(gr(i.site,l,aa(r-f)<Ca&&p-u>Ca?{x:f,y:aa(t-f)<Ca?e:p}:aa(u-p)<Ca&&h-r>Ca?{x:aa(e-p)<Ca?t:h,y:p}:aa(r-h)<Ca&&u-g>Ca?{x:h,y:aa(t-h)<Ca?e:g}:aa(u-g)<Ca&&r-f>Ca?{x:aa(e-g)<Ca?t:f,y:g}:null),i.site,null)),++c)}function ir(n,t){return t.angle-n.angle}function or(){mr(this),this.x=this.y=this.arc=this.site=this.cy=null}function ar(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,s=r.y-a,l=i.x-o,f=i.y-a,h=2*(c*f-s*l);if(!(h>=-Na)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Gc.pop()||new or;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=Wc._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}Wc.insert(y,m),y||(Bc=m)}}}}function cr(n){var t=n.circle;t&&(t.P||(Bc=t.N),Wc.remove(t),Gc.push(t),mr(t),n.circle=null)}function sr(n){for(var t,e=Vc,r=re(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!lr(t,n)||!r(t)||aa(t.a.x-t.b.x)<Ca&&aa(t.a.y-t.b.y)<Ca)&&(t.a=t.b=null,e.splice(u,1))}function lr(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],s=t[1][1],l=n.l,f=n.r,h=l.x,g=l.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;
-if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.y<c)return}else i={x:d,y:s};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.y<c)return}else i={x:(s-u)/r,y:s};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function fr(n,t){this.l=n,this.r=t,this.a=this.b=null}function hr(n,t,e,r){var u=new fr(n,t);return Vc.push(u),e&&pr(u,n,t,e),r&&pr(u,t,n,r),Xc[n.i].edges.push(new vr(u,n,t)),Xc[t.i].edges.push(new vr(u,t,n)),u}function gr(n,t,e){var r=new fr(n,null);return r.a=t,r.b=e,Vc.push(r),r}function pr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function vr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function dr(){this._=null}function mr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function yr(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function xr(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function Mr(n){for(;n.L;)n=n.L;return n}function _r(n,t){var e,r,u,i=n.sort(br).pop();for(Vc=[],Xc=new Array(n.length),$c=new dr,Wc=new dr;;)if(u=Bc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Xc[i.i]=new rr(i),nr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Qe(u.arc)}t&&(sr(t),ur(t));var o={cells:Xc,edges:Vc};return $c=Wc=Vc=Xc=null,o}function br(n,t){return t.y-n.y||t.x-n.x}function wr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function Sr(n){return n.x}function kr(n){return n.y}function Er(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function Ar(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&Ar(n,c[0],e,r,o,a),c[1]&&Ar(n,c[1],o,r,u,a),c[2]&&Ar(n,c[2],e,a,o,i),c[3]&&Ar(n,c[3],o,a,u,i)}}function Cr(n,t){n=$o.rgb(n),t=$o.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+ct(Math.round(e+i*n))+ct(Math.round(r+o*n))+ct(Math.round(u+a*n))}}function Nr(n,t){var e,r={},u={};for(e in n)e in t?r[e]=qr(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function Lr(n,t){return t-=n=+n,function(e){return n+t*e}}function Tr(n,t){var e,r,u,i,o,a=0,c=0,s=[],l=[];for(n+="",t+="",Qc.lastIndex=0,r=0;e=Qc.exec(t);++r)e.index&&s.push(t.substring(a,c=e.index)),l.push({i:s.length,x:e[0]}),s.push(null),a=Qc.lastIndex;for(a<t.length&&s.push(t.substring(a)),r=0,i=l.length;(e=Qc.exec(n))&&i>r;++r)if(o=l[r],o.x==e[0]){if(o.i)if(null==s[o.i+1])for(s[o.i-1]+=o.x,s.splice(o.i,1),u=r+1;i>u;++u)l[u].i--;else for(s[o.i-1]+=o.x+s[o.i+1],s.splice(o.i,2),u=r+1;i>u;++u)l[u].i-=2;else if(null==s[o.i+1])s[o.i]=o.x;else for(s[o.i]=o.x+s[o.i+1],s.splice(o.i+1,1),u=r+1;i>u;++u)l[u].i--;l.splice(r,1),i--,r--}else o.x=Lr(parseFloat(e[0]),parseFloat(o.x));for(;i>r;)o=l.pop(),null==s[o.i+1]?s[o.i]=o.x:(s[o.i]=o.x+s[o.i+1],s.splice(o.i+1,1)),i--;return 1===s.length?null==s[0]?(o=l[0].x,function(n){return o(n)+""}):function(){return t}:function(n){for(r=0;i>r;++r)s[(o=l[r]).i]=o.x(n);return s.join("")}}function qr(n,t){for(var e,r=$o.interpolators.length;--r>=0&&!(e=$o.interpolators[r](n,t)););return e}function zr(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(qr(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Rr(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function Dr(n){return function(t){return 1-n(1-t)}}function Pr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Ur(n){return n*n}function jr(n){return n*n*n}function Hr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Fr(n){return function(t){return Math.pow(t,n)}}function Or(n){return 1-Math.cos(n*Aa)}function Yr(n){return Math.pow(2,10*(n-1))}function Ir(n){return 1-Math.sqrt(1-n*n)}function Zr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ea*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ea/t)}}function Vr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Xr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function $r(n,t){n=$o.hcl(n),t=$o.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return J(e+i*n,r+o*n,u+a*n)+""}}function Br(n,t){n=$o.hsl(n),t=$o.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return $(e+i*n,r+o*n,u+a*n)+""}}function Wr(n,t){n=$o.lab(n),t=$o.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return Q(e+i*n,r+o*n,u+a*n)+""}}function Jr(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Gr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Qr(t),u=Kr(t,e),i=Qr(nu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Ta,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Ta:0}function Kr(n,t){return n[0]*t[0]+n[1]*t[1]}function Qr(n){var t=Math.sqrt(Kr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function nu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function tu(n,t){var e,r=[],u=[],i=$o.transform(n),o=$o.transform(t),a=i.translate,c=o.translate,s=i.rotate,l=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:Lr(a[0],c[0])},{i:3,x:Lr(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),s!=l?(s-l>180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:Lr(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:Lr(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:Lr(g[0],p[0])},{i:e-2,x:Lr(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function eu(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return(e-n)*t}}function ru(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return Math.max(0,Math.min(1,(e-n)*t))}}function uu(n){for(var t=n.source,e=n.target,r=ou(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function iu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function ou(n,t){if(n===t)return n;for(var e=iu(n),r=iu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function au(n){n.fixed|=2}function cu(n){n.fixed&=-7}function su(n){n.fixed|=4,n.px=n.x,n.py=n.y}function lu(n){n.fixed&=-5}function fu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(fu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var s=t*e[n.point.index];n.charge+=n.pointCharge=s,r+=s*n.point.x,u+=s*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function hu(n,t){return $o.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=du,n}function gu(n){return n.children}function pu(n){return n.value}function vu(n,t){return t.value-n.value}function du(n){return $o.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function mu(n){return n.x}function yu(n){return n.y}function xu(n,t,e){n.y0=t,n.y=e}function Mu(n){return $o.range(n.length)}function _u(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function bu(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function wu(n){return n.reduce(Su,0)}function Su(n,t){return n+t[1]}function ku(n,t){return Eu(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function Eu(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function Au(n){return[$o.min(n),$o.max(n)]}function Cu(n,t){return n.parent==t.parent?1:2}function Nu(n){var t=n.children;return t&&t.length?t[0]:n._tree.thread}function Lu(n){var t,e=n.children;return e&&(t=e.length)?e[t-1]:n._tree.thread}function Tu(n,t){var e=n.children;if(e&&(u=e.length))for(var r,u,i=-1;++i<u;)t(r=Tu(e[i],t),n)>0&&(n=r);return n}function qu(n,t){return n.x-t.x}function zu(n,t){return t.x-n.x}function Ru(n,t){return n.depth-t.depth}function Du(n,t){function e(n,r){var u=n.children;if(u&&(o=u.length))for(var i,o,a=null,c=-1;++c<o;)i=u[c],e(i,a),a=i;t(n,r)}e(n,null)}function Pu(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i]._tree,t.prelim+=e,t.mod+=e,e+=t.shift+(r+=t.change)}function Uu(n,t,e){n=n._tree,t=t._tree;var r=e/(t.number-n.number);n.change+=r,t.change-=r,t.shift+=e,t.prelim+=e,t.mod+=e}function ju(n,t,e){return n._tree.ancestor.parent==t.parent?n._tree.ancestor:e}function Hu(n,t){return n.value-t.value}function Fu(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Ou(n,t){n._pack_next=t,t._pack_prev=n}function Yu(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Iu(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(Zu),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],$u(r,u,i),t(i),Fu(r,i),r._pack_prev=i,Fu(i,u),u=r._pack_next,o=3;s>o;o++){$u(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(Yu(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!Yu(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?Ou(r,u=a):Ou(r=c,u),o--):(Fu(r,i),u=i,t(i))}var m=(l+f)/2,y=(h+g)/2,x=0;for(o=0;s>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(Vu)}}function Zu(n){n._pack_next=n._pack_prev=n}function Vu(n){delete n._pack_next,delete n._pack_prev}function Xu(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)Xu(u[i],t,e,r)}function $u(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),s=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+s*i,e.y=n.y+c*i-s*u}else e.x=n.x+r,e.y=n.y}function Bu(n){return 1+$o.max(n,function(n){return n.y})}function Wu(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ju(n){var t=n.children;return t&&t.length?Ju(t[0]):n}function Gu(n){var t,e=n.children;return e&&(t=e.length)?Gu(e[t-1]):n}function Ku(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Qu(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function ni(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function ti(n){return n.rangeExtent?n.rangeExtent():ni(n.range())}function ei(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function ui(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function ii(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=$o.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function oi(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?ii:ei,c=r?ru:eu;return o=u(n,t,c,e),a=u(t,n,c,qr),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Jr)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return li(n,t)},i.tickFormat=function(t,e){return fi(n,t,e)},i.nice=function(t){return ci(n,t),u()},i.copy=function(){return oi(n,t,e,r)},u()}function ai(n,t){return $o.rebind(n,t,"range","rangeRound","interpolate","clamp")}function ci(n,t){return ri(n,ui(si(n,t)[2]))}function si(n,t){null==t&&(t=10);var e=ni(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function li(n,t){return $o.range.apply($o,si(n,t))}function fi(n,t,e){var r=si(n,t);return $o.format(e?e.replace(uc,function(n,t,e,u,i,o,a,c,s,l){return[t,e,u,i,o,a,c,s||"."+gi(l,r),l].join("")}):",."+hi(r[2])+"f")}function hi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function gi(n,t){var e=hi(t[2]);return n in ls?Math.abs(e-hi(Math.max(Math.abs(t[0]),Math.abs(t[1]))))+ +("e"!==n):e-2*("%"===n)}function pi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=ni(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++<l;)for(var h=f-1;h>0;h--)o.push(i(s)*h);for(s=0;o[s]<a;s++);for(l=o.length;o[l-1]>c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=$o.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return pi(n.copy(),t,e,r)},ai(o,n)}function vi(n,t,e){function r(t){return n(u(t))}var u=di(t),i=di(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return li(e,n)},r.tickFormat=function(n,t){return fi(e,n,t)},r.nice=function(n){return r.domain(ci(e,n))},r.exponent=function(o){return arguments.length?(u=di(t=o),i=di(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return vi(n.copy(),t,e)},ai(r,n)}function di(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function mi(n,t){function e(e){return o[((i.get(e)||"range"===t.t&&i.set(e,n.push(e)))-1)%o.length]}function r(t,e){return $o.range(n.length).map(function(n){return t+e*n})}var i,o,a;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new u;for(var o,a=-1,c=r.length;++a<c;)i.has(o=r[a])||i.set(o,n.push(o));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(o=n,a=0,t={t:"range",a:arguments},e):o},e.rangePoints=function(u,i){arguments.length<2&&(i=0);var c=u[0],s=u[1],l=(s-c)/(Math.max(1,n.length-1)+i);return o=r(n.length<2?(c+s)/2:c+l*i/2,l),a=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=(f-l)/(n.length-i+2*c);return o=r(l+h*c,h),s&&o.reverse(),a=h*(1-i),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=Math.floor((f-l)/(n.length-i+2*c)),g=f-l-(n.length-i)*h;return o=r(l+Math.round(g/2),h),s&&o.reverse(),a=Math.round(h*(1-i)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return a},e.rangeExtent=function(){return ni(t.a[0])},e.copy=function(){return mi(n,t)},e.domain(n)}function yi(n,t){function e(){var e=0,i=t.length;for(u=[];++e<i;)u[e-1]=$o.quantile(n,e/i);return r}function r(n){return isNaN(n=+n)?void 0:t[$o.bisect(u,n)]}var u;return r.domain=function(t){return arguments.length?(n=t.filter(function(n){return!isNaN(n)}).sort($o.ascending),e()):n},r.range=function(n){return arguments.length?(t=n,e()):t},r.quantiles=function(){return u},r.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?u[e-1]:n[0],e<u.length?u[e]:n[n.length-1]]},r.copy=function(){return yi(n,t)},e()}function xi(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return xi(n,t,e)},u()}function Mi(n,t){function e(e){return e>=e?t[$o.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Mi(n,t)},e}function _i(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return li(n,t)},t.tickFormat=function(t,e){return fi(n,t,e)},t.copy=function(){return _i(n)},t}function bi(n){return n.innerRadius}function wi(n){return n.outerRadius}function Si(n){return n.startAngle}function ki(n){return n.endAngle}function Ei(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=pt(e),p=pt(r);++f<h;)u.call(this,c=t[f],f)?l.push([+g.call(this,c,f),+p.call(this,c,f)]):l.length&&(o(),l=[]);return l.length&&o(),s.length?s.join(""):null}var e=Ze,r=Ve,u=Zt,i=Ai,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=xs.get(n)||Ai).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function Ai(n){return n.join("L")}function Ci(n){return Ai(n)+"Z"}function Ni(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function Li(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function Ti(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function qi(n,t){return n.length<4?Ai(n):n[1]+Di(n.slice(1,n.length-1),Pi(n,t))}function zi(n,t){return n.length<3?Ai(n):n[0]+Di((n.push(n[0]),n),Pi([n[n.length-2]].concat(n,[n[1]]),t))}function Ri(n,t){return n.length<3?Ai(n):n[0]+Di(n,Pi(n,t))}function Di(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return Ai(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s<t.length;s++,c++)i=n[c],a=t[s],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var l=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+l[0]+","+l[1]}return r}function Pi(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function Ui(n){if(n.length<3)return Ai(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",Oi(bs,o),",",Oi(bs,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Yi(c,o,a);return n.pop(),c.push("L",r),c.join("")}function ji(n){if(n.length<4)return Ai(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(Oi(bs,i)+","+Oi(bs,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Yi(e,i,o);return e.join("")}function Hi(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[Oi(bs,o),",",Oi(bs,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Yi(t,o,a);return t.join("")}function Fi(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,s=-1;++s<=e;)r=n[s],u=s/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return Ui(n)}function Oi(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Yi(n,t,e){n.push("C",Oi(Ms,t),",",Oi(Ms,e),",",Oi(_s,t),",",Oi(_s,e),",",Oi(bs,t),",",Oi(bs,e))}function Ii(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Zi(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=Ii(u,i);++t<e;)r[t]=(o+(o=Ii(u=i,i=n[t+1])))/2;return r[t]=o,r}function Vi(n){for(var t,e,r,u,i=[],o=Zi(n),a=-1,c=n.length-1;++a<c;)t=Ii(n[a],n[a+1]),aa(t)<Ca?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function Xi(n){return n.length<3?Ai(n):n[0]+Di(n,Vi(n))}function $i(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+ms,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Bi(n){function t(t){function c(){v.push("M",a(n(m),f),l,s(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=pt(e),_=pt(u),b=e===r?function(){return g}:pt(r),w=u===i?function(){return p}:pt(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ze,r=Ze,u=0,i=Ve,o=Zt,a=Ai,c=a.key,s=a,l="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=xs.get(n)||Ai).key,s=a.reverse||a,l=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Wi(n){return n.radius}function Ji(n){return[n.x,n.y]}function Gi(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+ms;return[e*Math.cos(r),e*Math.sin(r)]}}function Ki(){return 64}function Qi(){return"circle"}function no(n){var t=Math.sqrt(n/ka);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function to(n,t){return ha(n,Cs),n.id=t,n}function eo(n,t,e,r){var u=n.id;return C(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function ro(n){return null==n&&(n=""),function(){this.textContent=n}}function uo(n,t,e,r){var i=n.__transition__||(n.__transition__={active:0,count:0}),o=i[e];if(!o){var a=r.time;o=i[e]={tween:new u,time:a,ease:r.ease,delay:r.delay,duration:r.duration},++i.count,$o.timer(function(r){function u(r){return i.active>e?s():(i.active=e,o.event&&o.event.start.call(n,l,t),o.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),$o.timer(function(){return p.c=c(r||1)?Zt:c,1},0,a),void 0)}function c(r){if(i.active!==e)return s();for(var u=r/g,a=f(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,l,t),s()):void 0}function s(){return--i.count?delete i[e]:delete n.__transition__,1}var l=n.__data__,f=o.ease,h=o.delay,g=o.duration,p=Ga,v=[];return p.t=h+a,r>=h?u(r-h):(p.c=u,void 0)},0,a)}}function io(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function oo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function ao(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function co(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new Ds(e-1)),1),e}function i(n,e){return t(n=new Ds(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{Ds=ao;var r=new ao;return r._=n,o(r,t,e)}finally{Ds=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=so(n);return c.floor=c,c.round=so(r),c.ceil=so(u),c.offset=so(i),c.range=a,n}function so(n){return function(t,e){try{Ds=ao;var r=new ao;return r._=t,n(r,e)._}finally{Ds=Date}}}function lo(n){function t(t){for(var r,u,i,o=[],a=-1,c=0;++a<e;)37===n.charCodeAt(a)&&(o.push(n.substring(c,a)),null!=(u=nl[r=n.charAt(++a)])&&(r=n.charAt(++a)),(i=tl[r])&&(r=i(t,null==u?"e"===r?" ":"0":u)),o.push(r),c=a+1);return o.push(n.substring(c,a)),o.join("")}var e=n.length;return t.parse=function(t){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},r=fo(e,n,t,0);if(r!=t.length)return null;"p"in e&&(e.H=e.H%12+12*e.p);var u=null!=e.Z&&Ds!==ao,i=new(u?ao:Ds);return"j"in e?i.setFullYear(e.y,0,e.j):"w"in e&&("W"in e||"U"in e)?(i.setFullYear(e.y,0,1),i.setFullYear(e.y,0,"W"in e?(e.w+6)%7+7*e.W-(i.getDay()+5)%7:e.w+7*e.U-(i.getDay()+6)%7)):i.setFullYear(e.y,e.m,e.d),i.setHours(e.H+Math.floor(e.Z/100),e.M+e.Z%100,e.S,e.L),u?i._:i},t.toString=function(){return n},t}function fo(n,t,e,r){for(var u,i,o,a=0,c=t.length,s=e.length;c>a;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=el[o in nl?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function ho(n){return new RegExp("^(?:"+n.map($o.requote).join("|")+")","i")}function go(n){for(var t=new u,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function po(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function vo(n,t,e){$s.lastIndex=0;var r=$s.exec(t.substring(e));return r?(n.w=Bs.get(r[0].toLowerCase()),e+r[0].length):-1}function mo(n,t,e){Vs.lastIndex=0;var r=Vs.exec(t.substring(e));return r?(n.w=Xs.get(r[0].toLowerCase()),e+r[0].length):-1}function yo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function xo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e));return r?(n.U=+r[0],e+r[0].length):-1}function Mo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e));return r?(n.W=+r[0],e+r[0].length):-1}function _o(n,t,e){Gs.lastIndex=0;var r=Gs.exec(t.substring(e));return r?(n.m=Ks.get(r[0].toLowerCase()),e+r[0].length):-1}function bo(n,t,e){Ws.lastIndex=0;var r=Ws.exec(t.substring(e));return r?(n.m=Js.get(r[0].toLowerCase()),e+r[0].length):-1}function wo(n,t,e){return fo(n,tl.c.toString(),t,e)}function So(n,t,e){return fo(n,tl.x.toString(),t,e)}function ko(n,t,e){return fo(n,tl.X.toString(),t,e)}function Eo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Ao(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.y=No(+r[0]),e+r[0].length):-1}function Co(n,t,e){return/^[+-]\d{4}$/.test(t=t.substring(e,e+5))?(n.Z=+t,e+5):-1}function No(n){return n+(n>68?1900:2e3)}function Lo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function To(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function qo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function zo(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Ro(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Do(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function Po(n,t,e){rl.lastIndex=0;var r=rl.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function Uo(n,t,e){var r=ul.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}function jo(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(aa(t)/60),u=aa(t)%60;return e+po(r,"0",2)+po(u,"0",2)}function Ho(n,t,e){Qs.lastIndex=0;var r=Qs.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function Fo(n){function t(n){try{Ds=ao;var t=new Ds;return t._=n,e(t)}finally{Ds=Date}}var e=lo(n);return t.parse=function(n){try{Ds=ao;var t=e.parse(n);return t&&t._}finally{Ds=Date}},t.toString=e.toString,t}function Oo(n){return n.toISOString()}function Yo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=$o.bisect(ol,u);return i==ol.length?[t.year,si(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/ol[i-1]<ol[i]/u?i-1:i]:[ll,si(n,e)[2]]}return r.invert=function(t){return Io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Io(+e+1),t).length}var i=r.domain(),o=ni(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(ri(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=ni(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Yo(n.copy(),t,e)},ai(r,n)}function Io(n){return new Date(n)}function Zo(n){return function(t){for(var e=n.length-1,r=n[e];!r[1](t);)r=n[--e];return r[0](t)}}function Vo(n){return JSON.parse(n.responseText)}function Xo(n){var t=Jo.createRange();return t.selectNode(Jo.body),t.createContextualFragment(n.responseText)}var $o={version:"3.3.9"};Date.now||(Date.now=function(){return+new Date});var Bo=[].slice,Wo=function(n){return Bo.call(n)},Jo=document,Go=Jo.documentElement,Ko=window;try{Wo(Go.childNodes)[0].nodeType}catch(Qo){Wo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Jo.createElement("div").style.setProperty("opacity",0,"")}catch(na){var ta=Ko.Element.prototype,ea=ta.setAttribute,ra=ta.setAttributeNS,ua=Ko.CSSStyleDeclaration.prototype,ia=ua.setProperty;ta.setAttribute=function(n,t){ea.call(this,n,t+"")},ta.setAttributeNS=function(n,t,e){ra.call(this,n,t,e+"")},ua.setProperty=function(n,t,e){ia.call(this,n,t+"",e)}}$o.ascending=function(n,t){return t>n?-1:n>t?1:n>=t?0:0/0},$o.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},$o.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},$o.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},$o.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},$o.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i<u;)isNaN(e=+n[i])||(r+=e);else for(;++i<u;)isNaN(e=+t.call(n,n[i],i))||(r+=e);return r},$o.mean=function(t,e){var r,u=t.length,i=0,o=-1,a=0;if(1===arguments.length)for(;++o<u;)n(r=t[o])&&(i+=(r-i)/++a);else for(;++o<u;)n(r=e.call(t,t[o],o))&&(i+=(r-i)/++a);return a?i:void 0},$o.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;
-return i?u+i*(n[r]-u):u},$o.median=function(t,e){return arguments.length>1&&(t=t.map(e)),t=t.filter(n),t.length?$o.quantile(t.sort($o.ascending),.5):void 0},$o.bisector=function(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n.call(t,t[i],i)<e?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;e<n.call(t,t[i],i)?u=i:r=i+1}return r}}};var oa=$o.bisector(function(n){return n});$o.bisectLeft=oa.left,$o.bisect=$o.bisectRight=oa.right,$o.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},$o.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},$o.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},$o.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,e=$o.min(arguments,t),r=new Array(e);++n<e;)for(var u,i=-1,o=r[n]=new Array(u);++i<u;)o[i]=arguments[i][n];return r},$o.transpose=function(n){return $o.zip.apply($o,n)},$o.keys=function(n){var t=[];for(var e in n)t.push(e);return t},$o.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},$o.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},$o.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var aa=Math.abs;$o.range=function(n,t,r){if(arguments.length<3&&(r=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/r)throw new Error("infinite range");var u,i=[],o=e(aa(r)),a=-1;if(n*=o,t*=o,r*=o,0>r)for(;(u=n+r*++a)>t;)i.push(u/o);else for(;(u=n+r*++a)<t;)i.push(u/o);return i},$o.map=function(n){var t=new u;if(n instanceof u)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t},r(u,{has:function(n){return ca+n in this},get:function(n){return this[ca+n]},set:function(n,t){return this[ca+n]=t},remove:function(n){return n=ca+n,n in this&&delete this[n]},keys:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},values:function(){var n=[];return this.forEach(function(t,e){n.push(e)}),n},entries:function(){var n=[];return this.forEach(function(t,e){n.push({key:t,value:e})}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===sa&&n.call(this,t.substring(1),this[t])}});var ca="\x00",sa=ca.charCodeAt(0);$o.nest=function(){function n(t,a,c){if(c>=o.length)return r?r.call(i,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=o[c++],d=new u;++g<p;)(h=d.get(s=v(l=a[g])))?h.push(l):d.set(s,[l]);return t?(l=t(),f=function(e,r){l.set(e,n(t,r,c))}):(l={},f=function(e,r){l[e]=n(t,r,c)}),d.forEach(f),l}function t(n,e){if(e>=o.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,i={},o=[],a=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n($o.map,e,0),0)},i.key=function(n){return o.push(n),i},i.sortKeys=function(n){return a[o.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},$o.set=function(n){var t=new i;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},r(i,{has:function(n){return ca+n in this},add:function(n){return this[ca+n]=!0,n},remove:function(n){return n=ca+n,n in this&&delete this[n]},values:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===sa&&n.call(this,t.substring(1))}}),$o.behavior={},$o.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=o(n,t,t[e]);return n};var la=["webkit","ms","moz","Moz","o","O"];$o.dispatch=function(){for(var n=new s,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=l(n);return n},s.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},$o.event=null,$o.requote=function(n){return n.replace(fa,"\\$&")};var fa=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ha={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},ga=function(n,t){return t.querySelector(n)},pa=function(n,t){return t.querySelectorAll(n)},va=Go[a(Go,"matchesSelector")],da=function(n,t){return va.call(n,t)};"function"==typeof Sizzle&&(ga=function(n,t){return Sizzle(n,t)[0]||null},pa=function(n,t){return Sizzle.uniqueSort(Sizzle(n,t))},da=Sizzle.matchesSelector),$o.selection=function(){return Ma};var ma=$o.selection.prototype=[];ma.select=function(n){var t,e,r,u,i=[];n=v(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,s=r.length;++c<s;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return p(i)},ma.selectAll=function(n){var t,e,r=[];n=d(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Wo(n.call(e,e.__data__,a,u))),t.parentNode=e);return p(r)};var ya={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};$o.ns={prefix:ya,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.substring(0,t),n=n.substring(t+1)),ya.hasOwnProperty(e)?{space:ya[e],local:n}:n}},ma.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=$o.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(m(t,n[t]));return this}return this.each(m(n,t))},ma.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=n.trim().split(/^|\s+/g)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!x(n[u]).test(t))return!1;return!0}for(t in n)this.each(M(t,n[t]));return this}return this.each(M(n,t))},ma.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(b(e,n[e],t));return this}if(2>r)return Ko.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(b(n,t,e))},ma.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(w(t,n[t]));return this}return this.each(w(n,t))},ma.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},ma.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},ma.append=function(n){return n=S(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},ma.insert=function(n,t){return n=S(n),t=v(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},ma.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},ma.data=function(n,t){function e(n,e){var r,i,o,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new u,y=new u,x=[];for(r=-1;++r<a;)d=t.call(i=n[r],i.__data__,r),m.has(d)?v[r]=i:m.set(d,i),x.push(d);for(r=-1;++r<f;)d=t.call(e,o=e[r],r),(i=m.get(d))?(g[r]=i,i.__data__=o):y.has(d)||(p[r]=k(o)),y.set(d,o),m.remove(d);for(r=-1;++r<a;)m.has(x[r])&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],o=e[r],i?(i.__data__=o,g[r]=i):p[r]=k(o);for(;f>r;++r)p[r]=k(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,i,o=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++o<a;)(i=r[o])&&(n[o]=i.__data__);return n}var c=N([]),s=p([]),l=p([]);if("function"==typeof n)for(;++o<a;)e(r=this[o],n.call(r,r.parentNode.__data__,o));else for(;++o<a;)e(r=this[o],n);return s.enter=function(){return c},s.exit=function(){return l},s},ma.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},ma.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=E(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a)&&t.push(r)}return p(u)},ma.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ma.sort=function(n){n=A.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},ma.each=function(n){return C(this,function(t,e,r){n.call(t,t.__data__,e,r)})},ma.call=function(n){var t=Wo(arguments);return n.apply(t[0]=this,t),this},ma.empty=function(){return!this.node()},ma.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ma.size=function(){var n=0;return this.each(function(){++n}),n};var xa=[];$o.selection.enter=N,$o.selection.enter.prototype=xa,xa.append=ma.append,xa.empty=ma.empty,xa.node=ma.node,xa.call=ma.call,xa.size=ma.size,xa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var s=-1,l=u.length;++s<l;)(i=u[s])?(t.push(r[s]=e=n.call(u.parentNode,i.__data__,s,a)),e.__data__=i.__data__):t.push(null)}return p(o)},xa.insert=function(n,t){return arguments.length<2&&(t=L(this)),ma.insert.call(this,n,t)},ma.transition=function(){for(var n,t,e=Ss||++Ns,r=[],u=ks||{time:Date.now(),ease:Hr,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,s=a.length;++c<s;)(t=a[c])&&uo(t,c,e,u),n.push(t)}return to(r,e)},ma.interrupt=function(){return this.each(T)},$o.select=function(n){var t=["string"==typeof n?ga(n,Jo):n];return t.parentNode=Go,p([t])},$o.selectAll=function(n){var t=Wo("string"==typeof n?pa(n,Jo):n);return t.parentNode=Go,p([t])};var Ma=$o.select(Go);ma.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(q(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(q(n,t,e))};var _a=$o.map({mouseenter:"mouseover",mouseleave:"mouseout"});_a.forEach(function(n){"on"+n in Jo&&_a.remove(n)});var ba="onselectstart"in Jo?null:a(Go.style,"userSelect"),wa=0;$o.mouse=function(n){return P(n,h())};var Sa=/WebKit/.test(Ko.navigator.userAgent)?-1:0;$o.touches=function(n,t){return arguments.length<2&&(t=h().touches),t?Wo(t).map(function(t){var e=P(n,t);return e.identifier=t.identifier,e}):[]},$o.behavior.drag=function(){function n(){this.on("mousedown.drag",o).on("touchstart.drag",a)}function t(){return $o.event.changedTouches[0].identifier}function e(n,t){return $o.touches(n).filter(function(n){return n.identifier===t})[0]}function r(n,t,e,r){return function(){function o(){var n=t(l,g),e=n[0]-v[0],r=n[1]-v[1];d|=e|r,v=n,f({type:"drag",x:n[0]+c[0],y:n[1]+c[1],dx:e,dy:r})}function a(){m.on(e+"."+p,null).on(r+"."+p,null),y(d&&$o.event.target===h),f({type:"dragend"})}var c,s=this,l=s.parentNode,f=u.of(s,arguments),h=$o.event.target,g=n(),p=null==g?"drag":"drag-"+g,v=t(l,g),d=0,m=$o.select(Ko).on(e+"."+p,o).on(r+"."+p,a),y=D();i?(c=i.apply(s,arguments),c=[c.x-v[0],c.y-v[1]]):c=[0,0],f({type:"dragstart"})}}var u=g(n,"drag","dragstart","dragend"),i=null,o=r(c,$o.mouse,"mousemove","mouseup"),a=r(t,e,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},$o.rebind(n,u,"on")};var ka=Math.PI,Ea=2*ka,Aa=ka/2,Ca=1e-6,Na=Ca*Ca,La=ka/180,Ta=180/ka,qa=Math.SQRT2,za=2,Ra=4;$o.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=O(v),o=i/(za*h)*(e*Y(qa*t+v)-F(v));return[r+o*s,u+o*l,i*e/O(qa*t+v)]}return[r+n*s,u+n*l,i*Math.exp(qa*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+Ra*f)/(2*i*za*h),p=(c*c-i*i-Ra*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/qa;return e.duration=1e3*y,e},$o.behavior.zoom=function(){function n(n){n.on(A,s).on(Ua+".zoom",h).on(C,p).on("dblclick.zoom",v).on(L,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(M.range().map(function(n){return(n-S.x)/S.k}).map(M.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u($o.mouse(r),h),a(i)}function e(){f.on(C,Ko===r?p:null).on(N,null),g(l&&$o.event.target===s),c(i)}var r=this,i=q.of(r,arguments),s=$o.event.target,l=0,f=$o.select(Ko).on(C,n).on(N,e),h=t($o.mouse(r)),g=D();T.call(r),o(i)}function l(){function n(){var n=$o.touches(p);return g=S.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=t(n))}),n}function e(){for(var t=$o.event.changedTouches,e=0,i=t.length;i>e;++e)d[t[e].identifier]=null;var o=n(),c=Date.now();if(1===o.length){if(500>c-x){var s=o[0],l=d[s.identifier];r(2*S.k),u(s,l),f(),a(v)}x=c}else if(o.length>1){var s=o[0],h=o[1],g=s[0]-h[0],p=s[1]-h[1];m=g*g+p*p}}function i(){for(var n,t,e,i,o=$o.touches(p),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=d[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=m&&Math.sqrt(l/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*g)}x=null,u(n,t),a(v)}function h(){if($o.event.touches.length){for(var t=$o.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}b.on(M,null).on(_,null),w.on(A,s).on(L,l),k(),c(v)}var g,p=this,v=q.of(p,arguments),d={},m=0,y=$o.event.changedTouches[0].identifier,M="touchmove.zoom-"+y,_="touchend.zoom-"+y,b=$o.select(Ko).on(M,i).on(_,h),w=$o.select(p).on(A,null).on(L,e),k=D();T.call(p),e(),o(v)}function h(){var n=q.of(this,arguments);y?clearTimeout(y):(T.call(this),o(n)),y=setTimeout(function(){y=null,c(n)},50),f();var e=m||$o.mouse(this);d||(d=t(e)),r(Math.pow(2,.002*Da())*S.k),u(e,d),a(n)}function p(){d=null}function v(){var n=q.of(this,arguments),e=$o.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,$o.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var d,m,y,x,M,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=Pa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",L="touchstart.zoom",q=g(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=q.of(this,arguments),t=S;Ss?$o.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=$o.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Pa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,M=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},$o.rebind(n,q,"on")};var Da,Pa=[0,1/0],Ua="onwheel"in Jo?(Da=function(){return-$o.event.deltaY*($o.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Jo?(Da=function(){return $o.event.wheelDelta},"mousewheel"):(Da=function(){return-$o.event.detail},"MozMousePixelScroll");Z.prototype.toString=function(){return this.rgb()+""},$o.hsl=function(n,t,e){return 1===arguments.length?n instanceof X?V(n.h,n.s,n.l):st(""+n,lt,V):V(+n,+t,+e)};var ja=X.prototype=new Z;ja.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),V(this.h,this.s,this.l/n)},ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),V(this.h,this.s,n*this.l)},ja.rgb=function(){return $(this.h,this.s,this.l)},$o.hcl=function(n,t,e){return 1===arguments.length?n instanceof W?B(n.h,n.c,n.l):n instanceof K?nt(n.l,n.a,n.b):nt((n=ft((n=$o.rgb(n)).r,n.g,n.b)).l,n.a,n.b):B(+n,+t,+e)};var Ha=W.prototype=new Z;Ha.brighter=function(n){return B(this.h,this.c,Math.min(100,this.l+Fa*(arguments.length?n:1)))},Ha.darker=function(n){return B(this.h,this.c,Math.max(0,this.l-Fa*(arguments.length?n:1)))},Ha.rgb=function(){return J(this.h,this.c,this.l).rgb()},$o.lab=function(n,t,e){return 1===arguments.length?n instanceof K?G(n.l,n.a,n.b):n instanceof W?J(n.l,n.c,n.h):ft((n=$o.rgb(n)).r,n.g,n.b):G(+n,+t,+e)};var Fa=18,Oa=.95047,Ya=1,Ia=1.08883,Za=K.prototype=new Z;Za.brighter=function(n){return G(Math.min(100,this.l+Fa*(arguments.length?n:1)),this.a,this.b)},Za.darker=function(n){return G(Math.max(0,this.l-Fa*(arguments.length?n:1)),this.a,this.b)},Za.rgb=function(){return Q(this.l,this.a,this.b)},$o.rgb=function(n,t,e){return 1===arguments.length?n instanceof at?ot(n.r,n.g,n.b):st(""+n,ot,$):ot(~~n,~~t,~~e)};var Va=at.prototype=new Z;Va.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),ot(Math.min(255,~~(t/n)),Math.min(255,~~(e/n)),Math.min(255,~~(r/n)))):ot(u,u,u)},Va.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),ot(~~(n*this.r),~~(n*this.g),~~(n*this.b))},Va.hsl=function(){return lt(this.r,this.g,this.b)},Va.toString=function(){return"#"+ct(this.r)+ct(this.g)+ct(this.b)};var Xa=$o.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Xa.forEach(function(n,t){Xa.set(n,ut(t))}),$o.functor=pt,$o.xhr=dt(vt),$o.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=$o.xhr(n,t,i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o.row(e)}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function o(t){return t.map(a).join(n)}function a(n){return c.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var c=new RegExp('["'+n+"\n]"),s=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=c)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}l=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++l):10===r&&(u=!0),n.substring(t+1,e).replace(/""/g,'"')}for(;c>l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==s)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],c=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new i,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(a).join(n)].concat(t.map(function(t){return u.map(function(n){return a(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(o).join("\n")},e},$o.csv=$o.dsv(",","text/csv"),$o.tsv=$o.dsv("	","text/tab-separated-values");var $a,Ba,Wa,Ja,Ga,Ka=Ko[a(Ko,"requestAnimationFrame")]||function(n){setTimeout(n,17)};$o.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Ba?Ba.n=i:$a=i,Ba=i,Wa||(Ja=clearTimeout(Ja),Wa=1,Ka(xt))},$o.timer.flush=function(){Mt(),_t()};var Qa=".",nc=",",tc=[3,3],ec="$",rc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(bt);$o.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=$o.round(n,wt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),rc[8+e/3]},$o.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)},$o.format=function(n){var t=uc.exec(n),e=t[1]||" ",r=t[2]||">",u=t[3]||"",i=t[4]||"",o=t[5],a=+t[6],c=t[7],s=t[8],l=t[9],f=1,h="",g=!1;switch(s&&(s=+s.substring(1)),(o||"0"===e&&"="===r)&&(o=e="0",r="=",c&&(a-=Math.floor((a-1)/4))),l){case"n":c=!0,l="g";break;case"%":f=100,h="%",l="f";break;case"p":f=100,h="%",l="r";break;case"b":case"o":case"x":case"X":"#"===i&&(i="0"+l.toLowerCase());case"c":case"d":g=!0,s=0;break;case"s":f=-1,l="r"}"#"===i?i="":"$"===i&&(i=ec),"r"!=l||s||(l="g"),null!=s&&("g"==l?s=Math.max(1,Math.min(21,s)):("e"==l||"f"==l)&&(s=Math.max(0,Math.min(20,s)))),l=ic.get(l)||St;var p=o&&c;return function(n){if(g&&n%1)return"";var t=0>n||0===n&&0>1/n?(n=-n,"-"):u;if(0>f){var v=$o.formatPrefix(n,s);n=v.scale(n),h=v.symbol}else n*=f;n=l(n,s);var d=n.lastIndexOf("."),m=0>d?n:n.substring(0,d),y=0>d?"":Qa+n.substring(d+1);!o&&c&&(m=oc(m));var x=i.length+m.length+y.length+(p?0:t.length),M=a>x?new Array(x=a-x+1).join(e):"";return p&&(m=oc(M+m)),t+=i,n=m+y,("<"===r?t+n+M:">"===r?M+t+n:"^"===r?M.substring(0,x>>=1)+t+n+M.substring(x):t+(p?n:M+n))+h}};var uc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ic=$o.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=$o.round(n,wt(n,t))).toFixed(Math.max(0,Math.min(20,wt(n*(1+1e-15),t))))}}),oc=vt;if(tc){var ac=tc.length;oc=function(n){for(var t=n.length,e=[],r=0,u=tc[0];t>0&&u>0;)e.push(n.substring(t-=u,t+u)),u=tc[r=(r+1)%ac];return e.reverse().join(nc)}}$o.geo={},kt.prototype={s:0,t:0,add:function(n){Et(n,this.t,cc),Et(cc.s,this.s,this),this.s?this.t+=cc.t:this.s=cc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var cc=new kt;$o.geo.stream=function(n,t){n&&sc.hasOwnProperty(n.type)?sc[n.type](n,t):At(n,t)};var sc={Feature:function(n,t){At(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)At(e[r].geometry,t)}},lc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){Ct(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)Ct(e[r],t,0)},Polygon:function(n,t){Nt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)Nt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)At(e[r],t)}};$o.geo.area=function(n){return fc=0,$o.geo.stream(n,gc),fc};var fc,hc=new kt,gc={sphere:function(){fc+=4*ka},point:c,lineStart:c,lineEnd:c,polygonStart:function(){hc.reset(),gc.lineStart=Lt},polygonEnd:function(){var n=2*hc;fc+=0>n?4*ka+n:n,gc.lineStart=gc.lineEnd=gc.point=c}};$o.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=Tt([t*La,e*La]);if(m){var u=zt(m,r),i=[u[1],-u[0],0],o=zt(i,u);Pt(o),o=Ut(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ta*s,d=aa(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ta;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ta;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=aa(r)>180?r+(r>0?360:-360):r}else v=n,d=e;gc.point(n,e),t(n,e)}function i(){gc.lineStart()}function o(){u(v,d),gc.lineEnd(),aa(y)>Ca&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var l,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,gc.polygonStart()},polygonEnd:function(){gc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>hc?(l=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],$o.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),$o.geo.centroid=function(n){pc=vc=dc=mc=yc=xc=Mc=_c=bc=wc=Sc=0,$o.geo.stream(n,kc);var t=bc,e=wc,r=Sc,u=t*t+e*e+r*r;return Na>u&&(t=xc,e=Mc,r=_c,Ca>vc&&(t=dc,e=mc,r=yc),u=t*t+e*e+r*r,Na>u)?[0/0,0/0]:[Math.atan2(e,t)*Ta,H(r/Math.sqrt(u))*Ta]};var pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc,Sc,kc={sphere:c,point:Ht,lineStart:Ot,lineEnd:Yt,polygonStart:function(){kc.lineStart=It},polygonEnd:function(){kc.lineStart=Ot}},Ec=Bt(Zt,Qt,te,[-ka,-ka/2]),Ac=1e9;$o.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},($o.geo.conicEqualArea=function(){return oe(ae)}).raw=ae,$o.geo.albers=function(){return $o.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},$o.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=$o.geo.albers(),o=$o.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=$o.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+Ca,f+.12*s+Ca],[l-.214*s-Ca,f+.234*s-Ca]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+Ca,f+.166*s+Ca],[l-.115*s-Ca,f+.234*s-Ca]]).stream(c).point,n},n.scale(1070)};var Cc,Nc,Lc,Tc,qc,zc,Rc={point:c,lineStart:c,lineEnd:c,polygonStart:function(){Nc=0,Rc.lineStart=ce},polygonEnd:function(){Rc.lineStart=Rc.lineEnd=Rc.point=c,Cc+=aa(Nc/2)}},Dc={point:se,lineStart:c,lineEnd:c,polygonStart:c,polygonEnd:c},Pc={point:he,lineStart:ge,lineEnd:pe,polygonStart:function(){Pc.lineStart=ve},polygonEnd:function(){Pc.point=he,Pc.lineStart=ge,Pc.lineEnd=pe}};$o.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),$o.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Cc=0,$o.geo.stream(n,u(Rc)),Cc},n.centroid=function(n){return dc=mc=yc=xc=Mc=_c=bc=wc=Sc=0,$o.geo.stream(n,u(Pc)),Sc?[bc/Sc,wc/Sc]:_c?[xc/_c,Mc/_c]:yc?[dc/yc,mc/yc]:[0/0,0/0]},n.bounds=function(n){return qc=zc=-(Lc=Tc=1/0),$o.geo.stream(n,u(Dc)),[[Lc,Tc],[qc,zc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||ye(n):vt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new le:new de(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection($o.geo.albersUsa()).context(null)},$o.geo.transform=function(n){return{stream:function(t){var e=new xe(t);for(var r in n)e[r]=n[r];return e}}},xe.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()
-},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},$o.geo.projection=_e,$o.geo.projectionMutator=be,($o.geo.equirectangular=function(){return _e(Se)}).raw=Se.invert=Se,$o.geo.rotation=function(n){function t(t){return t=n(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t}return n=Ee(n[0]%360*La,n[1]*La,n.length>2?n[2]*La:0),t.invert=function(t){return t=n.invert(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t},t},ke.invert=Se,$o.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=Ee(-n[0]*La,-n[1]*La,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ta,n[1]*=Ta}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=Le((t=+r)*La,u*La),n):t},n.precision=function(r){return arguments.length?(e=Le(t*La,(u=+r)*La),n):u},n.angle(90)},$o.geo.distance=function(n,t){var e,r=(t[0]-n[0])*La,u=n[1]*La,i=t[1]*La,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},$o.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return $o.range(Math.ceil(i/d)*d,u,d).map(h).concat($o.range(Math.ceil(s/m)*m,c,m).map(g)).concat($o.range(Math.ceil(r/p)*p,e,p).filter(function(n){return aa(n%d)>Ca}).map(l)).concat($o.range(Math.ceil(a/v)*v,o,v).filter(function(n){return aa(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=qe(a,o,90),f=ze(r,e,y),h=qe(s,c,90),g=ze(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},$o.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=Re,u=De;return n.distance=function(){return $o.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},$o.geo.interpolate=function(n,t){return Pe(n[0]*La,n[1]*La,t[0]*La,t[1]*La)},$o.geo.length=function(n){return Uc=0,$o.geo.stream(n,jc),Uc};var Uc,jc={sphere:c,point:c,lineStart:Ue,lineEnd:c,polygonStart:c,polygonEnd:c},Hc=je(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});($o.geo.azimuthalEqualArea=function(){return _e(Hc)}).raw=Hc;var Fc=je(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},vt);($o.geo.azimuthalEquidistant=function(){return _e(Fc)}).raw=Fc,($o.geo.conicConformal=function(){return oe(He)}).raw=He,($o.geo.conicEquidistant=function(){return oe(Fe)}).raw=Fe;var Oc=je(function(n){return 1/n},Math.atan);($o.geo.gnomonic=function(){return _e(Oc)}).raw=Oc,Oe.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Aa]},($o.geo.mercator=function(){return Ye(Oe)}).raw=Oe;var Yc=je(function(){return 1},Math.asin);($o.geo.orthographic=function(){return _e(Yc)}).raw=Yc;var Ic=je(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});($o.geo.stereographic=function(){return _e(Ic)}).raw=Ic,Ie.invert=function(n,t){return[Math.atan2(F(n),Math.cos(t)),H(Math.sin(t)/O(n))]},($o.geo.transverseMercator=function(){return Ye(Ie)}).raw=Ie,$o.geom={},$o.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u,i,o,a,c,s,l,f,h,g,p,v=pt(e),d=pt(r),m=n.length,y=m-1,x=[],M=[],_=0;if(v===Ze&&r===Ve)t=n;else for(i=0,t=[];m>i;++i)t.push([+v.call(this,u=n[i],i),+d.call(this,u,i)]);for(i=1;m>i;++i)(t[i][1]<t[_][1]||t[i][1]==t[_][1]&&t[i][0]<t[_][0])&&(_=i);for(i=0;m>i;++i)i!==_&&(c=t[i][1]-t[_][1],a=t[i][0]-t[_][0],x.push({angle:Math.atan2(c,a),index:i}));for(x.sort(function(n,t){return n.angle-t.angle}),g=x[0].angle,h=x[0].index,f=0,i=1;y>i;++i){if(o=x[i].index,g==x[i].angle){if(a=t[h][0]-t[_][0],c=t[h][1]-t[_][1],s=t[o][0]-t[_][0],l=t[o][1]-t[_][1],a*a+c*c>=s*s+l*l){x[i].index=-1;continue}x[f].index=-1}g=x[i].angle,f=i,h=o}for(M.push(_),i=0,o=0;2>i;++o)x[o].index>-1&&(M.push(x[o].index),i++);for(p=M.length;y>o;++o)if(!(x[o].index<0)){for(;!Xe(M[p-2],M[p-1],x[o].index,t);)--p;M[p++]=x[o].index}var b=[];for(i=p-1;i>=0;--i)b.push(n[M[i]]);return b}var e=Ze,r=Ve;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},$o.geom.polygon=function(n){return ha(n,Zc),n};var Zc=$o.geom.polygon.prototype=[];Zc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Zc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Zc.clip=function(n){for(var t,e,r,u,i,o,a=We(n),c=-1,s=this.length-We(this),l=this[s-1];++c<s;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],$e(o,l,u)?($e(i,l,u)||n.push(Be(i,o,l,u)),n.push(o)):$e(i,l,u)&&n.push(Be(i,o,l,u)),i=o;a&&n.push(n[0]),l=u}return n};var Vc,Xc,$c,Bc,Wc,Jc=[],Gc=[];rr.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(ir),t.length},vr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},dr.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=Mr(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(yr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,xr(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(xr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,yr(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?Mr(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,yr(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,xr(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,yr(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,xr(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,yr(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,xr(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},$o.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return _r(e(n),a).cells.forEach(function(e,a){var c=e.edges,s=e.site,l=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):s.x>=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ze,u=Ve,i=r,o=u,a=Kc;return n?t(n):(t.links=function(n){return _r(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return _r(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(ir),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c<s;)u=l,i=f,l=a[c].edge,f=l.l===o?l.r:l.l,r<i.i&&r<f.i&&wr(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=pt(r=n),t):r},t.y=function(n){return arguments.length?(o=pt(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?Kc:n,t):a===Kc?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===Kc?null:a&&a[1]},t)};var Kc=[[-1e6,-1e6],[1e6,1e6]];$o.geom.delaunay=function(n){return $o.geom.voronoi().triangles(n)},$o.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,l=n.y;if(null!=c)if(aa(c-e)+aa(l-r)<.01)s(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,s(n,f,c,l,u,i,o,a),s(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else s(n,t,e,r,u,i,o,a)}function s(n,t,e,r,u,o,a,c){var s=.5*(u+a),l=.5*(o+c),f=e>=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=Er()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=pt(a),M=pt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.x<v&&(v=l.x),l.y<d&&(d=l.y),l.x>m&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=Er();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){Ar(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=l=null,k}var o,a=Ze,c=Ve;return(o=arguments.length)?(a=Sr,c=kr,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},$o.interpolateRgb=Cr,$o.interpolateObject=Nr,$o.interpolateNumber=Lr,$o.interpolateString=Tr;var Qc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;$o.interpolate=qr,$o.interpolators=[function(n,t){var e=typeof t;return("string"===e?Xa.has(t)||/^(#|rgb\(|hsl\()/.test(t)?Cr:Tr:t instanceof Z?Cr:"object"===e?Array.isArray(t)?zr:Nr:Lr)(n,t)}],$o.interpolateArray=zr;var ns=function(){return vt},ts=$o.map({linear:ns,poly:Fr,quad:function(){return Ur},cubic:function(){return jr},sin:function(){return Or},exp:function(){return Yr},circle:function(){return Ir},elastic:Zr,back:Vr,bounce:function(){return Xr}}),es=$o.map({"in":vt,out:Dr,"in-out":Pr,"out-in":function(n){return Pr(Dr(n))}});$o.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ts.get(e)||ns,r=es.get(r)||vt,Rr(r(e.apply(null,Bo.call(arguments,1))))},$o.interpolateHcl=$r,$o.interpolateHsl=Br,$o.interpolateLab=Wr,$o.interpolateRound=Jr,$o.transform=function(n){var t=Jo.createElementNS($o.ns.prefix.svg,"g");return($o.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Gr(e?e.matrix:rs)})(n)},Gr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var rs={a:1,b:0,c:0,d:1,e:0,f:0};$o.interpolateTransform=tu,$o.layout={},$o.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(uu(n[e]));return t}},$o.layout.chord=function(){function n(){var n,s,f,h,g,p={},v=[],d=$o.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(s=0,g=-1;++g<i;)s+=u[h][g];v.push(s),m.push($o.range(i)),n+=s}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(Ea-l*i)/n,s=0,h=-1;++h<i;){for(f=s,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=s,b=s+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:s,value:(s-f)/n},s+=l}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,s={},l=0;return s.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,s):u},s.padding=function(n){return arguments.length?(l=n,e=r=null,s):l},s.sortGroups=function(n){return arguments.length?(o=n,e=r=null,s):o},s.sortSubgroups=function(n){return arguments.length?(a=n,e=null,s):a},s.sortChords=function(n){return arguments.length?(c=n,e&&t(),s):c},s.chords=function(){return e||n(),e},s.groups=function(){return r||n(),r},s},$o.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=1/Math.sqrt(i*i+o*o);if(v>(u-e)*a){var c=t.charge*a*a;return n.px-=i*c,n.py-=o*c,!0}if(t.point&&isFinite(a)){var c=t.pointCharge*a*a;n.px-=i*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=$o.event.x,n.py=$o.event.y,a.resume()}var e,r,u,i,o,a={},c=$o.dispatch("start","tick","end"),s=[1,1],l=.9,f=us,h=is,g=-30,p=.1,v=.8,d=[],m=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,v,y,x,M,_=d.length,b=m.length;for(e=0;b>e;++e)a=m[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(v=x*x+M*M)&&(v=r*i[e]*((v=Math.sqrt(v))-u[e])/v,x*=v,M*=v,h.x-=x*(y=f.weight/(h.weight+f.weight)),h.y-=M*y,f.x+=x*(y=1-y),f.y+=M*y);if((y=r*p)&&(x=s[0]/2,M=s[1]/2,e=-1,y))for(;++e<_;)a=d[e],a.x+=(x-a.x)*y,a.y+=(M-a.y)*y;if(g)for(fu(t=$o.geom.quadtree(d),r,o),e=-1;++e<_;)(a=d[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=d[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(d=n,a):d},a.links=function(n){return arguments.length?(m=n,a):m},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.gravity=function(n){return arguments.length?(p=+n,a):p},a.theta=function(n){return arguments.length?(v=+n,a):v},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),$o.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=m[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++a<s;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=d.length,l=m.length,p=s[0],v=s[1];for(t=0;c>t;++t)(r=d[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=m[t],"number"==typeof r.source&&(r.source=d[r.source]),"number"==typeof r.target&&(r.target=d[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=d[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,m[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,m[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,d[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=$o.behavior.drag().origin(vt).on("dragstart.force",au).on("drag.force",t).on("dragend.force",cu)),arguments.length?(this.on("mouseover.force",su).on("mouseout.force",lu).call(e),void 0):e},$o.rebind(a,c,"on")};var us=20,is=1;$o.layout.hierarchy=function(){function n(t,o,a){var c=u.call(e,t,o);if(t.depth=o,a.push(t),c&&(s=c.length)){for(var s,l,f=-1,h=t.children=new Array(s),g=0,p=o+1;++f<s;)l=h[f]=n(c[f],p,a),l.parent=t,g+=l.value;r&&h.sort(r),i&&(t.value=g)}else delete t.children,i&&(t.value=+i.call(e,t,o)||0);return t}function t(n,r){var u=n.children,o=0;if(u&&(a=u.length))for(var a,c=-1,s=r+1;++c<a;)o+=t(u[c],s);else i&&(o=+i.call(e,n,r)||0);return i&&(n.value=o),o}function e(t){var e=[];return n(t,0,e),e}var r=vu,u=gu,i=pu;return e.sort=function(n){return arguments.length?(r=n,e):r},e.children=function(n){return arguments.length?(u=n,e):u},e.value=function(n){return arguments.length?(i=n,e):i},e.revalue=function(n){return t(n,0),n},e},$o.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++s<o;)n(a=i[s],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=$o.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},hu(e,r)},$o.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/$o.sum(o),s=$o.range(i.length);null!=e&&s.sort(e===os?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var l=[];return s.forEach(function(n){var t;l[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),l}var t=Number,e=os,r=0,u=Ea;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var os={};$o.layout.stack=function(){function n(a,c){var s=a.map(function(e,r){return t.call(n,e,r)}),l=s.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,l,c);s=$o.permute(s,f),l=$o.permute(l,f);var h,g,p,v=r.call(n,l,c),d=s.length,m=s[0].length;for(g=0;m>g;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=vt,e=Mu,r=_u,u=xu,i=mu,o=yu;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||Mu,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||_u,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=$o.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(bu),i=n.map(wu),o=$o.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return $o.range(n.length).reverse()},"default":Mu}),cs=$o.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:_u});$o.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=s[i],a>=l[0]&&a<=l[1]&&(o=c[$o.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=Au,u=ku;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=pt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return Eu(n,t)}:pt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},$o.layout.tree=function(){function n(n,i){function o(n,t){var r=n.children,u=n._tree;if(r&&(i=r.length)){for(var i,a,s,l=r[0],f=l,h=-1;++h<i;)s=r[h],o(s,a),f=c(s,a,f),a=s;Pu(n);var g=.5*(l._tree.prelim+s._tree.prelim);t?(u.prelim=t._tree.prelim+e(n,t),u.mod=u.prelim-g):u.prelim=g}else t&&(u.prelim=t._tree.prelim+e(n,t))}function a(n,t){n.x=n._tree.prelim+t;var e=n.children;if(e&&(r=e.length)){var r,u=-1;for(t+=n._tree.mod;++u<r;)a(e[u],t)}}function c(n,t,r){if(t){for(var u,i=n,o=n,a=t,c=n.parent.children[0],s=i._tree.mod,l=o._tree.mod,f=a._tree.mod,h=c._tree.mod;a=Lu(a),i=Nu(i),a&&i;)c=Nu(c),o=Lu(o),o._tree.ancestor=n,u=a._tree.prelim+f-i._tree.prelim-s+e(a,i),u>0&&(Uu(ju(a,n,r),n,u),s+=u,l+=u),f+=a._tree.mod,s+=i._tree.mod,h+=c._tree.mod,l+=o._tree.mod;a&&!Lu(o)&&(o._tree.thread=a,o._tree.mod+=f-l),i&&!Nu(c)&&(c._tree.thread=i,c._tree.mod+=s-h,r=n)}return r}var s=t.call(this,n,i),l=s[0];Du(l,function(n,t){n._tree={ancestor:n,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),o(l),a(l,-l._tree.prelim);var f=Tu(l,zu),h=Tu(l,qu),g=Tu(l,Ru),p=f.x-e(f,h)/2,v=h.x+e(h,f)/2,d=g.depth||1;return Du(l,u?function(n){n.x*=r[0],n.y=n.depth*r[1],delete n._tree}:function(n){n.x=(n.x-p)/(v-p)*r[0],n.y=n.depth/d*r[1],delete n._tree}),s}var t=$o.layout.hierarchy().sort(null).value(null),e=Cu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},hu(n,t)},$o.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Du(a,function(n){n.r=+l(n.value)}),Du(a,Iu),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Du(a,function(n){n.r+=f}),Du(a,Iu),Du(a,function(n){n.r-=f})}return Xu(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=$o.layout.hierarchy().sort(Hu),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},hu(n,e)},$o.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Du(c,function(n){var t=n.children;t&&t.length?(n.x=Wu(t),n.y=Bu(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ju(c),f=Gu(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Du(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=$o.layout.hierarchy().sort(null).value(null),e=Cu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},hu(n,t)},$o.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++i<o;)u=n[i],u.x=a,u.y=s,u.dy=l,a+=u.dx=Math.min(e.x+e.dx-a,l?c(u.area/l):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=l,e.dy-=l}else{for((r||l>e.dx)&&(l=e.dx);++i<o;)u=n[i],u.x=a,u.y=s,u.dx=l,s+=u.dy=Math.min(e.y+e.dy-s,l?c(u.area/l):0);u.z=!1,u.dy+=e.y+e.dy-s,e.x+=l,e.dx-=l}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=s[0],i.dy=s[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=$o.layout.hierarchy(),c=Math.round,s=[1,1],l=null,f=Ku,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(s=n,i):s},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ku(t):Qu(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Qu(t,n)}if(!arguments.length)return l;var r;return f=null==(l=n)?Ku:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},hu(i,a)},$o.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=$o.random.normal.apply($o,arguments);return function(){return Math.exp(n())}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t/n}}},$o.scale={};var ss={floor:vt,ceil:vt};$o.scale.linear=function(){return oi([0,1],[0,1],qr,!1)};var ls={s:1,g:1,p:1,r:1,e:1};$o.scale.log=function(){return pi($o.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=$o.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};$o.scale.pow=function(){return vi($o.scale.linear(),1,[0,1])},$o.scale.sqrt=function(){return $o.scale.pow().exponent(.5)},$o.scale.ordinal=function(){return mi([],{t:"range",a:[[]]})},$o.scale.category10=function(){return $o.scale.ordinal().range(gs)},$o.scale.category20=function(){return $o.scale.ordinal().range(ps)},$o.scale.category20b=function(){return $o.scale.ordinal().range(vs)},$o.scale.category20c=function(){return $o.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(it),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(it),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(it),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(it);$o.scale.quantile=function(){return yi([],[])},$o.scale.quantize=function(){return xi(0,1,[0,1])},$o.scale.threshold=function(){return Mi([.5],[0,1])},$o.scale.identity=function(){return _i([0,1])},$o.svg={},$o.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ka>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=bi,e=wi,r=Si,u=ki;return n.innerRadius=function(e){return arguments.length?(t=pt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=pt(t),n):e},n.startAngle=function(t){return arguments.length?(r=pt(t),n):r},n.endAngle=function(t){return arguments.length?(u=pt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Aa,ys=Ea-Ca;$o.svg.line=function(){return Ei(vt)};var xs=$o.map({linear:Ai,"linear-closed":Ci,step:Ni,"step-before":Li,"step-after":Ti,basis:Ui,"basis-open":ji,"basis-closed":Hi,bundle:Fi,cardinal:Ri,"cardinal-open":qi,"cardinal-closed":zi,monotone:Xi});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];$o.svg.line.radial=function(){var n=Ei($i);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},Li.reverse=Ti,Ti.reverse=Li,$o.svg.area=function(){return Bi(vt)},$o.svg.area.radial=function(){var n=Bi($i);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},$o.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ka)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=Re,o=De,a=Wi,c=Si,s=ki;return n.radius=function(t){return arguments.length?(a=pt(t),n):a},n.source=function(t){return arguments.length?(i=pt(t),n):i},n.target=function(t){return arguments.length?(o=pt(t),n):o},n.startAngle=function(t){return arguments.length?(c=pt(t),n):c},n.endAngle=function(t){return arguments.length?(s=pt(t),n):s},n},$o.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=Re,e=De,r=Ji;return n.source=function(e){return arguments.length?(t=pt(e),n):t},n.target=function(t){return arguments.length?(e=pt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},$o.svg.diagonal.radial=function(){var n=$o.svg.diagonal(),t=Ji,e=n.projection;return n.projection=function(n){return arguments.length?e(Gi(t=n)):t},n},$o.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||no)(e.call(this,n,r))}var t=Qi,e=Ki;return n.type=function(e){return arguments.length?(t=pt(e),n):t},n.size=function(t){return arguments.length?(e=pt(t),n):e},n};var ws=$o.map({circle:no,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});$o.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*La),Cs=[],Ns=0;
-Cs.call=ma.call,Cs.empty=ma.empty,Cs.node=ma.node,Cs.size=ma.size,$o.transition=function(n){return arguments.length?Ss?n.transition():n:Ma.transition()},$o.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=v(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],s=-1,l=c.length;++s<l;)(r=c[s])&&(e=n.call(r,r.__data__,s,o))?("__data__"in r&&(e.__data__=r.__data__),uo(e,s,u,r.__transition__[u]),t.push(e)):t.push(null)}return to(i,u)},Cs.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=d(n);for(var c=-1,s=this.length;++c<s;)for(var l=this[c],f=-1,h=l.length;++f<h;)if(r=l[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&uo(u,g,o,i),t.push(u)}return to(a,o)},Cs.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=E(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a)&&t.push(r)}return to(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):C(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?tu:qr,a=$o.ns.qualify(n);return eo(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=$o.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Ko.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=qr(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return eo(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Ko.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return eo(this,"text",n,ro)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=$o.ease.apply($o,arguments)),C(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return C(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return C(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,C(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else C(this,function(r){var u=r.__transition__[e];(u.event||(u.event=$o.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,uo(e,s,i,r)),n.push(e)}return to(o,i)},$o.svg.axis=function(){function n(n){n.each(function(){var n,s=$o.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):vt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=$o.transition(p.exit()).style("opacity",Ca).remove(),m=$o.transition(p).style("opacity",1),y=ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),$o.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=io,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=io,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=oo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=oo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f.rangeBand()/2,A=function(n){return f(n)+E};v.call(n,A),m.call(n,A)}else v.call(n,l),m.call(n,f),d.call(n,f)})}var t,e=$o.scale.linear(),r=Ls,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ts?t+"":Ls,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Ls="bottom",Ts={top:1,right:1,bottom:1,left:1};$o.svg.brush=function(){function n(i){i.each(function(){var i=$o.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(d,vt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return qs[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=$o.transition(i),h=$o.transition(o);c&&(l=ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==$o.event.keyCode&&(C||(x=null,L[0]-=l[1],L[1]-=h[1],C=2),f())}function g(){32==$o.event.keyCode&&2==C&&(L[0]+=l[1],L[1]+=h[1],C=0,f())}function d(){var n=$o.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||($o.event.altKey?(x||(x=[(l[0]+l[1])/2,(h[0]+h[1])/2]),L[0]=l[+(n[0]<x[0])],L[1]=h[+(n[1]<x[1])]):x=null),E&&m(n,c,0)&&(e(S),u=!0),A&&m(n,s,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,a=ti(t),c=a[0],s=a[1],f=L[e],g=e?h:l,d=g[1]-g[0];return C&&(c-=f,s-=d+f),r=(e?v:p)?Math.max(c,Math.min(s,n[e])):n[e],C?u=(r+=f)+d:(x&&(f=Math.max(c,Math.min(s,2*x[e]-r))),r>f?(u=r,r=f):u=f),g[0]!=r||g[1]!=u?(e?o=null:i=null,g[0]=r,g[1]=u,!0):void 0}function y(){d(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),$o.select("body").style("cursor",null),T.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=$o.select($o.event.target),w=a.of(_,arguments),S=$o.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=D(),L=$o.mouse(_),T=$o.select(Ko).on("keydown.brush",u).on("keyup.brush",g);if($o.event.changedTouches?T.on("touchmove.brush",d).on("touchend.brush",y):T.on("mousemove.brush",d).on("mouseup.brush",y),S.interrupt().selectAll("*").interrupt(),C)L[0]=l[0]-L[0],L[1]=h[0]-L[1];else if(k){var q=+/w$/.test(k),z=+/^n/.test(k);M=[l[1-q]-L[0],h[1-z]-L[1]],L[0]=l[q],L[1]=h[z]}else $o.event.altKey&&(x=L.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),$o.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),d()}var i,o,a=g(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],h=[0,0],p=!0,v=!0,d=zs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:h,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?$o.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=zr(l,t.x),r=zr(h,t.y);return i=o=null,function(u){l=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,d=zs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,d=zs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(p=!!t[0],v=!!t[1]):c?p=!!t:s&&(v=!!t),n):c&&s?[p,v]:c?p:s?v:null},n.extent=function(t){var e,r,u,a,f;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(f=e,e=r,r=f),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(f=u,u=a,a=f),(u!=h[0]||a!=h[1])&&(h=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(f=e,e=r,r=f))),s&&(o?(u=o[0],a=o[1]):(u=h[0],a=h[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(f=u,u=a,a=f))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],h=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&h[0]==h[1]},$o.rebind(n,a,"on")};var qs={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},zs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=$o.time={},Ds=Date,Ps=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];ao.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Us.setUTCDate.apply(this._,arguments)},setDay:function(){Us.setUTCDay.apply(this._,arguments)},setFullYear:function(){Us.setUTCFullYear.apply(this._,arguments)},setHours:function(){Us.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Us.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Us.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Us.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Us.setUTCSeconds.apply(this._,arguments)},setTime:function(){Us.setTime.apply(this._,arguments)}};var Us=Date.prototype,js="%a %b %e %X %Y",Hs="%m/%d/%Y",Fs="%H:%M:%S",Os=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Ys=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Is=["January","February","March","April","May","June","July","August","September","October","November","December"],Zs=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];Rs.year=co(function(n){return n=Rs.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Rs.years=Rs.year.range,Rs.years.utc=Rs.year.utc.range,Rs.day=co(function(n){var t=new Ds(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Rs.days=Rs.day.range,Rs.days.utc=Rs.day.utc.range,Rs.dayOfYear=function(n){var t=Rs.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},Ps.forEach(function(n,t){n=n.toLowerCase(),t=7-t;var e=Rs[n]=co(function(n){return(n=Rs.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Rs.year(n).getDay();return Math.floor((Rs.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Rs[n+"s"]=e.range,Rs[n+"s"].utc=e.utc.range,Rs[n+"OfYear"]=function(n){var e=Rs.year(n).getDay();return Math.floor((Rs.dayOfYear(n)+(e+t)%7)/7)}}),Rs.week=Rs.sunday,Rs.weeks=Rs.sunday.range,Rs.weeks.utc=Rs.sunday.utc.range,Rs.weekOfYear=Rs.sundayOfYear,Rs.format=lo;var Vs=ho(Os),Xs=go(Os),$s=ho(Ys),Bs=go(Ys),Ws=ho(Is),Js=go(Is),Gs=ho(Zs),Ks=go(Zs),Qs=/^%/,nl={"-":"",_:" ",0:"0"},tl={a:function(n){return Ys[n.getDay()]},A:function(n){return Os[n.getDay()]},b:function(n){return Zs[n.getMonth()]},B:function(n){return Is[n.getMonth()]},c:lo(js),d:function(n,t){return po(n.getDate(),t,2)},e:function(n,t){return po(n.getDate(),t,2)},H:function(n,t){return po(n.getHours(),t,2)},I:function(n,t){return po(n.getHours()%12||12,t,2)},j:function(n,t){return po(1+Rs.dayOfYear(n),t,3)},L:function(n,t){return po(n.getMilliseconds(),t,3)},m:function(n,t){return po(n.getMonth()+1,t,2)},M:function(n,t){return po(n.getMinutes(),t,2)},p:function(n){return n.getHours()>=12?"PM":"AM"},S:function(n,t){return po(n.getSeconds(),t,2)},U:function(n,t){return po(Rs.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return po(Rs.mondayOfYear(n),t,2)},x:lo(Hs),X:lo(Fs),y:function(n,t){return po(n.getFullYear()%100,t,2)},Y:function(n,t){return po(n.getFullYear()%1e4,t,4)},Z:jo,"%":function(){return"%"}},el={a:vo,A:mo,b:_o,B:bo,c:wo,d:To,e:To,H:zo,I:zo,j:qo,L:Po,m:Lo,M:Ro,p:Uo,S:Do,U:xo,w:yo,W:Mo,x:So,X:ko,y:Ao,Y:Eo,Z:Co,"%":Ho},rl=/^\s*\d+/,ul=$o.map({am:0,pm:1});lo.utc=Fo;var il=Fo("%Y-%m-%dT%H:%M:%S.%LZ");lo.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Oo:il,Oo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Oo.toString=il.toString,Rs.second=co(function(n){return new Ds(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Rs.seconds=Rs.second.range,Rs.seconds.utc=Rs.second.utc.range,Rs.minute=co(function(n){return new Ds(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Rs.minutes=Rs.minute.range,Rs.minutes.utc=Rs.minute.utc.range,Rs.hour=co(function(n){var t=n.getTimezoneOffset()/60;return new Ds(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Rs.hours=Rs.hour.range,Rs.hours.utc=Rs.hour.utc.range,Rs.month=co(function(n){return n=Rs.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Rs.months=Rs.month.range,Rs.months.utc=Rs.month.utc.range;var ol=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],al=[[Rs.second,1],[Rs.second,5],[Rs.second,15],[Rs.second,30],[Rs.minute,1],[Rs.minute,5],[Rs.minute,15],[Rs.minute,30],[Rs.hour,1],[Rs.hour,3],[Rs.hour,6],[Rs.hour,12],[Rs.day,1],[Rs.day,2],[Rs.week,1],[Rs.month,1],[Rs.month,3],[Rs.year,1]],cl=[[lo("%Y"),Zt],[lo("%B"),function(n){return n.getMonth()}],[lo("%b %d"),function(n){return 1!=n.getDate()}],[lo("%a %d"),function(n){return n.getDay()&&1!=n.getDate()}],[lo("%I %p"),function(n){return n.getHours()}],[lo("%I:%M"),function(n){return n.getMinutes()}],[lo(":%S"),function(n){return n.getSeconds()}],[lo(".%L"),function(n){return n.getMilliseconds()}]],sl=Zo(cl);al.year=Rs.year,Rs.scale=function(){return Yo($o.scale.linear(),al,sl)};var ll={range:function(n,t,e){return $o.range(+n,+t,e).map(Io)}},fl=al.map(function(n){return[n[0].utc,n[1]]}),hl=[[Fo("%Y"),Zt],[Fo("%B"),function(n){return n.getUTCMonth()}],[Fo("%b %d"),function(n){return 1!=n.getUTCDate()}],[Fo("%a %d"),function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],[Fo("%I %p"),function(n){return n.getUTCHours()}],[Fo("%I:%M"),function(n){return n.getUTCMinutes()}],[Fo(":%S"),function(n){return n.getUTCSeconds()}],[Fo(".%L"),function(n){return n.getUTCMilliseconds()}]],gl=Zo(hl);return fl.year=Rs.year.utc,Rs.scale.utc=function(){return Yo($o.scale.linear(),fl,gl)},$o.text=dt(function(n){return n.responseText}),$o.json=function(n,t){return mt(n,"application/json",Vo,t)},$o.html=function(n,t){return mt(n,"text/html",Xo,t)},$o.xml=dt(function(n){return n.responseXML}),$o}();</script>
-<script type="text/javascript">var RadarChart = {
-  draw: function(id, d, options){
-    var cfg = {
-     radius: 5,
-     w: 600,
-     h: 600,
-     factor: .95,
-     factorLegend: 1,
-     levels: 3,
-     maxValue: 0,
-     radians: 2 * Math.PI,
-     opacityArea: 0.5,
-     color: d3.scale.category10(),
-     fontSize: 10
-    };
-    if('undefined' !== typeof options){
-      for(var i in options){
-        if('undefined' !== typeof options[i]){
-          cfg[i] = options[i];
-        }
-      }
-    }
-    cfg.maxValue = Math.max(cfg.maxValue, d3.max(d, function(i){return d3.max(i.map(function(o){return o.value;}))}));
-    var allAxis = (d[0].map(function(i, j){return i.axis}));
-    var total = allAxis.length;
-    var radius = cfg.factor*Math.min(cfg.w/2, cfg.h/2);
-    d3.select(id).select("svg").remove();
-    var g = d3.select(id).append("svg").attr("width", cfg.w).attr("height", 0.75 * cfg.h).append("g");
-
-    var tooltip;
-    function getPosition(i, range, factor, func){
-      factor = typeof factor !== 'undefined' ? factor : 1;
-      return range * (1 - factor * func(i * cfg.radians / total));
-    }
-    function getHorizontalPosition(i, range, factor){
-      return getPosition(i, range, factor, Math.sin);
-    }
-    function getVerticalPosition(i, range, factor){
-      return getPosition(i, range, factor, Math.cos);
-    }
-
-    for(var j=0; j<cfg.levels; j++){
-      var levelFactor = radius*((j+1)/cfg.levels);
-      g.selectAll(".levels").data(allAxis).enter().append("svg:line")
-       .attr("x1", function(d, i){return getHorizontalPosition(i, levelFactor);})
-       .attr("y1", function(d, i){return getVerticalPosition(i, levelFactor);})
-       .attr("x2", function(d, i){return getHorizontalPosition(i+1, levelFactor);})
-       .attr("y2", function(d, i){return getVerticalPosition(i+1, levelFactor);})
-       .attr("class", "line").style("stroke", "grey").style("stroke-width", "0.5px").attr("transform", "translate(" + (cfg.w/2-levelFactor) + ", " + (cfg.h/2-levelFactor) + ")");
-
-    }
-
-    series = 0;
-
-    var axis = g.selectAll(".axis").data(allAxis).enter().append("g").attr("class", "axis");
-
-    axis.append("line")
-        .attr("x1", cfg.w/2)
-        .attr("y1", cfg.h/2)
-        .attr("x2", function(j, i){return getHorizontalPosition(i, cfg.w/2, cfg.factor);})
-        .attr("y2", function(j, i){return getVerticalPosition(i, cfg.h/2, cfg.factor);})
-        .attr("class", "line").style("stroke", "grey").style("stroke-width", "1px");
-
-    axis.append("text").attr("class", function(d){ return "legend_" + d.replace("/", "") })
-        .text(function(d){return d})
-        .style("font-size", cfg.fontSize + "px")
-        .style("text-anchor", function(d, i){
-          var p = getHorizontalPosition(i, 0.5);
-          return (p < 0.4) ? "start" : ((p > 0.6) ? "end" : "middle");
-        })
-        .attr("transform", function(d, i){
-          var p = getVerticalPosition(i, cfg.h / 2);
-          return p < cfg.fontSize ? "translate(0, " + (cfg.fontSize - p) + ")" : "";
-        })
-        .attr("x", function(d, i){return getHorizontalPosition(i, cfg.w / 2, cfg.factorLegend);})
-        .attr("y", function(d, i){return getVerticalPosition(i, cfg.h / 2, cfg.factorLegend);});
- 
-    d.forEach(function(y, x){
-      dataValues = [];
-      g.selectAll(".nodes")
-        .data(y, function(j, i){
-          dataValues.push([
-            getHorizontalPosition(i, cfg.w/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor),
-            getVerticalPosition(i, cfg.h/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor)
-          ]);
-        });
-      dataValues.push(dataValues[0]);
-      g.selectAll(".area")
-                     .data([dataValues])
-                     .enter()
-                     .append("polygon")
-                     .attr("class", "radar-chart-serie"+series)
-                     .style("stroke-width", "2px")
-                     .style("stroke", cfg.color(series))
-                     .attr("points",function(d) {
-                         var str="";
-                         for(var pti=0;pti<d.length;pti++){
-                             str=str+d[pti][0]+","+d[pti][1]+" ";
-                         }
-                         return str;
-                      })
-                     .style("fill", function(j, i){return cfg.color(series)})
-                     .style("fill-opacity", cfg.opacityArea)
-                     .on('mouseover', function (d){
-                                        z = "polygon."+d3.select(this).attr("class");
-                                        g.selectAll("polygon").transition(200).style("fill-opacity", 0.1); 
-                                        g.selectAll(z).transition(200).style("fill-opacity", .7);
-                                      })
-                     .on('mouseout', function(){
-                                        g.selectAll("polygon").transition(200).style("fill-opacity", cfg.opacityArea);
-                     });
-      series++;
-    });
-    series=0;
-
-
-    d.forEach(function(y, x){
-      g.selectAll(".nodes")
-        .data(y).enter()
-        .append("svg:circle").attr("class", "radar-chart-serie"+series)
-        .attr('r', cfg.radius)
-        .attr("alt", function(j){return Math.max(j.value, 0)})
-        .attr("cx", function(j, i){
-          dataValues.push([
-            getHorizontalPosition(i, cfg.w/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor),
-            getVerticalPosition(i, cfg.h/2, (parseFloat(Math.max(j.value, 0))/cfg.maxValue)*cfg.factor)
-          ]);
-          return getHorizontalPosition(i, cfg.w/2, (Math.max(j.value, 0)/cfg.maxValue)*cfg.factor);
-        })
-        .attr("cy", function(j, i){
-          return getVerticalPosition(i, cfg.h/2, (Math.max(j.value, 0)/cfg.maxValue)*cfg.factor);
-        })
-        .attr("data-id", function(j){return j.axis})
-        .style("fill", cfg.color(series)).style("fill-opacity", .9)
-        .on('mouseover', function (d){
-                    newX =  parseFloat(d3.select(this).attr('cx')) - 10;
-                    newY =  parseFloat(d3.select(this).attr('cy')) - 5;
-                    tooltip.attr('x', newX).attr('y', newY).text(d.value).transition(200).style('opacity', 1);
-                    z = "polygon."+d3.select(this).attr("class");
-                    g.selectAll("polygon").transition(200).style("fill-opacity", 0.1); 
-                    g.selectAll(z).transition(200).style("fill-opacity", .7);
-                  })
-        .on('mouseout', function(){
-                    tooltip.transition(200).style('opacity', 0);
-                    g.selectAll("polygon").transition(200).style("fill-opacity", cfg.opacityArea);
-                  })
-        .append("svg:title")
-        .text(function(j){return Math.max(j.value, 0)});
-
-      series++;
-    });
-    //Tooltip
-    tooltip = g.append('text').style('opacity', 0).style('font-family', 'sans-serif').style('font-size', '13px');
-  }
-}
-
-</script>
-<script type="text/javascript">window.onload = function() {
-    var cpu = 88.6;
-    var mpi = 11.4;
-    var io = 0.0;
-
-    // Draw radar chart, choose its color based on application classification
-    var radar_data = [[ { axis: "CPU", value: cpu },
-                        { axis: "MPI", value: mpi },
-                        { axis: "I/O", value: io } ]];
-    var radar_options = { w: 200, h: 200, factor: 0.7, fontSize: 16, radius: 0, 
-                          opacityArea: 0.64, maxValue: 100, 
-                          color: function() {
-                              if ("cpu" == "io")  return "#ed8140";
-                              if ("cpu" == "cpu") return "#4fd32e";
-                              if ("cpu" == "mpi") return "#409ded";
-                              else return "#bb58d6";
-                          }
-                        };
-    RadarChart.draw("#time_radar", radar_data, radar_options);
-
-    // Wrap the exe path on slashes if necessary
-    var exe_path = document.getElementById("exe_path");
-    exe_path.innerHTML = exe_path.innerHTML.replace(/\//g, '/&#x200b;'); // insert a zero width space after slashes as a word wrap hint
-
-    // Format our byte value numbers to show at most 2 decimal places, but only if required to attain 3 digits of precision
-    // 1234.56 -> "1234"
-    // 12.3456 -> "12.3"
-    // 1.23456 -> "1.23"
-    // 0.00000 -> "0.00"
-    var formatNumber = function(num) {
-        if (num > 100) return new Number(num).toFixed(0); // 1234.56 -> 1234
-        if (num > 10)  return new Number(num).toFixed(1); // 12.3456 -> 12.3
-        else           return new Number(num).toFixed(2); // 1.23456 -> 1.23 and 0 -> 0.00
-    }
-
-    // Parse a number, but return 0 for invalid numbers, not NaN
-    var toNumber = function(num_str) {
-        var num = Number(num_str)
-        return isNaN(num) ? 0 : num;
-    }
-
-    // Scale byte values to bytes, kB, MB or GB as appropriate
-    var fillBytes = function(base_name, bytes_str, per_second) {
-        var units = "bytes";
-        var scale = 1.0;
-        var bytes = Number(bytes_str)
-        if      (isNaN(bytes)      ) { units = ""  ;                           }
-        else if (bytes > 1000000000) { units = "GB"; scale = 1*1000*1000*1000; }
-        else if (bytes > 1000000   ) { units = "MB"; scale = 1*1000*1000       }
-        else if (bytes > 1000      ) { units = "kB"; scale = 1*1000            }
-        var num = isNaN(bytes) ? bytes_str : formatNumber(bytes / scale);
-        var elementNum = document.getElementById(base_name + "_num");
-        elementNum.innerHTML = num;
-        var elementUnits = document.getElementById(base_name + "_units");
-        elementUnits.innerHTML = units + (per_second && !isNaN(bytes) ? "/s" : "");
-    };
-
-    // Fill all the byte numbers and their units with the scaled values
-    fillBytes("mpi_colrate", "1.65e+02", true);
-    fillBytes("mpi_p2prate", "0.00e+00", true);
-    fillBytes("io_readrate", "0.00e+00", true);
-    fillBytes("io_writerate", "0.00e+00", true);
-    fillBytes("ram_mean", "2.33e+07", false);
-    fillBytes("ram_peak", "2.35e+07", false);
-
-    // Set widths for all graphs
-    var bar = function(name, width) {
-        var rounded = Math.round(width);
-        if (!isFinite(rounded) || rounded < 1)
-            document.getElementById(name).style.width = "1px"
-        else
-            document.getElementById(name).style.width = rounded + "px";
-    };
-    bar("cpu_bar", cpu * 2);
-    bar("mpi_bar", mpi * 2);
-    bar("io_bar", io * 2);
-
-    bar("cpu_num_bar", toNumber("50.0") / 2);
-    bar("cpu_vec_bar", toNumber("50.0") / 2);
-    bar("cpu_mem_bar", toNumber("0.0") / 2);
-    bar("cpu_other_bar", toNumber("0.0") / 2);
-
-    bar("mpi_col_bar", toNumber("100.0") / 2);
-    bar("mpi_p2p_bar", toNumber("0.0") / 2);
-    var mpi_scale = Math.max(toNumber("1.65e+02"), toNumber("0.00e+00"));
-    bar("mpi_colrate_bar", 50 * toNumber("1.65e+02") / mpi_scale);
-    bar("mpi_p2prate_bar", 50 * toNumber("0.00e+00") / mpi_scale);
-
-    bar("io_read_bar", toNumber("0.0") / 2);
-    bar("io_write_bar", toNumber("0.0") / 2);
-    var io_scale = Math.max(toNumber("0.00e+00"), toNumber("0.00e+00"));
-    bar("io_readrate_bar", 50 * toNumber("0.00e+00") / io_scale);
-    bar("io_writerate_bar", 50 * toNumber("0.00e+00") / io_scale);
-
-    bar("ram_mean_bar", 50 * toNumber("2.33e+07") / toNumber("2.35e+07"));
-    bar("ram_peak_bar", 50);
-    bar("ram_node_bar", toNumber("2.8") / 2);
-
-    // Formatting replacement helper function
-    var replaceIn = function(elementId, re, new_text) {
-        element = document.getElementById(elementId);
-        element.innerHTML = element.innerHTML.replace(re, new_text);
-    };
-
-    // Add formatting for the overview advice section
-    replaceIn('overview_advice', /CPU/g,  '<span class="cpu_span">CPU</span>');
-    replaceIn('overview_advice', /MPI/g,  '<span class="mpi_span">MPI</span>');
-    replaceIn('overview_advice', /I\/O/g, '<span class="io_span">I\/O</span>');
-
-    // Add formatting for the CPU advice section
-    if ( 88.6 < 0.05 )
-        replaceIn('cpu_explanation', /application code/g, '<span class="cpu_span">application code</span>');
-    replaceIn('cpu_explanation', /vectorized instructions/g, '<span class="cpu_vec_span">vectorized instructions</span>');
-    replaceIn('cpu_explanation', /memory accesses/g,         '<span class="cpu_mem_span">memory accesses</span>');
-    replaceIn('cpu_explanation', /memory-bound/g,            '<span class="cpu_mem_span">memory-bound</span>');
-    replaceIn('cpu_explanation', /arithmetic-bound/g,        '<span class="cpu_num_span">arithmetic-bound</span>');
-    replaceIn('cpu_explanation', /numerical computation/g,   '<span class="cpu_num_span">numerical computation</span>');
-
-    // Add formatting for the MPI advice section
-    if ( 11.4 < 0.05 )
-        replaceIn('mpi_explanation', /MPI/g, '<span class="mpi_span">MPI</span>');
-    replaceIn('mpi_explanation', /collective calls/g, '<span class="mpi_col_span">collective calls</span>');
-    replaceIn('mpi_explanation', /point-to-point calls/g, '<span class="mpi_p2p_span">point-to-point calls</span>');
-    replaceIn('mpi_explanation', / very low/g,  ' <span class="mpi_colrate_span">very low</span>');
-    replaceIn('mpi_explanation', / low/g,       ' <span class="mpi_colrate_span">low</span>');
-    replaceIn('mpi_explanation', / average/g,   ' <span class="mpi_colrate_span">average</span>');
-    replaceIn('mpi_explanation', / very high/g, ' <span class="mpi_colrate_span">very high</span>');
-    replaceIn('mpi_explanation', / high/g,      ' <span class="mpi_colrate_span">high</span>');
-
-    // Add formatting for the I/O advice section
-    if ( 0.0 < 0.05 )
-        replaceIn('io_explanation', /I\/O/g, '<span class="io_span">I/O</span>');
-    replaceIn('io_explanation', /read operations/g, '<span class="io_read_span">read operations</span>');
-    replaceIn('io_explanation', /write operations/g, '<span class="io_write_span">write operations</span>');
-    replaceIn('io_explanation', / very low/g,  ' <span class="io_readrate_span">very low</span>');
-    replaceIn('io_explanation', / low/g,       ' <span class="io_readrate_span">low</span>');
-    replaceIn('io_explanation', / average/g,   ' <span class="io_readrate_span">average</span>');
-    replaceIn('io_explanation', / very high/g, ' <span class="io_readrate_span">very high</span>');
-    replaceIn('io_explanation', / high/g,      ' <span class="io_readrate_span">high</span>');
-
-    // Add formatting for the RAM advice section
-    replaceIn('ram_explanation', /high/g, ' <span class="ram_node_span">high</span>');
-    replaceIn('ram_explanation', /well-balanced/g, '<span class="ram_peak_span">well-balanced</span>');
-    replaceIn('ram_explanation', /significant variation/g, '<span class="ram_peak_span">significant variation</span>');
-    replaceIn('ram_explanation', /peak node memory usage/g, '<span class="ram_node_span">peak node memory usage</span>');
-
-    // Hide the error warning if the script got this far
-    document.getElementById('error').style.display = 'none';
-};
-</script>
-</head>
-
-<body>
-<div id="content">
-
-<div class="header">
-    <div class="logo"><img src="http://content.allinea.com/downloads/performance-report-logo.png" alt="Allinea Performance Reports" /></div>
-    <div class="header_left">
-        <div class="application_details">
-            <table>
-                <tr><td class="details_key">Executable:</td><td id="exe_name">mympiprog.x</td></tr>
-                <tr><td class="details_key">Resources:</td><td id="num_procs">32 processes, 2 nodes</td></tr>
-                <tr><td class="details_key">Machine:</td><td id="machine_name">cn182</td></tr>
-                <tr><td class="details_key">Start time:</td><td id="start_date">Wed Oct 15 16:56:23 2014</td></tr>
-                <tr><td class="details_key">Total time:</td><td id="time_string">7 seconds (0 minutes)</td></tr>
-                <tr><td class="details_key">Full path:</td><td id="exe_path">/home/user</td></tr>
-                <tr><td class="details_key">Notes:</td><td id="notes"></td></tr>
-            </table>
-        </div>
-    </div>
-    <div id="time_radar"></div>
-    <div class="clear"></div>
-</div>
-<hr />
-<div id="error">
-<p><strong>Error: javascript is not running</strong></p>
-<p>The graphs in this Performance Report require <strong>javascript</strong>, which is disabled or not working.</p>
-<p>Check whether your javascript support is enabled or try another browser.<p>
-<p>Remember, you can always contact <a href="mailto:support@allinea.com">support@allinea.com</a>, we're very nice!</p>
-</div>
-<div class="summary">
-    <div class="heading">Summary: mympiprog.x is <span class="cpu_span">CPU-bound</span> in this configuration</div>
-    <div>The total wallclock time was spent as follows:</div>
-    <table class="summary_table">
-        <tr><td class="heading_cpu">CPU</td><td class="percent">88.6%</td><td class="bar_graph"><div id="cpu_bar" /></td>
-            <td class="details"><p>Time spent running application code. High values are usually good.</p><p>This is <span id="summary_cpu_class">high</span>; check the CPU performance section for optimization advice.</p></td></tr>
-        <tr><td class="heading_mpi">MPI</td><td class="percent">11.4%</td><td class="bar_graph"><div id="mpi_bar" /></td>
-            <td class="details"><p>Time spent in MPI calls. High values are usually bad.</p><p>This is <span id="summary_mpi_class">very low</span>; this code may benefit from increasing the process count.</p></td></tr>
-        <tr><td class="heading_io">I/O</td><td class="percent">0.0%</td><td class="bar_graph"><div id="io_bar" /></td>
-            <td class="details"><p>Time spent in filesystem I/O. High values are usually bad.</p><p>This is <span id="summary_io_class">negligible</span>; there's no need to investigate I/O performance.</p></td></tr>
-    </table>
-    <div class="overview_general_advice"><p>This application run was <span class="cpu_span">CPU-bound</span>. A breakdown of this time and advice for investigating further is in the <span class="cpu_span">CPU</span> section below.</p><p id="overview_advice">As very little time is spent in MPI calls, this code may also benefit from running at larger scales.</p></div>
-</div>
-<hr />
-<div class="subsections">
-    <div class="ltcol">
-        <div class="heading_cpu">CPU</div>
-        <div>A breakdown of how the <span class="cpu_span">88.6</span>% total CPU time was spent:</div>
-        <table id="cpu_chart">
-            <tr><td>Scalar numeric ops</td><td class="right_cell"><span class="cpu_num_span">50.0</span>%</td><td class="mini_bar_graph"><div id="cpu_num_bar" /></td></tr>
-            <tr><td>Vector numeric ops</td><td class="right_cell"><span class="cpu_vec_span">50.0</span>%</td><td class="mini_bar_graph"><div id="cpu_vec_bar" /></td></tr>
-            <tr><td>Memory accesses</td><td class="right_cell"><span class="cpu_mem_span">0.0</span>%</td><td class="mini_bar_graph"><div id="cpu_mem_bar" /></td></tr>
-            <tr><td>Other</td><td class="right_cell"><span class="cpu_other_span">0.0</span>%</td><td class="mini_bar_graph"><div id="cpu_other_bar" /></td></tr>
-        </table>
-        <div id="cpu_explanation">
-            <div class="explanation">The per-core performance is arithmetic-bound. Try to increase the amount of time spent in vectorized instructions by analyzing the compiler's vectorization reports.</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="rtcol">
-        <div class="heading_mpi">MPI</div>
-        <div>Of the <span class="mpi_span">11.4</span>% total time spent in MPI calls:</div>
-        <table id="mpi_chart">
-            <tr><td>Time in collective calls</td><td class="right_cell"><span class="mpi_col_span">100.0</span>%</td><td class="mini_bar_graph"><div id="mpi_col_bar" /></td></tr>
-            <tr><td>Time in point-to-point calls</td><td class="right_cell"><span class="mpi_p2p_span">0.0</span>%</td><td class="mini_bar_graph"><div id="mpi_p2p_bar" /></td></tr>
-            <tr><td>Effective process collective rate</td><td class="right_cell"><span class="mpi_colrate_span"><span id="mpi_colrate_num">1.65e+02</span></span>&nbsp;<span id="mpi_colrate_units"></span></td><td class="mini_bar_graph"><div id="mpi_colrate_bar" /></td></tr>
-            <tr><td>Effective process point-to-point rate</td><td class="right_cell"><span class="mpi_p2prate_span"><span id="mpi_p2prate_num">0.00e+00</span></span>&nbsp;<span id="mpi_p2prate_units"></span></td><td class="mini_bar_graph"><div id="mpi_p2prate_bar" /></td></tr>
-        </table>
-        <div id="mpi_explanation">
-            <div class="explanation">Most of the time is spent in collective calls with a very low transfer rate. This suggests load imbalance is causing synchonization overhead; use an MPI profiler to investigate further.</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="clear"></div>
-</div>
-<div class="subsections">
-    <div class="ltcol">
-        <div class="heading_io">I/O</div>
-        <div>A breakdown of how the <span class="io_span">0.0</span>% total I/O time was spent:</div>
-        <table id="io_chart">
-            <tr><td>Time in reads</td><td class="right_cell"><span class="io_read_span">0.0</span>%</td><td class="mini_bar_graph"><div id="io_read_bar" /></td></tr>
-            <tr><td>Time in writes</td><td class="right_cell"><span class="io_write_span">0.0</span>%</td><td class="mini_bar_graph"><div id="io_write_bar" /></td></tr>
-            <tr><td>Effective process read rate</td><td class="right_cell"><span class="io_readrate_span"><span id="io_readrate_num">0.00e+00</span></span>&nbsp;<span id="io_readrate_units"></span></td><td class="mini_bar_graph"><div id="io_readrate_bar" /></td></tr>
-            <tr><td>Effective process write rate</td><td class="right_cell"><span class="io_writerate_span"><span id="io_writerate_num">0.00e+00</span></span>&nbsp;<span id="io_writerate_units"></span></td><td class="mini_bar_graph"><div id="io_writerate_bar" /></td></tr>
-        </table>
-        <div id="io_explanation">
-            <div class="explanation">No time is spent in I/O operations. There's nothing to optimize here!</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="rtcol">
-        <div class="heading_ram">Memory</div>
-        <div>Per-process memory usage may also affect scaling:</div>
-        <table id="ram_chart">
-            <tr><td>Mean process memory usage</td><td class="right_cell"><span class="ram_mean_span"><span id="ram_mean_num">2.33e+07</span></span>&nbsp;<span id="ram_mean_units"></span></td><td class="mini_bar_graph"><div id="ram_mean_bar" /></td></tr>
-            <tr><td>Peak process memory usage</td><td class="right_cell"><span class="ram_peak_span"><span id="ram_peak_num">2.35e+07</span></span>&nbsp;<span id="ram_peak_units"></span></td><td class="mini_bar_graph"><div id="ram_peak_bar" /></td></tr>
-            <tr><td>Peak node memory usage</td><td class="right_cell"><span class="ram_node_span">2.8</span>%</td><td class="mini_bar_graph"><div id="ram_node_bar" /></td></tr>
-        </table>
-        <div id="ram_explanation">
-            <div class="explanation">The peak node memory usage is very low. You may be able to reduce the amount of allocation time used by running with fewer MPI processes and more data on each process.</div>
-            <div class="explanation"></div>
-        </div>
-    </div>
-    <div class="clear"></div>
-</div>
-</div> <!-- content -->
-</body>
-</html>
diff --git a/public/it4i/src/mympiprog_32p_2014-10-15_16-56.txt b/public/it4i/src/mympiprog_32p_2014-10-15_16-56.txt
deleted file mode 100644
index de8449179640fd943a9f007f9eda084b11f2a455..0000000000000000000000000000000000000000
--- a/public/it4i/src/mympiprog_32p_2014-10-15_16-56.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Executable:	mympiprog.x
-Resources:	32 processes, 2 nodes
-Machine:	cn182
-Started on:	Wed Oct 15 16:56:23 2014
-Total time:	7 seconds (0 minutes)
-Full path:	/home/user
-Notes:		
-
-Summary: mympiprog.x is CPU-bound in this configuration
-CPU:				  88.6% |========|
-MPI:				  11.4% ||
-I/O:				   0.0% |
-This application run was CPU-bound. A breakdown of this time and advice for investigating further is found in the CPU section below.
-As very little time is spent in MPI calls, this code may also benefit from running at larger scales.
-
-CPU:
-A breakdown of how the 88.6% total CPU time was spent:
-Scalar numeric ops:		   50.0% |====|
-Vector numeric ops:		   50.0% |====|
-Memory accesses:		    0.0% |
-Other:				    0.0% |
-The per-core performance is arithmetic-bound. Try to increase the amount of time spent in vectorized instructions by analyzing the compiler's vectorization reports.
-
-
-MPI:
-A breakdown of how the 11.4% total MPI time was spent:
-Time in collective calls:	  100.0% |=========|
-Time in point-to-point calls:	    0.0% |
-Effective collective rate:	1.65e+02 bytes/s
-Effective point-to-point rate:	0.00e+00 bytes/s
-Most of the time is spent in collective calls with a very low transfer rate. This suggests load imbalance is causing synchonization overhead; use an MPI profiler to investigate further.
-
-
-I/O:
-A breakdown of how the 0.0% total I/O time was spent:
-Time in reads:			    0.0% |
-Time in writes:			    0.0% |
-Effective read rate:		0.00e+00 bytes/s
-Effective write rate:		0.00e+00 bytes/s
-No time is spent in I/O operations. There's nothing to optimize here!
-
-
-Memory:
-Per-process memory usage may also affect scaling:
-Mean process memory usage:	2.33e+07 bytes
-Peak process memory usage:	2.35e+07 bytes
-Peak node memory usage:		    2.8% |
-The peak node memory usage is very low. You may be able to reduce the amount of allocation time used by running with fewer MPI processes and more data on each process.
-
-
diff --git a/public/it4i/src/ompi/Hello.java b/public/it4i/src/ompi/Hello.java
deleted file mode 100644
index 4f2ac4cfb15b0edd31e35e74ecce307e41a631be..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/Hello.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-*/
-/*
- * Author of revised version: Franklyn Pinedo
- *
- * Adapted from Source Code in C of Tutorial/User's Guide for MPI by
- * Peter Pacheco.
- */
-/*
- * Copyright (c) 2011      Cisco Systems, Inc.  All rights reserved.
- *
- */
-
-import mpi.*;
-
-class Hello {
-    static public void main(String[] args) throws MPIException {
-
-
-	MPI.Init(args);
-
-	int myrank = MPI.COMM_WORLD.getRank();
-	int size = MPI.COMM_WORLD.getSize() ;
-	System.out.println("Hello world from rank " + myrank + " of " + size);
-
-	MPI.Finalize();
-    }
-}
diff --git a/public/it4i/src/ompi/Ring.java b/public/it4i/src/ompi/Ring.java
deleted file mode 100644
index 08cd864663e6cde304ec4adc509662ff2854b7de..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/Ring.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2011      Cisco Systems, Inc.  All rights reserved.
- *
- * Simple ring test program
- */
-
-import mpi.* ;
-
-class Ring {
-    static public void main(String[] args) throws MPIException {
-
-
-	MPI.Init(args) ;
-
-	int source;  // Rank of sender
-	int dest;    // Rank of receiver
-	int tag=50;  // Tag for messages
-	int next;
-	int prev;
-	int message[] = new int [1];
-
-	int myrank = MPI.COMM_WORLD.getRank() ;
-	int size = MPI.COMM_WORLD.getSize() ;
-
-	/* Calculate the rank of the next process in the ring.  Use the
-	   modulus operator so that the last process "wraps around" to
-	   rank zero. */
-
-	next = (myrank + 1) % size;
-	prev = (myrank + size - 1) % size;
-
-	/* If we are the "master" process (i.e., MPI_COMM_WORLD rank 0),
-	   put the number of times to go around the ring in the
-	   message. */
-
-	if (0 == myrank) {
-	    message[0] = 10;
-
-	    System.out.println("Process 0 sending " + message[0] + " to rank " + next + " (" + size + " processes in ring)");
-	    MPI.COMM_WORLD.send(message, 1, MPI.INT, next, tag);
-	}
-
-	/* Pass the message around the ring.  The exit mechanism works as
-	   follows: the message (a positive integer) is passed around the
-	   ring.  Each time it passes rank 0, it is decremented.  When
-	   each processes receives a message containing a 0 value, it
-	   passes the message on to the next process and then quits.  By
-	   passing the 0 message first, every process gets the 0 message
-	   and can quit normally. */
-
-	while (true) {
-	    MPI.COMM_WORLD.recv(message, 1, MPI.INT, prev, tag);
-
-	    if (0 == myrank) {
-		--message[0];
-		System.out.println("Process 0 decremented value: " + message[0]);
-	    }
-
-	    MPI.COMM_WORLD.send(message, 1, MPI.INT, next, tag);
-	    if (0 == message[0]) {
-		System.out.println("Process " + myrank + " exiting");
-		break;
-	    }
-	}
-
-	/* The last process does one extra send to process 0, which needs
-	   to be received before the program can exit */
-
-	if (0 == myrank) {
-	    MPI.COMM_WORLD.recv(message, 1, MPI.INT, prev, tag);
-	}
-
-	MPI.Finalize();
-    }
-}
diff --git a/public/it4i/src/ompi/connectivity_c.c b/public/it4i/src/ompi/connectivity_c.c
deleted file mode 100644
index 14f3f546d532f0f1fa59d33e0a5b0a89eed8f0fa..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/connectivity_c.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
- */
-
-/*
- * Test the connectivity between all processes.
- */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <mpi.h>
-
-int
-main(int argc, char **argv)
-{
-    MPI_Status  status;
-    int         verbose = 0;
-    int         rank;
-    int         np;        /* number of processes in job */
-    int         peer;
-    int         i;
-    int         j;
-    int         length;
-    char        name[MPI_MAX_PROCESSOR_NAME+1];
-
-    MPI_Init(&argc, &argv);
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    MPI_Comm_size(MPI_COMM_WORLD, &np);
-
-    /*
-     * If we cannot get the name for whatever reason, just
-     * set it to unknown. */
-    if (MPI_SUCCESS != MPI_Get_processor_name(name, &length)) {
-        strcpy(name, "unknown");
-    }
-
-    if (argc>1 && strcmp(argv[1], "-v")==0)
-        verbose = 1;
-
-    for (i=0; i<np; i++) {
-        if (rank==i) {
-            /* rank i sends to and receives from each higher rank */
-            for(j=i+1; j<np; j++) {
-                if (verbose)
-                    printf("checking connection between rank %d on %s and rank %-4d\n",
-                           i, name, j);
-                MPI_Send(&rank, 1, MPI_INT, j, rank, MPI_COMM_WORLD);
-                MPI_Recv(&peer, 1, MPI_INT, j, j, MPI_COMM_WORLD, &status);
-            }
-        } else if (rank>i) {
-            /* receive from and reply to rank i */
-            MPI_Recv(&peer, 1, MPI_INT, i, i, MPI_COMM_WORLD, &status);
-            MPI_Send(&rank, 1, MPI_INT, i, rank, MPI_COMM_WORLD);
-        }
-    }
-
-    MPI_Barrier(MPI_COMM_WORLD);
-    if (rank==0)
-        printf("Connectivity test on %d processes PASSED.\n", np);
-
-    MPI_Finalize();
-    return 0;
-}
diff --git a/public/it4i/src/ompi/hello_c.c b/public/it4i/src/ompi/hello_c.c
deleted file mode 100644
index e44f684370214442829f92adbb4455e7a559474f..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_c.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
- *                         University Research and Technology
- *                         Corporation.  All rights reserved.
- * Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
- *
- * Sample MPI "hello world" application in C
- */
-
-#include <stdio.h>
-#include "mpi.h"
-
-int main(int argc, char* argv[])
-{
-    int rank, size, len;
-    char version[MPI_MAX_LIBRARY_VERSION_STRING];
-
-    MPI_Init(&argc, &argv);
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    MPI_Comm_size(MPI_COMM_WORLD, &size);
-    MPI_Get_library_version(version, &len);
-    printf("Hello, world, I am %d of %d, (%s, %d)\n",
-           rank, size, version, len);
-    MPI_Finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/hello_cxx.cc b/public/it4i/src/ompi/hello_cxx.cc
deleted file mode 100644
index b2253bfb8e58699a8c8ffec24e71cdd4a8e0609e..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_cxx.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-//                         University Research and Technology
-//                         Corporation.  All rights reserved.
-// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
-//
-// Sample MPI "hello world" application in C++
-//
-// NOTE: The MPI C++ bindings were deprecated in MPI-2.2 and removed
-// from the standard in MPI-3.  Open MPI still provides C++ MPI
-// bindings, but they are no longer built by default (and may be
-// removed in a future version of Open MPI).  You must
-// --enable-mpi-cxx when configuring Open MPI to enable the MPI C++
-// bindings.
-//
-
-#include "mpi.h"
-#include <iostream>
-
-int main(int argc, char **argv)
-{
-    int rank, size, len;
-    char version[MPI_MAX_LIBRARY_VERSION_STRING];
-
-    MPI::Init();
-    rank = MPI::COMM_WORLD.Get_rank();
-    size = MPI::COMM_WORLD.Get_size();
-    MPI_Get_library_version(version, &len);
-    std::cout << "Hello, world!  I am " << rank << " of " << size
-              << "(" << version << ", " << len << ")" << std::endl;
-    MPI::Finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/hello_mpifh.f b/public/it4i/src/ompi/hello_mpifh.f
deleted file mode 100644
index a2ff38f964007c02aa4642249bb40b695695bf44..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_mpifh.f
+++ /dev/null
@@ -1,27 +0,0 @@
-C
-C Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-C                         University Research and Technology
-C                         Corporation.  All rights reserved.
-C Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-C $COPYRIGHT$
-C
-C Sample MPI "hello world" application using the Fortran mpif.h
-C bindings.
-C
-        program main
-        implicit none
-        include 'mpif.h'
-        integer ierr, rank, size, len
-        character(len=MPI_MAX_LIBRARY_VERSION_STRING) version
-
-        call MPI_INIT(ierr)
-        call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
-        call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
-        call MPI_GET_LIBRARY_VERSION(version, len, ierr)
-
-        write(*, '("Hello, world, I am ", i2, " of ", i2, ": ", a)')
-     &        rank, size, version
-
-        call MPI_FINALIZE(ierr)
-
-        end
diff --git a/public/it4i/src/ompi/hello_oshmem_c.c b/public/it4i/src/ompi/hello_oshmem_c.c
deleted file mode 100644
index 6bb0d08c06255d29dc4883195c325542c0dbedd4..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_oshmem_c.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2014      Mellanox Technologies, Inc.
- *                         All rights reserved.
- * Copyright (c) 2015 Cisco Systems, Inc.  All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include <stdio.h>
-#include "shmem.h"
-
-#if !defined(OSHMEM_SPEC_VERSION) || OSHMEM_SPEC_VERSION < 10200
-#error This application uses API 1.2 and up
-#endif
-
-int main(int argc, char* argv[])
-{
-    int proc, nproc;
-    char name[SHMEM_MAX_NAME_LEN];
-    int major, minor;
-
-    shmem_init();
-    nproc = shmem_n_pes();
-    proc = shmem_my_pe();
-    shmem_info_get_name(name);
-    shmem_info_get_version(&major, &minor);
-
-    printf("Hello, world, I am %d of %d: %s (version: %d.%d)\n",
-           proc, nproc, name, major, minor);
-    shmem_finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/hello_oshmem_cxx.cc b/public/it4i/src/ompi/hello_oshmem_cxx.cc
deleted file mode 100644
index 99d8565c8a53b2b0a23bc32edf1637f1ead10748..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_oshmem_cxx.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2014      Mellanox Technologies, Inc.
- *                         All rights reserved.
- * Copyright (c) 2015      Cisco Systems, Inc.  All rights reserved.
- * Copyright (c) 2017      Research Organization for Information Science
- *                         and Technology (RIST). All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include <iostream>
-#include "shmem.h"
-
-#if !defined(OSHMEM_SPEC_VERSION) || OSHMEM_SPEC_VERSION < 10200
-#error This application uses API 1.2 and up
-#endif
-
-int main(int argc, char* argv[])
-{
-    int proc, nproc;
-    char name[SHMEM_MAX_NAME_LEN];
-    int major, minor;
-
-    shmem_init();
-    nproc = shmem_n_pes();
-    proc = shmem_my_pe();
-    shmem_info_get_name(name);
-    shmem_info_get_version(&major, &minor);
-
-    std::cout << "Hello, world, I am " << proc << " of " << nproc << ": " << name
-              << " (version: " << major << "." << minor << ")" << std::endl;
-
-    shmem_finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/hello_oshmemfh.f90 b/public/it4i/src/ompi/hello_oshmemfh.f90
deleted file mode 100644
index 09404c3bb8aa650a63c7a72e177a3cb6a61e88a0..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_oshmemfh.f90
+++ /dev/null
@@ -1,29 +0,0 @@
-!
-! Copyright (c) 2014      Mellanox Technologies, Inc.
-!                         All rights reserved.
-! Copyright (c) 2014-2015 Cisco Systems, Inc.  All rights reserved.
-! $COPYRIGHT$
-!
-! Additional copyrights may follow
-!
-! $HEADER$
-!
-program hello_oshmem
-    implicit none
-    include 'shmem.fh'
-
-    integer proc, nproc
-    integer shmem_my_pe, shmem_n_pes
-    integer major, minor, len
-    character(len=SHMEM_MAX_NAME_LEN) name
-
-    call SHMEM_INIT()
-    proc = SHMEM_MY_PE()
-    nproc = SHMEM_N_PES()
-    call SHMEM_INFO_GET_VERSION(major, minor)
-    call SHMEM_INFO_GET_NAME(name)
-
-    write(*, '("Hello, world, I am ", i2, " of ", i2, ": (version: ", i0, ".", i0, ")")') proc, nproc, major, minor
-    call SHMEM_FINALIZE()
-
-end program hello_oshmem
diff --git a/public/it4i/src/ompi/hello_usempi.f90 b/public/it4i/src/ompi/hello_usempi.f90
deleted file mode 100644
index 3fc7a9be31bc3902db58b2d3000e3a7bf870b642..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_usempi.f90
+++ /dev/null
@@ -1,28 +0,0 @@
-!
-! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-!                         University Research and Technology
-!                         Corporation.  All rights reserved.
-! Copyright (c) 2004-2005 The Regents of the University of California.
-!                         All rights reserved.
-! Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-! $COPYRIGHT$
-!
-! Sample MPI "hello world" application using the Fortran mpi module
-! bindings.
-!
-program main
-    use mpi
-    implicit none
-    integer :: ierr, rank, size, len
-    character(len=MPI_MAX_LIBRARY_VERSION_STRING) :: version
-
-    call MPI_INIT(ierr)
-    call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
-    call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
-    call MPI_GET_LIBRARY_VERSION(version, len, ierr)
-
-    write(*, '("Hello, world, I am ", i2, " of ", i2, ": ", a)') &
-          rank, size, version
-
-    call MPI_FINALIZE(ierr)
-end
diff --git a/public/it4i/src/ompi/hello_usempif08.f90 b/public/it4i/src/ompi/hello_usempif08.f90
deleted file mode 100644
index e4af17bb6aefe4e982ab3a668ff13b97ddf2247f..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/hello_usempif08.f90
+++ /dev/null
@@ -1,31 +0,0 @@
-! -*- f90 -*-
-!
-! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-!                         University Research and Technology
-!                         Corporation.  All rights reserved.
-! Copyright (c) 2004-2005 The Regents of the University of California.
-!                         All rights reserved.
-! Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
-!                         All rights reserved.
-! $COPYRIGHT$
-!
-! Sample MPI "hello world" application using the Fortran mpi_f08
-! module bindings.
-!
-program main
-    use mpi_f08
-    implicit none
-    integer :: rank, size, len
-    character(len=MPI_MAX_LIBRARY_VERSION_STRING) :: version
-
-    call MPI_INIT()
-    call MPI_COMM_RANK(MPI_COMM_WORLD, rank)
-    call MPI_COMM_SIZE(MPI_COMM_WORLD, size)
-    call MPI_GET_LIBRARY_VERSION(version, len)
-
-    write(*, '("Hello, world, I am ", i2, " of ", i2, ": ", a)') &
-          rank, size, version
-
-    call MPI_FINALIZE()
-end
diff --git a/public/it4i/src/ompi/ompi.tar.gz b/public/it4i/src/ompi/ompi.tar.gz
deleted file mode 100644
index ec348839c8a280dd3dc286c468389fd06fd10914..0000000000000000000000000000000000000000
Binary files a/public/it4i/src/ompi/ompi.tar.gz and /dev/null differ
diff --git a/public/it4i/src/ompi/oshmem_circular_shift.c b/public/it4i/src/ompi/oshmem_circular_shift.c
deleted file mode 100644
index 3ff2d6d0c87d85dfe3777c934c00fc8f85e799ae..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/oshmem_circular_shift.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2014-2016 Mellanox Technologies, Inc.
- *                         All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include <stdio.h>
-#include <shmem.h>
-
-int main (void)
-{
-    static int aaa, bbb;
-    int num_pes, my_pe, peer;
-
-    shmem_init();
-
-    num_pes = shmem_n_pes();
-    my_pe = shmem_my_pe();
-
-    peer = (my_pe + 1) % num_pes;
-
-    printf("Process %d gets message from %d (%d processes in ring)\n", my_pe, peer, num_pes);
-    shmem_int_get(&aaa, &bbb, 1, peer);
-
-    shmem_barrier_all();
-    printf("Process %d exiting\n", my_pe);
-    shmem_finalize();
-
-    return 0;
-}
-
diff --git a/public/it4i/src/ompi/oshmem_max_reduction.c b/public/it4i/src/ompi/oshmem_max_reduction.c
deleted file mode 100644
index d0dec673af2a331fe7bcd3388478a18c253b007f..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/oshmem_max_reduction.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2014-2016 Mellanox Technologies, Inc.
- *                         All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- *
- * reduce [0,1,2] + _my_pe() across 4 PEs with MAX()
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include <shmem.h>
-
-long pSync[_SHMEM_BCAST_SYNC_SIZE];
-
-#define N 3
-
-long src[N];
-long dst[N];
-long pWrk[_SHMEM_REDUCE_SYNC_SIZE];
-
-int  main(void)
-{
-    int i;
-    int my_pe, num_pes;
-
-    for (i = 0; i < SHMEM_BCAST_SYNC_SIZE; i += 1) {
-        pSync[i] = _SHMEM_SYNC_VALUE;
-    }
-
-    shmem_init();
-
-    my_pe = shmem_my_pe();
-    num_pes = shmem_n_pes();
-
-    for (i = 0; i < N; i += 1) {
-        src[i] = my_pe + i;
-    }
-
-    shmem_barrier_all();
-
-    shmem_long_max_to_all(dst, src, N, 0, 0, num_pes, pWrk, pSync);
-
-    printf("%d/%d dst =", my_pe, num_pes);
-
-    for (i = 0; i < N; i+= 1) {
-        printf(" %ld", dst[i]);
-    }
-
-    printf("\n");
-    shmem_finalize();
-
-    return 0;
-}
-
diff --git a/public/it4i/src/ompi/oshmem_shmalloc.c b/public/it4i/src/ompi/oshmem_shmalloc.c
deleted file mode 100644
index e5f9ab9090738a64623bd16e2147e3dc82fbd584..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/oshmem_shmalloc.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2014-2016 Mellanox Technologies, Inc.
- *                         All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- *
- * This sample allocates (shmalloc) symmetric memory (1 long integer),
- * and then frees it. Success of allocation is not checked.
- *
- * Produces no output.
- */
-
-#include <shmem.h>
-
-int main(void)
-{
-    long *x;
-
-    shmem_init();
-
-    x = (long *) shmem_malloc(sizeof(*x));
-
-    shmem_free(x);
-
-    shmem_finalize();
-}
-
diff --git a/public/it4i/src/ompi/oshmem_strided_puts.c b/public/it4i/src/ompi/oshmem_strided_puts.c
deleted file mode 100644
index e9f31ddb74915812db8460d3bfee4ea1d5efded2..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/oshmem_strided_puts.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2014-2016 Mellanox Technologies, Inc.
- *                         All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- *
- * This program is an adaptation of examples found in the man pages
- * of SGI’s SHMEM implementation.
- *
- * In this program, iput is used to select 5 elements from array source separated by
- * a stride of 2 and write them to array target using a stride of 1.
- *
- * Given the array source = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
- * iput will select 5 elements from array source on PE 0, using a stride of 2:
- *
- * selected elements = { 1, 3, 5, 7, 9 }
- *
- * These elements will then be written to the array source on PE 1 using a stride of 1:
- *
- * target = { 1, 3, 5, 7, 9 }
- *
- */
-
-#include <stdio.h>
-#include <shmem.h>
-
-int main(void)
-{
-    short source[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
-    static short target[10];
-    int me;
-
-    shmem_init();
-    me = shmem_my_pe();
-
-    if (me == 0) {
-        /* put 10 words into target on PE 1 */
-        shmem_short_iput(target, source, 1, 2, 5, 1);
-    }
-
-    shmem_barrier_all(); /* sync sender and receiver */
-
-    if (me == 1) {
-        printf("target on PE %d is %hd %hd %hd %hd %hd\n", me,
-        target[0], target[1], target[2],
-        target[3], target[4] );
-    }
-    shmem_barrier_all(); /* sync before exiting */
-    shmem_finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/oshmem_symmetric_data.c b/public/it4i/src/ompi/oshmem_symmetric_data.c
deleted file mode 100644
index 7c5a1db6b5344e82b6b6fed4cb3bcdc531cc6894..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/oshmem_symmetric_data.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2014-2016 Mellanox Technologies, Inc.
- *                         All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include <stdio.h>
-#include <shmem.h>
-
-#define SIZE 16
-
-int main(int argc, char* argv[])
-{
-    short source[SIZE];
-    static short target[SIZE];
-    int i;
-    int num_pe, my_pe;
-
-    shmem_init();
-
-    num_pe = shmem_n_pes();
-    my_pe = shmem_my_pe();
-
-    if (my_pe == 0) {
-        /* initialize array */
-        for(i = 0; i < SIZE; i++) {
-            source[i] = i;
-        }
-        /* local, not symmetric */
-        /* static makes it symmetric */
-        /* put "size" words into target on each PE */
-        for(i = 1; i < num_pe; i++) {
-            shmem_short_put(target, source, SIZE, i);
-        }
-    }
-
-    shmem_barrier_all(); /* sync sender and receiver */
-
-    if (my_pe != 0) {
-        printf("Target on PE %d is \t", my_pe);
-
-        for(i = 0; i < SIZE; i++) {
-            printf("%hd \t", target[i]);
-        }
-        printf("\n");
-    }
-
-    shmem_barrier_all(); /* sync before exiting */
-    shmem_finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/ring_c.c b/public/it4i/src/ompi/ring_c.c
deleted file mode 100644
index 86c205b3d21633c60607ce33f3f8c4d540ac8987..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_c.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
- *                         University Research and Technology
- *                         Corporation.  All rights reserved.
- * Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
- *
- * Simple ring test program in C.
- */
-
-#include <stdio.h>
-#include "mpi.h"
-
-int main(int argc, char *argv[])
-{
-    int rank, size, next, prev, message, tag = 201;
-
-    /* Start up MPI */
-
-    MPI_Init(&argc, &argv);
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    MPI_Comm_size(MPI_COMM_WORLD, &size);
-
-    /* Calculate the rank of the next process in the ring.  Use the
-       modulus operator so that the last process "wraps around" to
-       rank zero. */
-
-    next = (rank + 1) % size;
-    prev = (rank + size - 1) % size;
-
-    /* If we are the "master" process (i.e., MPI_COMM_WORLD rank 0),
-       put the number of times to go around the ring in the
-       message. */
-
-    if (0 == rank) {
-        message = 10;
-
-        printf("Process 0 sending %d to %d, tag %d (%d processes in ring)\n",
-               message, next, tag, size);
-        MPI_Send(&message, 1, MPI_INT, next, tag, MPI_COMM_WORLD);
-        printf("Process 0 sent to %d\n", next);
-    }
-
-    /* Pass the message around the ring.  The exit mechanism works as
-       follows: the message (a positive integer) is passed around the
-       ring.  Each time it passes rank 0, it is decremented.  When
-       each processes receives a message containing a 0 value, it
-       passes the message on to the next process and then quits.  By
-       passing the 0 message first, every process gets the 0 message
-       and can quit normally. */
-
-    while (1) {
-        MPI_Recv(&message, 1, MPI_INT, prev, tag, MPI_COMM_WORLD,
-                 MPI_STATUS_IGNORE);
-
-        if (0 == rank) {
-            --message;
-            printf("Process 0 decremented value: %d\n", message);
-        }
-
-        MPI_Send(&message, 1, MPI_INT, next, tag, MPI_COMM_WORLD);
-        if (0 == message) {
-            printf("Process %d exiting\n", rank);
-            break;
-        }
-    }
-
-    /* The last process does one extra send to process 0, which needs
-       to be received before the program can exit */
-
-    if (0 == rank) {
-        MPI_Recv(&message, 1, MPI_INT, prev, tag, MPI_COMM_WORLD,
-                 MPI_STATUS_IGNORE);
-    }
-
-    /* All done */
-
-    MPI_Finalize();
-    return 0;
-}
diff --git a/public/it4i/src/ompi/ring_cxx.cc b/public/it4i/src/ompi/ring_cxx.cc
deleted file mode 100644
index e783192431d881a28b1f9b92f012f36e2ab8c23a..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_cxx.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-//                         University Research and Technology
-//                         Corporation.  All rights reserved.
-// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
-//
-// Simple ring test program in C++.
-//
-// NOTE: The MPI C++ bindings were deprecated in MPI-2.2 and removed
-// from the standard in MPI-3.  Open MPI still provides C++ MPI
-// bindings, but they are no longer built by default (and may be
-// removed in a future version of Open MPI).  You must
-// --enable-mpi-cxx when configuring Open MPI to enable the MPI C++
-// bindings.
-//
-
-#include "mpi.h"
-#include <iostream>
-
-int main(int argc, char *argv[])
-{
-    int rank, size, next, prev, message, tag = 201;
-
-    // Start up MPI
-
-    MPI::Init();
-    rank = MPI::COMM_WORLD.Get_rank();
-    size = MPI::COMM_WORLD.Get_size();
-
-    // Calculate the rank of the next process in the ring.  Use the
-    // modulus operator so that the last process "wraps around" to
-    // rank zero.
-
-    next = (rank + 1) % size;
-    prev = (rank + size - 1) % size;
-
-    // If we are the "master" process (i.e., MPI_COMM_WORLD rank 0),
-    // put the number of times to go around the ring in the message.
-
-    if (0 == rank) {
-        message = 10;
-
-        std::cout << "Process 0 sending " << message << " to " << next
-                  << ", tag " << tag << " (" << size << " processes in ring)"
-                  << std::endl;
-        MPI::COMM_WORLD.Send(&message, 1, MPI::INT, next, tag);
-        std::cout << "Process 0 sent to " << next << std::endl;
-    }
-
-    // Pass the message around the ring.  The exit mechanism works as
-    // follows: the message (a positive integer) is passed around the
-    // ring.  Each time it passes rank 0, it is decremented.  When
-    // each processes receives a message containing a 0 value, it
-    // passes the message on to the next process and then quits.  By
-    // passing the 0 message first, every process gets the 0 message
-    // and can quit normally.
-
-    while (1) {
-        MPI::COMM_WORLD.Recv(&message, 1, MPI::INT, prev, tag);
-
-        if (0 == rank) {
-            --message;
-            std::cout << "Process 0 decremented value: " << message
-                      << std::endl;
-        }
-
-        MPI::COMM_WORLD.Send(&message, 1, MPI::INT, next, tag);
-        if (0 == message) {
-            std::cout << "Process " << rank << " exiting" << std::endl;
-            break;
-        }
-    }
-
-    // The last process does one extra send to process 0, which needs
-    // to be received before the program can exit */
-
-    if (0 == rank) {
-        MPI::COMM_WORLD.Recv(&message, 1, MPI::INT, prev, tag);
-    }
-
-    // All done
-
-    MPI::Finalize();
-    return 0;
-}
diff --git a/public/it4i/src/ompi/ring_mpifh.f b/public/it4i/src/ompi/ring_mpifh.f
deleted file mode 100644
index 64e6498fe7f0bf25dbb4705bc9bb6fca2f12faee..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_mpifh.f
+++ /dev/null
@@ -1,81 +0,0 @@
-C
-C Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-C                         University Research and Technology
-C                         Corporation.  All rights reserved.
-C Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-C $COPYRIGHT$
-C
-C Simple ring test program using the mpif.h Fortran bindings.
-C
-      program ring_f77
-      implicit none
-      include 'mpif.h'
-      integer rank, size, tag, next, from, message, ierr
-
-C     Start up MPI */
-
-      call MPI_INIT(ierr)
-      call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
-      call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
-
-C     Calculate the rank of the next process in the ring.  Use the
-C     modulus operator so that the last process "wraps around" to rank
-C     zero.
-
-      tag = 201
-      next = mod((rank + 1), size)
-      from = mod((rank + size - 1), size)
-
-C     If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put
-C     the number of times to go around the ring in the message.
-
-      if (rank .eq. 0) then
-         message = 10
-
-         write(*, '("Process 0 sending ", i2, " to ", i2, " tag ",
-     &        i3, " (", i2, " processes in ring)")')
-     &        message, next, tag, size
-         call MPI_SEND(message, 1, MPI_INTEGER, next, tag,
-     &        MPI_COMM_WORLD, ierr)
-         write(*, '("Process 0 sent to ", i2)')
-     &        next
-      endif
-
-C     Pass the message around the ring.  The exit mechanism works as
-C     follows: the message (a positive integer) is passed around the
-C     ring.  Each time it passes rank 0, it is decremented.  When each
-C     processes receives a message containing a 0 value, it passes the
-C     message on to the next process and then quits.  By passing the 0
-C     message first, every process gets the 0 message and can quit
-C     normally.
-
- 10   call MPI_RECV(message, 1, MPI_INTEGER, from, tag,
-     &     MPI_COMM_WORLD, MPI_STATUS_IGNORE, ierr)
-
-      if (rank .eq. 0) then
-         message = message - 1
-         write(*, '("Process 0 decremented value: ", i2)') message
-      endif
-
-      call MPI_SEND(message, 1, MPI_INTEGER, next, tag,
-     &     MPI_COMM_WORLD, ierr)
-
-      if (message .eq. 0) then
-         write(*, '("Process ", i2, " exiting")') rank
-         goto 20
-      endif
-      goto 10
-
-C     The last process does one extra send to process 0, which needs to
-C     be received before the program can exit
-
- 20   if (rank .eq. 0) then
-         call MPI_RECV(message, 1, MPI_INTEGER, from, tag,
-     &        MPI_COMM_WORLD, MPI_STATUS_IGNORE, ierr)
-      endif
-
-C     All done
-
-      call MPI_FINALIZE(ierr)
-      end
-
diff --git a/public/it4i/src/ompi/ring_oshmem_c.c b/public/it4i/src/ompi/ring_oshmem_c.c
deleted file mode 100644
index 5fe1c7f65dca76f060cbd4120f6ee19b8399efd6..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_oshmem_c.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2014      Mellanox Technologies, Inc.
- *                         All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include <shmem.h>
-#include <stdio.h>
-
-#if !defined(OSHMEM_SPEC_VERSION) || OSHMEM_SPEC_VERSION < 10200
-#error This application uses API 1.2 and up
-#endif
-
-int main (int argc, char * argv[])
-{
-    static int rbuf = -1;
-    int proc, nproc, next;
-    int message = 10;
-
-    shmem_init();
-    nproc = shmem_n_pes();
-    proc = shmem_my_pe();
-
-    /* Calculate the PE number of the next process in the ring.  Use the
-       modulus operator so that the last process "wraps around" to PE 0. */
-
-    next = (proc + 1) % nproc;
-
-    if(proc == 0)
-    {
-        printf("Process 0 puts message %d to %d (%d processes in ring)\n", message, next, nproc);
-        shmem_int_put(&rbuf, &message, 1, next);
-    }
-
-    /* Pass the message around the ring.  The exit mechanism works as
-       follows: the message (a positive integer) is passed around the
-       ring.  Each time it passes PE 0, it is decremented.  When each
-       processes receives a message containing a 0 value, it passes the
-       message on to the next process and then quits.  By passing the 0
-       message first, every process gets the 0 message and can quit
-       normally. */
-
-    while(message > 0) {
-        shmem_int_wait_until(&rbuf, SHMEM_CMP_EQ, message);
-        if(proc == 0) {
-            --message;
-            printf("Process 0 decremented value: %d\n", message);
-        }
-        shmem_int_put(&rbuf, &message, 1, next);
-        if(proc != 0) {
-            --message;
-        }
-    }
-    shmem_finalize();
-
-    /* All done */
-
-    printf("Process %d exiting\n", proc);
-
-    return 0;
-}
diff --git a/public/it4i/src/ompi/ring_oshmemfh.f90 b/public/it4i/src/ompi/ring_oshmemfh.f90
deleted file mode 100644
index e365bf23e17a9d2e17faa30f087b14628f2d000b..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_oshmemfh.f90
+++ /dev/null
@@ -1,66 +0,0 @@
-!
-! Copyright (c) 2014      Mellanox Technologies, Inc.
-!                         All rights reserved.
-! Copyright (c) 2014 Cisco Systems, Inc.  All rights reserved.
-! $COPYRIGHT$
-!
-! Additional copyrights may follow
-!
-! $HEADER$
-!
-
-program ring_oshmem
-    implicit none
-    include 'shmem.fh'
-
-    integer*8, save   :: rbuf
-    integer*8         :: message
-    integer           :: proc, nproc, next
-    integer           :: my_pe, num_pes
-
-    rbuf = -1
-    message = 10
-
-    call start_pes(0)
-    proc = my_pe()
-    nproc = num_pes()
-
-!   Calculate the PE number of the next process in the ring.  Use the
-!   modulus operator so that the last process "wraps around" to PE 0.
-
-    next = mod((proc + 1), nproc)
-
-    if (proc .eq. 0) then
-        write(*, '("Process 0 sending ", i2, " to", i2, " (", i2, " processes in ring)")') message, next, nproc
-        call shmem_put8(rbuf, message, 1, next)
-        write(*, '("Process 0 sent to ", i2)') next
-    end if
-
-!   Pass the message around the ring.  The exit mechanism works as
-!   follows: the message (a positive integer) is passed around the
-!   ring.  Each time it passes PE 0, it is decremented.  When each
-!   processes receives a message containing a 0 value, it passes the
-!   message on to the next process and then quits.  By passing the 0
-!   message first, every process gets the 0 message and can quit
-!   normally.
-
-    do while (message .gt. 0)
-        call shmem_int8_wait_until(rbuf, SHMEM_CMP_EQ, message)
-
-        if (proc .eq. 0) then
-            message = message - 1
-            write(*, '("Process 0 decremented value:", i2)') message
-        end if
-
-        call shmem_put8(rbuf, message, 1, next)
-
-        if (proc .gt. 0) then
-            message = message - 1
-        end if
-    end do
-
-!     All done
-
-    write(*, '("Process", i2," exiting.")') proc
-
-end program ring_oshmem
diff --git a/public/it4i/src/ompi/ring_usempi.f90 b/public/it4i/src/ompi/ring_usempi.f90
deleted file mode 100644
index 6c5b0b17bd0fcd9e05ab9e6da3688891377fed21..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_usempi.f90
+++ /dev/null
@@ -1,75 +0,0 @@
-!
-! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-!                         University Research and Technology
-!                         Corporation.  All rights reserved.
-! Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-! $COPYRIGHT$
-!
-! Simple ring test program using the Fortran mpi module bindings.
-!
-program ring
-  use mpi
-  implicit none
-  integer :: rank, size, tag, next, from, ierr, i, message
-
-! Start up MPI
-
-  call MPI_INIT(ierr)
-  call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
-  call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
-
-! Calculate the rank of the next process in the ring.  Use the modulus
-! operator so that the last process "wraps around" to rank zero.
-
-  tag = 201
-  next = mod((rank + 1), size)
-  from = mod((rank + size - 1), size)
-
-! If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put
-! the number of times to go around the ring in the message.
-
-  if (rank .eq. 0) then
-     message = 10
-
-      write(*, '("Process 0 sending ", i2, " to ", i2, " tag ", i3, " (", i2, " processes in ring)")') message, next, tag, size
-      call MPI_SEND(message, 1, MPI_INTEGER, next, tag, MPI_COMM_WORLD, ierr)
-      write(*, '("Process 0 sent to ", i2)') next
-  endif
-
-! Pass the message around the ring.  The exit mechanism works as
-! follows: the message (a positive integer) is passed around the ring.
-! Each time it passes rank 0, it is decremented.  When each processes
-! receives a message containing a 0 value, it passes the message on to
-! the next process and then quits.  By passing the 0 message first,
-! every process gets the 0 message and can quit normally.
-
-   i = 1
-10 call MPI_Recv(message, i, MPI_INTEGER, from, tag, MPI_COMM_WORLD, &
-                 MPI_STATUS_IGNORE, ierr)
-
-  if (rank .eq. 0) then
-     message = message - 1
-     write(*, '("Process 0 decremented value: ", i2)') message
-  endif
-
-  call MPI_SEND(message, 1, MPI_INTEGER, next, tag, MPI_COMM_WORLD, ierr)
-
-  if (message .eq. 0) then
-     write(*, '("Process ", i2, " exiting")') rank
-     goto 20
-  endif
-  goto 10
-
-! The last process does one extra send to process 0, which needs to be
-! received before the program can exit
-
- 20 if (rank .eq. 0) then
-     call MPI_RECV(message, 1, MPI_INTEGER, from, tag, MPI_COMM_WORLD, &
-                   MPI_STATUS_IGNORE, ierr)
-  endif
-
-! All done
-
-  call MPI_FINALIZE(ierr)
-end program
-
diff --git a/public/it4i/src/ompi/ring_usempif08.f90 b/public/it4i/src/ompi/ring_usempif08.f90
deleted file mode 100644
index 753b89531e6c4ec09e0c16952e3ce3f5aaae9be2..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/ring_usempif08.f90
+++ /dev/null
@@ -1,79 +0,0 @@
-! -*- f90 -*-
-!
-! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
-!                         University Research and Technology
-!                         Corporation.  All rights reserved.
-! Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
-! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
-!                         All rights reserved.
-! $COPYRIGHT$
-!
-! Simple ring test program using the Fortran mpi_f08 module bindings.
-!
-program ring
-  use mpi_f08
-  implicit none
-  integer :: rank, size, tag, next, from, i, message
-
-
-! Start up MPI
-
-  call MPI_INIT()
-  call MPI_COMM_RANK(MPI_COMM_WORLD, rank)
-  call MPI_COMM_SIZE(MPI_COMM_WORLD, size)
-
-! Calculate the rank of the next process in the ring.  Use the modulus
-! operator so that the last process "wraps around" to rank zero.
-
-  tag = 201
-  next = mod((rank + 1), size)
-  from = mod((rank + size - 1), size)
-
-! If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put
-! the number of times to go around the ring in the message.
-
-  if (rank .eq. 0) then
-     message = 10
-
-     write(*, '("Process 0 sending ", i2, " to ", i2, " tag ", i3, " (", i2, " processes in ring)")') message, next, tag, size
-     call MPI_SEND(message, 1, MPI_INTEGER, next, tag, MPI_COMM_WORLD)
-     write(*, '("Process 0 sent to ", i2)') next
-  endif
-
-! Pass the message around the ring.  The exit mechanism works as
-! follows: the message (a positive integer) is passed around the ring.
-! Each time it passes rank 0, it is decremented.  When each processes
-! receives a message containing a 0 value, it passes the message on to
-! the next process and then quits.  By passing the 0 message first,
-! every process gets the 0 message and can quit normally.
-
-   i = 1
-10 call MPI_Recv(message, i, MPI_INTEGER, from, tag, MPI_COMM_WORLD, &
-                 MPI_STATUS_IGNORE)
-
-  if (rank .eq. 0) then
-     message = message - 1
-     write(*, '("Process 0 decremented value: ", i2)') message
-  endif
-
-  call MPI_SEND(message, 1, MPI_INTEGER, next, tag, MPI_COMM_WORLD)
-
-  if (message .eq. 0) then
-     write(*, '("Process ", i2, " exiting")') rank
-     goto 20
-  endif
-  goto 10
-
-! The last process does one extra send to process 0, which needs to be
-! received before the program can exit
-
- 20 if (rank .eq. 0) then
-     call MPI_RECV(message, 1, MPI_INTEGER, from, tag, MPI_COMM_WORLD, &
-                   MPI_STATUS_IGNORE)
-  endif
-
-! All done
-
-  call MPI_FINALIZE()
-end program
-
diff --git a/public/it4i/src/ompi/spc_example.c b/public/it4i/src/ompi/spc_example.c
deleted file mode 100644
index 5b57589cffd4a5da6bddcb8baff3d9497c82745b..0000000000000000000000000000000000000000
--- a/public/it4i/src/ompi/spc_example.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2018      The University of Tennessee and The University
- *                         of Tennessee Research Foundation.  All rights
- *                         reserved.
- *
- * Simple example usage of SPCs through MPI_T.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "mpi.h"
-
-/* Sends 'num_messages' messages of 'message_size' bytes from rank 0 to rank 1.
- * All messages are send synchronously and with the same tag in MPI_COMM_WORLD.
- */
-void message_exchange(int num_messages, int message_size)
-{
-    int i, rank;
-    /* Use calloc to initialize data to 0's */
-    char *data = (char*)calloc(message_size, sizeof(char));
-    MPI_Status status;
-
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-
-    if(rank == 0) {
-        for(i = 0; i < num_messages; i++)
-            MPI_Send(data, message_size, MPI_BYTE, 1, 123, MPI_COMM_WORLD);
-    } else if(rank == 1) {
-        for(i = 0; i < num_messages; i++)
-            MPI_Recv(data, message_size, MPI_BYTE, 0, 123, MPI_COMM_WORLD, &status);
-    }
-
-    free(data);
-}
-
-int main(int argc, char **argv)
-{
-    int num_messages, message_size;
-
-    if(argc < 3) {
-        printf("Usage: mpirun -np 2 --mca mpi_spc_attach all --mca mpi_spc_dump_enabled true ./spc_example [num_messages] [message_size]\n");
-        return -1;
-    } else {
-        num_messages = atoi(argv[1]);
-        message_size = atoi(argv[2]);
-    }
-
-    int i, rank, size, provided, num, name_len, desc_len, verbosity, bind, var_class, readonly, continuous, atomic, count, index;
-    MPI_Datatype datatype;
-    MPI_T_enum enumtype;
-    MPI_Comm comm;
-    char name[256], description[256];
-
-    /* Counter names to be read by ranks 0 and 1 */
-    char *counter_names[] = {"runtime_spc_OMPI_BYTES_SENT_USER",
-                             "runtime_spc_OMPI_BYTES_RECEIVED_USER" };
-
-    MPI_Init(NULL, NULL);
-    MPI_T_init_thread(MPI_THREAD_SINGLE, &provided);
-
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    MPI_Comm_size(MPI_COMM_WORLD, &size);
-    if(size != 2) {
-        fprintf(stderr, "ERROR: This test should be run with two MPI processes.\n");
-        MPI_Abort(MPI_COMM_WORLD, -1);
-    }
-
-    /* Determine the MPI_T pvar indices for the OMPI_BYTES_SENT/RECIEVED_USER SPCs */
-    index = -1;
-    MPI_T_pvar_get_num(&num);
-    for(i = 0; i < num; i++) {
-        name_len = desc_len = 256;
-        PMPI_T_pvar_get_info(i, name, &name_len, &verbosity,
-                             &var_class, &datatype, &enumtype, description, &desc_len, &bind,
-                             &readonly, &continuous, &atomic);
-        if(strcmp(name, counter_names[rank]) == 0) {
-            index = i;
-            printf("[%d] %s -> %s\n", rank, name, description);
-        }
-    }
-
-    /* Make sure we found the counters */
-    if(index == -1) {
-        fprintf(stderr, "ERROR: Couldn't find the appropriate SPC counter in the MPI_T pvars.\n");
-        MPI_Abort(MPI_COMM_WORLD, -1);
-    }
-
-    int ret;
-    long long value;
-
-    MPI_T_pvar_session session;
-    MPI_T_pvar_handle handle;
-    /* Create the MPI_T sessions/handles for the counters and start the counters */
-    ret = MPI_T_pvar_session_create(&session);
-    ret = MPI_T_pvar_handle_alloc(session, index, NULL, &handle, &count);
-    ret = MPI_T_pvar_start(session, handle);
-
-    message_exchange(num_messages, message_size);
-
-    ret = MPI_T_pvar_read(session, handle, &value);
-    /* Print the counter values in order by rank */
-    for(i = 0; i < 2; i++) {
-        if(i == rank) {
-            printf("[%d] Value Read: %lld\n", rank, value);
-            fflush(stdout);
-        }
-        MPI_Barrier(MPI_COMM_WORLD);
-    }
-    /* Stop the MPI_T session, free the handle, and then free the session */
-    ret = MPI_T_pvar_stop(session, handle);
-    ret = MPI_T_pvar_handle_free(session, &handle);
-    ret = MPI_T_pvar_session_free(&session);
-
-    MPI_T_finalize();
-    MPI_Finalize();
-
-    return 0;
-}
diff --git a/public/it4i/src/qnn_example.txt b/public/it4i/src/qnn_example.txt
deleted file mode 100644
index 9ffee3e37194e06d55b639398cbfc9aa9603252a..0000000000000000000000000000000000000000
--- a/public/it4i/src/qnn_example.txt
+++ /dev/null
@@ -1,269 +0,0 @@
-#!/usr/bin/env python
-
-
-import numpy as np
-import matplotlib.pyplot as plt
-
-import torch
-from torch.autograd import Function
-from torchvision import datasets, transforms
-import torch.optim as optim
-import torch.nn as nn
-import torch.nn.functional as F
-
-import cudaq
-from cudaq import spin
-
-
-
-
-# GPU utilities
-for tar in cudaq.get_targets():
-    print(f'{tar.description} {tar.name} {tar.platform} {tar.simulator} {tar.num_qpus}')
-cudaq.set_target("default")  # Set CUDAQ to run on GPU's
-torch.cuda.is_available(
-)  # If this is True then the NVIDIA drivers are correctly installed
-
-torch.cuda.device_count()  # Counts the number of GPU's available
-
-torch.cuda.current_device()
-
-torch.cuda.get_device_name(0)
-
-device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
-
-
-
-
-# Training set
-sample_count = 140
-
-X_train = datasets.FashionMNIST(
-    root="./data",
-    train=True,
-    download=True,
-    transform=transforms.Compose([transforms.ToTensor()]),
-)
-
-# Leaving only labels 0 and 1
-idx = np.append(
-    np.where(X_train.targets == 0)[0][:sample_count],
-    np.where(X_train.targets == 1)[0][:sample_count],
-)
-X_train.data = X_train.data[idx]
-X_train.targets = X_train.targets[idx]
-train_loader = torch.utils.data.DataLoader(X_train, batch_size=1, shuffle=True)
-
-# Test set
-sample_count = 70
-
-X_test = datasets.FashionMNIST(
-    root="./data",
-    train=False,
-    download=True,
-    transform=transforms.Compose([transforms.ToTensor()]),
-)
-idx = np.append(
-    np.where(X_test.targets == 0)[0][:sample_count],
-    np.where(X_test.targets == 1)[0][:sample_count],
-)
-
-X_test.data = X_test.data[idx]
-X_test.targets = X_test.targets[idx]
-
-test_loader = torch.utils.data.DataLoader(X_test, batch_size=1, shuffle=True)
-
-
-class QuantumCircuit:
-    """This class defines the quantum circuit structure and the run method which is used to calculate an expectation value"""
-
-    def __init__(self, qubit_count: int):
-        """Define the quantum circuit in CUDA Quantum"""
-
-        kernel, thetas = cudaq.make_kernel(list)
-
-        self.kernel = kernel
-
-        self.theta = thetas
-
-        qubits = kernel.qalloc(qubit_count)
-
-        self.kernel.h(qubits)
-
-        # Variational gate parameters which are optimised during training
-        kernel.ry(thetas[0], qubits[0])
-        kernel.rx(thetas[1], qubits[0])
-
-    def run(self, thetas: torch.tensor) -> torch.tensor:
-        """Excetute the quantum circuit to output an expectation value"""
-
-        expectation = torch.tensor(cudaq.observe(self.kernel, spin.z(0),
-                                                 thetas).expectation_z(),
-                                   device=device)
-
-        return expectation
-
-
-
-
-class QuantumFunction(Function):
-    """Allows the quantum circuit to pass data through it and compute the gradients"""
-
-    @staticmethod
-    def forward(ctx, thetas: torch.tensor, quantum_circuit,
-                shift) -> torch.tensor:
-        # Save shift and quantum_circuit in context to use in backward
-        ctx.shift = shift
-        ctx.quantum_circuit = quantum_circuit
-
-        # Calculate exp_val
-        expectation_z = ctx.quantum_circuit.run(thetas)
-
-        ctx.save_for_backward(thetas, expectation_z)
-
-        return expectation_z
-
-    @staticmethod
-    def backward(ctx, grad_output):
-        """Backward pass computation via finite difference parameter shift"""
-
-        thetas, expectation_z = ctx.saved_tensors
-
-        gradients = torch.zeros(len(thetas), device=device)
-
-        for i in range(len(thetas)):
-            shift_right = torch.clone(thetas)
-
-            shift_right[i] += ctx.shift
-
-            shift_left = torch.clone(thetas)
-
-            shift_left[i] -= ctx.shift
-
-            expectation_right = ctx.quantum_circuit.run(shift_right)
-            expectation_left = ctx.quantum_circuit.run(shift_left)
-
-            gradients[i] = 0.5 * (expectation_right - expectation_left)
-
-        return gradients * grad_output.float(), None, None
-
-
-
-class QuantumLayer(nn.Module):
-    """Encapsulates a quantum circuit and a quantum function into a quantum layer"""
-
-    def __init__(self, shift: torch.tensor):
-        super(QuantumLayer, self).__init__()
-        self.quantum_circuit = QuantumCircuit(1)  # 1 qubit quantum circuit
-        self.shift = shift
-
-    def forward(self, input):
-        ans = QuantumFunction.apply(input, self.quantum_circuit, self.shift)
-
-        return ans
-
-
-
-class Net(nn.Module):
-
-    def __init__(self):
-        super(Net, self).__init__()
-
-        # Neural network structure
-        self.conv1 = nn.Conv2d(1, 6, kernel_size=5)
-        self.conv2 = nn.Conv2d(6, 16, kernel_size=5)
-        self.dropout = nn.Dropout2d()
-        self.fc1 = nn.Linear(256, 64)
-        self.fc2 = nn.Linear(
-            64, 2
-        )  # Output a 2D tensor since we have 2 variational parameters in our quantum circuit
-        self.hybrid = QuantumLayer(
-            torch.tensor(np.pi / 2)
-        )  # Input is the magnitude of the parameter shifts to calculate gradients
-
-    def forward(self, x):
-        x = F.relu(self.conv1(x))
-        x = F.max_pool2d(x, 2)
-        x = F.relu(self.conv2(x))
-        x = F.max_pool2d(x, 2)
-        x = self.dropout(x)
-        x = x.view(1, -1)
-        x = F.relu(self.fc1(x))
-        x = self.fc2(x).reshape(
-            -1)  # Reshapes required to satisfy input dimensions to CUDAQ
-        x = self.hybrid(x).reshape(-1)
-
-        return torch.cat((x, 1 - x), -1).unsqueeze(0)
-
-
-
-
-# We move our model to the CUDA device to minimise data transfer between GPU and CPU
-
-model = Net().to(device)
-print(model)
-optimizer = optim.Adam(model.parameters(), lr=0.001)
-
-loss_func = nn.NLLLoss().to(device)
-
-epochs = 20
-
-epoch_loss = []
-
-model.train()
-for epoch in range(epochs):
-    batch_loss = 0.0
-    for batch_idx, (data, target) in enumerate(train_loader):  # batch training
-        optimizer.zero_grad()
-
-        data, target = data.to(device), target.to(device)
-
-        # Forward pass
-        output = model(data).to(device)
-        # Calculating loss
-        loss = loss_func(output, target).to(device)
-
-        # Backward pass
-        loss.backward()
-
-        # Optimize the weights
-        optimizer.step()
-
-        batch_loss += loss.item()
-
-    epoch_loss.append(batch_loss / batch_idx)
-
-    print("Training [{:.0f}%]\tLoss: {:.4f}".format(
-        100.0 * (epoch + 1) / epochs, epoch_loss[-1]))
-
-
-
-
-plt.plot(epoch_loss)
-plt.title("Hybrid NN Training Convergence")
-plt.xlabel("Training Iterations")
-
-plt.ylabel("Neg Log Likelihood Loss")
-
-
-
-
-# Testing on the test set
-
-model.eval()
-with torch.no_grad():
-    correct = 0
-    for batch_idx, (data, target) in enumerate(test_loader):
-        data, target = data.to(device), target.to(device)
-
-        output = model(data).to(device)
-
-        pred = output.argmax(dim=1, keepdim=True)
-        correct += pred.eq(target.view_as(pred)).sum().item()
-
-        loss = loss_func(output, target)
-        epoch_loss.append(loss.item())
-
-    print("Performance on test data:\n\tAccuracy: {:.1f}%".format(
-        correct / len(test_loader) * 100))
-
diff --git a/public/it4i/src/srun_karolina.pdf b/public/it4i/src/srun_karolina.pdf
deleted file mode 100644
index ba7adcc86ae1a4b87b865652c4ebe390597ac767..0000000000000000000000000000000000000000
Binary files a/public/it4i/src/srun_karolina.pdf and /dev/null differ
diff --git a/public/it4i/storage/.gitkeep b/public/it4i/storage/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/public/it4i/storage/img/file-storage-block4.png b/public/it4i/storage/img/file-storage-block4.png
deleted file mode 100644
index d9d6b420a13e10460fa90067d5f7538558334be3..0000000000000000000000000000000000000000
Binary files a/public/it4i/storage/img/file-storage-block4.png and /dev/null differ
diff --git a/public/it4i/storage/img/project-storage-overview2.png b/public/it4i/storage/img/project-storage-overview2.png
deleted file mode 100644
index 1d249379e1983672ed45c8021e088a7ef82d54b3..0000000000000000000000000000000000000000
Binary files a/public/it4i/storage/img/project-storage-overview2.png and /dev/null differ
diff --git a/public/it4i/storage/img/project-storage-overview3.png b/public/it4i/storage/img/project-storage-overview3.png
deleted file mode 100644
index bf824318e994615d78c52a2a097131958edcaf44..0000000000000000000000000000000000000000
Binary files a/public/it4i/storage/img/project-storage-overview3.png and /dev/null differ