first english translation

This commit is contained in:
Claudio Maradonna 2022-09-09 18:11:19 +02:00
parent 04103c51a7
commit b09ed8a310
Signed by untrusted user who does not match committer: claudiomaradonna
GPG key ID: 0CBA58694C5680D9
391 changed files with 59419 additions and 983 deletions

View file

@ -26,8 +26,8 @@ collections:
output: true
permalink: /:path/
languages: ["it"]
exclude_from_localizations: ["javascript", "images", "css"]
languages: ["it", "en"]
exclude_from_localizations: ["javascript", "images", "css", "tag", "assets", "fonts"]
fediverse_url: "https://social.unitoo.it/admin"

View file

@ -1,2 +1,590 @@
---
meta:
titles:
index: "Home"
aboutus: "About us"
software_technologies: "Software technologies"
projects: "Projects"
software: "Projects - The software"
services_and_products: "Services and products"
technical_assistance: "IT assistance and consulting"
cybersecurity: "Cybersecurity"
communications: "Communications"
radio: "Our CC and open source radio"
channel: "Our channel"
contacts: "Contacts"
funkwhale: "Partners - Funkwhale Italia"
libreboot: "Libreboot - The free as in freedom BIOS"
peertube: "Partners - Peertube Italia"
news: "News"
privacy_policy: "Privacy policy"
blackhole: "Blackhole"
sonde: "Module Sonde"
defence: "Module Defence"
rover: "Module Rover"
monitoring: "Module Monitoring"
referral: "Referral"
graphene: "Module Grafene"
tags:
bot: "#bot"
products: "#products"
periodica: "#periodica"
policy: "#policy"
cybersecurity: "#cybersecurity"
communications: "#communications"
chat: "#chat"
practices: "#practices"
software: "#software"
video: "#video"
radio: "#radio"
foss: "#foss"
aboutus: "#aboutus"
grafana: "#grafana"
server: "#server"
rss: "#rss"
unitoo: "#unitoo"
privacy: "#privacy"
program: "#program"
gnupg: "#gnupg"
servizi: "#servizi"
libreboot: "#libreboot"
dnsserver: "#dnsserver"
company: "#company"
care: "#care"
azuracast: "#azuracast"
freesoftware: "#freesoftware"
messaging: "#messaging"
peertube: "#peertube"
development: "#development"
prodotti: "#prodotti"
creativecommons: "#creativecommons"
informatica: "#informatica"
condivisione: "#condivisione"
feed: "#feed"
email: "#email"
pihole: "#pihole"
nextcloud: "#nextcloud"
rights: "#rights"
defence: "#defence"
chisiamo: "#chisiamo"
prometheus: "#prometheus"
referral: "#referral"
consulenza: "#consulenza"
bios: "#bios"
element: "#element"
contacts: "#contacts"
sonda: "#sonda"
blackhole: "#blackhole"
podcast: "#podcast"
team: "#team"
technical: "#technical"
rover: "#rover"
hardening: "#hardening"
sonde: "#sonde"
music: "#music"
progetti: "#progetti"
patch: "#patch"
calendar: "#calendar"
services: "#services"
bot: "#bot"
best: "#best"
customer: "#customer"
funkwhale: "#funkwhale"
projects: "#projects"
adblock: "#adblock"
interviste: "#interviste"
freebios: "#freebios"
dns: "#dns"
cloud: "#cloud"
assistance: "#assistance"
riunioni: "#riunioni"
sicurezza: "#sicurezza"
partners: "#partners"
mattermost: "#mattermost"
coreboot: "#coreboot"
news: "#news"
matrix: "#matrix"
comunicazioni: "#comunicazioni"
freedom: "#freedom"
telegram: "#telegram"
nodrm: "#nodrm"
filestorage: "#filestorage"
monitoring: "#monitoring"
technicaladvice: "#technicaladvice"
module: "#module"
contatti: "#contatti"
grapheneos: "#grapheneos"
descriptions:
index: "We develop software and do IT consultancy. Ethics, concreteness and cutting edge technology distinguish us."
aboutus: "About us, our core values and mission."
projects: "Our projects, to make everyone participate in our mission."
software: "The projects we are mainly supporting in the field of free as in freedom software. Starting with free as in freedom BIOS ending with DRM removal."
services_and_products: "The services and products that we mainly offer, always and exclusively using free as in freedom software."
radio: "The Italian radio to know and spread free as in freedom software."
channel: "A Peertube channel dedicated to free as in freedom software, interviews and other digital content"
contacts: "All our contacts for a proper and safe communication."
funkwhale: "A free as in freedom platform, which we support, for the spread of music content"
libreboot: "Free as in freedom software and the importance of a free as in freedom BIOS. All in one breath."
peertube: "A free as in freedom platform, which we support, for the spread of video content"
news: "The news we like about free as in freedom software and software development in general"
privacy_policy: "Our privacy policy according to European Regulation 2016/679"
communications: "Our software solutions for efficient and ethical team communication."
blackhole: "Our hardware and software solution to block trackers, malware, ransomware, spam, scams and so on and so forth."
sonde: "A simple but effective analysis that allows you to discover the most common vulnerabilities, commonly known as Vulnerability Assessment"
defence: "The solutions built to protect your infrastructures and your servers."
rover: "A detailed and meticulous analysis, carried out one-by-one to obtain the greatest amount of information."
monitoring: "Software solutions for monitoring your servers"
referral: "Find out how to become a Guardian of the User Space"
cybersecurity: "Vulnerability Assessment and procedures for containing IT risk"
technical_assistance: "Solutions for IT consultancy and assistance, also in the cyber security field"
graphene: "Configuring and installing the GrapheneOS operating system"
tags:
bot: "Pages related to the tag #bot"
alt:
header_radio: "Screenshot of the Unitoo radio based on Azuracast software"
gplv3_logo: "Official logo license GPLv3"
mastodon_logo: "Official logo of Mastodon, a decentralized microblogging social network"
stefano_amandonico: "Portrait photo of Stefano Amandonico, founder of grafixprint.it"
logo_extended_dark: "Unitoo official logo"
libreboot_logo: "Official logo of Libreboot, free in freedom BIOS derived from Coreboot"
header_peertube: "Screenshot of the Unitoo Peertube channel"
sydro: "Portrait photo of Angelo \"Sydro\""
liberapay_logo: "Liberapay official logo"
yamabiiko: "Portrait photo of Lorenzo Tucci"
cmaradonna: "Portrait photo of Claudio Maradonna"
frenky: "Portrait photo of Simone Capparucci"
fabio_purple: "Portrait photo of Fabio \"Desmovalvo\""
sara: "Portrait photo of Sara Freddoni"
starfighter_example: "Illustration of a space defense spacecraft"
cruiser_example: "Illustration of a spacecraft for the most advanced space defense"
stardestroyer_example: "Illustration of a very advanced and performing space defense spacecraft"
technical_assistance_example: "Illustration of a particular spacecraft that serves as a probe and search system"
cybersecurity_example: "Illustration of a rover for checking the defense perimeter"
communications_example: "Illustration of a space probe"
blackhole_example: "Photo of a Raspberry Pi Zero 2 W"
buttons:
go_to_radio: "Go to the Radio"
contactsus: "Contact us"
about_us: "About us"
more_about_us: "Come and find out more about us"
services_and_products: "Services and Products"
projects: "Projects"
know_us_on_fediverse: "Here is our profile!"
know_more: "Find out more"
go_to_channel: "Go to the channel"
discover_our_services: "Discover the services"
go_to_cybersecurity: "Check out our defense systems"
go_to_communications: "Improve your communications"
go_to_blackhole: "Contact us to find out more!"
become_a_guardian_of_user_space: "Join us and discover the benefits of being a Guardian of the User Space!"
technical_assistance: "IT consultancy"
cybersecurity: "Cybersecurity"
communications: "Communications"
go_to_telegram_bot: "Got to the Telegram Bot"
privacy_policy: "Privacy policy"
titles:
go_to_radio: "radio.unitoo.it, the link will open in a separate tab. You will be able to listen to music and podcasts released under Creative Commons licenses"
know_us_on_fediverse: "The profile is public, you will need a federated account to participate in conversations"
go_to_telegram_bot: "The channel publishes news from the sources as soon as possible. Content is available in English and Italian"
inputs:
search: "Do you want to look for something?"
no_results: "No result"
index:
header_title: "Software development without compromises"
header_title: "{ Hack. Evolve. Repeat. }"
header_title_mobile: "{ Hack.<br>Evolve.<br>Repeat. }"
header_lead: "Software solutions, IT security and uncompromising IT consultancy"
aside_radio: "Are you looking for our radio dedicated to software and Creative Commons music?"
products_title: "Services and products"
products:
introduction: "The Cyber Space Mission"
introduction_description: "As in a science fiction film, we have created a set of <strong> optimized solutions and procedures </strong> designed to form a <strong> safe and reliable working environment </strong>.<br><br>Our goal aims also to increase the awareness of our customers about the dangers of the IT world and the methods used in IT security.<br><br>For this reason we have structured a <strong>simple path</strong> in which the customer can expose his IT situation, giving us the opportunity to apply our method.<br><br><h3>How can I know and improve my IT situation?</h3><ol><li><strong>Contact us to get a free appointment and non-binding</strong> with our technicians, also available via web call (you need just a browser)</li><li>Make yourself <strong>available</strong> in this appointment <strong>to answer some questions</strong> (we will compile a checklist for you, lasting about 25/35 minutes), maybe involving also your trusted technician </li><li>We will then develop a personalized <strong>resolutive estimate</strong> starting from the problems that emerged from the inspection, divided into risk factors (from the most critical to the less serious) or keeping in mind your requests and/or needs.</li></ol><br><strong>You will be free to choose the path, and therefore the Modules, which you consider most useful and functional for your Business.</strong>"
technical_assistance: "IT Consultancy"
technical_assistance_text: "
The provision of our IT consulting service is available in two solutions: <strong>the Intelligence Module</strong>, the most extensive and flexible solution that allows you to obtain solutions aimed at various requests; <strong>the Vita Module</strong> instead is designed to improve and optimize your office and specifically the workstations.<br><br>It is possible to schedule periodic and maintenance appointments, obtain support for problems involving the use of the computer and in the configuration of various services and servers as well as being able to know our opinion in the face of certain technical choices."
cybersecurity: "Cybersecurity"
cybersecurity_text: "
In computer science, hardening is the process of securing a system that reduces its vulnerable surfaces.<br><br>Reducing the available attack modes typically includes changing default passwords, adding systems of two-factor authentication, the removal of software and/or services, usernames or unnecessary logins ...<br><br>For us, security is a process, which also passes through the training of the individual, and not a simple product."
communications: "Communications"
communications_text: "
The use of simple and efficient communication systems is a priority today to increase the productivity of every type of business, to simplify operations and increase the engagement of one's workforce. Being able to make communication systems available even on the move is an even more urgent need in the current scenario of digital business, increasingly characterized by smart working and social collaboration."
blackhole: "Black hole"
blackhole_text: "Black Hole is a hardware system for blocking trackers, malware, ransomware, porn, spam, scam, cryptomining, fraud, fake-news, gambling, adware and advertising, through a server application that acts as a DNS sinkhole and optionally with server DHCP.<br><br>Intended for use on a private network (Intranet), it is designed with low-power devices with high network capacity, such as the Raspberry Pi.<br><br>Black Hole has the capacity therefore to block traditional website advertisements and cyber threats on any device connected to the network on which it is installed."
aboutus:
header_title: "Passionate, professional and assertive"
header_lead: "We want to go beyond the allure of technological progress, we want people to be able to turn it into emotions and make it their own. This is why we give great priority to free, ethical products and training.<br><br> Our commitment is aimed at improving and strengthening the software and IT security landscape through the training and growth of the individual; this makes us feel part of progress in the strictest sense.<br><br><i> «You give a man a fish and you feed him for a day. Teach him to fish and you will feed him for life.»</i>"
aside_social: "Come and visit us in the Fediverse! You will also know a nice community!"
vision_and_staff_title: "Who we are and what we believe in"
vision_and_staff_text: "We want to start with a quote from Eleanor Roosevelt: <br><i>\"The future belongs to those who believe in the beauty of their dreams\"</i><br><br>We believe we can see a day when each of us will be an integral part of civilization not only as a resource, but as a man.<br>This is why we are constantly engaged in the world of free software at various levels, we train children in this sense and we make the communities participate in our results."
staff_title: "Here is the staff"
technical_assistance:
header_title: "IT consultancy"
header_lead: "IT consultancy, suggestions in the configuration of systems and servers, ethical advice on the use of software, improvement of internal procedures, staff training; some of the examples that fully represent what we mean by Intelligence Module and Life Module."
intelligence_title: "Module Intelligence"
intelligence_text: "
The Intelligence Module allows the customer to access the know-how in our possession and therefore to obtain solutions and suggestions aimed at their needs, such as software or tools to optimize their work environments, but not only.<br><br>The main areas of expertise of our company are:
<ul>
<li>GNU/Linux systems</li>
<li>Network configurations (VPN included)</li>
<li>Solutions for the office</li>
<li>IT Security (kernel hardening, firewall ...)</li>
<li>Various software and programming languages</li>
</ul>
The module can be purchased in three different solutions: <strong>monthly, quarterly and yearly </strong>.
"
life_title: "Module Life"
life_text: "
From a purely technical point of view, re-optimization consists in the application of particular measures that allow to solve one or more problems.<br><br>Modulo Life therefore offers a solution suitable for optimizing the various workstations and terminals present in the structure.<br><br>The basic price of the module varies according to the type and state of obsolescence of the stations taken into consideration as well as their number.<br>"
cybersecurity:
header_title: "Cybersecurity"
header_lead: "
By definition in the IT field it is clear that security is determined by three main factors: <br><br>
<strong> Confidentiality </strong> - Access to sensitive resources and data is allowed only to authorized users <br><br>
<strong> Integrity </strong> - System data is protected from loss or modification due to attack or accident <br><br>
<strong> Availability </strong> - Availability means the ability to access a data or resource at any time."
p_text: "In computer science, hardening is the process of securing a system that reduces its vulnerable surfaces.<br><br>Reducing the available attack modes typically includes changing default passwords, adding systems two-factor authentication, the removal of software and/or services, usernames or unnecessary logins.<br><br>There are various methods to harden GNU/Linux based systems. This can involve, among other measures, patching the kernel, closing open network ports, adding intrusion detection systems, firewalls, and intrusion prevention systems.<br><br>There are also scripts and hardening tools such as Lynis, which can, for example, analyze a system thoroughly and allow you to disable unsolicited functionality in configuration files or perform various other security measures."
modules_title: "I nostri moduli"
sonde_title: "Module Probe"
sonde_text: "The Probe Module carries out an automated analysis of the work environment by releasing a report of the vulnerabilities and possible optimizations to be carried out based on the criticalities detected."
sonde_button: "Take control with the Probe Module"
rover_title: "Module Rover"
rover_text: "The Rover Module offers a detailed and specific analysis of all the problems and vulnerabilities of one or more structures to be analyzed, the procedure is not automated and has a higher cost than the Probe Module."
rover_button: "Climb into our Rover for a detailed exploration"
defence_title: "Module Defence"
defence_text: "The defense modules are the procedures put in place to increase the safety of the environment previously analyzed through the Probe and/or Rover modules."
defence_button: "Request the help of our fleet"
monitoring_title: "Module Monitoring"
monitoring_text: "The monitoring module retrieves any type of data from company services and allows you to view it directly in Grafana. This means you can make the most of your complex and expensive business infrastructures by viewing all data in a simple, effective and personalized way. You can also configure custom notifications that will be redirected to your favorite communication channel."
monitoring_button: "Find out how to monitor your infrastructure"
graphene_title: "Module Grafene"
graphene_text: "The Graphene Module provides the configuration and installation of the GrapheneOS operating system on a supported device.<br>This system is designed for individuals seeking a high degree of security and confidential data processing on their mobile device."
graphene_button: "Find out more about the benefits of GrapheneOS"
sonde:
title: "Module Probe"
description: "Technically defined as <strong> \"Vulnerability Assessment\"</strong>, it is designed for offices and allows you to <strong>bring to light the most common and insidious vulnerabilities</strong>, also recognized in the most important vulnerability databases. The Probe Module is <strong>necessary to formulate a defense plan</strong> to support the customer, through the use of the Defense and Intelligence Modules.<br><br>The Probe Module also allows us to process, <strong> an easily interpretable report</strong>, of the vulnerabilities detected and the possible optimizations that can be carried out in the system analyzed and the possible problems in the case of missing response.<br><br> This module can also be used to analyze small servers and network infrastructures, thus taking into consideration even the most customized configurations.<br><br>The objective of the Probe Module is to make the customer aware of their IT situation, avoiding that it can turn into an unpleasant and difficult reality repairable.<br><br><h3>What should you do?</h3><br><strong>Contact us</strong>, this is the first fundamental step to start a journey towards greater security. Scroll for additional information."
rover:
title: "Module Rover"
description: "The Rover Module <strong>searches for vulnerabilities going further</strong>, arriving at a detailed assessment of every single service and criticality present in the system to be analyzed.<br>Using the one-by-one manual control,<strong> our technicians will use every available tool </strong> to elaborate a report and an action plan consistent with the criticalities detected.<br><br>By combining the Rover Module with the Defense Modules, customized, safe solutions can be obtained and efficient that allow to solve and/or mitigate the problem at the root.<br><br><strong> This Module is designed for more structured companies, which want to combine the concept of Information Security with their Business.</strong><br><br><h3>What should you do?</h3><br><strong>Contact us </strong>, this is the first fundamental step to start a journey towards greater security. Scroll for additional information."
defence:
title: "Modulo Defence"
description: "Below are our solutions built to protect your infrastructures and servers. These solutions offer configurations designed to embrace multiple levels of protection, which in some situations must rightly be high, such as when dealing with sensitive data or when it is necessary to ensure maximum control of the system.<br><br>Our technicians and consultants will show you the solution that best suits your needs."
starfighter: "Starfighter"
starfighter_text: "The Starfighter type solution includes, starting from the identification of the assets to be protected, the assessment of possible threats in terms of probability of occurrence and relative potential damage (severity). At this point, certain \"best practices\" procedures are applied to offer the customer an effective solution and at the same time able to provide protection from most of the threats present on the network; in this regard, firewalls will be configured and basic protection protocols applied. In addition, the systems will be equipped with automatic security updates with a predetermined frequency. However, this defense system is not very suitable in situations where there are several services or personalized services and in the case in which sensitive and biometric data are dealt with.<br><br><strong>This module requires in advance that an analysis be carried out through the Probe Module.</strong>"
cruiser: "Cruiser"
cruiser_text: "The Cruiser-type defense system offers a higher level of security and optimization than the Starfighter solution, the Server Hardening level of procedures also affects user permissions and kernel configuration, in addition to protection systems and security of critical and specific services through a firewall configuration. This module also allows you to encrypt and verify the authenticity of connections by setting up a system of encrypted connections through WireGuard, an open source program that allows you to create secure point-to-point connections in routed or bridged configuration. In addition, the systems will be equipped with automatic security updates on a periodic basis. The procedure allows you to offer your services in total security even where sensitive and biometric data are present.<br><br><strong>This module requires in advance that an analysis be carried out using the Rover module.</strong>"
stardestroyer: "Star Destroyer"
stardestroyer_text: "The Star Destroyer defense system adds an additional layer of security thus offering an optimized configuration of the server boot, a hardening of the partitions, a further customization of permissions and the total removal of any unused and obsolete protocols, services and applications in the operating system. In addition, the Star Destroyer module implements a technology for the synchronization and verification of certificates as well as a system of point-to-point encrypted connections (WireGuard). Threats and possible attack methodologies to which services and resources are exposed are evaluated. It also allows you to detect any system intrusions through IDS systems (Intrusion Detection System) in real time. This procedure allows to reach an advanced and personalized level of security, therefore inhospitable for possible cyber attacks. The Star Destroyer Module uses a customized automatic security update system configured ad hoc to optimize the environment in which it is applied.<br><br><strong>This Module requires in advance that an analysis be carried out through the Rover Module.</strong>"
monitoring:
title: "Module Monitoring"
description: "Using software such as Grafana and Prometheus, we are able to aggregate data from different sources and allow a personalized and effective display. In addition, these software allow you to configure advanced notification systems (such as sending alerts to software such as Mattermost), useful for knowing, for example, if there are situations of intense load on the CPU or on the server's data traffic.<br><br>Monitoring a specific service, the server or being able to observe a dataset, has never been so simple and clean."
graphene:
title: "Module Grafene"
description: "
GrapheneOS is an operating system that offers a wide range of functions dedicated to security. It is the result of the research and development of technologies aimed at improving the control of your data (regarding privacy) and increasing security, including substantial improvements to sandboxing (memory and application isolation), exploit mitigation and the authorization model.<br><br> Implements technologies to mitigate entire classes of cyber attacks and make exploitation of the most common vulnerabilities significantly more difficult.<br> Here are some of the main features and improvements to evaluate GrapheneOS against a common Android or iOS device: <ul>
<li> Webview and Browser hardened (Bromite / Vanadium) </li>
<li> Device verified boot and Hardware-Based integrity checks with Auditor </li>
<li> Kernel and Memory Allocator Hardened </li>
<li> Improved system encryption </li>
<li> Separation of data and apps on different profiles </li>
</ul>
Here is a more exhaustive list of the functions and protections applied to the system: <a href='https://grapheneos.org/features' rel='nofollow' target='_blank'><i class='fa-link-ext'> https://grapheneos.org/features</i></a>.<br><br>
The list of supported devices is available at this address: <a href='https://grapheneos.org/faq#device-support' rel='nofollow' target='_blank'><i class='fa-link-ext '> https://grapheneos.org/faq#device-support</i></a>; moreover, up to 5 years of update and security support are guaranteed (from the release date of the device).<br><br>
<h3>To whom do we recommend this module?</h3>
We recommend this module to all those who process sensitive data or who need a high degree of security and confidentiality, we can take as an example: lawyers, journalists, judges, doctors, private investigators, law enforcement, entrepreneurs, bank officials etc...
"
communications:
header_title: "Communications"
header_lead: "The use of simple and efficient communication systems is a priority today to increase the productivity of every type of business, to simplify operations and increase the engagement of one's workforce. Being able to make communication systems available even on the move is an even more urgent need in the current scenario of digital business, increasingly characterized by smart working and social collaboration."
mattermost:
title: "Mattermost"
lead: "Mattermost allows you to connect people and tools and automate collaboration between them, for example by creating a notification system in real time for a given project. Mattermost is the ideal product for teams that need to collaborate in the design and development of a product or service.<br> Configurable for both internal and external use (therefore through a public domain), it is the best alternative to Slack.<br><br>The product also has a paid license type (directly billed by Mattermost), which allows you to access Premium features. Furthermore, Mattermost is fully extensible through third party and/or internally developed plugins."
matrix:
title: "Matrix"
lead: "Matrix is an open source project that uses a free, secure (end-to-end encryption with session-aware) and decentralized communications API standard to build a secure space for team communication.<br><br>You can then create private or public spaces, make calls (audio and video) through the integrated Jitsi server; using Element, or another valid client, you can connect to your chat and therefore to the various rooms you are part of also through another device.<br>Furthermore, Matrix has a considerable number of plugins that allow for example to connect a Telegram group to a Matrix group allowing the exchange of messages on both sides.<br>Last but not least, Matrix allows you to communicate with other Matrix servers, thus allowing communication between the users of these servers.<br><br>For more demanding and security-conscious customers, we add this link that shows the encryption algorithm and the protocol used: <a href=\"https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md\" target=\"_ blank\" title=\"The documentation explains in detail the implementation of the Megolm ratchet algorithm. The link opens on a dedicated tab.\">https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md</a>"
nextcloud:
title: "Nextcloud"
lead: "As a fully on-premise data storage solution, <strong>Nextcloud</strong> offers the benefits of online collaboration without compliance and security risks.<br>Allows you to share and collaborate on Office documents (through Collabora Office or OnlyOffice), managing calendars and contacts, allows you to have an integrated and secure web-meeting platform (Nextcloud Talk).<br>Finally, it allows complete customization through a Marketplace containing further extensions that implement its functions.<br><br>Currently it is one of the <strong>best alternatives to</strong> services like <strong>Dropbox or Google Drive</strong>: with added steroids!"
contacts:
title: "Here's how to contact us!"
body: "
Getting information or learning more about our modules is really simple:<br><br>1.<strong> Contact us to get a free appointment</strong> with our technicians<br> 2. Make yourself <strong>available </strong> in this appointment <strong> for a free checklist</strong>, perhaps even involving your trusted technician<br> 3. We will then elaborate a personalized <strong>resolutive estimate</strong> using the information that emerged from the inspection, divided into risk factors (from the most critical to the less serious) or by the needs exposed (services, configurations, requests).<br><br>
You will therefore be free to evaluate and choose from the Modules proposed, the one you consider to be the best situation for you, always taking into account any risk factors reported.<br><br> Finally, you can contact us by sending an email<br><br><small><i>If you want to experiment with new technologies, you can also contact us in the Fediverse or on the Matrix! Our links in the footer.</i></small><br><br>
"
projects:
title: "Projects, to go further"
text: "In addition to dedicating ourselves resolutely to our customers, we develop and/or actively participate with the various free as in freedom software development communities to produce and/or improve programs of various kinds, we manage a radio that deals with issues related to the world of software and science and we have a Peertube channel, still under development, on which to share interviews and/or guides of various kinds."
radio:
title: "The radio dedicated to the software"
text: "Engaging in the spread of free as in freedom software starts from the beginning. Why not start from a radio then?<br><br>Learn more by clicking below!"
software:
title: "The software we believe in"
text: "We support projects concerning free as in freedom software, starting from the BIOS, the heart of every PC up to the distributed content (such as multimedia), trying to sensitize people and companies to the use of free software by eliminating the so-called 'trap' software such as the DRM."
peertube:
title: "The channel dedicated to video content"
text: "We have decided to use every means to spread the message of free software and software ethics and for this reason we have set up a Peertube channel where you will find interviews, content dedicated to free software and technical guides."
software:
title: "The software we believe in."
text: "We consider the Hacker ethics to be part of the foundations in software development, even in the most \"hidden\" or dedicated to specific areas.<br>We therefore support projects that concern free software, starting from the BIOS, the heart of every PC up to distributed content (such as multimedia), trying to sensitize people and companies to the use of free software by eliminating the so-called \"trap\" software such as DRM."
libreboot_title: "Libreboot"
libreboot_text: "The software is contained even in the most hidden parts, invisible to our eyes. The details in this case make a big difference."
freesoftware_title: "The free as in freedom software"
freesoftware_text: "Progress has always made use of knowledge. Today the world needs software to move forward and this needs to be freely distributed to keep knowledge free."
drm_title: "DRM-Free"
drm_text: "Being authors, being artists, makes us an integral part of culture. However, DRMs eliminate the rights that users and authors have on their works, making the efforts of sharing and free diffusion useless."
channel:
title: "Our channel dedicated to video content"
p_1: "We have decided to use every means to spread the message of free as in freedom software and software ethics and for this reason we have set up a Peertube channel where you will find interviews, content dedicated to free software and technical guides."
p_2_1: "The channel is hosted by dear friends of "
p_2_2: "and <strong> is currently in the start-up phase but we hope you will contribute as well, as you are already doing with the fabulous radio.</strong>"
title_2: "Do you have any ideas or would you like to suggest something?"
p_3: "Your contribution is always appreciated and we suggest you contact us on our channel at <a href=\"https://social.unitoo.it/admin\">Fediverse</a> or by going to the page "
funkwhale:
title: "The Funkwhale project and the fediverse"
text_1: "Taking from an article (with link at the bottom), we can summarize:"
blockquote: "
<p>
<a rel=\"nofollow\" target=\"_blank\" href=\"https://funkwhale.it\">Funkwhale.it</a> intends to put streaming back into the hands of Internet users, giving them the tools to upload, share and finance music. A long-term project, of which only the first bricks exist.
</p>
<p>
The server federation was born in 2017 with the birth of the Fediverse, and with the arrival of Mastodon, it made this model popular.
</p>
<p>
Funkwhale intends to adapt the federation to listening to music, based on the old Grooveshark, a free music service where Internet users imported their songs.
</p>
<footer class=\"blockquote-footer\"><a rel=\"nofollow\" target=\"_blank\" href=\"https://noblogo.org/funkwhale/una-piattaforma-sociale-per-ascoltare-e-condividere-musica\">Source noblogo </a></footer>"
p_1: "If, like us, you believe in the <strong>importance</strong> of a project like this, you can <strong>donate</strong> something directly to them via cryptocurrencies."
libreboot:
title_h2: "The concept of <span class='text-warning'>security</span> starts with the CPU"
title: "The \"hidden\" story"
p: "In 2006, processor manufacturers such as Intel began installing a series of self-contained \"micro-environments\" (Intel ME, AMD PSP) of unknown targets into their products.<br>Several vulnerability tests have shown that these subsystems can in specific ways provide access to third parties and can read the memory in use (compromising encryption, password and alternative security keys).<br>From this arises the desire to disable this mechanism that violates every principle and right to privacy."
title_2: "The solution"
p_2: "
<a rel=\"nofollow\" target=\"_blank\" href=\"https://github.com/corna/me_cleaner\">
<i class=\"fas fa-link-ext fa-sm\">me_cleaner</i>
</a> is the tool, initially created by Nicola Corna, which allows you to partially or totally disable the backdoor.<br>We also suggest replacing the OEM BIOS with <a target=\"_blank\" href=\"https://libreboot.org/\" rel=\"nofollow\">
<i class=\"fas fa-link-ext fa-sm\">Libreboot</i></a>, the free BIOS, based on <a target=\"_blank\" href=\"https://www.coreboot.org/\" rel=\"nofollow\"><i class=\"fas fa-link-ext fa-sm\">Coreboot</i></a>.<br>
<br> The removal tool is not completely finished on the most modern CPUs, having changed the structure of the same. Our suggestion is to contact us to help you on how to intervene.<br><br>
<small> Current companies and resellers starting to support Libreboot/Coreboot natively or offering installation services are Purism, System76, Ministry Of Freedom and Dell.</small>
"
peertube:
title: "The Peertube project and the fediverse"
text_1: "Taking from an article (with link at the bottom), we can summarize:"
blockquote: "
<p>
PeerTube's goal is to create an emancipatory alternative to centralized platforms as YouTube. In a centralized service, you sign up with a single address, and every single action, video and data are collected on one huge \"computer\". For example, that of Google, which hosts YouTube (to be precise, they are server farms rather than huge computers, but symbolically it is the same thing!)
<footer class=\"blockquote-footer\"><a rel=\"nofollow\" target=\"_blank\" href=\"https://noblogo.org/peertube/peertube-lavora-per-liberare-i-vostri-video-da-youtube\">Source noblogo.org</a></footer></p>
"
p: "If, like us, you believe in the <strong> importance </strong> of a project like this, you can <strong> donate </strong> something directly to them through Liberapay, a free alternative to PayPal."
radio:
title: "The radio dedicated to free as in freedom software"
p_1: "
The spread of free as in freedom software is certainly not new for many, however the standard means present few opportunities in this regard.
<br>
At Unitoo we have long taken this sector to heart, and we have chosen to set up a radio, with exclusively Creative Commons licensed content, dealing with free as in freedom software.<br><br>
Many weekly programs are already being played and many others are under construction thanks to our freelance speakers!<br><br>
<strong> P.S.: Don't forget to donate something to our speakers using their platforms directly! The work they are doing is something exceptional.</strong>
"
title_2: "The technology"
p_2: "We used AzuraCast with Docker on a GNU/Linux server and we use Mixxx for Dj mode.<br> Below are the various links to access the software used:"
text_1: "You can of course "
text_2: "contact us"
text_3: " to be able to create your own platform!"
title_3: "The Podcast"
text_4: "After the dear friends of "
text_5: " released the updated version of the software, we immediately moved our content to their platform. Therefore at the following link you will have the opportunity to listen, download and share (in the freedoms granted and in compliance with the CC licenses associated with each file) the various Podcasts."
news:
title: "News"
text: "For a long time we have been offering a Telegram channel that posts various news about the world of free software, software development and sometimes even some personal blogs. So we want to share here, the list of feeds that this bot uses trying to be as transparent as possible.<br><br>If you think there are inappropriate sources, or feeds of a certain caliber are missing, please let us know. You can contact us by reaching the \"Contact us\" page"
staff:
yamabiiko:
alt_img: "Portrait photo of Lorenzo Tucci"
text: "<pre><code>
Compiling yamabiiko v0.1.0 (file:///projects/unsafe-yamabiiko)<br>
error[E0133]: call to yamabiiko is unsafe and requires unsafe function or block<br>
--> src/main.rs:4:5<br>
|<br>
4 | dangerous();<br>
| ^^^^^^^^^^^ call to unsafe function<br>
|<br>
= note: consult the function's documentation for information on how to avoid undefined behavior<br>
<br>
error: aborting due to previous error<br>
<br>
For more information about this error, try `rustc --explain yamabiiko`.<br>
error: could not compile `unsafe-example`<br>
<br>
To learn more, run the command again with --verbose.<br>
</code></pre>
"
github_url: "https://github.com/yamabiiko"
gitlab_url: "https://gitlab.com/yamabik0"
cmaradonna:
alt_img: "Portrait photo of Claudio Maradonna"
text: "Unitoo founder and developer.<br> He enters the world of software at the age of 13 and from there he begins his adventure in the GNU/Linux world, between an overclock and the other.<br><br> Today he develops mainly with Ruby and Rails. He has a weakness for C++ <3"
fediverse_url: "https://social.unitoo.it/claudio"
instagram_url: "https://www.instagram.com/cmaradonna/"
github_url: "https://github.com/FiloSpaTeam"
gitlab_url: "https://gitlab.com/claudiomaradonna"
gitea_url: "https://git.unitoo.it/claudiomaradonna"
frenky:
alt_img: "Portrait photo of Simone Capparucci"
text: "
<blockquote class='blockquote'>
Non andartene docile in quella buona notte,<br>
i vecchi dovrebbero bruciare e delirare al serrarsi del giorno;<br>
infuria, infuria, contro il morire della luce.<br>
<footer class='blockquote-footer'>Dylan Thomas, Poesie (Torino, Einaudi 1965)</footer>
</blockquote>"
instagram_url: "https://www.instagram.com/xxfrenkyxx"
github_url: "https://github.com/Frenky1993"
fabio_purple:
text: "A Salentino with a PhD in computer science & engineering, but above all passionate/fanatic/sick of free as in freedom software, music, photography and so on and so forth ..."
instagram_url: "https://www.instagram.com/desmovalvo/"
twitter_url: "https://twitter.com/desmovalvo"
sydro:
text: "System Design & Automation expert, as DevOps creates customized systems for its customers, using the most modern automation and continuous building techniques. Militant in the SaLUG! for the past 20 years, he has been contributing to Free as in freedom Software projects."
instagram_url: "https://www.instagram.com/sydro83/"
twitter_url: "https://twitter.com/sydro83"
flickr_url: "https://www.flickr.com/photos/130497152@N05/"
sara:
text: "From the Marche region, graduated in Foreign Languages and Cultures, passionate about music, cinema, theater, and above all books. I became passionate about literature when I discovered that it was enough to read it with other points of view to discover that it is actually about us and can be less boring than a sequel to an epic film."
instagram_url: "https://www.instagram.com/sara_freddoni/"
facebook_url: "https://www.facebook.com/sara.freddoni"
grafixprint:
text: "Founder of Grafixprint, a company that deals with digital printing, web design and artworks. A professional like few others ... and very nice!"
website_url: "https://www.grafixprint.it"
referral:
title: "Become a Guardian of the User Space"
description: "Being part of our team does not only mean working with us, but sharing our ideals and our services, designed to be ethical, cutting edge and without a binding contract by default.<br><br>Our customers and partners are therefore invited to share their experience deriving from the use of our services, with their customers and suppliers.<br><br>Following a purchase of one of our Modules, the referring customer and the new contact will receive respectively 2 months and 1 month of Intelligence Module (IT consulting)."
description_2: "<h4>Be an active part in providing security and innovation in the companies you care about most!</h4>"
privacy_policy:
title: "Privacy policy and consent to the processing of personal data"
subtitle: "EU Regulation 2016/679 of the European Parliament and of the Council of 27 April 2016"
strong_1: "WHY THIS INFORMATION"
text_1: "This page describes the methods of processing the personal data of users who consult the website since following consultation of the site, data relating to identified or identifiable natural persons may be processed. Before communicating any personal data, Unitoo invites you to carefully read this \"Privacy Policy\", as it contains important information on the protection of personal data and on the security measures adopted to guarantee its confidentiality in full compliance with the Applicable Regulations."
text_2: "This Privacy Policy does not apply to other websites that may be reached via hypertext links published on the Site and complies with Recommendation no. 2/2001 concerning the minimum requirements for online data collection in the European Union, adopted on 17 May 2001 by the Article 29 Working Group."
text_3: "Pursuant to Article 13 of Regulation (EU) 2016/679 (\"GDPR - General Data Protection Regulation\") hereinafter \"Regulation\", the processing of personal information concerning you, which we will come into possession of, will be based on principles of correctness, lawfulness, purpose limitation and conservation, data minimization, accuracy, integrity and transparency and protection of your privacy and your rights."
text_4: "Therefore we inform you of the following:"
pp_1_title: "IDENTITY AND CONTACT DETAILS OF THE DATA CONTROLLER / DPO (DATA PROTECTION MANAGER)"
pp_1_text: "The data owner is Unitoo di Maradonna Claudio Via Circonvallazione Sud 28/A, Monteprandone (AP), 63076 - P.IVA: IT02324570445 - Email: info@unitoo.it - Tel: +39 351 617 2117"
pp_2_title: "PURPOSE OF THE PROCESSING AND TYPES OF DATA PROCESSED"
pp_2_text: "
The Personal Data collected by the Site are as follows:
<br><br>
<strong>Navigation data</strong>
<div>
The computer systems and software procedures used to operate this site acquire, during their normal operation, some personal data whose transmission is implicit in the use of Internet communication protocols.
This category of data includes the IP addresses or domain names of the computers and terminals used by users, the URI/URL (Uniform Resource Identifier/Locator) addresses of the requested resources, the time of the request, the method used in the submit the request to the server, the size of the file obtained in response, the numerical code indicating the status of the response given by the server (successful, error, etc.) and other parameters relating to the operating system and the user's IT environment.
These data, necessary for the use of web services, are also processed for the purpose of:
<ul>
<li>statistical research/analysis on aggregate or anonymous data, therefore without the possibility of identifying the user, aimed at measuring the correct functioning of the Site, measuring traffic and evaluating usability and interest;</li>
</ul>
The navigation data does not persist for more than seven days (except for any need to ascertain crimes by the judicial authorities).
</div>
<br>
<strong>Data communicated by the user</strong>
<div>
The optional, explicit and voluntary sending of messages to the contact addresses of the Data Controller, the private messages sent by users to the institutional profiles/pages on social media (where this possibility is foreseen), as well as the compilation and forwarding of the data requested through the \"Contacts\" form on the site, involve the acquisition of the sender's contact data, necessary to reply, as well as all personal data included in communications. The Data Controller will process these data in compliance with the Regulations, assuming that they refer to you or to third parties who have expressly authorized you to provide them on the basis of an appropriate legal basis that legitimizes the processing of the data in question.
</div><br>
<strong>Cookies and other tracking systems</strong>
<div>
The specifications referring to the use of cookies for user profiling, other tracking methods and/or communications to third parties, are reported in the Cookies Policy on the home page of the site, which we invite you to view so that you can define your preferences and express your consent.<br>
Instead, session cookies (non-persistent) are used strictly limited to what is necessary for the safe and efficient navigation of the sites. The storage of session cookies in terminals or browsers is under the user's control, where on the servers, at the end of the HTTP sessions, information relating to cookies remains recorded in the service logs, with retention times not exceeding seven days. like other navigation data.
More information on the use of cookies and related technologies is available at https://www.garanteprivacy.it/cookie.
In addition to what is reported in point 2, the processing of the data you provide may be aimed at the purposes specified below:
<ul>
<li>fulfill the pre-contractual and contractual obligations deriving from existing relationships with you;</li>
<li>administrative and accounting management of the relationship required by law.</li>
</ul>
In this regard, specific information will be published on the pages of the site prepared for the provision of certain services.
</div>
"
pp_3_title: "RECIPIENTS OR CATEGORIES OF RECIPIENTS OF THE DATA"
pp_3_text: "The data processed for the purposes referred to in point 2 may be communicated to internal or external staff, legal persons involved in the process of completing the services requested by the interested party, including, by way of example, those in charge of sending emails and analysis of the functioning of the Site, which act on the basis of specific instructions provided regarding the purposes and methods of the processing itself.
The list is available at the headquarters of the Data Controller at the request of the interested party.
The Personal Data processed are not transferred to Recipients who are located outside the European Economic Area."
pp_4_title: "PERIOD OF STORAGE OF PERSONAL DATA"
pp_4_text: "
The retention period of personal data begins from the moment of the provision of the same by the interested party and ends with the exercise of the right to cancel the data by the interested party by registered letter with return receipt to the address Via Circonvallazione Sud 28/A , Monteprandone (AP), 63076, Italy or communication by certified e-mail: unitoo@pec.it
"
pp_5_title: "OPTIONAL NATURE OF DATA PROVISION AND CONSEQUENCES OF ANY REFUSAL"
pp_5_text: "
The provision of the data necessary for the fulfillment of the contact request and/or information is optional. However, in the event of failure to provide the requested data, the data subject will not be able to receive the information and support requested."
pp_6_title: "LEGAL BASIS OF THE PROCESSING"
pp_6_text: "
Pursuant to Article 6 of the GDPR 679/2016, the processing of data for the purposes listed in point 2 of this document has a legal basis on the explicit consent of the interested party (Article 6 letter a); in the execution of a contract of which the interested party is a party (Article 6 letter b) and in the legitimate interest of the owner (Article 6 letter f) based on the relevant relationship between the interested party and the data controller provided that the rights do not prevail and the freedoms of the interested party. The legitimate interests of the Data Controller do not prevail over the interests, rights and freedoms of the data subject."
pp_7_title: "RIGHTS OF THE INTERESTED PARTY"
pp_7_text: "At any time, the interested party may exercise his rights towards the data controller, pursuant to articles 15, 16, 17, 18, 20, 21 of the GDPR 679/2016. Specifically, the interested party has the right:
<ul>
<li> access to personal data by making an appropriate request (Article 15); </li>
<li> to obtain the rectification (Article 16) </li>
<li> to the cancellation of the same (oblivion) (Article 17); </li>
<li> to the limitation of the processing that concerns him (Article 18); </li>
<li> to data portability (Article 20); </li>
<li> to oppose the processing (Article 21); </li>
<li> to revoke the consent without prejudice to the lawfulness of the processing provided before the revocation, (Article 13 paragraph 2 letter C);
<li> to lodge a complaint with a supervisory authority (Article 13 paragraph 2 letter D). </li>
</ul>"
pp_8_title: "AUTOMATED DECISION-MAKING PROCESS AND PROFILING"
pp_8_text: "
The collection and processing of data does not provide for any type of automated decision-making and / or profiling by the Data Controller."
endtext: "<strong> IMPORTANT </strong>
<br>
This Privacy Policy is effective from 25 May 2018. The Data Controller reserves the right to modify or simply update its content, in part or completely, also due to changes in the Regulations. We therefore invite you to visit this section regularly to become aware of the most recent and updated version."
footer:
license: "The site (except logos) is fully released under the terms of the AGPLv3 license. You can find the sources here:"
sitemap: "Sitemap"
projects: "Projects"
channels: "Channels"

View file

@ -153,9 +153,6 @@ meta:
libreboot_logo: "Logo ufficiale di Libreboot, BIOS libero derivato da Coreboot"
header_peertube: "Screenshot del canale Peertube di Unitoo"
sydro: "Foto ritratto di Angelo \"Sydro\""
nextcloud_example: "Screenshot di esempio dell applicativo server Nextcloud"
azuracast_example: "Screenshot di esempio dell applicativo server Azuracast"
pihole_example: "Screenshot di esempio dell applicativo server PiHole"
liberapay_logo: "Logo ufficiale di Liberapay"
yamabiiko: "Foto ritratto di Lorenzo Tucci"
cmaradonna: "Foto ritratto di Claudio Maradonna"
@ -178,8 +175,6 @@ buttons:
services_and_products: "Servizi e Prodotti"
projects: "Progetti"
know_us_on_fediverse: "Ecco il nostro profilo!"
find_how_we_build_software: "Scopri quali tecnologie utilizziamo"
find_what: "Scopri la nostra piattaforma e i costi"
know_more: "Approfondisci"
go_to_channel: "Vai al canale"
discover_our_services: "Scopri i servizi"
@ -191,6 +186,7 @@ buttons:
cybersecurity: "Sicurezza"
communications: "Comunicazioni"
go_to_telegram_bot: "Vai al Bot Telegram"
privacy_policy: "Informativa privacy"
titles:
go_to_radio: "radio.unitoo.it, il link si aprirà in una tab separata. Potrai ascoltare musica e podcast rilasciati con licenze Creative Commons"
@ -541,7 +537,7 @@ privacy_policy:
text_3: "Ai sensi dell'articolo 13 del Regolamento (UE) 2016/679 (“GDPR General Data Protection Regulation”) di seguito \"Regolamento\", il trattamento delle informazioni personali che La riguardano, dei quali entreremo in possesso, sarà improntato ai principi di correttezza, liceità, limitazione delle finalità e della conservazione, minimizzazione dei dati, esattezza, integrità e trasparenza e di tutela della Sua riservatezza e dei Suoi diritti."
text_4: "Pertanto La informiamo di quanto segue:"
pp_1_title: "IDENTITÀ E DATI DI CONTATTO DEL TITOLARE DEL TRATTAMENTO /RPD (RESPONSABILE PROTEZIONE DATI)"
pp_1_text: "Il titolare dei dati è Unitoo di Maradonna Claudio Via Circonvallazione Sud 28/A, Monteprandone (AP), 63076 - P.IVA: 02324570445 - Email: claudio@unitoo.pw- Tel: +393936320924"
pp_1_text: "Il titolare dei dati è Unitoo di Maradonna Claudio Via Circonvallazione Sud 28/A, Monteprandone (AP), 63076 - P.IVA: IT02324570445 - Email: claudio@unitoo.pw- Tel: +393936320924"
pp_2_title: "FINALITÀ DEL TRATTAMENTO E TIPI DI DATI TRATTATI"
pp_2_text: "
I Dati Personali raccolti dal Sito sono i seguenti:
@ -565,7 +561,7 @@ lhanno espressamente autorizzata a conferirli in base ad unidonea base giu
<br>
<strong>Cookie e altri sistemi di tracciamento</strong>
<div>
Non viene fatto uso di cookie per la profilazione degli utenti, né vengono impiegati altri metodi di tracciamento.
Le specifiche riferite all'utilizzo di cookie per la profilazione degli utenti, ad altri metodi di tracciamento e/o a comunicazioni a Terze parti, sono riportate all'interno della Policy Cookies presente nella home page del sito, che La invitiamo a visionare affinché possa definire le sue preferenze ed esprimere il relativo consenso.<br>
Viene invece fatto uso di cookie di sessione (non persistenti) in modo strettamente limitato a quanto necessario per la navigazione sicura ed efficiente dei siti. La memorizzazione dei cookie di sessione nei terminali o nei browser è sotto il controllo dell'utente, laddove sui server, al termine delle sessioni HTTP, informazioni relative ai cookie restano registrate nei log dei servizi, con tempi di conservazione comunque non superiori ai sette giorni al pari degli altri dati di navigazione.
Maggiori informazioni sulluso dei cookie e tecnologie affini sono disponibili https://www.garanteprivacy.it/cookie.
Oltre a quanto riportato nel punto 2, il trattamento dei dati da Lei forniti può essere finalizzato agli scopi di seguito specificati:

View file

@ -5,8 +5,11 @@
<p class="mt-5">{% t contacts.body %}</p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
{% if site.lang == "it" %}
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
{% endif %}
<br><br>
<hr class="mt-4 mb-4">

View file

@ -5,6 +5,6 @@
<h5 class="card-title">{% t cybersecurity.defence_title %}</h5>
<p class="card-text">{% t cybersecurity.defence_text %}</p>
<a class="btn btn-primary" href={% link _pages/defence.html %}>{% t cybersecurity.defence_button %}</a>
<a class="btn btn-primary" href={% translate_link defence %}>{% t cybersecurity.defence_button %}</a>
</div>
</div>

View file

@ -5,6 +5,6 @@
<h5 class="card-title">{% t cybersecurity.graphene_title %}</h5>
<p class="card-text">{% t cybersecurity.graphene_text %}</p>
<a class="btn btn-primary" href={% link _pages/graphene.html %}>{% t cybersecurity.graphene_button %}</a>
<a class="btn btn-primary" href={% translate_link graphene %}>{% t cybersecurity.graphene_button %}</a>
</div>
</div>

View file

@ -5,6 +5,6 @@
<h5 class="card-title">{% t cybersecurity.monitoring_title %}</h5>
<p class="card-text">{% t cybersecurity.monitoring_text %}</p>
<a class="btn btn-primary" href={% link _pages/monitoring.html %}>{% t cybersecurity.monitoring_button %}</a>
<a class="btn btn-primary" href={% translate_link monitoring %}>{% t cybersecurity.monitoring_button %}</a>
</div>
</div>

View file

@ -5,6 +5,6 @@
<h5 class="card-title">{% t cybersecurity.rover_title %}</h5>
<p class="card-text">{% t cybersecurity.rover_text %}</p>
<a class="btn btn-primary" href={% link _pages/rover.html %}>{% t cybersecurity.rover_button %}</a>
<a class="btn btn-primary" href={% translate_link rover %}>{% t cybersecurity.rover_button %}</a>
</div>
</div>

View file

@ -5,6 +5,6 @@
<h5 class="card-title">{% t cybersecurity.sonde_title %}</h5>
<p class="card-text">{% t cybersecurity.sonde_text %}</p>
<a class="btn btn-primary" href={% link _pages/sonde.html %}>{% t cybersecurity.sonde_button %}</a>
<a class="btn btn-primary" href={% translate_link sonde %}>{% t cybersecurity.sonde_button %}</a>
</div>
</div>

View file

@ -5,26 +5,26 @@
<strong class="text-uppercase">{% t footer.sitemap %}</strong>
<ul class="list-unstyled ml-0">
<li><a href="/">{% t meta.titles.index %}</a></li>
<li><a href="{% link _pages/about-us.html %}">{% t meta.titles.aboutus %}</a></li>
<li><a href="{% link _pages/services-and-products.html %}">{% t meta.titles.services_and_products %}</a>
<li><a href="{% translate_link aboutus %}">{% t meta.titles.aboutus %}</a></li>
<li><a href="{% translate_link services-and-products %}">{% t meta.titles.services_and_products %}</a>
</li>
<li><a href="{% link _pages/contacts.html %}">{% t meta.titles.contacts %}</a></li>
<li><a href="{% translate_link contactus %}">{% t meta.titles.contacts %}</a></li>
</ul>
</nav>
<div class="col-12 col-lg-2">
<strong class="text-uppercase">{% t footer.projects %}</strong>
<ul class="list-unstyled ml-0">
<li><a href="{% link _pages/referral.html %}">{% t meta.titles.referral %}</a></li>
<li><a href="{% link _pages/radio.html %}">{% t meta.titles.radio %}</a></li>
<li><a href="{% link _pages/software.html %}">{% t meta.titles.software %}</a></li>
<li><a href="{% link _pages/news.html %}">{% t meta.titles.news %}</a></li>
<li><a href="{% translate_link referral %}">{% t meta.titles.referral %}</a></li>
<li><a href="{% translate_link radio %}">{% t meta.titles.radio %}</a></li>
<li><a href="{% translate_link software %}">{% t meta.titles.software %}</a></li>
<li><a href="{% translate_link news %}">{% t meta.titles.news %}</a></li>
</ul>
</div>
<div class="col-12 col-lg-2">
<strong class="text-uppercase">{% t footer.channels %}</strong>
<ul class="list-unstyled ml-0">
<li><a href="{% link _pages/peertube.html %}">{% t meta.titles.peertube %}</a></li>
<li><a href="{% link _pages/funkwhale.html %}">{% t meta.titles.funkwhale %}</a></li>
<li><a href="{% translate_link peertube %}">{% t meta.titles.peertube %}</a></li>
<li><a href="{% translate_link funkwhale %}">{% t meta.titles.funkwhale %}</a></li>
</ul>
</div>
<div class="col-1 col-lg-2 mr-auto"></div>
@ -71,7 +71,7 @@
</a>
</li>
<li class="list-inline-item">
<a href="{% link _pages/news.html %}" target="_blank" data-original-title="" title="">
<a href="{% translate_link news %}" target="_blank" data-original-title="" title="">
<i class="fab fa-telegram"></i>
</a>
</li>
@ -83,10 +83,10 @@
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="{% link _pages/privacy.html %}">Informativa privacy</a>
<a href="{% translate_link privacy %}">{% t buttons.privacy_policy %}</a>
</div>
</div>
</footer>

View file

@ -9,11 +9,19 @@
{% asset logo-extended.webp @magick:double height='30' alt="{{ alt_logo_extended_dark }}" %}
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="{% link _pages/about-us.html %}">{% t buttons.about_us %}</a>
<a class="p-2 text-white" href="{% link _pages/services-and-products.html %}">{% t buttons.services_and_products %}</a>
<a class="btn btn-primary ml-3 text-white" href="{% link _pages/contacts.html %}">{% t buttons.contactsus %}</a>
<a class="p-2 text-white" href="{% translate_link aboutus %}">{% t buttons.about_us %}</a>
<a class="p-2 text-white" href="{% translate_link services-and-products %}">{% t buttons.services_and_products %}</a>
<a class="btn btn-primary ml-3 text-white" href="{% translate_link contactus %}">{% t buttons.contactsus %}</a>
{% if site.lang == "it" %}
<a class="ml-3 text-decoration-none" href="{% translate_link {{ page.namespace }} en %}">🇬🇧</a>
{% else %}
<a class="ml-3 text-decoration-none" href="{% translate_link {{ page.namespace }} it %}">🇮🇹</a>
{% endif %}
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">

View file

@ -21,7 +21,7 @@
<p>
{% t index.products.technical_assistance_text %}
</p>
<a class="btn btn-secondary" href="{% link _pages/technical-assistance.html %}">{% t buttons.discover_our_services %}</a>
<a class="btn btn-secondary" href="{% translate_link technical-assistance %}">{% t buttons.discover_our_services %}</a>
</div>
<div class="col text-right d-none d-lg-block">
{% asset element-technical-assistance.webp alt="{{ alt_technical_assistance_example }}" class="mt-3 mt-lg-0" %}
@ -44,7 +44,7 @@
<p>
{% t index.products.cybersecurity_text %}
</p>
<a class="btn btn-secondary" href="{% link _pages/cybersecurity.html %}">{% t buttons.go_to_cybersecurity %}</a>
<a class="btn btn-secondary" href="{% translate_link cybersecurity %}">{% t buttons.go_to_cybersecurity %}</a>
</div>
</div>
@ -64,7 +64,7 @@
<p>
{% t index.products.communications_text %}
</p>
<a class="btn btn-secondary" href="{% link _pages/communications.html %}">{% t buttons.go_to_communications %}</a>
<a class="btn btn-secondary" href="{% translate_link communications %}">{% t buttons.go_to_communications %}</a>
</div>
<div class="col text-right d-none d-lg-block">
{% asset element-communications.webp alt="{{ alt_communications_example }}" class="mt-3 mt-lg-0" %}
@ -87,7 +87,7 @@
<p>
{% t index.products.blackhole_text %}
</p>
<a class="btn btn-secondary" href="{% link _pages/contacts.html %}">{% t buttons.go_to_blackhole %}</a>
<a class="btn btn-secondary" href="{% translate_link contactus %}">{% t buttons.go_to_blackhole %}</a>
</div>
</div>
</div>

View file

@ -1,10 +1,10 @@
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
<a class="btn-outline-primary" href="{% link _pages/about-us.html %}">{% t buttons.about_us %}</a>
<a class="btn-outline-primary" href="{% link _pages/services-and-products.html %}">{% t buttons.services_and_products %}</a>
<a class="btn-outline-primary" href="{% link _pages/technical-assistance.html %}"> └ {% t buttons.technical_assistance %}</a>
<a class="btn-outline-primary" href="{% link _pages/cybersecurity.html %}"> └ {% t buttons.cybersecurity %}</a>
<a class="btn-outline-primary" href="{% link _pages/communications.html %}"> └ {% t buttons.communications %}</a>
<a class="btn-outline-primary" href="{% link _pages/projects.html %}">{% t buttons.projects %}</a>
<a class="btn-outline-primary" href="{% link _pages/contacts.html %}">{% t buttons.contactsus %}</a>
<a class="btn-outline-primary" href="{% translate_link aboutus %}">{% t buttons.about_us %}</a>
<a class="btn-outline-primary" href="{% translate_link services-and-products %}">{% t buttons.services_and_products %}</a>
<a class="btn-outline-primary" href="{% translate_link technical-assistance %}"> └ {% t buttons.technical_assistance %}</a>
<a class="btn-outline-primary" href="{% translate_link cybersecurity %}"> └ {% t buttons.cybersecurity %}</a>
<a class="btn-outline-primary" href="{% translate_link communications %}"> └ {% t buttons.communications %}</a>
<a class="btn-outline-primary" href="{% translate_link projects %}">{% t buttons.projects %}</a>
<a class="btn-outline-primary" href="{% translate_link contactus %}">{% t buttons.contactsus %}</a>
</div>

View file

@ -1,5 +1,6 @@
---
layout: default
languages: ["it"]
---
<section class="container">

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.aboutus
description: meta.descriptions.aboutus
namespace: aboutus
permalink: /chisiamo/
permalink_en: /aboutus/
tags: unitoo aboutus chisiamo team

View file

@ -1,23 +0,0 @@
---
layout: simple
title: meta.titles.blackhole
description: meta.descriptions.blackhole
permalink: /prodotti/blackhole/
permalink_en: /products/blackhole/
tags: unitoo blackhole sicurezza informatica dns server pihole adblock
---
<section class="jumbotron jumbotron-fluid mb-0">
<div class="container">
<h1 class="text-center">{% t blackhole.title %}</h1>
<hr class="border-primary">
<p class="mt-5">
{% asset "element-blackhole.webp" width=250 align=left class="mr-3 rounded" %}
{% t blackhole.description %}
</p>
</div>
</section>
<section class="text-center pt-5 pb-5">
{% include contacts.html %}
</section>

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.channel
description: meta.descriptions.channel
namespace: channel
permalink: /progetti/peertube/
permalink_en: /projects/peertube/
tags: video unitoo peertube freedom software freesoftware interviste
@ -12,7 +13,7 @@ tags: video unitoo peertube freedom software freesoftware interviste
<p>
{% t channel.p_1 %}
<br><br>
{% t channel.p_2_1 %} <a href="{% link _pages/peertube.html %}">Peertube Italia</a>
{% t channel.p_2_1 %} <a href="{% translate_link peertube %}">Peertube Italia</a>
{% t channel.p_2_2 %}
<br><br>
@ -22,7 +23,7 @@ tags: video unitoo peertube freedom software freesoftware interviste
<h2 class="mt-5">{% t channel.title_2 %}</h2>
<p>
{% t channel.p_3 %}
<a href="{% link _pages/contacts.html %}">{% t buttons.contactsus %}</a>.
<a href="{% translate_link contactus %}">{% t buttons.contactsus %}</a>.
</p>
<br><br>
</section>

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.communications
description: meta.descriptions.communications
namespace: communications
permalink: /comunicazioni/
permalink_en: /communications/
tags: unitoo communications products comunicazioni servizi nextcloud mattermost matrix element chat messaging team condivisione riunioni

View file

@ -2,6 +2,7 @@
layout: default
title: meta.titles.contacts
description: meta.descriptions.contacts
namespace: contactus
permalink: /contattaci/
permalink_en: /contactus/
tags: unitoo contatti gnupg email contacts

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.cybersecurity
description: meta.descriptions.cybersecurity
namespace: cybersecurity
permalink: /cybersecurity/
permalink_en: /cybersecurity/
tags: unitoo cybersecurity sicurezza informatica hardening patch best practices

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.defence
description: meta.descriptions.defence
namespace: defence
permalink: /cybersecurity/defence/
permalink_en: /cybersecurity/defence/
tags: unitoo cybersecurity sicurezza informatica hardening patch best practices module defence

View file

@ -2,6 +2,7 @@
layout: default
title: meta.titles.funkwhale
description: meta.descriptions.funkwhale
namespace: funkwhale
permalink: /partners/funkwhale/
permalink_en: /partners/funkwhale/
tags: unitoo partners funkwhale podcast music creativecommons freedom

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.graphene
description: meta.descriptions.graphene
namespace: graphene
permalink: /cybersecurity/grafene/
permalink_en: /cybersecurity/graphene/
tags: unitoo cybersecurity sicurezza informatica hardening patch best practices module grapheneos

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.libreboot
description: meta.descriptions.libreboot
namespace: libreboot
permalink: /progetti/libreboot/
permalink_en: /projects/libreboot/
tags: unitoo libreboot bios freesoftware rights coreboot

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.monitoring
description: meta.descriptions.monitoring
namespace: monitoring
permalink: /cybersecurity/monitoring/
permalink_en: /cybersecurity/monitoring/
tags: unitoo cybersecurity sicurezza informatica best practices module monitoring grafana prometheus

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.news
description: meta.descriptions.news
namespace: news
permalink: /news/
permalink_en: /news/
tags: unitoo news freedom software freesoftware foss telegram feed rss bot

View file

@ -2,6 +2,7 @@
layout: default
title: meta.titles.peertube
description: meta.descriptions.peertube
namespace: peertube
permalink: /partners/peertube/
permalink_en: /partners/peertube/
tags: unitoo partners peertube video creativecommons freedom

View file

@ -2,6 +2,7 @@
layout: default
title: meta.titles.privacy_policy
description: meta.descriptions.privacy_policy
namespace: privacy
permalink: /privacy-policy/
permalink: /privacy-policy/
tags: privacy policy unitoo

View file

@ -2,6 +2,7 @@
layout: default
title: meta.titles.projects
description: meta.descriptions.projects
namespace: projects
permalink: /progetti/
permalink_en: /projects/
tags: unitoo freedom software freesoftware projects progetti
@ -22,7 +23,7 @@ tags: unitoo freedom software freesoftware projects progetti
<div class="card-body">
<h5 class="card-title font-weight-bold">{% t projects.radio.title %}</h5>
<p class="card-text">{% t projects.radio.text %}</p>
<a class="btn btn-secondary" href="{% link _pages/radio.html %}">{% t buttons.know_more %}</a>
<a class="btn btn-secondary" href="{% translate_link radio %}">{% t buttons.know_more %}</a>
</div>
</div>
</div>
@ -35,7 +36,7 @@ tags: unitoo freedom software freesoftware projects progetti
<div class="card-body">
<h5 class="card-title font-weight-bold">{% t projects.software.title %}</h5>
<p class="card-text">{% t projects.software.text %}</p>
<a class="btn btn-secondary" href="{% link _pages/software.html %}">{% t buttons.know_more %}</a>
<a class="btn btn-secondary" href="{% translate_link software %}">{% t buttons.know_more %}</a>
</div>
</div>
</div>
@ -48,7 +49,7 @@ tags: unitoo freedom software freesoftware projects progetti
<div class="card-body">
<h5 class="card-title font-weight-bold">{% t projects.peertube.title %}</h5>
<p class="card-text">{% t projects.peertube.text %}</p>
<a class="btn btn-secondary" href="{% link _pages/channel.html %}">{% t buttons.know_more %}</a>
<a class="btn btn-secondary" href="{% translate_link channel %}">{% t buttons.know_more %}</a>
</div>
</div>
</div>

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.radio
description: meta.descriptions.radio
namespace: radio
permalink: /progetti/radio/
permalink_en: /projects/radio/
tags: radio unitoo azuracast freedom software freesoftware
@ -18,7 +19,7 @@ tags: radio unitoo azuracast freedom software freesoftware
<li>AzuraCast: <a href="https://github.com/AzuraCast/AzuraCast" rel="nofollow" target="_blank"><i class="fab fa-github-circled"></i> https://github.com/AzuraCast/AzuraCast</a></li>
<li>Mixxx: <a href="https://mixxx.org/" rel="nofollow" target="_blank">https://mixxx.org/</a></li>
</ul>
{% t radio.text_1 %}<a href="{% link _pages/contacts.html %}">{% t radio.text_2 %}</a>{% t radio.text_3 %}
{% t radio.text_1 %}<a href="{% translate_link contactus %}">{% t radio.text_2 %}</a>{% t radio.text_3 %}
<br><br>
<a class="btn btn-primary btn-lg" href="https://radio.unitoo.it" rel="nofollow" target="_blank"><i class="fa-music"></i> {% t buttons.go_to_radio %}</a>
@ -26,7 +27,7 @@ tags: radio unitoo azuracast freedom software freesoftware
<hr>
<h2 class="mt-5">{% t radio.title_3 %}</h2>
<p>
{% t radio.text_4 %} <a href="{% link _pages/funkwhale.html %}">Funkwhale</a> {% t radio.text_5 %}
{% t radio.text_4 %} <a href="{% translate_link funkwhale %}">Funkwhale</a> {% t radio.text_5 %}
<br><br>
<a class="btn btn-secondary btn-lg" href="https://funkwhale.it/@UnitooWebRadio/" rel="nofollow" target="_blank"><i class="fa-cloud"></i> {% t radio.title_3 %}</a>
<br><br>

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.referral
description: meta.descriptions.referral
namespace: referral
permalink: /cybersecurity/referral/
permalink_en: /cybersecurity/referral/
tags: unitoo referral program
@ -17,7 +18,7 @@ tags: unitoo referral program
</p>
<p>{% t referral.description_2 %}</p>
<div class="text-center">
<a class="font-weight-bold btn btn-primary btn-lg mt-3" href="{% link _pages/services-and-products.html %}">{% t buttons.discover_our_services %}</a>
<a class="font-weight-bold btn btn-primary btn-lg mt-3" href="{% translate_link services-and-products %}">{% t buttons.discover_our_services %}</a>
</div>
</div>
</section>

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.rover
description: meta.descriptions.rover
namespace: rover
permalink: /cybersecurity/rover/
permalink_en: /cybersecurity/rover/
tags: unitoo cybersecurity sicurezza informatica hardening patch best practices module rover

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.services_and_products
description: meta.descriptions.services_and_products
namespace: services-and-products
permalink: /servizi-e-prodotti/
permalink_en: /services-and-products/
tags: unitoo services products prodotti servizi nextcloud pihole dnsserver cloud filestorage calendar software development consulenza technicaladvice

View file

@ -2,6 +2,7 @@
layout: default
title: meta.titles.software
description: meta.descriptions.software
namespace: software
permalink: /progetti/software/
permalink_en: /projects/software/
tags: unitoo company rights projects freesoftware nodrm freebios libreboot coreboot
@ -27,7 +28,7 @@ tags: unitoo company rights projects freesoftware nodrm freebios libreboot coreb
<div class="card-body">
<h2 class="font-weight-bold">{% t software.libreboot_title %}</h2>
<p>{% t software.libreboot_text %}</p>
<a href="{% link _pages/libreboot.html %}"> {% t buttons.know_more %}</a>
<a href="{% translate_link libreboot %}"> {% t buttons.know_more %}</a>
</div>
</div>
<div class="card">

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.sonde
description: meta.descriptions.sonde
namespace: sonde
permalink: /cybersecurity/sonda/
permalink_en: /cybersecurity/sonde/
tags: unitoo cybersecurity sicurezza informatica hardening patch best practices module sonde sonda

View file

@ -2,6 +2,7 @@
layout: simple
title: meta.titles.technical_assistance
description: meta.descriptions.technical_assistance
namespace: technical-assistance
permalink: /assistenza-e-consulenza/
permalink_en: /technical-assistance/
tags: unitoo technical assistance customer care consulenza periodica

View file

@ -77,11 +77,17 @@
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -204,7 +210,7 @@
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -65,11 +65,17 @@ Assistenza e consulenza" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/technical-assistance/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -138,8 +144,11 @@ Assistenza e consulenza" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -241,7 +250,7 @@ Assistenza e consulenza" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Chi siamo" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/aboutus/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -390,7 +396,7 @@ Chi siamo" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Comunicazioni" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/communications/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -135,8 +141,11 @@ Comunicazioni" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -239,7 +248,7 @@ Comunicazioni" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -77,11 +77,17 @@ Contatti" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/contactus/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -103,8 +109,11 @@ Contatti" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -208,7 +217,7 @@ Contatti" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Modulo Difesa" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/defence/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -167,8 +173,11 @@ Modulo Difesa" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -270,7 +279,7 @@ Modulo Difesa" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Modulo Grafene" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/graphene/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -116,8 +122,11 @@ Consigliamo questo Modulo a tutti coloro che trattano dati sensibili o che hanno
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -219,7 +228,7 @@ Consigliamo questo Modulo a tutti coloro che trattano dati sensibili o che hanno
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Sicurezza informatica" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -193,8 +199,11 @@ Sicurezza informatica" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -296,7 +305,7 @@ Sicurezza informatica" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Modulo Monitoraggio" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/monitoring/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -113,8 +119,11 @@ Modulo Monitoraggio" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -216,7 +225,7 @@ Modulo Monitoraggio" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Referral" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/referral/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -195,7 +201,7 @@ Referral" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Modulo Rover" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/rover/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -113,8 +119,11 @@ Modulo Rover" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -216,7 +225,7 @@ Modulo Rover" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -65,11 +65,17 @@ Modulo Sonda" />
<img height="30" alt="Logo ufficiale Unitoo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/chisiamo/">Chi siamo</a>
<a class="p-2 text-white" href="/servizi-e-prodotti/">Servizi e Prodotti</a>
<a class="btn btn-primary ml-3 text-white" href="/contattaci/">Contattaci</a>
<a class="ml-3 text-decoration-none" href="/en/cybersecurity/sonde/">🇬🇧</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
@ -113,8 +119,11 @@ Modulo Sonda" />
<p class="mt-5"> Ottenere informazioni o conoscere meglio i nostri Moduli è davvero semplice:<br><br>1. <strong>Contattaci per ottenere un appuntamento gratuito</strong> con i nostri tecnici<br>2. Renditi <strong>disponibile</strong> in tale appuntamento <strong>per una checklist gratuita</strong>, magari facendo partecipare anche il vostro tecnico di fiducia<br>3. Elaboreremo quindi un <strong>preventivo risolutivo</strong> personalizzato utilizzando le informazioni emerse dal sopralluogo, suddivise in fattori di rischio (da quelle più critiche a quelle meno gravi) oppure dalle esigenze esposte (servizi, configurazioni, richieste).<br><br> Sarete quindi liberi di valutare e scegliere tra i Moduli proposti, quella che riterrete essere la situazione migliore per voi, tenendo sempre in considerazione eventuali fattori di rischio segnalati.<br><br>Potete infine contattarci mandando un'email oppure chiamandoci al telefono, dal Lunedì al Venerdì nei seguenti orari: dalle <strong>9:30 alle 12:30</strong> oppure dalle <strong>14:30 alle 18:00 (CEST)</strong> &#128515;<br><br><small><i>Se volete sperimentare nuove tecnologie, potete contattarci anche nel Fediverso oppure su Matrix! I nostri link nel footer in fondo.</i></small><br><br></p>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a><br>
<a class="btn btn-primary" href="mailto:info@unitoo.it"><i class="fa fa-mail"></i> info@unitoo.it</a>
<br>
<a class="btn btn-secondary mt-2" href="tel:+393516172117"><i class="fa fa-phone"></i> +39 351 617 2117</a>
<br><br>
<hr class="mt-4 mb-4">
@ -216,7 +225,7 @@ Modulo Sonda" />
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/privacy-policy/">Informativa privacy</a>

View file

@ -0,0 +1,18 @@
{
"m.homeserver": {
"base_url": "https://matrix.unitoo.it"
}
,
"m.identity_server": {
"base_url": "https://matrix.unitoo.it"
}
,
"io.element.e2ee": {
"default": true,
"secure_backup_required": false,
"secure_backup_setup_methods": []
},
"im.vector.riot.e2ee": {
"default": true
}
}

View file

@ -0,0 +1,3 @@
{
"m.server": "matrix.unitoo.it:8448"
}

236
_site/en/404.html Normal file
View file

@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang=it>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#943526">
<meta name="no-results" content="No result">
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>
| Soluzioni software, sicurezza informatica e consulenza senza compromessi</title>
<meta name="generator" content="Jekyll v3.9.2" />
<meta property="og:title" content="
" />
<meta name="author" content="Unitoo" />
<meta property="og:locale" content="en" />
<meta name="description" content="
" />
<meta property="og:description" content="
" />
<link rel="canonical" href="https://www.unitoo.it/en/404.html" />
<meta property="og:url" content="https://www.unitoo.it/en/404.html" />
<meta property="og:site_name" content="Unitoo" />
<meta property="og:image" content="https://www.unitoo.it/en/logo.png" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:image" content="https://www.unitoo.it/en/logo.png" />
<meta property="twitter:title" content="
" />
<meta name="twitter:site" content="@UnitooInc" />
<meta name="twitter:creator" content="@Unitoo" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","author":{"@type":"Person","name":"Unitoo"},"description":"Soluzioni software, sicurezza informatica e consulenza senza compromessi","headline":"Unitoo","image":"https://www.unitoo.it/en/logo.png","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://www.unitoo.it/en/assets/images/logo-extended.webp"},"name":"Unitoo"},"url":"https://www.unitoo.it/en/404.html"}</script>
<!-- End Jekyll SEO tag -->
<meta property="og:type" content="website" />
<link rel='icon' href="https://www.unitoo.it/favicon.ico" type="image/x-icon">
<link rel='shortcut icon' href="https://www.unitoo.it/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="https://www.unitoo.it/apple-touch-icon.png">
<link rel="manifest" href="https://www.unitoo.it/path.webmanifest">
<link rel="stylesheet" type="text/css" href="/assets/main-6f2fde8209e857368b14b45467a034852eed10179454c715e41a78afba727a688cd9fe98be7e7b93f06c7ff924d24959b734402e9d9701944a3a44bacfc639ac.css" integrity="sha512-by/eggnoVzaLFLRUZ6A0hS7tEBeUVMcV5Bp4r7pyemiM2f6Yvn57k/Bsf/kk0klZtzRALp2XAZRKOkS6z8Y5rA==" crossorigin="anonymous">
</head>
<body>
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
<a class="btn-outline-primary" href="/en/aboutus/">About us</a>
<a class="btn-outline-primary" href="/en/services-and-products/">Services and Products</a>
<a class="btn-outline-primary" href="/en/technical-assistance/"> └ IT consultancy</a>
<a class="btn-outline-primary" href="/en/cybersecurity/"> └ Cybersecurity</a>
<a class="btn-outline-primary" href="/en/communications/"> └ Communications</a>
<a class="btn-outline-primary" href="/en/projects/">Projects</a>
<a class="btn-outline-primary" href="/en/contactus/">Contact us</a>
</div>
<navbar class="navbar site-header pt-2 pb-2 pl-0 pr-0 p-sm-0 sticky-top">
<div class="container">
<a class="site-title" href="/en/">
<img height="30" alt="Unitoo official logo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/en/aboutus/">About us</a>
<a class="p-2 text-white" href="/en/services-and-products/">Services and Products</a>
<a class="btn btn-primary ml-3 text-white" href="/en/contactus/">Contact us</a>
<a class="ml-3 text-decoration-none" href="">🇮🇹</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
<i class="fa-menu"></i>
</a>
</div>
</navbar>
<div class="page-content">
<div class="container-main">
<style type="text/css" media="screen">
.container {
/* margin: 10px auto; */
/* max-width: 600px; */
text-align: center;
}
h1 {
margin: 30px 0;
font-size: 4em;
line-height: 1;
letter-spacing: -1px;
}
</style>
<div class="container">
<h1>404</h1>
<p><strong>Page not found :(</strong></p>
<p>The requested page could not be found.</p>
</div>
</div>
</div>
<footer class="site-footer">
<div class="row text-center text-lg-left ml-0 mr-0">
<div class="col-0 col-lg-2 ml-auto"></div>
<nav class="col-12 col-lg-2">
<strong class="text-uppercase">Sitemap</strong>
<ul class="list-unstyled ml-0">
<li><a href="/">Home</a></li>
<li><a href="/en/aboutus/">About us</a></li>
<li><a href="/en/services-and-products/">Services and products</a>
</li>
<li><a href="/en/contactus/">Contacts</a></li>
</ul>
</nav>
<div class="col-12 col-lg-2">
<strong class="text-uppercase">Projects</strong>
<ul class="list-unstyled ml-0">
<li><a href="/en/cybersecurity/referral/">Referral</a></li>
<li><a href="/en/projects/radio/">Our CC and open source radio</a></li>
<li><a href="/en/projects/software/">Projects - The software</a></li>
<li><a href="/en/news/">News</a></li>
</ul>
</div>
<div class="col-12 col-lg-2">
<strong class="text-uppercase">Channels</strong>
<ul class="list-unstyled ml-0">
<li><a href="/en/partners/peertube/">Partners - Peertube Italia</a></li>
<li><a href="/en/partners/funkwhale/">Partners - Funkwhale Italia</a></li>
</ul>
</div>
<div class="col-1 col-lg-2 mr-auto"></div>
</div>
<br>
<div class="container">
<div class="input-group mb-5">
<input type="text" id="search-input" class="form-control rounded-right" placeholder="Do you want to look for something?"
aria-label="Do you want to look for something?" aria-describedby="button-search" autocomplete="off">
<div class="input-group-append">
<div id="results-container" class="dropdown-menu d-block p-0 border-0"></div>
</div>
</div>
<p>
Copyright © Unitoo 2017-2022<br>
Soluzioni software, sicurezza informatica e consulenza senza compromessi<br><br>
<small>
The site (except logos) is fully released under the terms of the AGPLv3 license. You can find the sources here:
<a target="_blank" rel="nofollow" href="https://git.unitoo.it/unitoo/website">
<i class="fas fa-link-ext"></i> Gitea
</a>
<br>
</small>
</p>
<ul class="list-inline social-buttons mt-2 mb-3 mx-auto">
<li class="list-inline-item">
<a href="https://git.unitoo.it/unitoo" rel="nofollow" target="_blank" data-original-title="" title="">
<i class="fab fa-gitea" data-original-title="" title=""></i></a>
</li>
<li class="list-inline-item">
<a href="https://github.com/UnitooTeam" rel="nofollow" target="_blank" data-original-title=""
title=""><i class="fab fa-github-circled" data-original-title="" title=""></i></a>
</li>
<li class="list-inline-item">
<a href="https://social.unitoo.it/admin" rel="me" target="_blank" data-original-title="" title="">
<i class="fab fa-fediverse"></i>
</a>
</li>
<li class="list-inline-item">
<a href="https://matrix.to/#/#nodo-1-unity:unitoo.it" target="_blank" rel="nofollow"
data-original-title="" title="">
<i class="fab fa-element"></i>
</a>
</li>
<li class="list-inline-item">
<a href="/en/news/" target="_blank" data-original-title="" title="">
<i class="fab fa-telegram"></i>
</a>
</li>
<li class="list-inline-item">
<a href="https://liberapay.com/Unitoo/" rel="nofollow" target="_blank" data-original-title="" title="">
<i class="fab fa-liberapay"></i>
</a>
</li>
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/en/privacy-policy/">Privacy policy</a>
</div>
</div>
</footer>
<script type="text/javascript" src="/assets/main-c65f21c86c980bf75bd95388cc2ff11603867d9ff67f3db2ec9b13476966fa52350a9c98dc6d1f2b66cb20fee2d4b9eec4a77ae7097493559a78a2a3664b3009.js" integrity="sha512-xl8hyGyYC/db2VOIzC/xFgOGfZ/2fz2y7JsTR2lm+lI1CpyY3G0fK2bLIP7i1LnuxKd65wl0k1WaeKKjZkswCQ==" crossorigin="anonymous"></script>
<script type="text/javascript" src="/assets/matomo-e9fa97b4ef39fda9e24f7c0db2744bdb731c84e01a8d86e42498e98788ec7a460d26029adc873f45b18028476792bae8286b88c013ee24d3dd3d72cff6923f8f.js" integrity="sha512-6fqXtO85/aniT3wNsnRL23MchOAajYbkJJjph4jsekYNJgKa3Ic/RbGAKEdnkrroKGuIwBPuJNPdPXLP9pI/jw==" crossorigin="anonymous"></script>
<script defer async="" type="text/javascript" src="/assets/analytics-10d4957b588a254ce37a63c7be90e4aaa63ec55cd10c784ff67cbcc98b793e6fb635942cd4abce23d24fb6777b0475962c65e10d477ec4603cc6eac28480a62c.js" integrity="sha512-ENSVe1iKJUzjemPHvpDkqqY+xVzRDHhP9ny8yYt5Pm+2NZQs1KvOI9JPtnd7BHWWLGXhDUd+xGA8xurChICmLA==" crossorigin="anonymous"></script>
<div id="cookie-notice">
<span>Utilizziamo Matomo (una tecnologia libera) per analizzare e migliorare il servizio che offriamo.</span>
<a id="cookie-notice-accept" class="btn btn-primary btn-sm text-white">Approva</a>
<a href="https://matomo.org/gdpr/" rel="nofollow" target="_blank" class="btn btn-primary btn-sm text-white">Scopri di più</a>
<a id="cookie-notice-dismiss" class="mt-1 float-right text-decoration-none border border-secondary rounded btn btn-sm btn-secondary text-white">X</a>
</div>
</body>
</html>

661
_site/en/COPYING Executable file
View file

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.

422
_site/en/aboutus/index.html Normal file
View file

@ -0,0 +1,422 @@
<!DOCTYPE html>
<html lang=it>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#943526">
<meta name="no-results" content="No result">
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>
About us | Unitoo</title>
<meta name="generator" content="Jekyll v3.9.2" />
<meta property="og:title" content="
About us" />
<meta name="author" content="Unitoo" />
<meta property="og:locale" content="en" />
<meta name="description" content="
About us, our core values and mission." />
<meta property="og:description" content="
About us, our core values and mission." />
<link rel="canonical" href="https://www.unitoo.it/en/aboutus/" />
<meta property="og:url" content="https://www.unitoo.it/en/aboutus/" />
<meta property="og:site_name" content="Unitoo" />
<meta property="og:image" content="https://www.unitoo.it/en/logo.png" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:image" content="https://www.unitoo.it/en/logo.png" />
<meta property="twitter:title" content="
About us" />
<meta name="twitter:site" content="@UnitooInc" />
<meta name="twitter:creator" content="@Unitoo" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","author":{"@type":"Person","name":"Unitoo"},"description":"meta.descriptions.aboutus","headline":"meta.titles.aboutus","image":"https://www.unitoo.it/en/logo.png","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://www.unitoo.it/en/assets/images/logo-extended.webp"},"name":"Unitoo"},"url":"https://www.unitoo.it/en/aboutus/"}</script>
<!-- End Jekyll SEO tag -->
<meta property="og:type" content="website" />
<link rel='icon' href="https://www.unitoo.it/favicon.ico" type="image/x-icon">
<link rel='shortcut icon' href="https://www.unitoo.it/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="https://www.unitoo.it/apple-touch-icon.png">
<link rel="manifest" href="https://www.unitoo.it/path.webmanifest">
<link rel="stylesheet" type="text/css" href="/assets/main-6f2fde8209e857368b14b45467a034852eed10179454c715e41a78afba727a688cd9fe98be7e7b93f06c7ff924d24959b734402e9d9701944a3a44bacfc639ac.css" integrity="sha512-by/eggnoVzaLFLRUZ6A0hS7tEBeUVMcV5Bp4r7pyemiM2f6Yvn57k/Bsf/kk0klZtzRALp2XAZRKOkS6z8Y5rA==" crossorigin="anonymous">
</head>
<body>
<navbar class="navbar site-header pt-2 pb-2 pl-0 pr-0 p-sm-0 sticky-top">
<div class="container">
<a class="site-title" href="/en/">
<img height="30" alt="Unitoo official logo" src="/assets/logo-extended-6cd92f43ef91fc074c523a982cfa7b050b83f446f4c499195787207823803969930684e6228ff1d1bda6e3d12a4cab4611a5cfe04f75e5c583a521eb393cf9a3.webp" integrity="sha512-bNkvQ++R/AdMUjqYLPp7BQuD9Eb0xJkZV4cgeCOAOWmTBoTmIo/x0b2m49EqTKtGEaXP4E915cWDpSHrOTz5ow==" crossorigin="anonymous">
</a>
<nav class="my-2 d-none d-lg-block">
<a class="text-white" id="button-search" href="#search-input"><i class="fa fa-search"></i></a>
<a class="p-2 text-white" href="/en/aboutus/">About us</a>
<a class="p-2 text-white" href="/en/services-and-products/">Services and Products</a>
<a class="btn btn-primary ml-3 text-white" href="/en/contactus/">Contact us</a>
<a class="ml-3 text-decoration-none" href="/chisiamo/">🇮🇹</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
<i class="fa-menu"></i>
</a>
</div>
</navbar>
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
<a class="btn-outline-primary" href="/en/aboutus/">About us</a>
<a class="btn-outline-primary" href="/en/services-and-products/">Services and Products</a>
<a class="btn-outline-primary" href="/en/technical-assistance/"> └ IT consultancy</a>
<a class="btn-outline-primary" href="/en/cybersecurity/"> └ Cybersecurity</a>
<a class="btn-outline-primary" href="/en/communications/"> └ Communications</a>
<a class="btn-outline-primary" href="/en/projects/">Projects</a>
<a class="btn-outline-primary" href="/en/contactus/">Contact us</a>
</div>
<section class="jumbotron jumbotron-fluid bg-transparent d-flex header header-aboutus text-white mb-0">
<div class="w-100 d-flex" style="background-color: rgba(0,0,0,0.5)">
<div class="container my-auto">
<h1 class="display-4">
Passionate, professional and assertive
</h1>
<p class="lead">
We want to go beyond the allure of technological progress, we want people to be able to turn it into emotions and make it their own. This is why we give great priority to free, ethical products and training.<br><br> Our commitment is aimed at improving and strengthening the software and IT security landscape through the training and growth of the individual; this makes us feel part of progress in the strictest sense.<br><br><i> «You give a man a fish and you feed him for a day. Teach him to fish and you will feed him for life.»</i>
</p>
</div>
</div>
</section>
<aside class="aside bg-white">
<div class="container">
<div class="row">
<h4 class="col-lg-8">
Come and visit us in the Fediverse! You will also know a nice community!
</h4>
<div class="col text-lg-right">
<a class="btn btn-secondary btn-lg ml-auto" target="_blank" rel="nofollow" href="https://social.unitoo.it/admin" title="The profile is public, you will need a federated account to participate in conversations">
<i class="fab fa-fediverse"></i>
Here is our profile!
</a>
</div>
</div>
</div>
</aside>
<section class="jumbotron jumbotron-fluid bg-transparent">
<div class="container">
<h1 class="text-center">Who we are and what we believe in</h1>
<hr class="border-primary">
<p class="mt-5">We want to start with a quote from Eleanor Roosevelt: <br><i>"The future belongs to those who believe in the beauty of their dreams"</i><br><br>We believe we can see a day when each of us will be an integral part of civilization not only as a resource, but as a man.<br>This is why we are constantly engaged in the world of free software at various levels, we train children in this sense and we make the communities participate in our results.</p>
<br>
<h4>Here is the staff</h4>
<div class="card-columns">
<div class="card border-0 shadow">
<img class="card-img-top" alt="Portrait photo of Claudio Maradonna" src="/assets/cmaradonna-175260e3f5944808218946241f374a1f2e56ffa8e01ef7e8aaf8e58b06cfce472ff9f200a2180e733fd69c62957c6a3cdbbbc05c209d7b2426e7f698c1365362.webp" integrity="sha512-F1Jg4/WUSAghiUYkHzdKHy5W/6jgHvfoqvjliwbPzkcv+fIAohgOcz/WnGKVfGo827vAXCCdeyQm5/aYwTZTYg==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Claudio Maradonna</h5>
<p class="card-text">Unitoo founder and developer.<br> He enters the world of software at the age of 13 and from there he begins his adventure in the GNU/Linux world, between an overclock and the other.<br><br> Today he develops mainly with Ruby and Rails. He has a weakness for C++ <3</p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" class="mr-2" href="https://social.unitoo.it/claudio">
<i class="fab fa-fediverse"></i>
Fediverse
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://git.unitoo.it/claudiomaradonna">
<i class="fab fa-gitea"></i>
Gitea
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://gitlab.com/claudiomaradonna">
<i class="fab fa-gitlab "></i>
GitLab
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" class="mr-2" href="https://github.com/FiloSpaTeam">
<i class="fab fa-github-circled "></i>
GitHub
</a>
</li>
</ul>
</div>
<div class="card border-0 shadow">
<img class="card-img-top" alt="Portrait photo of Lorenzo Tucci" src="/assets/yamabiiko-3d812d63c6eada7f2f3b0e74f8523cc458ad904cd412aff1768f5f8b0c5a10553025eac2ddc001ecbd384fcc95c3c6c26504b56c4d674a411031fbde2136fb10.webp" integrity="sha512-PYEtY8bq2n8vOw50+FI8xFitkEzUEq/xdo9fiwxaEFUwJerC3cAB7L04T8yVw8bCZQS1bE1nSkEQMfveITb7EA==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Lorenzo Tucci</h5>
<p class="card-text"><pre><code> Compiling yamabiiko v0.1.0 (file:///projects/unsafe-yamabiiko)<br> error[E0133]: call to yamabiiko is unsafe and requires unsafe function or block<br> --> src/main.rs:4:5<br> |<br> 4 | dangerous();<br> | ^^^^^^^^^^^ call to unsafe function<br> |<br> = note: consult the function's documentation for information on how to avoid undefined behavior<br> <br> error: aborting due to previous error<br> <br> For more information about this error, try `rustc --explain yamabiiko`.<br> error: could not compile `unsafe-example`<br> <br> To learn more, run the command again with --verbose.<br> </code></pre> </p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://gitlab.com/yamabik0"><i class="fab fa-gitlab "></i>
GitLab
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://github.com/yamabiiko"><i class="fab fa-github-circled "></i>
GitHub
</a>
</li>
</ul>
</div>
<div class="card border-0 shadow">
<img class="card-img-top" alt="Portrait photo of Simone Capparucci" src="/assets/frenky-7aec1732e7d9638e4455d8787e5657c291e8c5333c9768e20f2b9b6ac84dcb67bc67c98ecd3e409b238644f426cf2d0cead4c0ba342647cf7e4592d786317482.webp" integrity="sha512-euwXMufZY45EVdh4flZXwpHoxTM8l2jiDyubashNy2e8Z8mOzT5AmyOGRPQmzy0M6tTAujQmR89+RZLXhjF0gg==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Simone Capparucci</h5>
<p class="card-text"> <blockquote class='blockquote'> Non andartene docile in quella buona notte,<br> i vecchi dovrebbero bruciare e delirare al serrarsi del giorno;<br> infuria, infuria, contro il morire della luce.<br> <footer class='blockquote-footer'>Dylan Thomas, Poesie (Torino, Einaudi 1965)</footer> </blockquote></p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.instagram.com/xxfrenkyxx">
<i class="fab fa-instagram "></i>
Instagram
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" class="mr-2" href="https://github.com/Frenky1993">
<i class="fab fa-github-circled "></i>
GitHub
</a>
</li>
</ul>
</div>
<div class="card border-0 shadow">
<img class="card-img-top" alt='Portrait photo of Angelo "Sydro"' src="/assets/sydro-1fb75d66312034ed5f57f329ddc7722fdd1fb8b8bdfd8c1c2fa6f5b0f0cc1ce48ff96a36d36d03c835724407ce682f82abcfa1f1dde234a94553bcc4b85b1ab9.webp" integrity="sha512-H7ddZjEgNO1fV/Mp3cdyL90fuLi9/YwcL6b1sPDMHOSP+Wo2020DyDVyRAfOaC+Cq8+h8d3iNKlFU7zEuFsauQ==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Angelo "Sydro"</h5>
<p class="card-text">System Design & Automation expert, as DevOps creates customized systems for its customers, using the most modern automation and continuous building techniques. Militant in the SaLUG! for the past 20 years, he has been contributing to Free as in freedom Software projects.</p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.instagram.com/sydro83/"><i class="fab fa-instagram "></i>
Instagram
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://twitter.com/sydro83"><i class="fab fa-twitter "></i>
Twitter
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.flickr.com/photos/130497152@N05/"><i class="fab fa-flickr "></i>
Flickr
</a>
</li>
</ul>
</div>
<div class="card border-0 shadow">
<img class="card-img-top" alt='Portrait photo of Fabio "Desmovalvo"' src="/assets/fabio_purple-ea7a2b308b5a8bfdcca81e62b2e58d0b7b50f6615c4f94b24d95756e60b3dc1f338feefa7fe8bbcdd07cbf02fe1a7c7d70b3269f8f96b1c1ef1600a3d2ae0097.webp" integrity="sha512-6norMItai/3MqB5isuWNC3tQ9mFcT5SyTZV1bmCz3B8zj+76f+i7zdB8vwL+Gnx9cLMmn4+WscHvFgCj0q4Alw==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Fabio "Desmovalvo"</h5>
<p class="card-text">A Salentino with a PhD in computer science & engineering, but above all passionate/fanatic/sick of free as in freedom software, music, photography and so on and so forth ...</p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.instagram.com/desmovalvo/"><i class="fab fa-instagram "></i>
Instagram
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://twitter.com/desmovalvo"><i class="fab fa-twitter "></i>
Twitter
</a>
</li>
</ul>
</div>
<div class="card border-0 shadow">
<img class="card-img-top" alt="Portrait photo of Sara Freddoni" src="/assets/sara-e538133815d0b5f7a3510cc5b2548641ec3ed9f5c5242d8e822814b4f286c750f277ee1c9184a8c161342e6bcc4bf93aaa6a5a0066ef10594c8d128117488980.webp" integrity="sha512-5TgTOBXQtfejUQzFslSGQew+2fXFJC2OgigUtPKGx1Dyd+4ckYSowWE0LmvMS/k6qmpaAGbvEFlMjRKBF0iJgA==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Sara Freddoni</h5>
<p class="card-text">From the Marche region, graduated in Foreign Languages and Cultures, passionate about music, cinema, theater, and above all books. I became passionate about literature when I discovered that it was enough to read it with other points of view to discover that it is actually about us and can be less boring than a sequel to an epic film.</p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.instagram.com/sara_freddoni/">
<i class="fab fa-instagram "></i>
Instagram
</a>
</li>
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.facebook.com/sara.freddoni">
<i class="fab fa-facebook "></i>
Facebook
</a>
</li>
</ul>
</div>
<div class="card border-0 shadow">
<img class="card-img-top" alt="Portrait photo of Stefano Amandonico, founder of grafixprint.it" src="/assets/stefano_amandonico-55985a93525e2865bf5fa81f1b30d1cd9cfa7bd05923da3292526576d62f51176038fa04a844c1680be63fb3aa138fbda93ccc597c0e15413cf0657b6c0cddd5.webp" integrity="sha512-VZhak1JeKGW/X6gfGzDRzZz6e9BZI9oyklJldtYvURdgOPoEqETBaAvmP7OqE4+9qTzMWXwOFUE88GV7bAzd1Q==" crossorigin="anonymous">
<div class="card-body">
<h5 class="card-title">Stefano Amandonico</h5>
<p class="card-text">Founder of Grafixprint, a company that deals with digital printing, web design and artworks. A professional like few others ... and very nice!</p>
</div>
<ul class="list-group list-group-flush ml-0">
<li class="list-group-item">
<a rel="nofollow" target="_blank" href="https://www.grafixprint.it"><i class="fas fa-globe "></i>
www.grafixprint.it
</a>
</li>
</ul>
</div>
</div>
</div>
</section>
<footer class="site-footer">
<div class="row text-center text-lg-left ml-0 mr-0">
<div class="col-0 col-lg-2 ml-auto"></div>
<nav class="col-12 col-lg-2">
<strong class="text-uppercase">Sitemap</strong>
<ul class="list-unstyled ml-0">
<li><a href="/">Home</a></li>
<li><a href="/en/aboutus/">About us</a></li>
<li><a href="/en/services-and-products/">Services and products</a>
</li>
<li><a href="/en/contactus/">Contacts</a></li>
</ul>
</nav>
<div class="col-12 col-lg-2">
<strong class="text-uppercase">Projects</strong>
<ul class="list-unstyled ml-0">
<li><a href="/en/cybersecurity/referral/">Referral</a></li>
<li><a href="/en/projects/radio/">Our CC and open source radio</a></li>
<li><a href="/en/projects/software/">Projects - The software</a></li>
<li><a href="/en/news/">News</a></li>
</ul>
</div>
<div class="col-12 col-lg-2">
<strong class="text-uppercase">Channels</strong>
<ul class="list-unstyled ml-0">
<li><a href="/en/partners/peertube/">Partners - Peertube Italia</a></li>
<li><a href="/en/partners/funkwhale/">Partners - Funkwhale Italia</a></li>
</ul>
</div>
<div class="col-1 col-lg-2 mr-auto"></div>
</div>
<br>
<div class="container">
<div class="input-group mb-5">
<input type="text" id="search-input" class="form-control rounded-right" placeholder="Do you want to look for something?"
aria-label="Do you want to look for something?" aria-describedby="button-search" autocomplete="off">
<div class="input-group-append">
<div id="results-container" class="dropdown-menu d-block p-0 border-0"></div>
</div>
</div>
<p>
Copyright © Unitoo 2017-2022<br>
Soluzioni software, sicurezza informatica e consulenza senza compromessi<br><br>
<small>
The site (except logos) is fully released under the terms of the AGPLv3 license. You can find the sources here:
<a target="_blank" rel="nofollow" href="https://git.unitoo.it/unitoo/website">
<i class="fas fa-link-ext"></i> Gitea
</a>
<br>
</small>
</p>
<ul class="list-inline social-buttons mt-2 mb-3 mx-auto">
<li class="list-inline-item">
<a href="https://git.unitoo.it/unitoo" rel="nofollow" target="_blank" data-original-title="" title="">
<i class="fab fa-gitea" data-original-title="" title=""></i></a>
</li>
<li class="list-inline-item">
<a href="https://github.com/UnitooTeam" rel="nofollow" target="_blank" data-original-title=""
title=""><i class="fab fa-github-circled" data-original-title="" title=""></i></a>
</li>
<li class="list-inline-item">
<a href="https://social.unitoo.it/admin" rel="me" target="_blank" data-original-title="" title="">
<i class="fab fa-fediverse"></i>
</a>
</li>
<li class="list-inline-item">
<a href="https://matrix.to/#/#nodo-1-unity:unitoo.it" target="_blank" rel="nofollow"
data-original-title="" title="">
<i class="fab fa-element"></i>
</a>
</li>
<li class="list-inline-item">
<a href="/en/news/" target="_blank" data-original-title="" title="">
<i class="fab fa-telegram"></i>
</a>
</li>
<li class="list-inline-item">
<a href="https://liberapay.com/Unitoo/" rel="nofollow" target="_blank" data-original-title="" title="">
<i class="fab fa-liberapay"></i>
</a>
</li>
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - IT02324570445 - REA:
AP-204883 - info@unitoo.it
<br>
<a href="/en/privacy-policy/">Privacy policy</a>
</div>
</div>
</footer>
<script type="text/javascript" src="/assets/main-c65f21c86c980bf75bd95388cc2ff11603867d9ff67f3db2ec9b13476966fa52350a9c98dc6d1f2b66cb20fee2d4b9eec4a77ae7097493559a78a2a3664b3009.js" integrity="sha512-xl8hyGyYC/db2VOIzC/xFgOGfZ/2fz2y7JsTR2lm+lI1CpyY3G0fK2bLIP7i1LnuxKd65wl0k1WaeKKjZkswCQ==" crossorigin="anonymous"></script>
<script type="text/javascript" src="/assets/matomo-e9fa97b4ef39fda9e24f7c0db2744bdb731c84e01a8d86e42498e98788ec7a460d26029adc873f45b18028476792bae8286b88c013ee24d3dd3d72cff6923f8f.js" integrity="sha512-6fqXtO85/aniT3wNsnRL23MchOAajYbkJJjph4jsekYNJgKa3Ic/RbGAKEdnkrroKGuIwBPuJNPdPXLP9pI/jw==" crossorigin="anonymous"></script>
<script defer async="" type="text/javascript" src="/assets/analytics-10d4957b588a254ce37a63c7be90e4aaa63ec55cd10c784ff67cbcc98b793e6fb635942cd4abce23d24fb6777b0475962c65e10d477ec4603cc6eac28480a62c.js" integrity="sha512-ENSVe1iKJUzjemPHvpDkqqY+xVzRDHhP9ny8yYt5Pm+2NZQs1KvOI9JPtnd7BHWWLGXhDUd+xGA8xurChICmLA==" crossorigin="anonymous"></script>
<div id="cookie-notice">
<span>Utilizziamo Matomo (una tecnologia libera) per analizzare e migliorare il servizio che offriamo.</span>
<a id="cookie-notice-accept" class="btn btn-primary btn-sm text-white">Approva</a>
<a href="https://matomo.org/gdpr/" rel="nofollow" target="_blank" class="btn btn-primary btn-sm text-white">Scopri di più</a>
<a id="cookie-notice-dismiss" class="mt-1 float-right text-decoration-none border border-secondary rounded btn btn-sm btn-secondary text-white">X</a>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -0,0 +1,74 @@
/*!!
* Matomo - free/libre analytics platform
*
* JavaScript tracking client
*
* @link https://piwik.org
* @source https://github.com/matomo-org/matomo/blob/master/js/piwik.js
* @license https://piwik.org/free-software/bsd/ BSD-3 Clause (also in js/LICENSE.txt)
* @license magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt BSD-3-Clause
*/
;if(typeof _paq!=="object"){_paq=[]}if(typeof window.Matomo!=="object"){window.Matomo=window.Piwik=(function(){var r,b={},z={},J=document,g=navigator,ab=screen,W=window,h=W.performance||W.mozPerformance||W.msPerformance||W.webkitPerformance,t=W.encodeURIComponent,V=W.decodeURIComponent,k=unescape,L=[],H,u,al=[],y=0,af=0,X=0,m=false;function p(at){try{return V(at)}catch(au){return unescape(at)}}function M(au){var at=typeof au;return at!=="undefined"}function C(at){return typeof at==="function"}function Z(at){return typeof at==="object"}function x(at){return typeof at==="string"||at instanceof String}function ak(at){return typeof at==="number"||at instanceof Number
}function ac(at){return M(at)&&(ak(at)||(x(at)&&at.length))}function D(au){if(!au){return true}var at;var av=true;for(at in au){if(Object.prototype.hasOwnProperty.call(au,at)){av=false}}return av}function ao(at){var au=typeof console;if(au!=="undefined"&&console&&console.error){console.error(at)}}function aj(){var ay,ax,aA,au,at;for(ay=0;ay<arguments.length;ay+=1){at=null;if(arguments[ay]&&arguments[ay].slice){at=arguments[ay].slice()}au=arguments[ay];aA=au.shift();var az,av;var aw=x(aA)&&aA.indexOf("::")>0;if(aw){az=aA.split("::");av=az[0];aA=az[1];if("object"===typeof u[av]&&"function"===typeof u[av][aA]){u[av][aA].apply(u[av],au)}else{if(at){al.push(at)}}}else{for(ax=0;ax<L.length;ax++){if(x(aA)){av=L[ax];var aB=aA.indexOf(".")>0;if(aB){az=aA.split(".");if(av&&"object"===typeof av[az[0]]){av=av[az[0]];aA=az[1]}else{if(at){al.push(at);break}}}if(av[aA]){av[aA].apply(av,au)}else{var aC="The method '"+aA+'\' was not found in "_paq" variable. Please have a look at the Matomo tracker documentation: https://developer.matomo.org/api-reference/tracking-javascript';
ao(aC);if(!aB){throw new TypeError(aC)}}if(aA==="addTracker"){break}if(aA==="setTrackerUrl"||aA==="setSiteId"){break}}else{aA.apply(L[ax],au)}}}}}function ar(aw,av,au,at){if(aw.addEventListener){aw.addEventListener(av,au,at);return true}if(aw.attachEvent){return aw.attachEvent("on"+av,au)}aw["on"+av]=au}function n(at){if(J.readyState==="complete"){at()}else{if(W.addEventListener){W.addEventListener("load",at,false)}else{if(W.attachEvent){W.attachEvent("onload",at)}}}}function q(aw){var at=false;if(J.attachEvent){at=J.readyState==="complete"}else{at=J.readyState!=="loading"}if(at){aw();return}var av;if(J.addEventListener){ar(J,"DOMContentLoaded",function au(){J.removeEventListener("DOMContentLoaded",au,false);if(!at){at=true;aw()}})}else{if(J.attachEvent){J.attachEvent("onreadystatechange",function au(){if(J.readyState==="complete"){J.detachEvent("onreadystatechange",au);if(!at){at=true;aw()}}});if(J.documentElement.doScroll&&W===W.top){(function au(){if(!at){try{J.documentElement.doScroll("left")
}catch(ax){setTimeout(au,0);return}at=true;aw()}}())}}}ar(W,"load",function(){if(!at){at=true;aw()}},false)}function ag(au,az,aA){if(!au){return""}var at="",aw,av,ax,ay;for(aw in b){if(Object.prototype.hasOwnProperty.call(b,aw)){ay=b[aw]&&"function"===typeof b[aw][au];if(ay){av=b[aw][au];ax=av(az||{},aA);if(ax){at+=ax}}}}return at}function am(au){var at;m=true;ag("unload");at=new Date();var av=at.getTimeAlias();if((r-av)>3000){r=av+3000}if(r){do{at=new Date()}while(at.getTimeAlias()<r)}}function o(av,au){var at=J.createElement("script");at.type="text/javascript";at.src=av;if(at.readyState){at.onreadystatechange=function(){var aw=this.readyState;if(aw==="loaded"||aw==="complete"){at.onreadystatechange=null;au()}}}else{at.onload=au}J.getElementsByTagName("head")[0].appendChild(at)}function N(){var at="";try{at=W.top.document.referrer}catch(av){if(W.parent){try{at=W.parent.document.referrer}catch(au){at=""}}}if(at===""){at=J.referrer}return at}function s(at){var av=new RegExp("^([a-z]+):"),au=av.exec(at);
return au?au[1]:null}function d(at){var av=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),au=av.exec(at);return au?au[1]:at}function G(at){return(/^[0-9][0-9]*(\.[0-9]+)?$/).test(at)}function Q(av,aw){var at={},au;for(au in av){if(av.hasOwnProperty(au)&&aw(av[au])){at[au]=av[au]}}return at}function B(av){var at={},au;for(au in av){if(av.hasOwnProperty(au)){if(G(av[au])){at[au]=Math.round(av[au])}else{throw new Error('Parameter "'+au+'" provided value "'+av[au]+'" is not valid. Please provide a numeric value.')}}}return at}function l(au){var av="",at;for(at in au){if(au.hasOwnProperty(at)){av+="&"+t(at)+"="+t(au[at])}}return av}function an(au,at){au=String(au);return au.lastIndexOf(at,0)===0}function U(au,at){au=String(au);return au.indexOf(at,au.length-at.length)!==-1}function A(au,at){au=String(au);return au.indexOf(at)!==-1}function f(au,at){au=String(au);return au.substr(0,au.length-at)}function I(aw,av,ay){aw=String(aw);if(!ay){ay=""}var at=aw.indexOf("#");var az=aw.length;
if(at===-1){at=az}var ax=aw.substr(0,at);var au=aw.substr(at,az-at);if(ax.indexOf("?")===-1){ax+="?"}else{if(!U(ax,"?")){ax+="&"}}return ax+t(av)+"="+t(ay)+au}function j(au,av){au=String(au);if(au.indexOf("?"+av+"=")===-1&&au.indexOf("&"+av+"=")===-1){return au}var aw=au.indexOf("?");if(aw===-1){return au}var at=au.substr(aw+1);var aA=au.substr(0,aw);if(at){var aB="";var aD=at.indexOf("#");if(aD!==-1){aB=at.substr(aD+1);at=at.substr(0,aD)}var ax;var az=at.split("&");var ay=az.length-1;for(ay;ay>=0;ay--){ax=az[ay].split("=")[0];if(ax===av){az.splice(ay,1)}}var aC=az.join("&");if(aC){aA=aA+"?"+aC}if(aB){aA+="#"+aB}}return aA}function e(av,au){var at="[\\?&#]"+au+"=([^&#]*)";var ax=new RegExp(at);var aw=ax.exec(av);return aw?p(aw[1]):""}function a(at){if(at&&String(at)===at){return at.replace(/^\s+|\s+$/g,"")}return at}function F(at){return unescape(t(at))}function aq(aI){var av=function(aO,aN){return(aO<<aN)|(aO>>>(32-aN))},aJ=function(aQ){var aO="",aP,aN;for(aP=7;aP>=0;aP--){aN=(aQ>>>(aP*4))&15;
aO+=aN.toString(16)}return aO},ay,aL,aK,au=[],aC=1732584193,aA=4023233417,az=2562383102,ax=271733878,aw=3285377520,aH,aG,aF,aE,aD,aM,at,aB=[];aI=F(aI);at=aI.length;for(aL=0;aL<at-3;aL+=4){aK=aI.charCodeAt(aL)<<24|aI.charCodeAt(aL+1)<<16|aI.charCodeAt(aL+2)<<8|aI.charCodeAt(aL+3);aB.push(aK)}switch(at&3){case 0:aL=2147483648;break;case 1:aL=aI.charCodeAt(at-1)<<24|8388608;break;case 2:aL=aI.charCodeAt(at-2)<<24|aI.charCodeAt(at-1)<<16|32768;break;case 3:aL=aI.charCodeAt(at-3)<<24|aI.charCodeAt(at-2)<<16|aI.charCodeAt(at-1)<<8|128;break}aB.push(aL);while((aB.length&15)!==14){aB.push(0)}aB.push(at>>>29);aB.push((at<<3)&4294967295);for(ay=0;ay<aB.length;ay+=16){for(aL=0;aL<16;aL++){au[aL]=aB[ay+aL]}for(aL=16;aL<=79;aL++){au[aL]=av(au[aL-3]^au[aL-8]^au[aL-14]^au[aL-16],1)}aH=aC;aG=aA;aF=az;aE=ax;aD=aw;for(aL=0;aL<=19;aL++){aM=(av(aH,5)+((aG&aF)|(~aG&aE))+aD+au[aL]+1518500249)&4294967295;aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}for(aL=20;aL<=39;aL++){aM=(av(aH,5)+(aG^aF^aE)+aD+au[aL]+1859775393)&4294967295;
aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}for(aL=40;aL<=59;aL++){aM=(av(aH,5)+((aG&aF)|(aG&aE)|(aF&aE))+aD+au[aL]+2400959708)&4294967295;aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}for(aL=60;aL<=79;aL++){aM=(av(aH,5)+(aG^aF^aE)+aD+au[aL]+3395469782)&4294967295;aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}aC=(aC+aH)&4294967295;aA=(aA+aG)&4294967295;az=(az+aF)&4294967295;ax=(ax+aE)&4294967295;aw=(aw+aD)&4294967295}aM=aJ(aC)+aJ(aA)+aJ(az)+aJ(ax)+aJ(aw);return aM.toLowerCase()}function ae(av,at,au){if(!av){av=""}if(!at){at=""}if(av==="translate.googleusercontent.com"){if(au===""){au=at}at=e(at,"u");av=d(at)}else{if(av==="cc.bingj.com"||av==="webcache.googleusercontent.com"||av.slice(0,5)==="74.6."){at=J.links[0].href;av=d(at)}}return[av,at,au]}function O(au){var at=au.length;if(au.charAt(--at)==="."){au=au.slice(0,at)}if(au.slice(0,2)==="*."){au=au.slice(1)}if(au.indexOf("/")!==-1){au=au.substr(0,au.indexOf("/"))}return au}function ap(au){au=au&&au.text?au.text:au;if(!x(au)){var at=J.getElementsByTagName("title");
if(at&&M(at[0])){au=at[0].text}}return au}function S(at){if(!at){return[]}if(!M(at.children)&&M(at.childNodes)){return at.children}if(M(at.children)){return at.children}return[]}function Y(au,at){if(!au||!at){return false}if(au.contains){return au.contains(at)}if(au===at){return true}if(au.compareDocumentPosition){return !!(au.compareDocumentPosition(at)&16)}return false}function P(av,aw){if(av&&av.indexOf){return av.indexOf(aw)}if(!M(av)||av===null){return -1}if(!av.length){return -1}var at=av.length;if(at===0){return -1}var au=0;while(au<at){if(av[au]===aw){return au}au++}return -1}function i(av){if(!av){return false}function at(ax,ay){if(W.getComputedStyle){return J.defaultView.getComputedStyle(ax,null)[ay]}if(ax.currentStyle){return ax.currentStyle[ay]}}function aw(ax){ax=ax.parentNode;while(ax){if(ax===J){return true}ax=ax.parentNode}return false}function au(az,aF,ax,aC,aA,aD,aB){var ay=az.parentNode,aE=1;if(!aw(az)){return false}if(9===ay.nodeType){return true}if("0"===at(az,"opacity")||"none"===at(az,"display")||"hidden"===at(az,"visibility")){return false
}if(!M(aF)||!M(ax)||!M(aC)||!M(aA)||!M(aD)||!M(aB)){aF=az.offsetTop;aA=az.offsetLeft;aC=aF+az.offsetHeight;ax=aA+az.offsetWidth;aD=az.offsetWidth;aB=az.offsetHeight}if(av===az&&(0===aB||0===aD)&&"hidden"===at(az,"overflow")){return false}if(ay){if(("hidden"===at(ay,"overflow")||"scroll"===at(ay,"overflow"))){if(aA+aE>ay.offsetWidth+ay.scrollLeft||aA+aD-aE<ay.scrollLeft||aF+aE>ay.offsetHeight+ay.scrollTop||aF+aB-aE<ay.scrollTop){return false}}if(az.offsetParent===ay){aA+=ay.offsetLeft;aF+=ay.offsetTop}return au(ay,aF,ax,aC,aA,aD,aB)}return true}return au(av)}var ai={htmlCollectionToArray:function(av){var at=[],au;if(!av||!av.length){return at}for(au=0;au<av.length;au++){at.push(av[au])}return at},find:function(at){if(!document.querySelectorAll||!at){return[]}var au=document.querySelectorAll(at);return this.htmlCollectionToArray(au)},findMultiple:function(av){if(!av||!av.length){return[]}var au,aw;var at=[];for(au=0;au<av.length;au++){aw=this.find(av[au]);at=at.concat(aw)}at=this.makeNodesUnique(at);
return at},findNodesByTagName:function(au,at){if(!au||!at||!au.getElementsByTagName){return[]}var av=au.getElementsByTagName(at);return this.htmlCollectionToArray(av)},makeNodesUnique:function(at){var ay=[].concat(at);at.sort(function(aA,az){if(aA===az){return 0}var aC=P(ay,aA);var aB=P(ay,az);if(aC===aB){return 0}return aC>aB?-1:1});if(at.length<=1){return at}var au=0;var aw=0;var ax=[];var av;av=at[au++];while(av){if(av===at[au]){aw=ax.push(au)}av=at[au++]||null}while(aw--){at.splice(ax[aw],1)}return at},getAttributeValueFromNode:function(ax,av){if(!this.hasNodeAttribute(ax,av)){return}if(ax&&ax.getAttribute){return ax.getAttribute(av)}if(!ax||!ax.attributes){return}var aw=(typeof ax.attributes[av]);if("undefined"===aw){return}if(ax.attributes[av].value){return ax.attributes[av].value}if(ax.attributes[av].nodeValue){return ax.attributes[av].nodeValue}var au;var at=ax.attributes;if(!at){return}for(au=0;au<at.length;au++){if(at[au].nodeName===av){return at[au].nodeValue}}return null},hasNodeAttributeWithValue:function(au,at){var av=this.getAttributeValueFromNode(au,at);
return !!av},hasNodeAttribute:function(av,at){if(av&&av.hasAttribute){return av.hasAttribute(at)}if(av&&av.attributes){var au=(typeof av.attributes[at]);return"undefined"!==au}return false},hasNodeCssClass:function(av,at){if(av&&at&&av.className){var au=typeof av.className==="string"?av.className.split(" "):[];if(-1!==P(au,at)){return true}}return false},findNodesHavingAttribute:function(ax,av,at){if(!at){at=[]}if(!ax||!av){return at}var aw=S(ax);if(!aw||!aw.length){return at}var au,ay;for(au=0;au<aw.length;au++){ay=aw[au];if(this.hasNodeAttribute(ay,av)){at.push(ay)}at=this.findNodesHavingAttribute(ay,av,at)}return at},findFirstNodeHavingAttribute:function(av,au){if(!av||!au){return}if(this.hasNodeAttribute(av,au)){return av}var at=this.findNodesHavingAttribute(av,au);if(at&&at.length){return at[0]}},findFirstNodeHavingAttributeWithValue:function(aw,av){if(!aw||!av){return}if(this.hasNodeAttributeWithValue(aw,av)){return aw}var at=this.findNodesHavingAttribute(aw,av);if(!at||!at.length){return
}var au;for(au=0;au<at.length;au++){if(this.getAttributeValueFromNode(at[au],av)){return at[au]}}},findNodesHavingCssClass:function(ax,aw,at){if(!at){at=[]}if(!ax||!aw){return at}if(ax.getElementsByClassName){var ay=ax.getElementsByClassName(aw);return this.htmlCollectionToArray(ay)}var av=S(ax);if(!av||!av.length){return[]}var au,az;for(au=0;au<av.length;au++){az=av[au];if(this.hasNodeCssClass(az,aw)){at.push(az)}at=this.findNodesHavingCssClass(az,aw,at)}return at},findFirstNodeHavingClass:function(av,au){if(!av||!au){return}if(this.hasNodeCssClass(av,au)){return av}var at=this.findNodesHavingCssClass(av,au);if(at&&at.length){return at[0]}},isLinkElement:function(au){if(!au){return false}var at=String(au.nodeName).toLowerCase();var aw=["a","area"];var av=P(aw,at);return av!==-1},setAnyAttribute:function(au,at,av){if(!au||!at){return}if(au.setAttribute){au.setAttribute(at,av)}else{au[at]=av}}};var w={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"matomoTrackContent",LEGACY_CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"matomoContentPiece",LEGACY_CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"matomoContentTarget",LEGACY_CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"matomoContentIgnoreInteraction",LEGACY_CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var au="."+this.CONTENT_CLASS;
var av="."+this.LEGACY_CONTENT_CLASS;var at="["+this.CONTENT_ATTR+"]";var aw=ai.findMultiple([au,av,at]);return aw},findContentNodesWithinNode:function(aw){if(!aw){return[]}var au=ai.findNodesHavingCssClass(aw,this.CONTENT_CLASS);au=ai.findNodesHavingCssClass(aw,this.LEGACY_CONTENT_CLASS,au);var at=ai.findNodesHavingAttribute(aw,this.CONTENT_ATTR);if(at&&at.length){var av;for(av=0;av<at.length;av++){au.push(at[av])}}if(ai.hasNodeAttribute(aw,this.CONTENT_ATTR)){au.push(aw)}else{if(ai.hasNodeCssClass(aw,this.CONTENT_CLASS)){au.push(aw)}else{if(ai.hasNodeCssClass(aw,this.LEGACY_CONTENT_CLASS)){au.push(aw)}}}au=ai.makeNodesUnique(au);return au},findParentContentNode:function(au){if(!au){return}var av=au;var at=0;while(av&&av!==J&&av.parentNode){if(ai.hasNodeAttribute(av,this.CONTENT_ATTR)){return av}if(ai.hasNodeCssClass(av,this.CONTENT_CLASS)){return av}if(ai.hasNodeCssClass(av,this.LEGACY_CONTENT_CLASS)){return av}av=av.parentNode;if(at>1000){break}at++}},findPieceNode:function(au){var at;
at=ai.findFirstNodeHavingAttribute(au,this.CONTENT_PIECE_ATTR);if(!at){at=ai.findFirstNodeHavingClass(au,this.CONTENT_PIECE_CLASS)}if(!at){at=ai.findFirstNodeHavingClass(au,this.LEGACY_CONTENT_PIECE_CLASS)}if(at){return at}return au},findTargetNodeNoDefault:function(at){if(!at){return}var au=ai.findFirstNodeHavingAttributeWithValue(at,this.CONTENT_TARGET_ATTR);if(au){return au}au=ai.findFirstNodeHavingAttribute(at,this.CONTENT_TARGET_ATTR);if(au){return au}au=ai.findFirstNodeHavingClass(at,this.CONTENT_TARGET_CLASS);if(au){return au}au=ai.findFirstNodeHavingClass(at,this.LEGACY_CONTENT_TARGET_CLASS);if(au){return au}},findTargetNode:function(at){var au=this.findTargetNodeNoDefault(at);if(au){return au}return at},findContentName:function(au){if(!au){return}var ax=ai.findFirstNodeHavingAttributeWithValue(au,this.CONTENT_NAME_ATTR);if(ax){return ai.getAttributeValueFromNode(ax,this.CONTENT_NAME_ATTR)}var at=this.findContentPiece(au);if(at){return this.removeDomainIfIsInLink(at)}if(ai.hasNodeAttributeWithValue(au,"title")){return ai.getAttributeValueFromNode(au,"title")
}var av=this.findPieceNode(au);if(ai.hasNodeAttributeWithValue(av,"title")){return ai.getAttributeValueFromNode(av,"title")}var aw=this.findTargetNode(au);if(ai.hasNodeAttributeWithValue(aw,"title")){return ai.getAttributeValueFromNode(aw,"title")}},findContentPiece:function(au){if(!au){return}var aw=ai.findFirstNodeHavingAttributeWithValue(au,this.CONTENT_PIECE_ATTR);if(aw){return ai.getAttributeValueFromNode(aw,this.CONTENT_PIECE_ATTR)}var at=this.findPieceNode(au);var av=this.findMediaUrlInNode(at);if(av){return this.toAbsoluteUrl(av)}},findContentTarget:function(av){if(!av){return}var aw=this.findTargetNode(av);if(ai.hasNodeAttributeWithValue(aw,this.CONTENT_TARGET_ATTR)){return ai.getAttributeValueFromNode(aw,this.CONTENT_TARGET_ATTR)}var au;if(ai.hasNodeAttributeWithValue(aw,"href")){au=ai.getAttributeValueFromNode(aw,"href");return this.toAbsoluteUrl(au)}var at=this.findPieceNode(av);if(ai.hasNodeAttributeWithValue(at,"href")){au=ai.getAttributeValueFromNode(at,"href");return this.toAbsoluteUrl(au)
}},isSameDomain:function(at){if(!at||!at.indexOf){return false}if(0===at.indexOf(this.getLocation().origin)){return true}var au=at.indexOf(this.getLocation().host);if(8>=au&&0<=au){return true}return false},removeDomainIfIsInLink:function(av){var au="^https?://[^/]+";var at="^.*//[^/]+";if(av&&av.search&&-1!==av.search(new RegExp(au))&&this.isSameDomain(av)){av=av.replace(new RegExp(at),"");if(!av){av="/"}}return av},findMediaUrlInNode:function(ax){if(!ax){return}var av=["img","embed","video","audio"];var at=ax.nodeName.toLowerCase();if(-1!==P(av,at)&&ai.findFirstNodeHavingAttributeWithValue(ax,"src")){var aw=ai.findFirstNodeHavingAttributeWithValue(ax,"src");return ai.getAttributeValueFromNode(aw,"src")}if(at==="object"&&ai.hasNodeAttributeWithValue(ax,"data")){return ai.getAttributeValueFromNode(ax,"data")}if(at==="object"){var ay=ai.findNodesByTagName(ax,"param");if(ay&&ay.length){var au;for(au=0;au<ay.length;au++){if("movie"===ai.getAttributeValueFromNode(ay[au],"name")&&ai.hasNodeAttributeWithValue(ay[au],"value")){return ai.getAttributeValueFromNode(ay[au],"value")
}}}var az=ai.findNodesByTagName(ax,"embed");if(az&&az.length){return this.findMediaUrlInNode(az[0])}}},trim:function(at){return a(at)},isOrWasNodeInViewport:function(ay){if(!ay||!ay.getBoundingClientRect||ay.nodeType!==1){return true}var ax=ay.getBoundingClientRect();var aw=J.documentElement||{};var av=ax.top<0;if(av&&ay.offsetTop){av=(ay.offsetTop+ax.height)>0}var au=aw.clientWidth;if(W.innerWidth&&au>W.innerWidth){au=W.innerWidth}var at=aw.clientHeight;if(W.innerHeight&&at>W.innerHeight){at=W.innerHeight}return((ax.bottom>0||av)&&ax.right>0&&ax.left<au&&((ax.top<at)||av))},isNodeVisible:function(au){var at=i(au);var av=this.isOrWasNodeInViewport(au);return at&&av},buildInteractionRequestParams:function(at,au,av,aw){var ax="";if(at){ax+="c_i="+t(at)}if(au){if(ax){ax+="&"}ax+="c_n="+t(au)}if(av){if(ax){ax+="&"}ax+="c_p="+t(av)}if(aw){if(ax){ax+="&"}ax+="c_t="+t(aw)}if(ax){ax+="&ca=1"}return ax},buildImpressionRequestParams:function(at,au,av){var aw="c_n="+t(at)+"&c_p="+t(au);if(av){aw+="&c_t="+t(av)
}if(aw){aw+="&ca=1"}return aw},buildContentBlock:function(av){if(!av){return}var at=this.findContentName(av);var au=this.findContentPiece(av);var aw=this.findContentTarget(av);at=this.trim(at);au=this.trim(au);aw=this.trim(aw);return{name:at||"Unknown",piece:au||"Unknown",target:aw||""}},collectContent:function(aw){if(!aw||!aw.length){return[]}var av=[];var at,au;for(at=0;at<aw.length;at++){au=this.buildContentBlock(aw[at]);if(M(au)){av.push(au)}}return av},setLocation:function(at){this.location=at},getLocation:function(){var at=this.location||W.location;if(!at.origin){at.origin=at.protocol+"//"+at.hostname+(at.port?":"+at.port:"")}return at},toAbsoluteUrl:function(au){if((!au||String(au)!==au)&&au!==""){return au}if(""===au){return this.getLocation().href}if(au.search(/^\/\//)!==-1){return this.getLocation().protocol+au}if(au.search(/:\/\//)!==-1){return au}if(0===au.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+au}if(0===au.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+au
}if(0===au.search("^[a-zA-Z]{2,11}:")){return au}if(au.search(/^\//)!==-1){return this.getLocation().origin+au}var at="(.*/)";var av=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(at))[0];return av+au},isUrlToCurrentDomain:function(au){var av=this.toAbsoluteUrl(au);if(!av){return false}var at=this.getLocation().origin;if(at===av){return true}if(0===String(av).indexOf(at)){if(":"===String(av).substr(at.length,1)){return false}return true}return false},setHrefAttribute:function(au,at){if(!au||!at){return}ai.setAnyAttribute(au,"href",at)},shouldIgnoreInteraction:function(at){if(ai.hasNodeAttribute(at,this.CONTENT_IGNOREINTERACTION_ATTR)){return true}if(ai.hasNodeCssClass(at,this.CONTENT_IGNOREINTERACTION_CLASS)){return true}if(ai.hasNodeCssClass(at,this.LEGACY_CONTENT_IGNOREINTERACTION_CLASS)){return true}return false}};function aa(au,ax){if(ax){return ax}au=w.toAbsoluteUrl(au);if(A(au,"?")){var aw=au.indexOf("?");au=au.slice(0,aw)}if(U(au,"matomo.php")){au=f(au,"matomo.php".length)
}else{if(U(au,"piwik.php")){au=f(au,"piwik.php".length)}else{if(U(au,".php")){var at=au.lastIndexOf("/");var av=1;au=au.slice(0,at+av)}}}if(U(au,"/js/")){au=f(au,"js/".length)}return au}function R(az){var aB="Matomo_Overlay";var au=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=[^&]*)?");var av=au.exec(J.referrer);if(av){var ax=av[1];if(ax!==String(az)){return false}var ay=av[2],at=av[3],aw=av[4];if(!aw){aw=""}else{if(aw.indexOf("&segment=")===0){aw=aw.substr("&segment=".length)}}W.name=aB+"###"+ay+"###"+at+"###"+aw}var aA=W.name.split("###");return aA.length===4&&aA[0]===aB}function ad(au,az,av){var ay=W.name.split("###"),ax=ay[1],at=ay[2],aw=ay[3],aA=aa(au,az);o(aA+"plugins/Overlay/client/client.js?v=1",function(){Matomo_Overlay_Client.initialize(aA,av,ax,at,aw)})}function v(){var av;try{av=W.frameElement}catch(au){return true}if(M(av)){return(av&&String(av.nodeName).toLowerCase()==="iframe")?true:false}try{return W.self!==W.top
}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cL="mtm_cookie_consent",cU="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c2=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c0=false,cn="GET",dj=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cE=aM,aI=cj||"",bO="",c9="",ct="",cc=cf||"",bF="",bU="",ba,bp="",dg=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c2],bG=[],co=[],bR=[],be=[],bQ=500,c5=true,cR,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c7,bw,bY=false,aN="Lax",bs=false,cY,bk,bC,cS=33955200000,cu=1800000,df=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cA={},da={},dh={},cg=[],ck=false,cJ=false,au=false,di=false,cV=false,aS=false,bi=v(),cF=null,c8=null,aW,bI,cd=aq,bv,aQ,bH=false,cx=0,bB=["id","ses","cvar","ref"],cI=false,bJ=null,cT=[],cz=[],aB=X++,aA=false,c6=true;
try{bp=J.title}catch(cG){bp=""}function aH(dv){if(bs){return 0}var dt=new RegExp("(^|;)[ ]*"+dv+"=([^;]*)"),du=dt.exec(J.cookie);return du?V(du[2]):0}bJ=!aH(cU);function dn(dx,dy,dB,dA,dv,dw,dz){if(bs&&dx!==cU){return}var du;if(dB){du=new Date();du.setTime(du.getTime()+dB)}if(!dz){dz="Lax"}J.cookie=dx+"="+t(dy)+(dB?";expires="+du.toGMTString():"")+";path="+(dA||"/")+(dv?";domain="+dv:"")+(dw?";secure":"")+";SameSite="+dz;if((!dB||dB>=0)&&aH(dx)!==String(dy)){var dt="There was an error setting cookie `"+dx+"`. Please check domain and path.";ao(dt)}}function b8(dt){var dv,du;dt=j(dt,az);for(du=0;du<co.length;du++){dt=j(dt,co[du])}if(bV){dv=new RegExp("#.*");return dt.replace(dv,"")}return dt}function b1(dv,dt){var dw=s(dt),du;if(dw){return dt}if(dt.slice(0,1)==="/"){return s(dv)+"://"+d(dv)+dt}dv=b8(dv);du=dv.indexOf("?");if(du>=0){dv=dv.slice(0,du)}du=dv.lastIndexOf("/");if(du!==dv.length-1){dv=dv.slice(0,du+1)}return dv+dt}function cP(dv,dt){var du;dv=String(dv).toLowerCase();dt=String(dt).toLowerCase();
if(dv===dt){return true}if(dt.slice(0,1)==="."){if(dv===dt.slice(1)){return true}du=dv.length-dt.length;if((du>0)&&(dv.slice(du)===dt)){return true}}return false}function cr(dt){var du=document.createElement("a");if(dt.indexOf("//")!==0&&dt.indexOf("http")!==0){if(dt.indexOf("*")===0){dt=dt.substr(1)}if(dt.indexOf(".")===0){dt=dt.substr(1)}dt="http://"+dt}du.href=w.toAbsoluteUrl(dt);if(du.pathname){return du.pathname}return""}function a9(du,dt){if(!an(dt,"/")){dt="/"+dt}if(!an(du,"/")){du="/"+du}var dv=(dt==="/"||dt==="/*");if(dv){return true}if(du===dt){return true}dt=String(dt).toLowerCase();du=String(du).toLowerCase();if(U(dt,"*")){dt=dt.slice(0,-1);dv=(!dt||dt==="/");if(dv){return true}if(du===dt){return true}return du.indexOf(dt)===0}if(!U(du,"/")){du+="/"}if(!U(dt,"/")){dt+="/"}return du.indexOf(dt)===0}function aw(dx,dz){var du,dt,dv,dw,dy;for(du=0;du<aC.length;du++){dw=O(aC[du]);dy=cr(aC[du]);if(cP(dx,dw)&&a9(dz,dy)){return true}}return false}function a1(dw){var du,dt,dv;for(du=0;
du<aC.length;du++){dt=O(aC[du].toLowerCase());if(dw===dt){return true}if(dt.slice(0,1)==="."){if(dw===dt.slice(1)){return true}dv=dw.length-dt.length;if((dv>0)&&(dw.slice(dv)===dt)){return true}}}return false}function cv(dt,dv){dt=dt.replace("send_image=0","send_image=1");var du=new Image(1,1);du.onload=function(){H=0;if(typeof dv==="function"){dv({request:dt,trackerUrl:aI,success:true})}};du.onerror=function(){if(typeof dv==="function"){dv({request:dt,trackerUrl:aI,success:false})}};du.src=aI+(aI.indexOf("?")<0?"?":"&")+dt}function cM(dt){if(dj==="POST"){return true}return dt&&(dt.length>2000||dt.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dx,dA,dz){var dv=aP();if(!dv){return false}var dw={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dB=false;var du=aI;try{var dt=new Blob([dx],dw);if(dz&&!cM(dx)){dt=new Blob([],dw);du=du+(du.indexOf("?")<0?"?":"&")+dx}dB=g.sendBeacon(du,dt)}catch(dy){return false
}if(dB&&typeof dA==="function"){dA({request:dx,trackerUrl:aI,success:true,isSendBeacon:true})}return dB}function de(du,dv,dt){if(!M(dt)||null===dt){dt=true}if(m&&bc(du,dv,dt)){return}setTimeout(function(){if(m&&bc(du,dv,dt)){return}var dy;try{var dx=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dx.open("POST",aI,true);dx.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dz=m&&bc(du,dv,dt);if(!dz&&dt){cv(du,dv)}else{if(typeof dv==="function"){dv({request:du,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dv==="function")){dv({request:du,trackerUrl:aI,success:true,xhr:this})}}};dx.setRequestHeader("Content-Type",cE);dx.withCredentials=true;dx.send(du)}catch(dw){dy=m&&bc(du,dv,dt);if(!dy&&dt){cv(du,dv)}else{if(typeof dv==="function"){dv({request:du,trackerUrl:aI,success:false})}}}},50)}function cl(du){var dt=new Date();var dv=dt.getTime()+du;if(!r||dv>r){r=dv}}function bg(){bi=true;
cF=new Date().getTime()}function dm(){var dt=new Date().getTime();return !cF||(dt-cF)>bb}function aD(){if(dm()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dm()){bX()}else{if(J.visibilityState==="visible"){cF=new Date().getTime()}}}function dq(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dm()){bX()}}})}function cK(dx){var du=new Date();var dt=du.getTime();c8=dt;if(cJ&&dt<cJ){var dv=cJ-dt;setTimeout(dx,dv);cl(dv+50);cJ+=50;return}if(cJ===false){var dw=800;cJ=dt+dw}dx()}function aT(){if(aH(cU)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(du,dt,dv){aT();if(!bJ){cT.push(du);return}aA=true;if(!cY&&du){if(cI&&bJ){du+="&consent=1"}cK(function(){if(c5&&bc(du,dv,true)){cl(100);return}if(cM(du)){de(du,dv)}else{cv(du,dv)}cl(dt)})}if(!aS){dq()}}function cq(dt){if(cY){return false}return(dt&&dt.length)}function dd(dt,dx){if(!dx||dx>=dt.length){return[dt]}var du=0;var dv=dt.length;var dw=[];
for(du;du<dv;du+=dx){dw.push(dt.slice(du,du+dx))}return dw}function dp(du,dt){if(!cq(du)){return}if(!bJ){cT.push(du);return}aA=true;cK(function(){var dx=dd(du,50);var dv=0,dw;for(dv;dv<dx.length;dv++){dw='{"requests":["?'+dx[dv].join('","?')+'"],"send_image":0}';if(c5&&bc(dw,null,false)){cl(100)}else{de(dw,null,false)}}cl(dt)})}function aY(dt){return bq+dt+"."+cc+"."+bv}function b5(dv,du,dt){dn(dv,"",-129600000,du,dt)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var dt=bq+"testcookie";dn(dt,"1",undefined,bw,c7,bY,aN);var du=aH(dt)==="1"?"1":"0";b5(dt);return du}function bo(){bv=cd((c7||c2)+(bw||"/")).slice(0,4)}function cQ(){if(!c6){return{}}if(M(dh.res)){return dh}var du,dw,dx={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(du in dx){if(Object.prototype.hasOwnProperty.call(dx,du)){dw=g.mimeTypes[dx[du]];
dh[du]=(dw&&dw.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dh.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dh.cookie=g.cookieEnabled?"1":"0"}else{dh.cookie=cb()}}var dv=parseInt(ab.width,10);var dt=parseInt(ab.height,10);dh.res=parseInt(dv,10)+"x"+parseInt(dt,10);return dh}function b3(){var du=aY("cvar"),dt=aH(du);if(dt&&dt.length){dt=W.JSON.parse(dt);if(Z(dt)){return dt}}return{}}function cN(){if(aV===false){aV=b3()}}function cZ(){var dt=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dt)+(new Date()).getTime()+Math.random()).slice(0,16)}function aF(){var dt=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dt)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var du=bl();var dv=aF();var dt=String(du)+dv;return dt}function dc(dv){dv=String(dv);var dy=aF();var dw=dy.length;var dx=dv.substr(-1*dw,dw);
var du=parseInt(dv.substr(0,dv.length-dw),10);if(du&&dx&&dx===dy){var dt=bl();if(a5<=0){return true}if(dt>=du&&dt<=(du+a5)){return true}}return false}function dr(dt){if(!cV){return""}var dx=e(dt,az);if(!dx){return""}dx=String(dx);var dv=new RegExp("^[a-zA-Z0-9]+$");if(dx.length===32&&dv.test(dx)){var du=dx.substr(16,32);if(dc(du)){var dw=dx.substr(0,16);return dw}}return""}function cW(){if(!bU){bU=dr(bT)}var dv=new Date(),dt=Math.round(dv.getTime()/1000),du=aY("id"),dy=aH(du),dx,dw;if(dy){dx=dy.split(".");dx.unshift("0");if(bU.length){dx[1]=bU}return dx}if(bU.length){dw=bU}else{if("0"===cb()){dw=""}else{dw=cZ()}}dx=["1",dw,dt];return dx}function a4(){var dw=cW(),du=dw[0],dv=dw[1],dt=dw[2];return{newVisitor:du,uuid:dv,createTs:dt}}function aL(){var dw=new Date(),du=dw.getTime(),dx=a4().createTs;var dt=parseInt(dx,10);var dv=(dt*1000)+cS-du;return dv}function aR(dt){if(!cc){return}var dv=new Date(),du=Math.round(dv.getTime()/1000);if(!M(dt)){dt=a4()}var dw=dt.uuid+"."+dt.createTs+".";dn(aY("id"),dw,aL(),bw,c7,bY,aN)
}function bS(){var dt=aH(aY("ref"));if(dt.length){try{dt=W.JSON.parse(dt);if(Z(dt)){return dt}}catch(du){}}return["","",0,""]}function bD(dv){var du=bq+"testcookie_domain";var dt="testvalue";dn(du,dt,10000,null,dv,bY,aN);if(aH(du)===dt){b5(du,null,dv);return true}return false}function aJ(){var du=bs;bs=false;var dt,dv;for(dt=0;dt<bB.length;dt++){dv=aY(bB[dt]);if(dv!==cU&&dv!==bj&&0!==aH(dv)){b5(dv,bw,c7)}}bs=du}function b9(dt){cc=dt}function ds(dx){if(!dx||!Z(dx)){return}var dw=[];var dv;for(dv in dx){if(Object.prototype.hasOwnProperty.call(dx,dv)){dw.push(dv)}}var dy={};dw.sort();var dt=dw.length;var du;for(du=0;du<dt;du++){dy[dw[du]]=dx[dw[du]]}return dy}function ci(){dn(aY("ses"),"1",cu,bw,c7,bY,aN)}function bm(){var dw="";var du="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dv=du.length;var dt;for(dt=0;dt<6;dt++){dw+=du.charAt(Math.floor(Math.random()*dv))}return dw}function aE(du){if(ct!==""){du+=ct;bn=true;return du}if(!h){return du}var dv=(typeof h.timing==="object")&&h.timing?h.timing:undefined;
if(!dv){dv=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dv){return du}var dt="";if(dv.connectEnd&&dv.fetchStart){if(dv.connectEnd<dv.fetchStart){return}dt+="&pf_net="+Math.round(dv.connectEnd-dv.fetchStart)}if(dv.responseStart&&dv.requestStart){if(dv.responseStart<dv.requestStart){return}dt+="&pf_srv="+Math.round(dv.responseStart-dv.requestStart)}if(dv.responseStart&&dv.responseEnd){if(dv.responseEnd<dv.responseStart){return}dt+="&pf_tfr="+Math.round(dv.responseEnd-dv.responseStart)}if(M(dv.domLoading)){if(dv.domInteractive&&dv.domLoading){if(dv.domInteractive<dv.domLoading){return}dt+="&pf_dm1="+Math.round(dv.domInteractive-dv.domLoading)}}else{if(dv.domInteractive&&dv.responseEnd){if(dv.domInteractive<dv.responseEnd){return}dt+="&pf_dm1="+Math.round(dv.domInteractive-dv.responseEnd)}}if(dv.domComplete&&dv.domInteractive){if(dv.domComplete<dv.domInteractive){return}dt+="&pf_dm2="+Math.round(dv.domComplete-dv.domInteractive)
}if(dv.loadEventEnd&&dv.loadEventStart){if(dv.loadEventEnd<dv.loadEventStart){return}dt+="&pf_onl="+Math.round(dv.loadEventEnd-dv.loadEventStart)}return du+dt}function cy(dv,dP,dQ){var dO,du=new Date(),dC=Math.round(du.getTime()/1000),dz,dM,dw=1024,dV,dD,dL=aV,dx=aY("ses"),dJ=aY("ref"),dG=aY("cvar"),dH=aH(dx),dN=bS(),dR=ba||bT,dA,dt;if(bs){aJ()}if(cY){return""}var dI=a4();var dF=J.characterSet||J.charset;if(!dF||dF.toLowerCase()==="utf-8"){dF=null}dA=dN[0];dt=dN[1];dz=dN[2];dM=dN[3];if(!dH){if(!bC||!dA.length){for(dO in cw){if(Object.prototype.hasOwnProperty.call(cw,dO)){dA=e(dR,cw[dO]);if(dA.length){break}}}for(dO in bN){if(Object.prototype.hasOwnProperty.call(bN,dO)){dt=e(dR,bN[dO]);if(dt.length){break}}}}dV=d(bu);dD=dM.length?d(dM):"";if(dV.length&&!a1(dV)&&(!bC||!dD.length||a1(dD))){dM=bu}if(dM.length||dA.length){dz=dC;dN=[dA,dt,dz,b8(dM.slice(0,dw))];dn(dJ,W.JSON.stringify(dN),df,bw,c7,bY,aN)}}dv+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+du.getHours()+"&m="+du.getMinutes()+"&s="+du.getSeconds()+"&url="+t(b8(dR))+(bu.length?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dI.uuid+"&_idn="+dI.newVisitor+(dA.length?"&_rcn="+t(dA):"")+(dt.length?"&_rck="+t(dt):"")+"&_refts="+dz+(String(dM).length?"&_ref="+t(b8(dM.slice(0,dw))):"")+(dF?"&cs="+t(dF):"")+"&send_image=0";
var dU=cQ();for(dO in dU){if(Object.prototype.hasOwnProperty.call(dU,dO)){dv+="&"+dO+"="+dU[dO]}}var dT=[];if(dP){for(dO in dP){if(Object.prototype.hasOwnProperty.call(dP,dO)&&/^dimension\d+$/.test(dO)){var dy=dO.replace("dimension","");dT.push(parseInt(dy,10));dT.push(String(dy));dv+="&"+dO+"="+t(dP[dO]);delete dP[dO]}}}if(dP&&D(dP)){dP=null}for(dO in cA){if(Object.prototype.hasOwnProperty.call(cA,dO)){dv+="&"+dO+"="+t(cA[dO])}}for(dO in bt){if(Object.prototype.hasOwnProperty.call(bt,dO)){var dE=(-1===P(dT,dO));if(dE){dv+="&dimension"+dO+"="+t(bt[dO])}}}if(dP){dv+="&data="+t(W.JSON.stringify(dP))}else{if(at){dv+="&data="+t(W.JSON.stringify(at))}}function dB(dW,dX){var dY=W.JSON.stringify(dW);if(dY.length>2){return"&"+dX+"="+t(dY)}return""}var dS=ds(b2);var dK=ds(cs);dv+=dB(dS,"cvar");dv+=dB(dK,"e_cvar");if(aV){dv+=dB(aV,"_cvar");for(dO in dL){if(Object.prototype.hasOwnProperty.call(dL,dO)){if(aV[dO][0]===""||aV[dO][1]===""){delete aV[dO]}}}if(bW){dn(dG,W.JSON.stringify(aV),cu,bw,c7,bY,aN)
}}if(a8&&bL&&!bn){dv=aE(dv);bn=true}if(aQ){dv+="&pv_id="+aQ}aR(dI);ci();dv+=ag(dQ,{tracker:bP,request:dv});if(c9.length){dv+="&"+c9}if(C(ch)){dv=ch(dv)}return dv}bX=function bd(){var dt=new Date();dt=dt.getTime();if(!c8){return false}if(c8+bb<=dt){bP.ping();return true}return false};function bx(dw,dv,dA,dx,dt,dD){var dz="idgoal=0",du=new Date(),dB=[],dC,dy=String(dw).length;if(dy){dz+="&ec_id="+t(dw)}dz+="&revenue="+dv;if(String(dA).length){dz+="&ec_st="+dA}if(String(dx).length){dz+="&ec_tx="+dx}if(String(dt).length){dz+="&ec_sh="+dt}if(String(dD).length){dz+="&ec_dt="+dD}if(da){for(dC in da){if(Object.prototype.hasOwnProperty.call(da,dC)){if(!M(da[dC][1])){da[dC][1]=""}if(!M(da[dC][2])){da[dC][2]=""}if(!M(da[dC][3])||String(da[dC][3]).length===0){da[dC][3]=0}if(!M(da[dC][4])||String(da[dC][4]).length===0){da[dC][4]=1}dB.push(da[dC])}}dz+="&ec_items="+t(W.JSON.stringify(dB))}dz=cy(dz,at,"ecommerce");bM(dz,bQ);if(dy){da={}}}function b4(dt,dx,dw,dv,du,dy){if(String(dt).length&&M(dx)){bx(dt,dx,dw,dv,du,dy)
}}function bz(dt){if(M(dt)){bx("",dt,"","","","")}}function b6(du,dw,dv){if(!bH){aQ=bm()}var dt=cy("action_name="+t(ap(du||bp)),dw,"log");if(a8&&!bn){dt=aE(dt)}bM(dt,bQ,dv)}function a6(dv,du){var dw,dt="(^| )(piwik[_-]"+du+"|matomo[_-]"+du;if(dv){for(dw=0;dw<dv.length;dw++){dt+="|"+dv[dw]}}dt+=")( |$)";return new RegExp(dt)}function aZ(dt){return(aI&&dt&&0===String(dt).indexOf(aI))}function cC(dx,dt,dy,du){if(aZ(dt)){return 0}var dw=a6(bR,"download"),dv=a6(be,"link"),dz=new RegExp("\\.("+dg.join("|")+")([?&#]|$)","i");if(dv.test(dx)){return"link"}if(du||dw.test(dx)||dz.test(dt)){return"download"}if(dy){return 0}return"link"}function ay(du){var dt;dt=du.parentNode;while(dt!==null&&M(dt)){if(ai.isLinkElement(du)){break}du=dt;dt=du.parentNode}return du}function dl(dy){dy=ay(dy);if(!ai.hasNodeAttribute(dy,"href")){return}if(!M(dy.href)){return}var dx=ai.getAttributeValueFromNode(dy,"href");var du=dy.pathname||cr(dy.href);var dz=dy.hostname||d(dy.href);var dA=dz.toLowerCase();var dv=dy.href.replace(dz,dA);
var dw=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dw.test(dv)){var dt=cC(dy.className,dv,aw(dA,du),ai.hasNodeAttribute(dy,"download"));if(dt){return{type:dt,href:dv}}}}function aU(dt,du,dv,dw){var dx=w.buildInteractionRequestParams(dt,du,dv,dw);if(!dx){return}return cy(dx,null,"contentInteraction")}function bh(dt,du){if(!dt||!du){return false}var dv=w.findTargetNode(dt);if(w.shouldIgnoreInteraction(dv)){return false}dv=w.findTargetNodeNoDefault(dt);if(dv&&!Y(dv,du)){return false}return true}function cB(dv,du,dx){if(!dv){return}var dt=w.findParentContentNode(dv);if(!dt){return}if(!bh(dt,dv)){return}var dw=w.buildContentBlock(dt);if(!dw){return}if(!dw.target&&dx){dw.target=dx}return w.buildInteractionRequestParams(du,dw.name,dw.piece,dw.target)}function a2(du){if(!cg||!cg.length){return false}var dt,dv;for(dt=0;dt<cg.length;dt++){dv=cg[dt];if(dv&&dv.name===du.name&&dv.piece===du.piece&&dv.target===du.target){return true}}return false}function a3(dt){return function(dx){if(!dt){return
}var dv=w.findParentContentNode(dt);var du;if(dx){du=dx.target||dx.srcElement}if(!du){du=dt}if(!bh(dv,du)){return}if(!dv){return false}var dy=w.findTargetNode(dv);if(!dy||w.shouldIgnoreInteraction(dy)){return false}var dw=dl(dy);if(di&&dw&&dw.type){return dw.type}return bP.trackContentInteractionNode(du,"click")}}function b7(dv){if(!dv||!dv.length){return}var dt,du;for(dt=0;dt<dv.length;dt++){du=w.findTargetNode(dv[dt]);if(du&&!du.contentInteractionTrackingSetupDone){du.contentInteractionTrackingSetupDone=true;ar(du,"click",a3(du))}}}function bE(dv,dw){if(!dv||!dv.length){return[]}var dt,du;for(dt=0;dt<dv.length;dt++){if(a2(dv[dt])){dv.splice(dt,1);dt--}else{cg.push(dv[dt])}}if(!dv||!dv.length){return[]}b7(dw);var dx=[];for(dt=0;dt<dv.length;dt++){du=cy(w.buildImpressionRequestParams(dv[dt].name,dv[dt].piece,dv[dt].target),undefined,"contentImpressions");if(du){dx.push(du)}}return dx}function cH(du){var dt=w.collectContent(du);return bE(dt,du)}function bf(du){if(!du||!du.length){return[]
}var dt;for(dt=0;dt<du.length;dt++){if(!w.isNodeVisible(du[dt])){du.splice(dt,1);dt--}}if(!du||!du.length){return[]}return cH(du)}function aK(dv,dt,du){var dw=w.buildImpressionRequestParams(dv,dt,du);return cy(dw,null,"contentImpression")}function dk(dw,du){if(!dw){return}var dt=w.findParentContentNode(dw);var dv=w.buildContentBlock(dt);if(!dv){return}if(!du){du="Unknown"}return aU(du,dv.name,dv.piece,dv.target)}function cX(du,dw,dt,dv){return"e_c="+t(du)+"&e_a="+t(dw)+(M(dt)?"&e_n="+t(dt):"")+(M(dv)?"&e_v="+t(dv):"")+"&ca=1"}function ax(dv,dx,dt,dw,dz,dy){if(!ac(dv)||!ac(dx)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var du=cy(cX(dv,dx,dt,dw),dz,"event");bM(du,bQ,dy)}function ce(dt,dw,du,dx){var dv=cy("search="+t(dt)+(dw?"&search_cat="+t(dw):"")+(M(du)?"&search_count="+du:""),dx,"sitesearch");bM(dv,bQ)}function c1(dt,dx,dw,dv){var du=cy("idgoal="+dt+(dx?"&revenue="+dx:""),dw,"goal");bM(du,bQ,dv)}function db(dw,dt,dA,dz,dv){var dy=dt+"="+t(b8(dw));
var du=cB(dv,"click",dw);if(du){dy+="&"+du}var dx=cy(dy,dA,"link");bM(dx,bQ,dz)}function b0(du,dt){if(du!==""){return du+dt.charAt(0).toUpperCase()+dt.slice(1)}return dt}function cm(dy){var dx,dt,dw=["","webkit","ms","moz"],dv;if(!bk){for(dt=0;dt<dw.length;dt++){dv=dw[dt];if(Object.prototype.hasOwnProperty.call(J,b0(dv,"hidden"))){if(J[b0(dv,"visibilityState")]==="prerender"){dx=true}break}}}if(dx){ar(J,dv+"visibilitychange",function du(){J.removeEventListener(dv+"visibilitychange",du,false);dy()});return}dy()}function by(){var du=bP.getVisitorId();var dt=aO();return du+dt}function cp(dt){if(!dt){return}if(!ai.hasNodeAttribute(dt,"href")){return}var du=ai.getAttributeValueFromNode(dt,"href");if(!du||aZ(du)){return}if(!bP.getVisitorId()){return}du=j(du,az);var dv=by();du=I(du,az,dv);ai.setAnyAttribute(dt,"href",du)}function br(dw){var dx=ai.getAttributeValueFromNode(dw,"href");if(!dx){return false}dx=String(dx);var du=dx.indexOf("//")===0||dx.indexOf("http://")===0||dx.indexOf("https://")===0;
if(!du){return false}var dt=dw.pathname||cr(dw.href);var dv=(dw.hostname||d(dw.href)).toLowerCase();if(aw(dv,dt)){if(!cP(c2,O(dv))){return true}return false}return false}function cO(dt){var du=dl(dt);if(du&&du.type){du.href=p(du.href);db(du.href,du.type,undefined,null,dt);return}if(cV){dt=ay(dt);if(br(dt)){cp(dt)}}}function cD(){return J.all&&!J.addEventListener}function c3(dt){var dv=dt.which;var du=(typeof dt.button);if(!dv&&du!=="undefined"){if(cD()){if(dt.button&1){dv=1}else{if(dt.button&2){dv=3}else{if(dt.button&4){dv=2}}}}else{if(dt.button===0||dt.button==="0"){dv=1}else{if(dt.button&1){dv=2}else{if(dt.button&2){dv=3}}}}}return dv}function bZ(dt){switch(c3(dt)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a7(dt){return dt.target||dt.srcElement}function c4(dt){return dt==="A"||dt==="AREA"}function aG(dt){function du(dw){var dx=a7(dw);var dy=dx.nodeName;var dv=a6(bG,"ignore");while(!c4(dy)&&dx&&dx.parentNode){dx=dx.parentNode;dy=dx.nodeName}if(dx&&c4(dy)&&!dv.test(dx.className)){return dx
}}return function(dx){dx=dx||W.event;var dy=du(dx);if(!dy){return}var dw=bZ(dx);if(dx.type==="click"){var dv=false;if(dt&&dw==="middle"){dv=true}if(dy&&!dv){cO(dy)}}else{if(dx.type==="mousedown"){if(dw==="middle"&&dy){aW=dw;bI=dy}else{aW=bI=null}}else{if(dx.type==="mouseup"){if(dw===aW&&dy===bI){cO(dy)}aW=bI=null}else{if(dx.type==="contextmenu"){cO(dy)}}}}}}function av(dw,dv,dt){var du=typeof dv;if(du==="undefined"){dv=true}ar(dw,"click",aG(dv),dt);if(dv){ar(dw,"mouseup",aG(dv),dt);ar(dw,"mousedown",aG(dv),dt);ar(dw,"contextmenu",aG(dv),dt)}}function aX(du,dx,dy){if(ck){return true}ck=true;var dz=false;var dw,dv;function dt(){dz=true}n(function(){function dA(dC){setTimeout(function(){if(!ck){return}dz=false;dy.trackVisibleContentImpressions();dA(dC)},dC)}function dB(dC){setTimeout(function(){if(!ck){return}if(dz){dz=false;dy.trackVisibleContentImpressions()}dB(dC)},dC)}if(du){dw=["scroll","resize"];for(dv=0;dv<dw.length;dv++){if(J.addEventListener){J.addEventListener(dw[dv],dt,false)}else{W.attachEvent("on"+dw[dv],dt)
}}dB(100)}if(dx&&dx>0){dx=parseInt(dx,10);dA(dx)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dt=this.requests;this.requests=[];if(dt.length===1){bM(dt[0],bQ)}else{dp(dt,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(du){if(!this.canQueue()){dp(du,bQ);return}var dt;for(dt=0;dt<du.length;dt++){this.push(du[dt])}},push:function(dt){if(!dt){return}if(!this.canQueue()){bM(dt,bQ);return}bK.requests.push(dt);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var du="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,du)){b[du]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cW()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()
};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]};this.setTrackerUrl=function(dt){aI=dt};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dv,du){if(!M(dv)||null===dv){dv=this.getTrackerUrl()}var dt=new T(dv,du);L.push(dt);u.trigger("TrackerAdded",[this]);return dt};this.getSiteId=function(){return cc};this.setSiteId=function(dt){b9(dt)};this.resetUserId=function(){bF=""};this.setUserId=function(dt){if(ac(dt)){bF=dt}};this.setVisitorId=function(du){var dt=/[0-9A-Fa-f]{16}/g;if(x(du)&&dt.test(du)){bU=du}else{ao("Invalid visitorId set"+du)}};this.getUserId=function(){return bF};this.setCustomData=function(dt,du){if(Z(dt)){at=dt}else{if(!at){at={}}at[dt]=du}};this.getCustomData=function(){return at
};this.setCustomRequestProcessing=function(dt){ch=dt};this.appendToTrackingUrl=function(dt){c9=dt};this.getRequest=function(dt){return cy(dt)};this.addPlugin=function(dt,du){b[dt]=du};this.setCustomDimension=function(dt,du){dt=parseInt(dt,10);if(dt>0){if(!M(du)){du=""}if(!x(du)){du=String(du)}bt[dt]=du}};this.getCustomDimension=function(dt){dt=parseInt(dt,10);if(dt>0&&Object.prototype.hasOwnProperty.call(bt,dt)){return bt[dt]}};this.deleteCustomDimension=function(dt){dt=parseInt(dt,10);if(dt>0){delete bt[dt]}};this.setCustomVariable=function(du,dt,dx,dv){var dw;if(!M(dv)){dv="visit"}if(!M(dt)){return}if(!M(dx)){dx=""}if(du>0){dt=!x(dt)?String(dt):dt;dx=!x(dx)?String(dx):dx;dw=[dt.slice(0,bA),dx.slice(0,bA)];if(dv==="visit"||dv===2){cN();aV[du]=dw}else{if(dv==="page"||dv===3){b2[du]=dw}else{if(dv==="event"){cs[du]=dw}}}}};this.getCustomVariable=function(du,dv){var dt;if(!M(dv)){dv="visit"}if(dv==="page"||dv===3){dt=b2[du]}else{if(dv==="event"){dt=cs[du]}else{if(dv==="visit"||dv===2){cN();
dt=aV[du]}}}if(!M(dt)||(dt&&dt[0]==="")){return false}return dt};this.deleteCustomVariable=function(dt,du){if(this.getCustomVariable(dt,du)){this.setCustomVariable(dt,"","",du)}};this.deleteCustomVariables=function(dt){if(dt==="page"||dt===3){b2={}}else{if(dt==="event"){cs={}}else{if(dt==="visit"||dt===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dt){bQ=dt};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dt){if(x(dt)){dt=dt.split("|")}dg=dt};this.addDownloadExtensions=function(du){var dt;if(x(du)){du=du.split("|")}for(dt=0;dt<du.length;dt++){dg.push(du[dt])}};this.removeDownloadExtensions=function(dv){var du,dt=[];if(x(dv)){dv=dv.split("|")}for(du=0;du<dg.length;du++){if(P(dv,dg[du])===-1){dt.push(dg[du])}}dg=dt};this.setDomains=function(dt){aC=x(dt)?[dt]:dt;var dx=false,dv=0,du;for(dv;dv<aC.length;dv++){du=String(aC[dv]);if(cP(c2,O(du))){dx=true;break}var dw=cr(du);if(dw&&dw!=="/"&&dw!=="/*"){dx=true;
break}}if(!dx){aC.push(c2)}};this.enableCrossDomainLinking=function(){cV=true};this.disableCrossDomainLinking=function(){cV=false};this.isCrossDomainLinkingEnabled=function(){return cV};this.setCrossDomainLinkingTimeout=function(dt){a5=dt};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(dt){bG=x(dt)?[dt]:dt};this.setRequestMethod=function(dt){if(dt){dj=String(dt).toUpperCase()}else{dj=cn}if(dj==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(dt){cE=dt||aM};this.setGenerationTimeMs=function(dt){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dx,dz,dy,du,dA,dv){var dw={pf_net:dx,pf_srv:dz,pf_tfr:dy,pf_dm1:du,pf_dm2:dA,pf_onl:dv};try{dw=Q(dw,M);dw=B(dw);ct=l(dw);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");
return}bn=false;bL=true}catch(dt){ao("setPagePerformanceTiming: "+dt.toString())}};this.setReferrerUrl=function(dt){bu=dt};this.setCustomUrl=function(dt){ba=b1(bT,dt)};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(dt){bp=dt};this.setPageViewId=function(dt){aQ=dt;bH=true};this.setAPIUrl=function(dt){bO=dt};this.setDownloadClasses=function(dt){bR=x(dt)?[dt]:dt};this.setLinkClasses=function(dt){be=x(dt)?[dt]:dt};this.setCampaignNameKey=function(dt){cw=x(dt)?[dt]:dt};this.setCampaignKeywordKey=function(dt){bN=x(dt)?[dt]:dt};this.discardHashTag=function(dt){bV=dt};this.setCookieNamePrefix=function(dt){bq=dt;if(aV){aV=b3()}};this.setCookieDomain=function(dt){var du=O(dt);if(!bs&&!bD(du)){ao("Can't write cookie on domain "+dt)}else{c7=du;bo()}};this.setExcludedQueryParams=function(dt){co=x(dt)?[dt]:dt};this.getCookieDomain=function(){return c7};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dv,du,dt){if(!dv){throw new Error("Missing cookie name")
}if(!M(dt)){dt=cu}bB.push(dv);dn(aY(dv),du,dt,bw,c7,bY,aN)};this.getCookie=function(du){var dt=aH(aY(du));if(dt===0){return null}return dt};this.setCookiePath=function(dt){bw=dt;bo()};this.getCookiePath=function(dt){return bw};this.setVisitorCookieTimeout=function(dt){cS=dt*1000};this.setSessionCookieTimeout=function(dt){cu=dt*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(dt){df=dt*1000};this.setConversionAttributionFirstReferrer=function(dt){bC=dt};this.setSecureCookie=function(dt){if(dt&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=dt};this.setCookieSameSite=function(dt){dt=String(dt);dt=dt.charAt(0).toUpperCase()+dt.toLowerCase().slice(1);if(dt!=="None"&&dt!=="Lax"&&dt!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");return}if(dt==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");
dt="Lax"}}aN=dt};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!cY){bs=false;c6=true;if(cc&&aA){aR();var dt=cy("ping=1",null,"ping");bM(dt,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cL)};this.forgetCookieConsentGiven=function(){b5(cL,bw,c7);this.disableCookies()};this.rememberCookieConsentGiven=function(du){if(du){du=du*60*60*1000}else{du=30*365*24*60*60*1000}this.setCookieConsentGiven();var dt=new Date().getTime();dn(cL,dt,du,bw,c7,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(du){var dt=g.doNotTrack||g.msDoNotTrack;cY=du&&(dt==="yes"||dt==="1");if(cY){this.disableCookies()}};this.alwaysUseSendBeacon=function(){c5=true};this.disableAlwaysUseSendBeacon=function(){c5=false};this.addListener=function(du,dt){av(du,dt,false)};this.enableLinkTracking=function(du){if(di){return
}di=true;var dt=this;q(function(){au=true;var dv=J.body;av(dv,du,true)})};this.enableJSErrorTracking=function(){if(c0){return}c0=true;var dt=W.onerror;W.onerror=function(dy,dw,dv,dx,du){cm(function(){var dz="JavaScript Errors";var dA=dw+":"+dv;if(dx){dA+=":"+dx}if(P(cz,dz+dA+dy)===-1){cz.push(dz+dA+dy);ax(dz,dA,dy)}});if(dt){return dt(dy,dw,dv,dx,du)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(dt){dt=Math.max(dt||15,5);bb=dt*1000;if(c8!==null){dq()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(dt){if(W.location.protocol==="file:"){W.location=dt}};
this.setCountPreRendered=function(dt){bk=dt};this.trackGoal=function(dt,dw,dv,du){cm(function(){c1(dt,dw,dv,du)})};this.trackLink=function(du,dt,dw,dv){cm(function(){db(du,dt,dw,dv)})};this.getNumTrackedPageViews=function(){return cx};this.trackPageView=function(dt,dv,du){cg=[];cT=[];cz=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cx++;b6(dt,dv,du)})}};this.disableBrowserFeatureDetection=function(){c6=false};this.enableBrowserFeatureDetection=function(){c6=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var dt=w.findContentNodes();var du=cH(dt);bK.pushMultiple(du)})})};this.trackVisibleContentImpressions=function(dt,du){if(R(cc)){return}if(!M(dt)){dt=true}if(!M(du)){du=750}aX(dt,du,this);cm(function(){n(function(){var dv=w.findContentNodes();var dw=bf(dv);bK.pushMultiple(dw)})})};this.trackContentImpression=function(dv,dt,du){if(R(cc)){return}dv=a(dv);dt=a(dt);du=a(du);if(!dv){return}dt=dt||"Unknown";cm(function(){var dw=aK(dv,dt,du);
bK.push(dw)})};this.trackContentImpressionsWithinNode=function(dt){if(R(cc)||!dt){return}cm(function(){if(ck){n(function(){var du=w.findContentNodesWithinNode(dt);var dv=bf(du);bK.pushMultiple(dv)})}else{q(function(){var du=w.findContentNodesWithinNode(dt);var dv=cH(du);bK.pushMultiple(dv)})}})};this.trackContentInteraction=function(dv,dw,dt,du){if(R(cc)){return}dv=a(dv);dw=a(dw);dt=a(dt);du=a(du);if(!dv||!dw){return}dt=dt||"Unknown";cm(function(){var dx=aU(dv,dw,dt,du);if(dx){bK.push(dx)}})};this.trackContentInteractionNode=function(dv,du){if(R(cc)||!dv){return}var dt=null;cm(function(){dt=dk(dv,du);if(dt){bK.push(dt)}});return dt};this.logAllContentBlocksOnPage=function(){var dv=w.findContentNodes();var dt=w.collectContent(dv);var du=typeof console;if(du!=="undefined"&&console&&console.log){console.log(dt)}};this.trackEvent=function(du,dw,dt,dv,dy,dx){cm(function(){ax(du,dw,dt,dv,dy,dx)})};this.trackSiteSearch=function(dt,dv,du,dw){cg=[];cm(function(){ce(dt,dv,du,dw)})};this.setEcommerceView=function(dx,dt,dv,du){cA={};
if(ac(dv)){dv=String(dv)}if(!M(dv)||dv===null||dv===false||!dv.length){dv=""}else{if(dv instanceof Array){dv=W.JSON.stringify(dv)}}var dw="_pkc";cA[dw]=dv;if(M(du)&&du!==null&&du!==false&&String(du).length){dw="_pkp";cA[dw]=du}if(!ac(dx)&&!ac(dt)){return}if(ac(dx)){dw="_pks";cA[dw]=dx}if(!ac(dt)){dt=""}dw="_pkn";cA[dw]=dt};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(da))};this.addEcommerceItem=function(dx,dt,dv,du,dw){if(ac(dx)){da[dx]=[String(dx),dt,dv,du,dw]}};this.removeEcommerceItem=function(dt){if(ac(dt)){dt=String(dt);delete da[dt]}};this.clearEcommerceCart=function(){da={}};this.trackEcommerceOrder=function(dt,dx,dw,dv,du,dy){b4(dt,dx,dw,dv,du,dy)};this.trackEcommerceCartUpdate=function(dt){bz(dt)};this.trackRequest=function(du,dw,dv,dt){cm(function(){var dx=cy(du,dw,dt);bM(dx,bQ,dv)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(dt){if(dt<1000){throw new Error("Request queue interval needs to be at least 1000ms")
}bK.interval=dt};this.queueRequest=function(dt){cm(function(){var du=cy(dt);bK.push(du)})};this.isConsentRequired=function(){return cI};this.getRememberedConsent=function(){var dt=aH(bj);if(aH(cU)){if(dt){b5(bj,bw,c7)}return null}if(!dt||dt===0){return null}return dt};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cI=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(du){bJ=true;c6=true;b5(cU,bw,c7);var dv,dt;for(dv=0;dv<cT.length;dv++){dt=typeof cT[dv];if(dt==="string"){bM(cT[dv],bQ)}else{if(dt==="object"){dp(cT[dv],bQ)}}}cT=[];if(!M(du)||du){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dv){if(dv){dv=dv*60*60*1000}else{dv=30*365*24*60*60*1000}var dt=true;this.setConsentGiven(dt);var du=new Date().getTime();dn(bj,du,dv,bw,c7,bY,aN)};this.forgetConsentGiven=function(){var dt=30*365*24*60*60*1000;b5(bj,bw,c7);dn(cU,new Date().getTime(),dt,bw,c7,bY,aN);
this.forgetCookieConsentGiven();this.requireConsent()};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams"];
function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})
}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()
}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
/*!!! pluginTrackerHook */
(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;
for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());
if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
/*!! @license-end */;

View file

@ -0,0 +1,45 @@
function createCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
$(document).ready(function() {
if (readCookie('cookie-notice-dismissed') == 'true') {
console.log("GDPR Consent Dismiss");
} else {
document.getElementById('cookie-notice').style.display = 'block';
}
document.getElementById('cookie-notice-accept').addEventListener("click", function() {
createCookie('cookie-notice-dismissed', 'true', 31);
_paq.push(['rememberConsentGiven']);
document.getElementById('cookie-notice').style.display = 'none';
location.reload();
});
document.getElementById('cookie-notice-dismiss').addEventListener("click", function() {
createCookie('cookie-notice-dismissed', 'true', 31);
_paq.push(['forgetConsentGiven']);
_paq.push(['optUserOut']);
document.getElementById('cookie-notice').style.display = 'none';
location.reload();
});
});

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,42 @@
//= require jquery
//= require simple-jekyll-search
// require bootstrap
// require bootstrap-sprockets
// require morphext
//= require cookie
/* Set the width of the side navigation to 250px */
function openNav() {
document.getElementById("mySidenav").style.width = "250px";
}
/* Set the width of the side navigation to 0 */
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
}
$(document).ready(function () {
var sjs = SimpleJekyllSearch({
searchInput: document.getElementById('search-input'),
resultsContainer: document.getElementById('results-container'),
json: '/search.json',
searchResultTemplate: '<a class="dropdown-item" href="{url}">{title}</a>',
noResultsText: '<a class="dropdown-item" href="#">'+ $("meta[name='no-results']").attr('content') +'</a>',
exclude: ["https://blog.unitoo.it", "https://blog.unitoo.pw"]
});
// $(".morphext-bounce-in").Morphext({
// animation: "bounceIn",
// speed: 2500
// });
// $(".morphext-bounce-left").Morphext({
// animation: "zoomInLeft",
// speed: 4500
// });
// $(".morphext-bounce-up").Morphext({
// animation: "bounceInUp",
// speed: 6500
// });
});

View file

@ -0,0 +1,18 @@
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['requireConsent']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u = "//analytics.unitoo.it/";
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '1']);
//var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
//g.type = 'text/javascript'; g.async = true; g.defer = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s);
})();
jQuery(document).ready(function($) {
$("a[href^='mailto:']").on("click", function(e) {
_paq.push(['trackGoal', 1]);
});
});

View file

@ -0,0 +1,6 @@
/*!
* Simple-Jekyll-Search
* Copyright 2015-2020, Christian Fei
* Licensed under the MIT License.
*/
!function(){"use strict";var f={compile:function(r){return i.template.replace(i.pattern,function(t,e){var n=i.middleware(e,r[e],i.template);return void 0!==n?n:r[e]||t})},setOptions:function(t){i.pattern=t.pattern||i.pattern,i.template=t.template||i.template,"function"==typeof t.middleware&&(i.middleware=t.middleware)}};const i={pattern:/\{(.*?)\}/g,template:"",middleware:function(){}};var n=function(t,e){var n=e.length,r=t.length;if(n<r)return!1;if(r===n)return t===e;t:for(var i=0,o=0;i<r;i++){for(var u=t.charCodeAt(i);o<n;)if(e.charCodeAt(o++)===u)continue t;return!1}return!0},e=new function(){this.matches=function(t,e){return n(e.toLowerCase(),t.toLowerCase())}},r=new function(){this.matches=function(e,t){return!!e&&(e=e.trim().toLowerCase(),(t=t.trim().toLowerCase()).split(" ").filter(function(t){return 0<=e.indexOf(t)}).length===t.split(" ").length)}},d={put:function(t){if(l(t))return a(t);if(function(t){return Boolean(t)&&"[object Array]"===Object.prototype.toString.call(t)}(t))return function(n){const r=[];s();for(let t=0,e=n.length;t<e;t++)l(n[t])&&r.push(a(n[t]));return r}(t);return undefined},clear:s,search:function(t){return t?function(e,n,r,i){const o=[];for(let t=0;t<e.length&&o.length<i.limit;t++){var u=function(t,e,n,r){for(const i in t)if(!function(n,r){for(let t=0,e=r.length;t<e;t++){var i=r[t];if(new RegExp(i).test(n))return!0}return!1}(t[i],r.exclude)&&n.matches(t[i],e))return t}(e[t],n,r,i);u&&o.push(u)}return o}(u,t,c.searchStrategy,c).sort(c.sort):[]},setOptions:function(t){c=t||{},c.fuzzy=t.fuzzy||!1,c.limit=t.limit||10,c.searchStrategy=t.fuzzy?e:r,c.sort=t.sort||o,c.exclude=t.exclude||[]}};function o(){return 0}const u=[];let c={};function s(){return u.length=0,u}function l(t){return Boolean(t)&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return u.push(t),u}c.fuzzy=!1,c.limit=10,c.searchStrategy=c.fuzzy?e:r,c.sort=o,c.exclude=[];var p={load:function(t,e){const n=window.XMLHttpRequest?new window.XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");n.open("GET",t,!0),n.onreadystatechange=h(n,e),n.send()}};function h(e,n){return function(){if(4===e.readyState&&200===e.status)try{n(null,JSON.parse(e.responseText))}catch(t){n(t,null)}}}var m=function y(t){if(!(e=t)||!("undefined"!=typeof e.required&&e.required instanceof Array))throw new Error("-- OptionsValidator: required options missing");var e;if(!(this instanceof y))return new y(t);const r=t.required;this.getRequiredOptions=function(){return r},this.validate=function(e){const n=[];return r.forEach(function(t){"undefined"==typeof e[t]&&n.push(t)}),n}},w={merge:function(t,e){const n={};for(const r in t)n[r]=t[r],"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},isJSON:function(t){try{return t instanceof Object&&JSON.parse(JSON.stringify(t))?!0:!1}catch(e){return!1}}};!function(t){let i={searchInput:null,resultsContainer:null,json:[],success:Function.prototype,searchResultTemplate:'<li><a href="{url}" title="{desc}">{title}</a></li>',templateMiddleware:Function.prototype,sortMiddleware:function(){return 0},noResultsText:"No results found",limit:10,fuzzy:!1,debounceTime:null,exclude:[]},n;const e=function(t,e){e?(clearTimeout(n),n=setTimeout(t,e)):t.call()};var r=["searchInput","resultsContainer","json"];const o=m({required:r});function u(t){d.put(t),i.searchInput.addEventListener("input",function(t){-1===[13,16,20,37,38,39,40,91].indexOf(t.which)&&(c(),e(function(){l(t.target.value)},i.debounceTime))})}function c(){i.resultsContainer.innerHTML=""}function s(t){i.resultsContainer.innerHTML+=t}function l(t){var e;(e=t)&&0<e.length&&(c(),function(e,n){var r=e.length;if(0===r)return s(i.noResultsText);for(let t=0;t<r;t++)e[t].query=n,s(f.compile(e[t]))}(d.search(t),t))}function a(t){throw new Error("SimpleJekyllSearch --- "+t)}t.SimpleJekyllSearch=function(t){var n;0<o.validate(t).length&&a("You must specify the following required options: "+r),i=w.merge(i,t),f.setOptions({template:i.searchResultTemplate,middleware:i.templateMiddleware}),d.setOptions({fuzzy:i.fuzzy,limit:i.limit,sort:i.sortMiddleware,exclude:i.exclude}),w.isJSON(i.json)?u(i.json):(n=i.json,p.load(n,function(t,e){t&&a("failed to get JSON ("+n+")"),u(e)}));t={search:l};return"function"==typeof i.success&&i.success.call(t),t}}(window)}();

View file

@ -0,0 +1,272 @@
html {
scroll-behavior: smooth !important;
}
/**
* Reset some basic elements
*/
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
hr,
dl,
dd,
ol,
ul,
figure {
margin: 0;
padding: 0;
}
/**
* Basic styling
*/
body {
// font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
color: $text-color;
}
/**
* Set `margin-bottom` to maintain vertical rhythm
*/
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
ul,
ol,
dl,
figure,
%vertical-rhythm {
margin-bottom: $spacing-unit / 2;
}
/**
* Articles
*/
article {
background: #faf9f5;
box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.05);
margin-bottom: $spacing-unit;
padding: 3em 3em 1em;
@include media-query($on-palm) {
padding: 1em 1em 0.3em;
}
> .entry-content {
@include media-query($on-palm) {
font-size: 80%;
}
}
}
.post-header {
margin-bottom: 2rem;
text-align: center;
&:before {
background: #faf9f5;
border: 1px solid #d9d6d0;
border-radius: 50%;
box-shadow: 0 0 0 4px #faf9f5;
color: #a09a92;
display: inline-block;
//font-family: libretto-icons;
font-size: 21px;
line-height: 21px;
margin: 1rem auto 2rem;
text-shadow: none;
padding: 4px 10px 10px 10px;
}
> div {
color: $grey-color;
font-size: $base-font-size;
font-style: italic;
@include media-query($on-palm) {
font-size: $small-font-size;
}
&:before {
color: #d9d6d0;
display: inline-block;
// font-family: libretto-icons;
font-size: 24px;
margin: 0 0.25rem;
text-shadow: none;
vertical-align: -6px;
}
&:after {
color: #d9d6d0;
display: inline-block;
// font-family: libretto-icons;
font-size: 24px;
margin: 0 0.25rem;
text-shadow: none;
vertical-align: -6px;
}
}
}
.post-list {
.post-header {
&:before {
background: #eae9e6;
border-color: #faf9f5;
box-shadow: 0 0 0 4px #eae9e6;
}
}
}
/**
* Images
*/
img {
max-width: 100%;
vertical-align: middle;
}
.cover {
background-attachment: fixed;
background-size: cover;
background-repeat: no-repeat;
min-height: 100vh;
}
/**
* Figures
*/
figure {
background: #fff;
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.025);
padding: 0.5em;
}
figure > img {
display: block;
}
figcaption {
color: $grey-color;
font-size: 16px;
font-style: italic;
line-height: 1.2;
margin: 1em 0.5em 0.5em;
text-align: center;
}
/**
* Lists
*/
ul,
ol {
margin-left: $spacing-unit;
}
li {
> ul,
> ol {
margin-bottom: 0;
}
}
/**
* Headings
*/
h1,
h2,
h3,
h4,
h5,
h6 {
line-height: initial;
font-weight: $base-font-weight;
}
h5 {
font-size: 1.25rem;
}
/**
* Links
*/
a {
color: $brand-color;
text-decoration: underline;
&:hover {
color: darken($brand-color, 5%);
text-decoration: none;
}
}
/**
* Blockquotes
*/
blockquote {
color: $grey-color;
border-left: 4px solid $grey-color-light;
padding-left: $spacing-unit / 2;
font-size: 18px;
letter-spacing: -1px;
font-style: italic;
> :last-child {
margin-bottom: 0;
}
}
/**
* Clearfix
*/
%clearfix {
&:after {
content: '';
display: table;
clear: both;
}
}
/**
* Icons
*/
.icon {
> svg {
display: inline-block;
width: 16px;
height: 16px;
vertical-align: middle;
path {
fill: $grey-color;
}
}
}
/**
* Override
*/
@media screen and (max-width: 768px) {
.display-4 {
font-size: 3rem;
}
}
.lead {
text-align: justify;
}

View file

@ -0,0 +1,44 @@
/*!
* Bootstrap v4.6.0 (https://getbootstrap.com/)
* Copyright 2011-2021 The Bootstrap Authors
* Copyright 2011-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@import 'vendor/bootstrap-custom/functions';
@import 'vendor/bootstrap-custom/variables';
@import 'vendor/bootstrap-custom/mixins';
@import 'bootstrap/root';
@import 'vendor/bootstrap-custom/reboot';
@import 'bootstrap/type';
// @import 'bootstrap/images';
@import 'vendor/bootstrap-custom/code';
@import 'vendor/bootstrap-custom/grid';
// @import 'bootstrap/tables';
@import 'vendor/bootstrap-custom/forms';
@import 'vendor/bootstrap-custom/buttons';
// @import 'bootstrap/transitions';
@import 'vendor/bootstrap-custom/dropdown';
// @import 'bootstrap/button-group';
@import 'vendor/bootstrap-custom/input-group';
// @import 'bootstrap/custom-forms';
// @import 'bootstrap/nav';
@import 'vendor/bootstrap-custom/navbar';
@import 'vendor/bootstrap-custom/card';
// @import 'bootstrap/breadcrumb';
// @import 'bootstrap/pagination';
// @import 'bootstrap/badge';
@import 'bootstrap/jumbotron';
// @import 'bootstrap/alert';
// @import 'bootstrap/progress';
// @import 'bootstrap/media';
@import 'vendor/bootstrap-custom/list-group';
// @import 'bootstrap/close';
// @import 'bootstrap/toasts';
// @import 'bootstrap/modal';
// @import 'bootstrap/tooltip';
// @import 'bootstrap/popover';
// @import 'bootstrap/carousel';
// @import 'bootstrap/spinners';
@import 'vendor/bootstrap-custom/utilities';
// @import 'bootstrap/print';

View file

@ -0,0 +1,29 @@
#cookie-notice {
padding: 0.5rem 1rem;
display: none;
text-align: center;
position: fixed;
bottom: 0;
width: calc(100% - 2rem);
background: #222;
color: rgba(255,255,255,0.8);
a {
display: inline-block;
cursor: pointer;
margin-left: 0.5rem;
}
@media (max-width: 767px) {
span {
display: block;
padding-top: 3px;
margin-bottom: 1rem;
}
a {
position: relative;
bottom: 4px;
}
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,468 @@
/**
* Site header
*/
.site-header {
background: #333;
border-top: 5px solid $title-color;
border-bottom: 1px solid $gray-800;
min-height: 56px;
// Positioning context for the mobile navigation icon
//position: relative;
}
.site-title {
font-family: sans-serif; //'Raleway', sans-serif;
font-size: 32px;
font-weight: 300;
line-height: 40px;
margin-bottom: 0;
color: #333;
&,
&:visited {
color: $title-color;
}
}
/**
* Site footer
*/
.site-footer {
min-height: 300px;
padding: $spacing-unit 0;
text-align: center;
color: #fff;
line-height: 1.3;
background-color: #333;
border-top: 3px dashed $body-bg;
box-shadow: 0px 250px #333;
li.list-inline-item {
img {
margin-top: -3px;
}
}
}
// .footer-heading {
// font-size: 18px;
// margin-bottom: $spacing-unit / 2;
// }
ul.social-buttons {
margin-bottom: 0;
}
ul.social-buttons li a {
font-size: 20px;
line-height: 40px;
display: block;
width: 40px;
height: 40px;
transition: all 0.3s;
color: #222;
border-radius: 100%;
outline: 0;
background-color: #fff;
}
ul.social-buttons li a:active,
ul.social-buttons li a:focus,
ul.social-buttons li a:hover {
background-color: $brand-color-secondary-hover;
}
/**
* Page content
*/
aside.aside {
padding: 5rem 0;
}
.page-content {
padding: $spacing-unit 0;
background-attachment: fixed;
background-size: cover;
background-repeat: no-repeat;
}
.page-heading {
font-size: 20px;
}
.post-list {
margin-left: 0;
list-style: none;
}
.post-meta {
color: $grey-color;
}
.post-link {
display: block;
font-family: sans-serif; //'Raleway', sans-serif;
@include media-query($on-palm) {
font-size: 1.1em;
}
}
/**
* Posts
*/
.post-header {
margin-bottom: $spacing-unit;
}
.post-title {
color: $grey-color;
font-family: sans-serif; //'Raleway', sans-serif;
font-size: 42px;
letter-spacing: -1px;
line-height: 1;
@include media-query($on-laptop) {
font-size: 36px;
}
}
.post-content {
margin-bottom: $spacing-unit;
h2 {
font-size: 32px;
@include media-query($on-laptop) {
font-size: 28px;
}
}
h3 {
font-size: 26px;
@include media-query($on-laptop) {
font-size: 22px;
}
}
h4 {
font-size: 20px;
@include media-query($on-laptop) {
font-size: 18px;
}
}
}
#post-nav {
display: block;
.next,
.previous {
float: left;
margin: 1rem 0;
width: 50%;
span:before,
span:after {
border: solid transparent 4px;
content: '';
display: inline-block;
height: 0;
margin: 0 0.5rem;
top: 0.8em;
width: 0;
}
}
.previous {
span:before {
border-left: 0;
border-right-color: $grey-color;
}
}
.next {
text-align: right;
span:after {
border-left-color: $grey-color;
border-right: 0;
}
}
@include media-query($on-palm) {
padding: initial;
.next,
.previous {
text-align: center;
width: 100%;
}
}
span {
color: $brand-color;
display: block;
font-family: Montserrat;
font-size: 0.75rem;
font-style: normal;
letter-spacing: 1px;
text-transform: uppercase;
}
a {
color: $grey-color;
font-style: italic;
}
}
/**
* Index
*/
.home {
h1 {
color: $brand-color;
display: block;
font-family: sans-serif; //'Raleway', sans-serif;
font-size: 44px;
text-align: center;
@include media-query($on-laptop) {
font-size: 36px;
}
}
}
/**
* Error pages
*/
.error {
text-align: center;
}
/**
* Bootstrap Override
*/
@media (min-width: 1200px) {
.container {
max-width: 960px;
}
}
// .card td.img {
// width: 220px;
// background-size: cover;
// background-repeat: no-repeat;
// }
// .btn {
// transition: box-shadow 0.3s ease-out, border-color 0.2s ease-out, color 0.3s ease-out;
// text-decoration: none;
// }
.btn-secondary {
background-color: transparent;
border-color: $brand-color-secondary;
box-shadow: inset 0px -0.3rem 0 $brand-color-secondary;
color: $text-color;
&:hover {
background-color: transparent;
border-color: $brand-color-secondary-hover;
box-shadow: inset 0px -100px 0 $brand-color-secondary-hover;
color: white;
}
&:focus {
box-shadow: inset 0 0 5px $brand-color-secondary;
color: $text-color;
}
&:not(:disabled):not(.disabled):active {
background-color: $brand-color-secondary;
border-color: $brand-color-secondary;
}
&:not(:disabled):not(.disabled):active:focus {
box-shadow: inset 0 0 5px $brand-color-secondary;
}
}
.btn-outline-primary {
border-color: $brand-color;
color: $brand-color;
&:hover {
background-color: $brand-color !important;
border-color: $brand-color !important;
}
&:active {
background-color: $brand-color !important;
border-color: $brand-color !important;
}
}
.btn-primary {
background-color: transparent;
border-color: $brand-color;
box-shadow: inset 0px -0.3rem 0 $brand-color, $box-shadow;
color: $text-color;
&:hover {
background-color: transparent;
border-color: $brand-color-hover;
box-shadow: inset 0px -100px 0 $brand-color;
}
&:focus {
box-shadow: inset 0 0 5px $brand-color;
color: $text-color;
}
&:not(:disabled):not(.disabled):active {
background-color: $brand-color;
border-color: $brand-color;
}
&:not(:disabled):not(.disabled):active:focus {
box-shadow: inset 0 0 5px $brand-color;
}
}
.btn-success {
background-color: transparent;
border-color: $success-color;
box-shadow: inset 0px -0.3rem 0 $success-color, $box-shadow;
color: $text-color;
&:hover {
background-color: transparent;
border-color: $success-color-hover;
box-shadow: inset 0px -100px 0 $success-color;
}
&:focus {
box-shadow: inset 0 0 5px $success-color;
color: $text-color;
}
&:not(:disabled):not(.disabled):active {
background-color: $success-color;
border-color: $success-color;
}
&:not(:disabled):not(.disabled):active:focus {
box-shadow: inset 0 0 5px $success-color;
}
}
// .bg-primary {
// background-color: $brand-color !important;
// }
// .border-primary {
// border-color: $brand-color !important;
// }
// .border-secondary {
// border-color: $brand-color-secondary !important;
// }
// .text-primary {
// color: $brand-color !important;
// }
// .card-columns {
// @media (max-width: 1199.98px) {
// column-count: 2;
// }
// @media (max-width: 991.98px) {
// column-count: 1;
// }
// }
// .dropdown-toggle:after {
// content: none;
// }
// .list-inline-item:not(:last-child) {
// margin-right: 0.25rem;
// }
.content-bottom {
background-color: rgba(0, 0, 0, 0.65);
bottom: 0;
width: 100%;
padding: 100px 15px 100px;
}
// .shadow {
// box-shadow: $box-shadow !important;
// }
.header {
min-height: 80vh;
background-size: cover;
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
}
.header-index {
margin-top: -30px;
margin-bottom: 0;
background-image: asset_url('header-space.webp');
}
.header-peertube {
background-image: asset_url('header-peertube.webp');
}
.header-libreboot {
background-image: asset_url('libreboot.webp');
}
.header-radio {
background-image: asset_url('header-radio.webp');
}
.header-aboutus {
background-image: asset_url('header-aboutus.webp');
}
.header-technical_assistance {
background-image: asset_url('header-technical_assistance.webp');
}
.header-cybersecurity {
background-image: asset_url('header-cybersecurity.webp');
}
.header-communications {
background-image: asset_url('header-communications.webp');
}
.min-height-500 {
min-height: 500px !important;
}
.fix-icon-mt {
margin-top: -3px;
}
.border-thicker {
border-width: 2px;
}

View file

@ -0,0 +1,38 @@
.sidenav {
height: 100%;
width: 0;
position: fixed;
z-index: 2000;
top: 0;
left: 0;
background-color: #333;
overflow-x: hidden;
padding-top: 60px;
transition: 0.5s;
}
.sidenav a {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 25px;
color: white;
display: block;
transition: 0.3s;
}
.sidenav a:hover {
color: #f1f1f1;
}
.sidenav .closebtn {
position: absolute;
top: 0;
right: 25px;
font-size: 36px;
margin-left: 50px;
}
@media screen and (max-height: 450px) {
.sidenav {padding-top: 15px;}
.sidenav a {font-size: 18px;}
}

View file

@ -0,0 +1,17 @@
.jumbotron {
padding: $jumbotron-padding ($jumbotron-padding * .5);
margin-bottom: $jumbotron-padding;
color: $jumbotron-color;
background-color: $jumbotron-bg;
@include border-radius($border-radius-lg);
@include media-breakpoint-up(sm) {
padding: ($jumbotron-padding * 2) $jumbotron-padding;
}
}
.jumbotron-fluid {
padding-right: 0;
padding-left: 0;
@include border-radius(0);
}

View file

@ -0,0 +1,19 @@
:root {
// Custom variable values only support SassScript inside `#{}`.
@each $color, $value in $colors {
--#{$color}: #{$value};
}
@each $color, $value in $theme-colors {
--#{$color}: #{$value};
}
@each $bp, $value in $grid-breakpoints {
--breakpoint-#{$bp}: #{$value};
}
// Use `inspect` for lists so that quoted items keep the quotes.
// See https://github.com/sass/sass/issues/2383#issuecomment-336349172
--font-family-sans-serif: #{inspect($font-family-sans-serif)};
--font-family-monospace: #{inspect($font-family-monospace)};
}

View file

@ -0,0 +1,125 @@
// stylelint-disable selector-list-comma-newline-after
//
// Headings
//
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: $headings-margin-bottom;
font-family: $headings-font-family;
font-weight: $headings-font-weight;
line-height: $headings-line-height;
color: $headings-color;
}
h1, .h1 { @include font-size($h1-font-size); }
h2, .h2 { @include font-size($h2-font-size); }
h3, .h3 { @include font-size($h3-font-size); }
h4, .h4 { @include font-size($h4-font-size); }
h5, .h5 { @include font-size($h5-font-size); }
h6, .h6 { @include font-size($h6-font-size); }
.lead {
@include font-size($lead-font-size);
font-weight: $lead-font-weight;
}
// Type display classes
.display-1 {
@include font-size($display1-size);
font-weight: $display1-weight;
line-height: $display-line-height;
}
.display-2 {
@include font-size($display2-size);
font-weight: $display2-weight;
line-height: $display-line-height;
}
.display-3 {
@include font-size($display3-size);
font-weight: $display3-weight;
line-height: $display-line-height;
}
.display-4 {
@include font-size($display4-size);
font-weight: $display4-weight;
line-height: $display-line-height;
}
//
// Horizontal rules
//
hr {
margin-top: $hr-margin-y;
margin-bottom: $hr-margin-y;
border: 0;
border-top: $hr-border-width solid $hr-border-color;
}
//
// Emphasis
//
small,
.small {
@include font-size($small-font-size);
font-weight: $font-weight-normal;
}
mark,
.mark {
padding: $mark-padding;
background-color: $mark-bg;
}
//
// Lists
//
.list-unstyled {
@include list-unstyled();
}
// Inline turns list items into inline-block
.list-inline {
@include list-unstyled();
}
.list-inline-item {
display: inline-block;
&:not(:last-child) {
margin-right: $list-inline-padding;
}
}
//
// Misc
//
// Builds on `abbr`
.initialism {
@include font-size(90%);
text-transform: uppercase;
}
// Blockquotes
.blockquote {
margin-bottom: $spacer;
@include font-size($blockquote-font-size);
}
.blockquote-footer {
display: block;
@include font-size($blockquote-small-font-size);
color: $blockquote-small-color;
&::before {
content: "\2014\00A0"; // em dash, nbsp
}
}

View file

@ -0,0 +1,48 @@
@charset "utf-8";
@import 'fontello';
@import 'bootstrap-custom';
//@import 'vendor/fonts';
//@import 'vendor/animate';
//@import 'vendor/morphext';
// Font variables
// $font-name: libretto-icons;
// @font-face {
// font-family: $font-name;
// src: asset_url($font-name + '/' + $font-name + '.eot'); /* IE9 Compat Modes */
// src: asset_url($font-name + '/' + $font-name + '.woff') format('woff'),
// /* Pretty Modern Browsers */ asset_url($font-name + '/' + $font-name + '.ttf')
// format('truetype'),
// /* Safari, Android, iOS */ asset_url($font-name + '/' + $font-name + '.svg#font_name')
// format('svg'); /* Legacy iOS */
// }
// Our variables
$spacing-unit: 30px;
$title-color: #009fe3;
$success-color: $green;
$success-color-hover: #218838;
$grey-color: #a09a92;
$grey-color-light: lighten($grey-color, 30%);
$grey-color-dark: darken($grey-color, 25%);
// Width of the content area
// $content-width: 800px;
$on-palm: 600px;
$on-laptop: 800px;
//$shadow: -0.1rem 0.2rem 0 rgba(0, 0, 0, 0.05);
@mixin media-query($device) {
@media screen and (max-width: $device) {
@content;
}
}
// Import partials from `sass_dir` (defaults to `_sass`)
@import 'base', 'layout', 'sidebar', 'cookie';//, 'syntax-highlighting';

View file

@ -0,0 +1,204 @@
// stylelint-disable property-blacklist, scss/dollar-variable-default
// SCSS RFS mixin
//
// Automated font-resizing
//
// See https://github.com/twbs/rfs
// Configuration
// Base font size
$rfs-base-font-size: 1.25rem !default;
$rfs-font-size-unit: rem !default;
// Breakpoint at where font-size starts decreasing if screen width is smaller
$rfs-breakpoint: 1200px !default;
$rfs-breakpoint-unit: px !default;
// Resize font-size based on screen height and width
$rfs-two-dimensional: false !default;
// Factor of decrease
$rfs-factor: 10 !default;
@if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {
@error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
}
// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
$rfs-class: false !default;
// 1 rem = $rfs-rem-value px
$rfs-rem-value: 16 !default;
// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
$rfs-safari-iframe-resize-bug-fix: false !default;
// Disable RFS by setting $enable-responsive-font-sizes to false
$enable-responsive-font-sizes: true !default;
// Cache $rfs-base-font-size unit
$rfs-base-font-size-unit: unit($rfs-base-font-size);
// Remove px-unit from $rfs-base-font-size for calculations
@if $rfs-base-font-size-unit == "px" {
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
}
@else if $rfs-base-font-size-unit == "rem" {
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
}
// Cache $rfs-breakpoint unit to prevent multiple calls
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
// Remove unit from $rfs-breakpoint for calculations
@if $rfs-breakpoint-unit-cache == "px" {
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
}
@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
}
// Responsive font-size mixin
@mixin rfs($fs, $important: false) {
// Cache $fs unit
$fs-unit: if(type-of($fs) == "number", unit($fs), false);
// Add !important suffix if needed
$rfs-suffix: if($important, " !important", "");
// If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
@if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {
font-size: #{$fs}#{$rfs-suffix};
}
@else {
// Variables for storing static and fluid rescaling
$rfs-static: null;
$rfs-fluid: null;
// Remove px-unit from $fs for calculations
@if $fs-unit == "px" {
$fs: $fs / ($fs * 0 + 1);
}
@else if $fs-unit == "rem" {
$fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
}
// Set default font-size
@if $rfs-font-size-unit == rem {
$rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
}
@else if $rfs-font-size-unit == px {
$rfs-static: #{$fs}px#{$rfs-suffix};
}
@else {
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
}
// Only add media query if font-size is bigger as the minimum font-size
// If $rfs-factor == 1, no rescaling will take place
@if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
$min-width: null;
$variable-unit: null;
// Calculate minimum font-size for given font-size
$fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
// Calculate difference between given font-size and minimum font-size for given font-size
$fs-diff: $fs - $fs-min;
// Base font-size formatting
// No need to check if the unit is valid, because we did that before
$min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
// If two-dimensional, use smallest of screen width and height
$variable-unit: if($rfs-two-dimensional, vmin, vw);
// Calculate the variable width between 0 and $rfs-breakpoint
$variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
// Set the calculated font-size.
$rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
}
// Rendering
@if $rfs-fluid == null {
// Only render static font-size if no fluid font-size is available
font-size: $rfs-static;
}
@else {
$mq-value: null;
// RFS breakpoint formatting
@if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
$mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
}
@else if $rfs-breakpoint-unit == px {
$mq-value: #{$rfs-breakpoint}px;
}
@else {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
}
@if $rfs-class == "disable" {
// Adding an extra class increases specificity,
// which prevents the media query to override the font size
&,
.disable-responsive-font-size &,
&.disable-responsive-font-size {
font-size: $rfs-static;
}
}
@else {
font-size: $rfs-static;
}
@if $rfs-two-dimensional {
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
font-size: $rfs-fluid;
}
}
@else {
font-size: $rfs-fluid;
}
@if $rfs-safari-iframe-resize-bug-fix {
// stylelint-disable-next-line length-zero-no-unit
min-width: 0vw;
}
}
}
@else {
@media (max-width: #{$mq-value}) {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
font-size: $rfs-fluid;
}
}
@else {
font-size: $rfs-fluid;
}
@if $rfs-safari-iframe-resize-bug-fix {
// stylelint-disable-next-line length-zero-no-unit
min-width: 0vw;
}
}
}
}
}
}
// The font-size & responsive-font-size mixin uses RFS to rescale font sizes
@mixin font-size($fs, $important: false) {
@include rfs($fs, $important);
}
@mixin responsive-font-size($fs, $important: false) {
@include rfs($fs, $important);
}

View file

@ -0,0 +1,142 @@
// stylelint-disable selector-no-qualifying-type
//
// Base styles
//
.btn {
display: inline-block;
font-family: $btn-font-family;
font-weight: $btn-font-weight;
color: $body-color;
text-align: center;
text-decoration: none;
white-space: $btn-white-space;
vertical-align: middle;
user-select: none;
background-color: transparent;
border: $btn-border-width solid transparent;
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
@include transition($btn-transition);
@include hover() {
color: $body-color;
text-decoration: none;
}
&:focus,
&.focus {
outline: 0;
box-shadow: $btn-focus-box-shadow;
}
// Disabled comes first so active can properly restyle
&.disabled,
&:disabled {
opacity: $btn-disabled-opacity;
@include box-shadow(none);
}
&:not(:disabled):not(.disabled) {
cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
&:active,
&.active {
@include box-shadow($btn-active-box-shadow);
&:focus {
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
}
}
}
}
// Future-proof disabling of clicks on `<a>` elements
a.btn.disabled,
fieldset:disabled a.btn {
pointer-events: none;
}
//
// Alternate buttons
//
@each $color, $value in $theme-colors {
.btn-#{$color} {
@include button-variant($value, $value);
}
}
@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
}
}
//
// Link buttons
//
// Make a button look and behave like a link
// .btn-link {
// font-weight: $font-weight-normal;
// color: $link-color;
// text-decoration: $link-decoration;
// @include hover() {
// color: $link-hover-color;
// text-decoration: $link-hover-decoration;
// }
// &:focus,
// &.focus {
// text-decoration: $link-hover-decoration;
// }
// &:disabled,
// &.disabled {
// color: $btn-link-disabled-color;
// pointer-events: none;
// }
// // No need for an active state here
// }
//
// Button Sizes
//
.btn-lg {
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
}
.btn-sm {
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
}
//
// Block button
//
// .btn-block {
// display: block;
// width: 100%;
// // Vertically space out multiple block buttons
// + .btn-block {
// margin-top: $btn-block-spacing-y;
// }
// }
// Specificity overrides
input[type="submit"],
input[type="reset"],
input[type="button"] {
&.btn-block {
width: 100%;
}
}

View file

@ -0,0 +1,297 @@
.card {
position: relative;
display: flex;
flex-direction: column;
min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
height: $card-height;
word-wrap: break-word;
background-color: $card-bg;
background-clip: border-box;
border: $card-border-width solid $card-border-color;
line-height: 1.5;
@include border-radius($card-border-radius);
> hr {
margin-right: 0;
margin-left: 0;
}
> .list-group {
border-top: inherit;
border-bottom: inherit;
&:first-child {
border-top-width: 0;
@include border-top-radius($card-inner-border-radius);
}
&:last-child {
border-bottom-width: 0;
@include border-bottom-radius($card-inner-border-radius);
}
}
// Due to specificity of the above selector (`.card > .list-group`), we must
// use a child selector here to prevent double borders.
> .card-header + .list-group,
> .list-group + .card-footer {
border-top: 0;
}
> td {
> img {
width: 220px;
background-size: cover;
background-repeat: no-repeat;
}
}
}
.card-body {
// Enable `flex-grow: 1` for decks and groups so that card blocks take up
// as much space as possible, ensuring footers are aligned to the bottom.
flex: 1 1 auto;
// Workaround for the image size bug in IE
// See: https://github.com/twbs/bootstrap/pull/28855
min-height: 1px;
padding: $card-spacer-x;
color: $card-color;
}
.card-title {
margin-bottom: $card-spacer-y;
}
.card-subtitle {
margin-top: -$card-spacer-y / 2;
margin-bottom: 0;
}
.card-text:last-child {
margin-bottom: 0;
}
.card-link {
@include hover() {
text-decoration: none;
}
+ .card-link {
margin-left: $card-spacer-x;
}
}
//
// Optional textual caps
//
.card-header {
padding: $card-spacer-y $card-spacer-x;
margin-bottom: 0; // Removes the default margin-bottom of <hN>
color: $card-cap-color;
background-color: $card-cap-bg;
border-bottom: $card-border-width solid $card-border-color;
&:first-child {
@include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
}
}
.card-footer {
padding: $card-spacer-y $card-spacer-x;
color: $card-cap-color;
background-color: $card-cap-bg;
border-top: $card-border-width solid $card-border-color;
&:last-child {
@include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);
}
}
//
// Header navs
//
.card-header-tabs {
margin-right: -$card-spacer-x / 2;
margin-bottom: -$card-spacer-y;
margin-left: -$card-spacer-x / 2;
border-bottom: 0;
}
.card-header-pills {
margin-right: -$card-spacer-x / 2;
margin-left: -$card-spacer-x / 2;
}
// Card image
.card-img-overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: $card-img-overlay-padding;
@include border-radius($card-inner-border-radius);
}
.card-img,
.card-img-top,
.card-img-bottom {
flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
}
.card-img,
.card-img-top {
@include border-top-radius($card-inner-border-radius);
}
.card-img,
.card-img-bottom {
@include border-bottom-radius($card-inner-border-radius);
}
// Card deck
.card-deck {
.card {
margin-bottom: $card-deck-margin;
}
@include media-breakpoint-up(sm) {
display: flex;
flex-flow: row wrap;
margin-right: -$card-deck-margin;
margin-left: -$card-deck-margin;
.card {
// Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
flex: 1 0 0%;
margin-right: $card-deck-margin;
margin-bottom: 0; // Override the default
margin-left: $card-deck-margin;
}
}
}
//
// Card groups
//
.card-group {
// The child selector allows nested `.card` within `.card-group`
// to display properly.
> .card {
margin-bottom: $card-group-margin;
}
@include media-breakpoint-up(sm) {
display: flex;
flex-flow: row wrap;
// The child selector allows nested `.card` within `.card-group`
// to display properly.
> .card {
// Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
flex: 1 0 0%;
margin-bottom: 0;
+ .card {
margin-left: 0;
border-left: 0;
}
// Handle rounded corners
@if $enable-rounded {
&:not(:last-child) {
@include border-right-radius(0);
.card-img-top,
.card-header {
// stylelint-disable-next-line property-disallowed-list
border-top-right-radius: 0;
}
.card-img-bottom,
.card-footer {
// stylelint-disable-next-line property-disallowed-list
border-bottom-right-radius: 0;
}
}
&:not(:first-child) {
@include border-left-radius(0);
.card-img-top,
.card-header {
// stylelint-disable-next-line property-disallowed-list
border-top-left-radius: 0;
}
.card-img-bottom,
.card-footer {
// stylelint-disable-next-line property-disallowed-list
border-bottom-left-radius: 0;
}
}
}
}
}
}
//
// Columns
//
.card-columns {
.card {
margin-bottom: $card-columns-margin;
}
@include media-breakpoint-up(sm) {
column-count: $card-columns-count;
column-gap: $card-columns-gap;
orphans: 1;
widows: 1;
.card {
display: inline-block; // Don't let them vertically span multiple columns
width: 100%; // Don't let their width change
}
}
@include media-breakpoint-up(xs) {
column-count: 1;
}
}
//
// Accordion
//
// .accordion {
// overflow-anchor: none;
// > .card {
// overflow: hidden;
// &:not(:last-of-type) {
// border-bottom: 0;
// @include border-bottom-radius(0);
// }
// &:not(:first-of-type) {
// @include border-top-radius(0);
// }
// > .card-header {
// @include border-radius(0);
// margin-bottom: -$card-border-width;
// }
// }
// }

View file

@ -0,0 +1,52 @@
// Inline code
code {
@include font-size($code-font-size);
color: $code-color;
word-wrap: break-word;
// Streamline the style when inside anchors to avoid broken underline and more
a > & {
color: inherit;
}
}
// User input typically entered via keyboard
// kbd {
// padding: $kbd-padding-y $kbd-padding-x;
// @include font-size($kbd-font-size);
// color: $kbd-color;
// background-color: $kbd-bg;
// @include border-radius($border-radius-sm);
// @include box-shadow($kbd-box-shadow);
// kbd {
// padding: 0;
// @include font-size(100%);
// font-weight: $nested-kbd-font-weight;
// @include box-shadow(none);
// }
// }
// Blocks of code
pre {
display: block;
@include font-size($code-font-size);
color: $pre-color;
background-color: $gray-300;
// Account for some code outputs that place code tags in pre tags
code {
@include font-size(inherit);
color: inherit;
word-break: normal;
background-color: $gray-300;
}
}
// Enable scrollable blocks of code
// .pre-scrollable {
// max-height: $pre-scrollable-max-height;
// overflow-y: scroll;
// }

View file

@ -0,0 +1,192 @@
// The dropdown wrapper (`<div>`)
// .dropup,
// .dropright,
.dropdown,
.dropleft {
position: relative;
}
// .dropdown-toggle {
// white-space: nowrap;
// // Generate the caret automatically
// @include caret();
// }
// The dropdown menu
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: $zindex-dropdown;
display: none; // none by default, but block on "open" of the menu
float: left;
min-width: $dropdown-min-width;
padding: $dropdown-padding-y $dropdown-padding-x;
margin: $dropdown-spacer 0 0; // override default ul
@include font-size($dropdown-font-size);
color: $dropdown-color;
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
list-style: none;
background-color: $dropdown-bg;
background-clip: padding-box;
border: $dropdown-border-width solid $dropdown-border-color;
@include border-radius($dropdown-border-radius);
@include box-shadow($dropdown-box-shadow);
}
// @each $breakpoint in map-keys($grid-breakpoints) {
// @include media-breakpoint-up($breakpoint) {
// $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
// .dropdown-menu#{$infix}-left {
// right: auto;
// left: 0;
// }
// .dropdown-menu#{$infix}-right {
// right: 0;
// left: auto;
// }
// }
// }
// Allow for dropdowns to go bottom up (aka, dropup-menu)
// Just add .dropup after the standard .dropdown class and you're set.
// .dropup {
// .dropdown-menu {
// top: auto;
// bottom: 100%;
// margin-top: 0;
// margin-bottom: $dropdown-spacer;
// }
// .dropdown-toggle {
// @include caret(up);
// }
// }
// .dropright {
// .dropdown-menu {
// top: 0;
// right: auto;
// left: 100%;
// margin-top: 0;
// margin-left: $dropdown-spacer;
// }
// .dropdown-toggle {
// @include caret(right);
// &::after {
// vertical-align: 0;
// }
// }
// }
// .dropleft {
// .dropdown-menu {
// top: 0;
// right: 100%;
// left: auto;
// margin-top: 0;
// margin-right: $dropdown-spacer;
// }
// .dropdown-toggle {
// @include caret(left);
// &::before {
// vertical-align: 0;
// }
// }
// }
// When Popper is enabled, reset the basic dropdown position
// stylelint-disable-next-line no-duplicate-selectors
.dropdown-menu {
&[x-placement^="top"],
&[x-placement^="right"],
&[x-placement^="bottom"],
&[x-placement^="left"] {
right: auto;
bottom: auto;
}
}
// Dividers (basically an `<hr>`) within the dropdown
.dropdown-divider {
@include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);
}
// Links, buttons, and more within the dropdown menu
//
// `<button>`-specific styles are denoted with `// For <button>s`
.dropdown-item {
display: block;
width: 100%; // For `<button>`s
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
clear: both;
font-weight: $font-weight-normal;
color: $dropdown-link-color;
text-align: inherit; // For `<button>`s
text-decoration: if($link-decoration == none, null, none);
white-space: nowrap; // prevent links from randomly breaking onto new lines
background-color: transparent; // For `<button>`s
border: 0; // For `<button>`s
// Prevent dropdown overflow if there's no padding
// See https://github.com/twbs/bootstrap/pull/27703
@if $dropdown-padding-y == 0 {
&:first-child {
@include border-top-radius($dropdown-inner-border-radius);
}
&:last-child {
@include border-bottom-radius($dropdown-inner-border-radius);
}
}
@include hover-focus() {
color: $dropdown-link-hover-color;
text-decoration: none;
//@include gradient-bg($dropdown-link-hover-bg);
}
&.active,
&:active {
color: $dropdown-link-active-color;
text-decoration: none;
//@include gradient-bg($dropdown-link-active-bg);
}
&.disabled,
&:disabled {
color: $dropdown-link-disabled-color;
pointer-events: none;
background-color: transparent;
// Remove CSS gradients if they're enabled
@if $enable-gradients {
background-image: none;
}
}
}
.dropdown-menu.show {
display: block;
}
// Dropdown section headers
.dropdown-header {
display: block;
padding: $dropdown-header-padding;
margin-bottom: 0; // for use with heading elements
@include font-size($font-size-sm);
color: $dropdown-header-color;
white-space: nowrap; // as with > li > a
}
// Dropdown text
.dropdown-item-text {
display: block;
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
color: $dropdown-link-color;
}

View file

@ -0,0 +1,341 @@
.form-control {
display: block;
width: 100%;
height: $input-height;
padding: $input-padding-y $input-padding-x;
font-family: $input-font-family;
@include font-size($input-font-size);
font-weight: $input-font-weight;
line-height: $input-line-height;
color: $input-color;
background-color: $input-bg;
background-clip: padding-box;
border: $input-border-width solid $input-border-color;
// Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
@include border-radius($input-border-radius, 0);
@include box-shadow($input-box-shadow);
@include transition($input-transition);
// Unstyle the caret on `<select>`s in IE10+.
&::-ms-expand {
background-color: transparent;
border: 0;
}
// Remove select outline from select box in FF
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 $input-color;
}
// Customize the `:focus` state to imitate native WebKit styles.
@include form-control-focus($ignore-warning: true);
// Placeholder
&::placeholder {
color: $input-placeholder-color;
// Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
opacity: 1;
}
// Disabled and read-only inputs
//
// HTML5 says that controls under a fieldset > legend:first-child won't be
// disabled if the fieldset is disabled. Due to implementation difficulty, we
// don't honor that edge case; we style them as disabled anyway.
&:disabled,
&[readonly] {
background-color: $input-disabled-bg;
// iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
opacity: 1;
}
}
// input[type="date"],
// input[type="time"],
// input[type="datetime-local"],
// input[type="month"] {
// &.form-control {
// appearance: none; // Fix appearance for date inputs in Safari
// }
// }
// select.form-control {
// &:focus::-ms-value {
// // Suppress the nested default white text on blue background highlight given to
// // the selected option text when the (still closed) <select> receives focus
// // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to
// // match the appearance of the native widget.
// // See https://github.com/twbs/bootstrap/issues/19398.
// color: $input-color;
// background-color: $input-bg;
// }
// }
// Make file inputs better match text inputs by forcing them to new lines.
// .form-control-file,
// .form-control-range {
// display: block;
// width: 100%;
// }
//
// Labels
//
// For use with horizontal and inline forms, when you need the label (or legend)
// text to align with the form controls.
// .col-form-label {
// padding-top: add($input-padding-y, $input-border-width);
// padding-bottom: add($input-padding-y, $input-border-width);
// margin-bottom: 0; // Override the `<label>/<legend>` default
// @include font-size(inherit); // Override the `<legend>` default
// line-height: $input-line-height;
// }
// .col-form-label-lg {
// padding-top: add($input-padding-y-lg, $input-border-width);
// padding-bottom: add($input-padding-y-lg, $input-border-width);
// @include font-size($input-font-size-lg);
// line-height: $input-line-height-lg;
// }
// .col-form-label-sm {
// padding-top: add($input-padding-y-sm, $input-border-width);
// padding-bottom: add($input-padding-y-sm, $input-border-width);
// @include font-size($input-font-size-sm);
// line-height: $input-line-height-sm;
// }
// Readonly controls as plain text
//
// Apply class to a readonly input to make it appear like regular plain
// text (without any border, background color, focus indicator)
// .form-control-plaintext {
// display: block;
// width: 100%;
// padding: $input-padding-y 0;
// margin-bottom: 0; // match inputs if this class comes on inputs with default margins
// @include font-size($input-font-size);
// line-height: $input-line-height;
// color: $input-plaintext-color;
// background-color: transparent;
// border: solid transparent;
// border-width: $input-border-width 0;
// &.form-control-sm,
// &.form-control-lg {
// padding-right: 0;
// padding-left: 0;
// }
// }
// Form control sizing
//
// Build on `.form-control` with modifier classes to decrease or increase the
// height and font-size of form controls.
//
// Repeated in `_input_group.scss` to avoid Sass extend issues.
// .form-control-sm {
// height: $input-height-sm;
// padding: $input-padding-y-sm $input-padding-x-sm;
// @include font-size($input-font-size-sm);
// line-height: $input-line-height-sm;
// @include border-radius($input-border-radius-sm);
// }
// .form-control-lg {
// height: $input-height-lg;
// padding: $input-padding-y-lg $input-padding-x-lg;
// @include font-size($input-font-size-lg);
// line-height: $input-line-height-lg;
// @include border-radius($input-border-radius-lg);
// }
// stylelint-disable-next-line no-duplicate-selectors
// select.form-control {
// &[size],
// &[multiple] {
// height: auto;
// }
// }
// textarea.form-control {
// height: auto;
// }
// Form groups
//
// Designed to help with the organization and spacing of vertical forms. For
// horizontal forms, use the predefined grid classes.
// .form-group {
// margin-bottom: $form-group-margin-bottom;
// }
// .form-text {
// display: block;
// margin-top: $form-text-margin-top;
// }
// Form grid
//
// Special replacement for our grid system's `.row` for tighter form layouts.
// .form-row {
// display: flex;
// flex-wrap: wrap;
// margin-right: -$form-grid-gutter-width / 2;
// margin-left: -$form-grid-gutter-width / 2;
// > .col,
// > [class*="col-"] {
// padding-right: $form-grid-gutter-width / 2;
// padding-left: $form-grid-gutter-width / 2;
// }
// }
// Checkboxes and radios
//
// Indent the labels to position radios/checkboxes as hanging controls.
// .form-check {
// position: relative;
// display: block;
// padding-left: $form-check-input-gutter;
// }
// .form-check-input {
// position: absolute;
// margin-top: $form-check-input-margin-y;
// margin-left: -$form-check-input-gutter;
// // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247
// &[disabled] ~ .form-check-label,
// &:disabled ~ .form-check-label {
// color: $text-muted;
// }
// }
// .form-check-label {
// margin-bottom: 0; // Override default `<label>` bottom margin
// }
// .form-check-inline {
// display: inline-flex;
// align-items: center;
// padding-left: 0; // Override base .form-check
// margin-right: $form-check-inline-margin-x;
// // Undo .form-check-input defaults and add some `margin-right`.
// .form-check-input {
// position: static;
// margin-top: 0;
// margin-right: $form-check-inline-input-margin-x;
// margin-left: 0;
// }
// }
// Form validation
//
// Provide feedback to users when form field values are valid or invalid. Works
// primarily for client-side validation via scoped `:invalid` and `:valid`
// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
// server side validation.
// @each $state, $data in $form-validation-states {
// @include form-validation-state($state, map-get($data, color), map-get($data, icon));
// }
// Inline forms
//
// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
// forms begin stacked on extra small (mobile) devices and then go inline when
// viewports reach <768px.
//
// Requires wrapping inputs and labels with `.form-group` for proper display of
// default HTML form controls and our custom form controls (e.g., input groups).
// .form-inline {
// display: flex;
// flex-flow: row wrap;
// align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)
// // Because we use flex, the initial sizing of checkboxes is collapsed and
// // doesn't occupy the full-width (which is what we want for xs grid tier),
// // so we force that here.
// .form-check {
// width: 100%;
// }
// // Kick in the inline
// @include media-breakpoint-up(sm) {
// label {
// display: flex;
// align-items: center;
// justify-content: center;
// margin-bottom: 0;
// }
// // Inline-block all the things for "inline"
// .form-group {
// display: flex;
// flex: 0 0 auto;
// flex-flow: row wrap;
// align-items: center;
// margin-bottom: 0;
// }
// // Allow folks to *not* use `.form-group`
// .form-control {
// display: inline-block;
// width: auto; // Prevent labels from stacking above inputs in `.form-group`
// vertical-align: middle;
// }
// // Make static controls behave like regular ones
// .form-control-plaintext {
// display: inline-block;
// }
// .input-group,
// .custom-select {
// width: auto;
// }
// // Remove default margin on radios/checkboxes that were used for stacking, and
// // then undo the floating of radios and checkboxes to match.
// .form-check {
// display: flex;
// align-items: center;
// justify-content: center;
// width: auto;
// padding-left: 0;
// }
// .form-check-input {
// position: relative;
// flex-shrink: 0;
// margin-top: 0;
// margin-right: $form-check-input-margin-x;
// margin-left: 0;
// }
// .custom-control {
// align-items: center;
// justify-content: center;
// }
// .custom-control-label {
// margin-bottom: 0;
// }
// }
// }

View file

@ -0,0 +1,144 @@
// Bootstrap functions
//
// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
// Ascending
// Used to evaluate Sass maps like our grid breakpoints.
@mixin _assert-ascending($map, $map-name) {
$prev-key: null;
$prev-num: null;
@each $key, $num in $map {
@if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
// Do nothing
} @else if not comparable($prev-num, $num) {
@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
} @else if $prev-num >= $num {
@warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
}
$prev-key: $key;
$prev-num: $num;
}
}
// Starts at zero
// Used to ensure the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
@if length($map) > 0 {
$values: map-values($map);
$first-value: nth($values, 1);
@if $first-value != 0 {
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
}
}
}
// Replace `$search` with `$replace` in `$string`
// Used on our SVG icon backgrounds for custom forms.
//
// @author Hugo Giraudel
// @param {String} $string - Initial string
// @param {String} $search - Substring to replace
// @param {String} $replace ('') - New value
// @return {String} - Updated string
@function str-replace($string, $search, $replace: "") {
$index: str-index($string, $search);
@if $index {
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
}
@return $string;
}
// See https://codepen.io/kevinweber/pen/dXWoRw
//
// Requires the use of quotes around data URIs.
@function escape-svg($string) {
@if str-index($string, "data:image/svg+xml") {
@each $char, $encoded in $escaped-characters {
// Do not escape the url brackets
@if str-index($string, "url(") == 1 {
$string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
} @else {
$string: str-replace($string, $char, $encoded);
}
}
}
@return $string;
}
// Color contrast
@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {
$r: red($color);
$g: green($color);
$b: blue($color);
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
@if ($yiq >= $yiq-contrasted-threshold) {
@return $dark;
} @else {
@return $light;
}
}
// Retrieve color Sass maps
@function color($key: "blue") {
@return map-get($colors, $key);
}
@function theme-color($key: "primary") {
@return map-get($theme-colors, $key);
}
@function gray($key: "100") {
@return map-get($grays, $key);
}
// Request a theme color level
@function theme-color-level($color-name: "primary", $level: 0) {
$color: theme-color($color-name);
$color-base: if($level > 0, $black, $white);
$level: abs($level);
@return mix($color-base, $color, $level * $theme-color-interval);
}
// Return valid calc
@function add($value1, $value2, $return-calc: true) {
@if $value1 == null {
@return $value2;
}
@if $value2 == null {
@return $value1;
}
@if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
@return $value1 + $value2;
}
@return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
}
@function subtract($value1, $value2, $return-calc: true) {
@if $value1 == null and $value2 == null {
@return null;
}
@if $value1 == null {
@return -$value2;
}
@if $value2 == null {
@return $value1;
}
@if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
@return $value1 - $value2;
}
@return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
}

View file

@ -0,0 +1,73 @@
// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.
@if $enable-grid-classes {
// Single container class with breakpoint max-widths
.container,
// 100% wide container at all breakpoints
.container-fluid {
@include make-container();
}
// Responsive containers that are 100% wide until a breakpoint
@each $breakpoint, $container-max-width in $container-max-widths {
.container-#{$breakpoint} {
@extend .container-fluid;
}
@include media-breakpoint-up($breakpoint, $grid-breakpoints) {
%responsive-container-#{$breakpoint} {
max-width: $container-max-width;
}
// Extend each breakpoint which is smaller or equal to the current breakpoint
$extend-breakpoint: true;
@each $name, $width in $grid-breakpoints {
@if ($extend-breakpoint) {
.container#{breakpoint-infix($name, $grid-breakpoints)} {
@extend %responsive-container-#{$breakpoint};
}
// Once the current breakpoint is reached, stop extending
@if ($breakpoint == $name) {
$extend-breakpoint: false;
}
}
}
}
}
}
// Row
//
// Rows contain your columns.
@if $enable-grid-classes {
.row {
@include make-row();
}
// Remove the negative margin from default .row, then the horizontal padding
// from all immediate children columns (to prevent runaway style inheritance).
// .no-gutters {
// margin-right: 0;
// margin-left: 0;
// > .col,
// > [class*="col-"] {
// padding-right: 0;
// padding-left: 0;
// }
// }
}
// Columns
//
// Common styles for small and large grid columns
@if $enable-grid-classes {
@include make-grid-columns();
}

View file

@ -0,0 +1,208 @@
// stylelint-disable selector-no-qualifying-type
//
// Base styles
//
.input-group {
position: relative;
display: flex;
flex-wrap: wrap; // For form validation feedback
align-items: stretch;
width: 100%;
> .form-control,
> .form-control-plaintext,
> .custom-select,
> .custom-file {
position: relative; // For focus state's z-index
flex: 1 1 auto;
width: 1%;
min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
margin-bottom: 0;
+ .form-control,
+ .custom-select,
+ .custom-file {
margin-left: -$input-border-width;
}
}
// Bring the "active" form control to the top of surrounding elements
> .form-control:focus,
> .custom-select:focus,
> .custom-file .custom-file-input:focus ~ .custom-file-label {
z-index: 3;
}
// Bring the custom file input above the label
// > .custom-file .custom-file-input:focus {
// z-index: 4;
// }
> .form-control,
> .custom-select {
&:not(:first-child) { @include border-left-radius(0); }
}
// Custom file inputs have more complex markup, thus requiring different
// border-radius overrides.
// > .custom-file {
// display: flex;
// align-items: center;
// &:not(:last-child) .custom-file-label,
// &:not(:first-child) .custom-file-label { @include border-left-radius(0); }
// }
// &:not(.has-validation) {
// > .form-control:not(:last-child),
// > .custom-select:not(:last-child),
// > .custom-file:not(:last-child) .custom-file-label::after {
// @include border-right-radius(0);
// }
// }
// &.has-validation {
// > .form-control:nth-last-child(n + 3),
// > .custom-select:nth-last-child(n + 3),
// > .custom-file:nth-last-child(n + 3) .custom-file-label::after {
// @include border-right-radius(0);
// }
// }
}
// Prepend and append
//
// While it requires one extra layer of HTML for each, dedicated prepend and
// append elements allow us to 1) be less clever, 2) simplify our selectors, and
// 3) support HTML5 form validation.
.input-group-prepend,
.input-group-append {
display: flex;
// Ensure buttons are always above inputs for more visually pleasing borders.
// This isn't needed for `.input-group-text` since it shares the same border-color
// as our inputs.
.btn {
position: relative;
z-index: 2;
&:focus {
z-index: 3;
}
}
.btn + .btn,
.btn + .input-group-text,
.input-group-text + .input-group-text,
.input-group-text + .btn {
margin-left: -$input-border-width;
}
}
// .input-group-prepend { margin-right: -$input-border-width; }
.input-group-append { margin-left: -$input-border-width; }
// Textual addons
//
// Serves as a catch-all element for any text or radio/checkbox input you wish
// to prepend or append to an input.
// .input-group-text {
// display: flex;
// align-items: center;
// padding: $input-padding-y $input-padding-x;
// margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
// @include font-size($input-font-size); // Match inputs
// font-weight: $font-weight-normal;
// line-height: $input-line-height;
// color: $input-group-addon-color;
// text-align: center;
// white-space: nowrap;
// background-color: $input-group-addon-bg;
// border: $input-border-width solid $input-group-addon-border-color;
// @include border-radius($input-border-radius);
// // Nuke default margins from checkboxes and radios to vertically center within.
// input[type="radio"],
// input[type="checkbox"] {
// margin-top: 0;
// }
// }
// Sizing
//
// Remix the default form control sizing classes into new ones for easier
// manipulation.
// .input-group-lg > .form-control:not(textarea),
// .input-group-lg > .custom-select {
// height: $input-height-lg;
// }
// .input-group-lg > .form-control,
// .input-group-lg > .custom-select,
// .input-group-lg > .input-group-prepend > .input-group-text,
// .input-group-lg > .input-group-append > .input-group-text,
// .input-group-lg > .input-group-prepend > .btn,
// .input-group-lg > .input-group-append > .btn {
// padding: $input-padding-y-lg $input-padding-x-lg;
// @include font-size($input-font-size-lg);
// line-height: $input-line-height-lg;
// @include border-radius($input-border-radius-lg);
// }
// .input-group-sm > .form-control:not(textarea),
// .input-group-sm > .custom-select {
// height: $input-height-sm;
// }
// .input-group-sm > .form-control,
// .input-group-sm > .custom-select,
// .input-group-sm > .input-group-prepend > .input-group-text,
// .input-group-sm > .input-group-append > .input-group-text,
// .input-group-sm > .input-group-prepend > .btn,
// .input-group-sm > .input-group-append > .btn {
// padding: $input-padding-y-sm $input-padding-x-sm;
// @include font-size($input-font-size-sm);
// line-height: $input-line-height-sm;
// @include border-radius($input-border-radius-sm);
// }
// .input-group-lg > .custom-select,
// .input-group-sm > .custom-select {
// padding-right: $custom-select-padding-x + $custom-select-indicator-padding;
// }
// Prepend and append rounded corners
//
// These rulesets must come after the sizing ones to properly override sm and lg
// border-radius values when extending. They're more specific than we'd like
// with the `.input-group >` part, but without it, we cannot override the sizing.
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
@include border-right-radius(0);
}
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
@include border-left-radius(0);
}

View file

@ -0,0 +1,154 @@
// Base class
//
// Easily usable on <ul>, <ol>, or <div>.
.list-group {
display: flex;
flex-direction: column;
// No need to set list-style: none; since .list-group-item is block level
padding-left: 0; // reset padding because ul and ol
margin-bottom: 0;
@include border-radius($list-group-border-radius);
}
// Interactive list items
//
// Use anchor or button elements instead of `li`s or `div`s to create interactive
// list items. Includes an extra `.active` modifier class for selected items.
// .list-group-item-action {
// width: 100%; // For `<button>`s (anchors become 100% by default though)
// color: $list-group-action-color;
// text-align: inherit; // For `<button>`s (anchors inherit)
// // Hover state
// @include hover-focus() {
// z-index: 1; // Place hover/focus items above their siblings for proper border styling
// color: $list-group-action-hover-color;
// text-decoration: none;
// background-color: $list-group-hover-bg;
// }
// &:active {
// color: $list-group-action-active-color;
// background-color: $list-group-action-active-bg;
// }
// }
// Individual list items
//
// Use on `li`s or `div`s within the `.list-group` parent.
.list-group-item {
position: relative;
display: block;
padding: $list-group-item-padding-y $list-group-item-padding-x;
color: $list-group-color;
text-decoration: if($link-decoration == none, null, none);
background-color: $list-group-bg;
border: $list-group-border-width solid $list-group-border-color;
&:first-child {
@include border-top-radius(inherit);
}
&:last-child {
@include border-bottom-radius(inherit);
}
&.disabled,
&:disabled {
color: $list-group-disabled-color;
pointer-events: none;
background-color: $list-group-disabled-bg;
}
// Include both here for `<a>`s and `<button>`s
&.active {
z-index: 2; // Place active items above their siblings for proper border styling
color: $list-group-active-color;
background-color: $list-group-active-bg;
border-color: $list-group-active-border-color;
}
& + & {
border-top-width: 0;
&.active {
margin-top: -$list-group-border-width;
border-top-width: $list-group-border-width;
}
}
}
// Horizontal
//
// Change the layout of list group items from vertical (default) to horizontal.