Snippets Collections
%root% {
	--height-width:2rem;
}

%root%.brxe-nav-menu .bricks-mobile-menu-toggle{
	width: calc(1.25*var(--height-width))!important;
}

%root% .bricks-mobile-menu-toggle {
	height: var(--height-width);
  display: flex !important;
  flex-direction: column;
  justify-content: space-between;
}

%root%.brxe-nav-menu .bricks-mobile-menu-toggle [class^="bar"]{
	width: 100%!important;
  position: unset;
  height: 3px;
}

%root%.brxe-nav-menu .bricks-mobile-menu-toggle[aria-expanded="true"] [class^="bar"]{
  position: absolute;
}
{{ product.metafields.namespace.key.value }}
{% assign image_url = product.metafields.namespace.key %}
{% if image_url != blank %} 
 <img src="{{ image_url.value | image_url }}">
{% endif %}
*{
-moz-user-select: none; 
-ms-user-select: none; 
-khtml-user-select: none; 
-webkit-user-select: none; 
-webkit-touch-callout: none; 
user-select: none; 
}
Comandos:
- Digitar para aplicar somente uma vez (a configuração será perdida quando reiniciar o computador)

pactl load-module module-echo-cancel aec_method=webrtc sink_properties=device.description="Noise_Reduction" aec_args="analog_gain_control=0\ digital_gain_control=0"

Configuração que permanece após reiniciar:
- Abrir o arquivo default.pa e colar no final o trecho de código abaixo.
- sudo vim /etc/pulse/default.pa

Colar esse código ao final do arquivo:

load-module module-echo-cancel aec_method=webrtc sink_properties=device.description="Noise_Reduction" aec_args="analog_gain_control=0\ digital_gain_control=0"

def second_largest(arr):
    
    largest = -1
    second_lar = -1
    
    for i in range(len(arr)):
        
        if arr[i] > largest:
            second_lar = largest
            largest = arr[i]
        
        elif arr[i] < largest and arr[i] > second_lar:
            second_lar = arr[i]
            
    print("largest", largest)
    print("second largest = ", second_lar)
    
arr= [12, 35, 1, 10, 34, 1]
second_largest(arr)
AND(
  OR(
    ISBLANK(LOOKUP(USEREMAIL(), "Revenue Filters Slice", "User", "From")),
    LOOKUP(USEREMAIL(), "Revenue Filters Slice", "User", "From") <= [Date]
  ),
  OR(
    ISBLANK(LOOKUP(USEREMAIL(), "Revenue Filters Slice", "User", "To")), 
    LOOKUP(USEREMAIL(), "Revenue Filters Slice", "User", "To") >= [Date]
  )
)
sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions $(( $(rootdev -s | sed -r 's/.*(.)$/\1/') - 1))
if (condition) {
  // block of code to be executed if the condition is true
}
$PathDirs = "C:\Users\imper\Desktop\mpv"
$NewPath = $PathDirs + ";" + [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)

[System.Environment]::SetEnvironmentVariable("Path", $NewPath, [System.EnvironmentVariableTarget]::Machine)
for /L %i in (1,1,100) do @echo\>"D:\Ordner mit vielen Textdateien\text%i.txt"


Sollen die neuen Textdateien die Kopie einer schon bestehenden Textdatei sein dann
for /L %i in (1,1,100) do @copy "D:\Vorhandene Textdatei.txt" "D:\Ordner mit vielen Textdateien\text%i.txt">nul
Handy quer halten
Plus drücken
Anzeige drehen
Ausrichtung auf horizontal drehen
Stift drücken, Namen ändern 
Nicht gelistet 
Weiter
Livestream
Handy auf Hochformat drehen bis Stream startet, dann Handy wieder quer halten
Teilen mit Telegramm 
Telegramm zu WhatsApp kopieren
// Add Shortcode [list_services];
add_shortcode('list_services', 'codex_list_services');
function codex_list_services()
{
    ob_start();
    wp_reset_postdata();
?>

 
        <div class="row">
            <?php
            $arg = array(
                'post_type' => 'services',
                'posts_per_page' => -1,
            );
            $po = new WP_Query($arg);
            ?>
            <?php if ($po->have_posts()) : ?>

                <?php while ($po->have_posts()) : ?>
                    <?php $po->the_post(); ?>
                    <div class="col-md-4">
                        <div class="ser-body">
                                <div class="thumbnail-blog">
                                    <?php echo get_the_post_thumbnail(get_the_ID(), 'full'); ?>
                                </div>
                                <div class="content">
									<div class="service-img"><img src="	https://stage.projects-delivery.com/wp/strategicare_staffing_LLC/wp-content/uploads/2025/02/serviceicon.png"></div>
                                    <h3 class="title"><?php the_title(); ?></h3>
                                </div>
                                 <div class="para"><?php the_excerpt(); ?></div>
                              <div class="readmore">
                                <a href="<?php echo get_permalink() ?>">Read More</a>
                            </div>
                        </div>
                    </div>
                <?php endwhile; ?>

            <?php endif; ?>
        </div>


<?php
    wp_reset_postdata();
    return '' . ob_get_clean();
}

#### Crear el docker (bash)

docker run -e ACCEPT_EULA=Y \
        -e "MSSQL_SA_PASSWORD=MiClave1234!*" \
        -p 1433:1433 --name sqlserver \
        -v /var/opt/mssql:/var/opt/mssql \
        -d \
mcr.microsoft.com/mssql/server:2022-latest

## SQL:
### Crear cuenta, perfil, activar envio de correos y prueba de envio:
EXEC msdb.dbo.sysmail_add_account_sp
    @account_name = 'account1',
    @email_address = 'test@correo.com',
    @display_name = 'SQL Server Mail 2',
    @mailserver_name = 'mail.correo.com',
    @port = 587,
    @username = 'marco@correo.com',
    @password = 'MiContrasena1234***',
    @enable_ssl = 1;

### Configurar el perfil de correo:
EXEC msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'mailers',
    @description = 'Perfil para enviadores de correo';

### Agregar el usuario al perfil
EXEC msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'mailers',
    @account_name = 'account1',
    @sequence_number = 1;

### Poner como perfil principal para envio:
EXEC msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'mailers',
    @principal_name = 'public',
    @is_default = 1;


### Activar el correo:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Database Mail XPs', 1;
RECONFIGURE;


###  Enviar correo a la cola:
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'mailers',
    @recipients = 'marcotest2@correo.com',
    @subject = 'Test Email from SQL Server',
    @body = 'This is a test email sent from SQL Server using Database Mail.';


### ver lista de correos
SELECT * FROM msdb.dbo.sysmail_allitems;

### ver log
SELECT * FROM msdb.dbo.sysmail_event_log;

/*### eliminar cuenta
 * EXEC msdb.dbo.sysmail_delete_account_sp
    @account_name = 'account1'; -- Nombre de la cuenta
 * 
 */
import pandas as pd

# Function to extract HDF5 content into a Pandas-friendly format
def extract_hdf5_to_dataframe(hdf5_path):
    with h5py.File(hdf5_path, "r") as hdf5_file:
        data_dict = {}

        def recursively_load_hdf5(group, path=""):
            for key, item in group.items():
                new_path = f"{path}/{key}" if path else key
                if isinstance(item, h5py.Dataset):
                    data_dict[new_path] = item[()]
                elif isinstance(item, h5py.Group):
                    recursively_load_hdf5(item, new_path)

        recursively_load_hdf5(hdf5_file)

    df = pd.DataFrame(list(data_dict.items()), columns=["Path", "Value"])
    return df

# Extract and display HDF5 content
hdf5_preview_df = extract_hdf5_to_dataframe(hdf5_file_path)
import ace_tools as tools
tools.display_dataframe_to_user(name="HDF5 Preview", dataframe=hdf5_preview_df)
@media (max-width: 767px) {
  .e-n-tabs-mobile > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading {
   display: flex;
  flex-wrap: wrap !important;}

.elementor-widget-n-tabs .e-n-tabs-content .e-collapse.e-active {
  display: none;
}

.elementor-widget-n-tabs .e-n-tabs-content .e-collapse:not(:first-child) {
  display: none;
}

div.e-collapse:nth-child(1){display: none !important;}

#tabs-services {
    display: flex;
    
    flex-wrap: nowrap;
    overflow-x: auto;
    width: auto;
  }

  #tabs-services .tab-title {
    width: auto;
    flex: 0 0 auto;
  }
  
 .e-n-tab-title {
  flex-shrink: 0;
  max-width: 120px;
  flex-basis: auto;
}
}

SELECT DurableId, FlowDefinitionView.Label, VersionNumber, Status FROM FlowVersionView WHERE FlowDefinitionView.Label LIKE '%PLACE PART OF THE FLOW NAME HERE%' AND Status != 'Active'
 
 
 
/* NOTE: When IMPORTING (Delete Action) - Mark API Type as "Tooling API", limit the batch to 10 and 1 thread (SF Limitation), and change DurableId to ID */
SELECT Id,Name,InterviewLabel, InterviewStatus,CreatedDate FROM FlowInterview WHERE InterviewStatus = 'Error'
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":star: Boost Days - What's On This Week :star:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n Good morning Melbourne,\n\n Please see what's on for the week below!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Xero Café :coffee:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n :new-thing: *This week we are offering:* \n\n :simpsons-pink-donut:  Fresh Cinammon Doughnuts  \n\n :irish-latte: *Weekly Café Special:* _Irish Cream Coffee_"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " Wednesday, 26th February :calendar-date-26:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": " \n\n :lunch: *Light Lunch*: Provided by Kartel Catering from *12pm* in the L3 Kitchen & Wominjeka Breakout Space. \n\n"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Thursday, 27th February :calendar-date-27:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":breakfast: *Breakfast*: Provided by *Kartel Catering* from *8:30am - 10:30am* in the Wominjeka Breakout Space. \n\n :cheers-9743: *Social Happy Hour:* From 4pm - 5:30pm in the Level 3 Breakout Space!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n Love, WX :party-wx:"
			}
		}
	
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":star: Boost Days - What's On This Week :star:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n Good morning Melbourne,\n\n Please see what's on for the week below!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Xero Café :coffee:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n :new-thing: *This week we are offering:* \n\n :simpsons-pink-donut: Fresh Cinammon Doughnuts  \n\n :turkish-delights: *Weekly Café Special:* _Turkish Delight Latte_"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " Wednesday, 19th February :calendar-date-19:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": " \n\n :lunch: *Light Lunch*: Provided by *Kartel Catering* from *12pm* in the L3 Kitchen & Wominjeka Breakout Space. \n\n"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Thursday, 20th February :calendar-date-20:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":breakfast: *Breakfast*: Provided by *Kartel Catering* from *8:30am - 10:30am* in the Wominjeka Breakout Space. \n\n"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":cheers-9743: *Later this month:* We can finally hold our _FIRST_ Social Happy Hour of 2025! Join us on the 27th of February from 4pm - 5:30pm for some drinks and nibbles. \n\n Love, WX :party-wx:"
			}
		}
	]
}
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tutorials and Documentation - Aropha AI</title>
  <script src="https://d3js.org/d3.v7.min.js"></script>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');
    
    /* General Styles */
    body {
      font-family: 'Roboto', sans-serif;
      margin: 0;
      padding: 0;
      background: #ffffff;
      color: #222a35;
    }
    .wrapper {
      max-width: 1200px;
      margin: 0 auto;
      border-radius: 15px;
      padding: 20px;
      margin-top: 140px;
    }
    .top-bar {
      background: #222a35;
      color: #ffffff;
      padding: 15px 0;
      text-align: center;
      font-weight: bold;
      font-size: 1.5em;
      display: flex;
      flex-direction: column;
      align-items: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
    }

    .logo-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .top-bar img.logo {
      height: 50px;
    }

    .nav-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .button-container {
      display: flex;
      gap: 20px;
      align-items: center;
    }

    .btn {
      color: #ffffff;
      text-decoration: none;
      font-size: 14px;
      font-weight: normal;
      transition: all 0.3s ease;
      padding: 5px 10px;
    }

    .btn:hover {
      color: #66ccff;
    }

    .btn.active {
      color: #66ccff;
    }

    /* dropdown style */
    .dropdown {
      position: relative;
      display: inline-block;
    }

    .dropdown-content {
      display: none;
      position: absolute;
      background-color: #ffffff;
      min-width: 200px;
      box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
      z-index: 1;
      border-radius: 5px;
      margin-top: 5px;
    }

    .dropdown-content a {
      color: #222a35;
      padding: 12px 16px;
      text-decoration: none;
      display: block;
      text-align: left;
      font-size: 14px;
    }

    .dropdown:hover .dropdown-content {
      display: block;
    }

    .dropdown-content a:hover {
      background-color: #f1f1f1;
      color: #66ccff;
    }

    .dropdown-content a.active {
      color: #66ccff;
    }

    /* Content Styles */
    .content {
      padding: 20px 40px;
      text-align: left;
    }
    section {
      margin-bottom: 40px;
      padding: 20px;
      border-radius: 10px;
      background: #eeeeee;
      color: #222a35;
    }
    h1 {
      text-align: center;
      color: #222a35;
      font-size: 2.5em;
      margin-bottom: 40px;
    }
    h2 {
      color: #222a35;
      border-bottom: 2px solid #66ccff;
      padding-bottom: 8px;
    }
    p { line-height: 1.6; }
    .img-center {
      display: block;
      margin: 0 auto;
    }
    
    /* Table styles */
    .table-container {
      overflow-x: auto;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0;
    }
    th, td {
      padding: 12px;
      text-align: left;
      border: 1px solid #ddd;
    }
    th {
      background-color: #222a35;
      color: white;
    }
    tr:nth-child(even) {
      background-color: #f9f9f9;
    }

    footer {
      text-align: center;
      padding: 20px 0;
      background: #222a35;
      color: #ffffff;
      margin-top: 40px;
    }

    footer a {
      color: #66ccff;
      text-decoration: none;
    }

    footer a:hover {
      text-decoration: underline;
    }

    /* D3.js Flowchart Styles */
    .node rect {
      fill: #f5f5f5;
      stroke: #222a35;
      stroke-width: 2px;
      rx: 10px;
      ry: 10px;
      transition: all 0.3s ease;
    }

    .node.decision rect {
      fill: #222a35;
      stroke: #66ccff;
    }

    .node.engine rect {
      fill: #ECF5FF;
      stroke: #66ccff;
      stroke-width: 3px;
      filter: drop-shadow(3px 3px 5px rgba(0,0,0,0.2));
    }

    .node text {
      font-size: 14px;
      text-anchor: middle;
      dominant-baseline: middle;
      font-family: 'Roboto', sans-serif;
    }

    .node.decision text {
      fill: #ffffff;
    }

    .node.engine text {
      font-weight: bold;
      font-style: italic;
      fill: #222a35;
    }

    .link {
      stroke: #222a35;
      stroke-width: 2px;
      fill: none;
    }

    .link-label {
      font-size: 12px;
      font-family: 'Roboto', sans-serif;
      fill: #666666;
    }

    .node:hover rect {
      filter: drop-shadow(3px 3px 5px rgba(0,0,0,0.3));
      cursor: pointer;
    }
  </style>
</head>
<body>
  <div class="top-bar">
    <div class="logo-container">
      <img src="https://www.users.aropha.com/static/assets/img/logo-rectangular.png" alt="Aropha Logo" class="logo">
    </div>
    <div class="nav-container">
      <div class="button-container">
        <a href="/home.html" class="btn">Home</a>
        <a href="/user_registration.html" class="btn">User Registration</a>
        <div class="dropdown">
          <a href="/tutorials.html" class="btn active">Tutorials and Documentations</a>
          <div class="dropdown-content">
            <a href="#ai-engines" onclick="scrollToSection('ai-engines')" class="active">AI Engines</a>
            <a href="#material-morphology" onclick="scrollToSection('material-morphology')">Material Morphology</a>
            <a href="#method" onclick="scrollToSection('method')">Method</a>
          </div>
        </div>
        <a href="/activate_free_trial.html" class="btn">Activate Free Trial</a>
        <a href="/aropha_data_submission.html" class="btn">Data Processing and Credits</a>
        <a href="/Biodegrability_screening_case_study.html" class="btn">Biodegradability Case Study</a>
        <a href="/purchase_ai_engine_credits.html" class="btn">Purchase Credits</a>
      </div>
    </div>
  </div>

  <div class="wrapper">
    <div class="content">
      <section>
        <h2>Chemical Data Entry</h2>
        <p>Chemical data can be provided in one of three ways:</p>
        <ul>
          <li>Full SMILES notation of the substance</li>
          <li>in-silico Polymer Synthesis from Monomer Units</li>
          <li>IR Data Entry</li>
        </ul>
        <img src="images/image 7.png" alt="Chemical Data Entry" class="img-center" style="max-width:90%;">
      </section>

      <section id="ai-engines">
        <h2>AI Engines</h2>
        <p>Our intelligent engine selection system helps you choose the perfect AI model for your specific needs. Follow the flowchart below to identify the most suitable engine for your material:</p>
        
        <div style="background: #ffffff; padding: 20px; border-radius: 10px;">
          <svg width="1000" height="500"></svg>
        </div>

        <div class="table-container">
          <h3>Engine Specifications</h3>
          <table>
            <thead>
              <tr>
                <th>AI Engine</th>
                <th>Chemical Space</th>
                <th>Degree of Polymerization</th>
                <th>Suggested MW for small molecules</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>Aropha Former</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 100</td>
                <td>&le; 1000</td>
              </tr>
              <tr>
                <td>ArophaGrapher</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 2000</td>
                <td>&ge; 1000</td>
              </tr>
              <tr>
                <td>ArophaPolyformer</td>
                <td>Macromolecular Polymer</td>
                <td>Custom</td>
                <td>N/A</td>
              </tr>
            </tbody>
          </table>
        </div>
      </section>

      <section id="material-morphology">
        <h2>Material Morphology</h2>
        <p>
          We consider the impact of material morphology. Please select the shape type that best matches your material from our list and provide the relevant parameters.
        </p>
        <img src="images/image 5.png" alt="Material Morphology" class="img-center" style="max-width:70%;">
      </section>

      <section id="method">
        <h2>Method</h2>
        <p>
          You can choose from 60 standard methods for your experiment or design a customized method tailored to specific environmental conditions.
        </p>
        <img src="images/image 6.png" alt="Method" class="img-center" style="max-width:70%;">
      </section>
    </div>
  </div>

  <footer>
    <p>
      Follow us on <a href="https://www.linkedin.com/company/aropha/">LinkedIn</a> | © 2025 Aropha Inc. All Rights Reserved.
    </p>
  </footer>

  <script>
    // navagate
    function scrollToSection(sectionId) {
      const section = document.getElementById(sectionId);
      if (section) {
        const topOffset = section.offsetTop - 150;
        window.scrollTo({
          top: topOffset,
          behavior: 'smooth'
        });
      }
    }

    // dropdown menu activated
    document.querySelectorAll('.dropdown-content a').forEach(link => {
      link.addEventListener('click', (e) => {
        document.querySelectorAll('.dropdown-content a').forEach(a => a.classList.remove('active'));
        e.target.classList.add('active');
      });
    });

      // D3.js flowchart
  const data = {
    nodes: [
      { id: "Small\nMolecule", x: 100, y: 100, type: "default" },
      { id: "Polymer", x: 100, y: 350, type: "default" },
      { id: "Molecular\nWeight", x: 300, y: 100, type: "decision" },
      { id: "Degree of\nPolymerization", x: 300, y: 350, type: "decision" },
      { id: "Aropha\nFormer", x: 600, y: 100, type: "engine" },
      { id: "Aropha\nGrapher", x: 600, y: 250, type: "engine" },
      { id: "Aropha\nPolyformer", x: 600, y: 400, type: "engine" }
    ],
    links: [
      { source: "Small\nMolecule", target: "Molecular\nWeight", label: "" },
      { source: "Molecular\nWeight", target: "Aropha\nFormer", label: "MW ≤ 1000" },
      { source: "Molecular\nWeight", target: "Aropha\nGrapher", label: "MW > 1000" },
      { source: "Polymer", target: "Degree of\nPolymerization", label: "" },
      { source: "Degree of\nPolymerization", target: "Aropha\nFormer", label: "DP ≤ 100" },
      { source: "Degree of\nPolymerization", target: "Aropha\nGrapher", label: "100 < DP ≤ 2000" },
      { source: "Degree of\nPolymerization", target: "Aropha\nPolyformer", label: "Custom DP" }
    ]
  };

  const svg = d3.select("svg");
  const g = svg.append("g");

  // Create arrow marker
  svg.append("defs").append("marker")
    .attr("id", "arrowhead")
    .attr("viewBox", "-0 -5 10 10")
    .attr("refX", 20)
    .attr("refY", 0)
    .attr("orient", "auto")
    .attr("markerWidth", 6)
    .attr("markerHeight", 6)
    .append("path")
    .attr("d", "M 0,-5 L 10,0 L 0,5")
    .attr("fill", "#222a35");

  // Create links
  const linkGroup = g.append("g").attr("class", "links");
  const link = linkGroup.selectAll(".link")
    .data(data.links)
    .enter()
    .append("g");

  link.append("path")
    .attr("class", "link")
    .attr("marker-end", "url(#arrowhead)")
    .attr("d", d => {
      const sourceNode = data.nodes.find(n => n.id === d.source);
      const targetNode = data.nodes.find(n => n.id === d.target);
      return `M ${sourceNode.x + 80} ${sourceNode.y} 
              L ${targetNode.x - 80} ${targetNode.y}`;
    });

  link.append("text")
    .attr("class", "link-label")
    .attr("x", d => {
      const sourceNode = data.nodes.find(n => n.id === d.source);
      const targetNode = data.nodes.find(n => n.id === d.target);
      return (sourceNode.x + targetNode.x) / 2;
    })
    .attr("y", d => {
      const sourceNode = data.nodes.find(n => n.id === d.source);
      const targetNode = data.nodes.find(n => n.id === d.target);
      return (sourceNode.y + targetNode.y) / 2 - 10;
    })
    .text(d => d.label)
    .attr("text-anchor", "middle");

  // Create nodes
  const nodeGroup = g.append("g").attr("class", "nodes");
  const node = nodeGroup.selectAll(".node")
    .data(data.nodes)
    .enter()
    .append("g")
    .attr("class", d => `node ${d.type}`)
    .attr("transform", d => `translate(${d.x - 60},${d.y - 25})`);

  node.append("rect")
    .attr("width", 120)
    .attr("height", 50);

  node.append("text")
    .attr("x", 60)
    .attr("y", 25)
    .text(d => d.id)
    .each(function(d) {
      const text = d3.select(this);
      const words = d.id.split('\n');
      text.text('');

      words.forEach((word, i) => {
        text.append("tspan")
          .attr("x", 60)
          .attr("dy", i ? "1.2em" : "-0.6em")
          .text(word);
      });
    });

  // Add zoom behavior
  const zoom = d3.zoom()
    .scaleExtent([0.5, 2])
    .on("zoom", (event) => {
      g.attr("transform", event.transform);
    });

  svg.call(zoom);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tutorials and Documentation - Aropha AI</title>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');
    
    /* General Styles */
    body {
      font-family: 'Roboto', sans-serif;
      margin: 0;
      padding: 0;
      background: #ffffff;
      color: #222a35;
    }
    .wrapper {
      max-width: 1200px;
      margin: 0 auto;
      border-radius: 15px;
      padding: 20px;
      margin-top: 140px;
    }
    .top-bar {
      background: #222a35;
      color: #ffffff;
      padding: 15px 0;
      text-align: center;
      font-weight: bold;
      font-size: 1.5em;
      display: flex;
      flex-direction: column;
      align-items: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
    }

    .logo-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .top-bar img.logo {
      height: 50px;
    }

    .nav-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .button-container {
      display: flex;
      gap: 20px;
      align-items: center;
    }

    .btn {
      color: #ffffff;
      text-decoration: none;
      font-size: 14px;
      font-weight: normal;
      transition: all 0.3s ease;
      padding: 5px 10px;
    }

    .btn:hover {
      color: #66ccff;
    }

    .btn.active {
      color: #66ccff;
    }

    /* dropdown style */
    .dropdown {
      position: relative;
      display: inline-block;
    }

    .dropdown-content {
      display: none;
      position: absolute;
      background-color: #ffffff;
      min-width: 200px;
      box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
      z-index: 1;
      border-radius: 5px;
      margin-top: 5px;
    }

    .dropdown-content a {
      color: #222a35;
      padding: 12px 16px;
      text-decoration: none;
      display: block;
      text-align: left;
      font-size: 14px;
    }

    .dropdown:hover .dropdown-content {
      display: block;
    }

    .dropdown-content a:hover {
      background-color: #f1f1f1;
      color: #66ccff;
    }

    .dropdown-content a.active {
      color: #66ccff;
    }

    /* Content Styles */
    .content {
      padding: 20px 40px;
      text-align: left;
    }
    section {
      margin-bottom: 40px;
      padding: 20px;
      border-radius: 10px;
      background: #eeeeee;
      color: #222a35;
    }
    h1 {
      text-align: center;
      color: #222a35;
      font-size: 2.5em;
      margin-bottom: 40px;
    }
    h2 {
      color: #222a35;
      border-bottom: 2px solid #66ccff;
      padding-bottom: 8px;
    }
    p { line-height: 1.6; }
    .img-center {
      display: block;
      margin: 0 auto;
    }
    
    /* Table styles */
    .table-container {
      overflow-x: auto;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0;
    }
    th, td {
      padding: 12px;
      text-align: left;
      border: 1px solid #ddd;
    }
    th {
      background-color: #222a35;
      color: white;
    }
    tr:nth-child(even) {
      background-color: #f9f9f9;
    }

    footer {
      text-align: center;
      padding: 20px 0;
      background: #222a35;
      color: #ffffff;
      margin-top: 40px;
    }
  </style>
  <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
  <script>
    mermaid.initialize({
      theme: 'default',
      securityLevel: 'loose',
      startOnLoad: true
    });
  </script>
</head>
<body>
  <div class="top-bar">
    <div class="logo-container">
      <img src="https://www.users.aropha.com/static/assets/img/logo-rectangular.png" alt="Aropha Logo" class="logo">
    </div>
    <div class="nav-container">
      <div class="button-container">
        <a href="/home.html" class="btn">Home</a>
        <a href="/user_registration.html" class="btn">User Registration</a>
        <div class="dropdown">
          <a href="/tutorials.html" class="btn active">Tutorials and Documentations</a>
          <div class="dropdown-content">
            <a href="#ai-engines" onclick="scrollToSection('ai-engines')" class="active">AI Engines</a>
            <a href="#material-morphology" onclick="scrollToSection('material-morphology')">Material Morphology</a>
            <a href="#method" onclick="scrollToSection('method')">Method</a>
          </div>
        </div>
        <a href="/activate_free_trial.html" class="btn">Activate Free Trial</a>
        <a href="/aropha_data_submission.html" class="btn">Data Processing and Credits</a>
        <a href="/Biodegrability_screening_case_study.html" class="btn">Biodegradability Case Study</a>
        <a href="/purchase_ai_engine_credits.html" class="btn">Purchase Credits</a>
      </div>
    </div>
  </div>

  <div class="wrapper">
    <div class="content">
      <section>
        <h2>Chemical Data Entry</h2>
        <p>Chemical data can be provided in one of three ways:</p>
        <ul>
          <li>Full SMILES notation of the substance</li>
          <li>in-silico Polymer Synthesis from Monomer Units</li>
          <li>IR Data Entry</li>
        </ul>
        <img src="images/image 7.png" alt="Chemical Data Entry" class="img-center" style="max-width:90%;">
      </section>

      <section id="ai-engines">
        <h2>AI Engines</h2>
        <p>Our intelligent engine selection system helps you choose the perfect AI model for your specific needs. Follow the flowchart below to identify the most suitable engine for your material:</p>
        
        <div class="mermaid">
          graph LR
              SM[Small Molecule] --> Q1{Molecular Weight?}
              Poly[Polymer] --> Q2{Known Degree of Polymerization?}
              Q1 -->|MW ≤ 1000| Former[Aropha Former]
              Q1 -->|MW ≥ 1000| Grapher[ArophaGrapher]
              Q2 -->|No, or DP ≤ 100| Former
              Q2 -->|Yes, DP ≤ 2000| Grapher
              Q2 -->|Custom| ArophaPolyformer[ArophaPolyformer]

              classDef default fill:#ffffff,stroke:#222a35,stroke-width:2px,color:#222a35
              classDef decision fill:#222a35,stroke:#66ccff,stroke-width:2px,color:#ffffff
              
              class SM,Poly,Former,Grapher,ArophaPolyformer default
              class Q1,Q2 decision
        </div>

        <div class="table-container">
          <h3>Engine Specifications</h3>
          <table>
            <thead>
              <tr>
                <th>AI Engine</th>
                <th>Chemical Space</th>
                <th>Degree of Polymerization</th>
                <th>Suggested MW for small molecules</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>Aropha Former</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 100</td>
                <td>&le; 1000</td>
              </tr>
              <tr>
                <td>ArophaGrapher</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 2000</td>
                <td>&ge; 1000</td>
              </tr>
              <tr>
                <td>ArophaPolyformer</td>
                <td>Macromolecular Polymer</td>
                <td>Custom</td>
                <td>N/A</td>
              </tr>
            </tbody>
          </table>
        </div>
      </section>

      <section id="material-morphology">
        <h2>Material Morphology</h2>
        <p>
          We consider the impact of material morphology. Please select the shape type that best matches your material from our list and provide the relevant parameters.
        </p>
        <img src="images/image 5.png" alt="Material Morphology" class="img-center" style="max-width:70%;">
      </section>

      <section id="method">
        <h2>Method</h2>
        <p>
          You can choose from 60 standard methods for your experiment or design a customized method tailored to specific environmental conditions.
        </p>
        <img src="images/image 6.png" alt="Method" class="img-center" style="max-width:70%;">
      </section>
    </div>
  </div>

  <footer>
    <p>
      Follow us on <a href="https://www.linkedin.com/company/aropha/">LinkedIn</a> | &copy; 2025 Aropha Inc. All Rights Reserved.
    </p>
  </footer>

  <script>
    function scrollToSection(sectionId) {
      const section = document.getElementById(sectionId);
      if (section) {
        const topOffset = section.offsetTop - 150; // Adjust for fixed header
        window.scrollTo({
          top: topOffset,
          behavior: 'smooth'
        });
      }
    }

    // Add click event listeners to dropdown items
    document.querySelectorAll('.dropdown-content a').forEach(link => {
      link.addEventListener('click', (e) => {
        // Remove active class from all links
        document.querySelectorAll('.dropdown-content a').forEach(a => a.classList.remove('active'));
        // Add active class to clicked link
        e.target.classList.add('active');
      });
    });
  </script>
</body>
</html>
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tutorials and Documentation - Aropha AI</title>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');
    
    /* General Styles */
    body {
      font-family: 'Roboto', sans-serif;
      margin: 0;
      padding: 0;
      background: #ffffff;
      color: #222a35;
    }
    .wrapper {
      max-width: 1200px;
      margin: 0 auto;
      border-radius: 15px;
      padding: 20px;
      margin-top: 140px;
    }
    .top-bar {
      background: #222a35;
      color: #ffffff;
      padding: 15px 0;
      text-align: center;
      font-weight: bold;
      font-size: 1.5em;
      display: flex;
      flex-direction: column;
      align-items: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
    }

    .logo-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .top-bar img.logo {
      height: 50px;
    }

    .nav-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .button-container {
      display: flex;
      gap: 20px;
      align-items: center;
    }

    .btn {
      color: #ffffff;
      text-decoration: none;
      font-size: 14px;
      font-weight: normal;
      transition: all 0.3s ease;
      padding: 5px 10px;
    }

    .btn:hover {
      color: #66ccff;
    }

    .btn.active {
      color: #66ccff;
    }

    /* Content Styles */
    .content {
      padding: 20px 40px;
      text-align: left;
    }
    section {
      margin-bottom: 40px;
      padding: 20px;
      border-radius: 10px;
      background: #eeeeee;
      color: #222a35;
    }
    h1 {
      text-align: center;
      color: #222a35;
      font-size: 2.5em;
      margin-bottom: 40px;
    }
    h2 {
      color: #222a35;
      border-bottom: 2px solid #66ccff;
      padding-bottom: 8px;
    }
    p { line-height: 1.6; }
    .img-center {
      display: block;
      margin: 0 auto;
    }
    
    /* Table styles */
    .table-container {
      overflow-x: auto;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0;
    }
    th, td {
      padding: 12px;
      text-align: left;
      border: 1px solid #ddd;
    }
    th {
      background-color: #222a35;
      color: white;
    }
    tr:nth-child(even) {
      background-color: #f9f9f9;
    }

    footer {
      text-align: center;
      padding: 20px 0;
      background: #222a35;
      color: #ffffff;
      border-radius: 10px;
      margin-top: 40px;
    }
  </style>
  <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
  <script>
    mermaid.initialize({
      theme: 'default',
      securityLevel: 'loose',
      startOnLoad: true
    });
  </script>
</head>
<body>
  <div class="top-bar">
    <div class="logo-container">
      <img src="https://www.users.aropha.com/static/assets/img/logo-rectangular.png" alt="Aropha Logo" class="logo">
    </div>
    <div class="nav-container">
      <div class="button-container">
        <a href="/home.html" class="btn">Home</a>
        <a href="/user_registration.html" class="btn">User Registration</a>
        <a href="/tutorials.html" class="btn active">Tutorials and Documentations</a>
        <a href="/activate_free_trial.html" class="btn">Activate Free Trial</a>
        <a href="/aropha_data_submission.html" class="btn">Data Processing and Credits</a>
        <a href="/Biodegrability_screening_case_study.html" class="btn">Biodegradability Case Study</a>
        <a href="/purchase_ai_engine_credits.html" class="btn">Purchase Credits</a>
      </div>
    </div>
  </div>

  <div class="wrapper">
    <div class="content">
      <section>
        <h2>Chemical Data Entry</h2>
        <p>Chemical data can be provided in one of three ways:</p>
        <ul>
          <li>Full SMILES notation of the substance</li>
          <li>in-silico Polymer Synthesis from Monomer Units</li>
          <li>IR Data Entry</li>
        </ul>
        <img src="images/image 7.png" alt="Chemical Data Entry" class="img-center" style="max-width:90%;">
      </section>

      <section>
        <h2>AI Engines</h2>
        <p>Our intelligent engine selection system helps you choose the perfect AI model for your specific needs. Follow the flowchart below to identify the most suitable engine for your material:</p>
        
        <div class="mermaid">
          graph LR
              SM[Small Molecule] --> Q1{Molecular Weight?}
              Poly[Polymer] --> Q2{Known Degree of Polymerization?}
              Q1 -->|MW ≤ 1000| Former[Aropha Former]
              Q1 -->|MW ≥ 1000| Grapher[ArophaGrapher]
              Q2 -->|No, or DP ≤ 100| Former
              Q2 -->|Yes, DP ≤ 2000| Grapher
              Q2 -->|Custom| ArophaPolyformer[ArophaPolyformer]

              classDef default fill:#ffffff,stroke:#222a35,stroke-width:2px,color:#222a35
              classDef decision fill:#222a35,stroke:#66ccff,stroke-width:2px,color:#ffffff
              
              class SM,Poly,Former,Grapher,ArophaPolyformer default
              class Q1,Q2 decision
        </div>

        <div class="table-container">
          <h3>Engine Specifications</h3>
          <table>
            <thead>
              <tr>
                <th>AI Engine</th>
                <th>Chemical Space</th>
                <th>Degree of Polymerization</th>
                <th>Suggested MW for small molecules</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>Aropha Former</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 100</td>
                <td>&le; 1000</td>
              </tr>
              <tr>
                <td>ArophaGrapher</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 2000</td>
                <td>&ge; 1000</td>
              </tr>
              <tr>
                <td>ArophaPolyformer</td>
                <td>Macromolecular Polymer</td>
                <td>Custom</td>
                <td>N/A</td>
              </tr>
            </tbody>
          </table>
        </div>
      </section>

      <section>
        <h2>Material Morphology</h2>
        <p>
          We consider the impact of material morphology. Please select the shape type that best matches your material from our list and provide the relevant parameters.
        </p>
        <img src="images/image 5.png" alt="Material Morphology" class="img-center" style="max-width:70%;">
      </section>

      <section>
        <h2>Method</h2>
        <p>
          You can choose from 60 standard methods for your experiment or design a customized method tailored to specific environmental conditions.
        </p>
        <img src="images/image 6.png" alt="Method" class="img-center" style="max-width:70%;">
      </section>
    </div>
  </div>

  <footer>
    <p>
      Follow us on <a href="https://www.linkedin.com/company/aropha/">LinkedIn</a> | &copy; 2025 Aropha Inc. All Rights Reserved.
    </p>
  </footer>
</body>
</html>
while ( user_input := input("Enter something (or 'quit' to exit): ") ) != "quit":
    
    print(f"You entered: {user_input}")
<div class="menu">
    <a href="#">Home</a>
    <a href="#">Sobre</a>
    <a href="#">Jogos</a>
    <a href="Login"></a>
</div>
#include <iostream>
using namespace std;
#include <climits>


int main() 
{
    int arr[]={23,53,13,43,24};
    int n= sizeof(arr)/ sizeof(arr[0]);
    int mx=arr[0];
    
    for(int i=0;i<n;i++){
      mx=max(arr[i],mx);
      
    }
     
    int rr=INT_MIN;
    
    for(int i = 0;i<n;i++){
      if(arr[i]!=mx) rr= max(arr[i],rr);
    }
    cout<<rr;
    
    
    
    
    return 0;
}
$(document).ready(function() {
    var itemsPerPage = 10; // Número de itens por página
    var items = $("tbody tr");
    var pagination = $(".pagination");
    // Função para atualizar a exibição dos itens com base na página atual
    function updateDisplay(pageNum, filteredItems) {
        var start = (pageNum - 1) * itemsPerPage;
        var end = start + itemsPerPage;
        filteredItems.hide().slice(start, end).show();
    }
    // Função para atualizar a paginação
    function updatePagination(numPages, currentPage) {
        pagination.empty();
        for (var i = 1; i <= numPages; i++) {
            var pageLink = $("<a href='#' class='page-link'>" + i + "</a>");
            if (i === currentPage) {
                pageLink.addClass("current-page");
            }
            pagination.append(pageLink);
        }
    }
    // Função para aplicar a paginação
    function applyPagination(searchTerm, currentPage) {
        var filteredItems = items;
        if (searchTerm !== "") {
            filteredItems = items.filter(function() {
                return $(this).text().toLowerCase().indexOf(searchTerm) > -1;
            });
        }
        var numItems = filteredItems.length;
        var numPages = Math.ceil(numItems / itemsPerPage);
        
        // Atualizar a paginação
        updatePagination(numPages, currentPage);
        // Exibir a página atual dos itens filtrados
        updateDisplay(currentPage, filteredItems);
    }
    // Adicionar evento de input para o campo de pesquisa
    $("#search").on("keyup", function() {
        var searchTerm = $(this).val().toLowerCase();
        applyPagination(searchTerm, 1); // Ao pesquisar, volte para a primeira página
    });
    // Executar a paginação ao carregar a página
    applyPagination("", 1); // Iniciar na primeira página
    
    // Adicionar evento de clique para trocar de página
    pagination.on("click", "a.page-link", function(e) {
        e.preventDefault();
        var pageNum = $(this).text();
        var searchTerm = $("#search").val().toLowerCase();
        
        applyPagination(searchTerm, parseInt(pageNum)); // Atualizar a página atual
    });
});
000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a2a8299afdb9d394598485b0b7745acf3ee219ec0000000000000000000000000000000000000000000000bdbc41e0348b300000
[{"inputs":[{"internalType":"uint256","name":"_dailyDistribution","type":"uint256"},{"internalType":"uint256","name":"_recipientsLimit","type":"uint256"},{"internalType":"uint256","name":"_durationInDays","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"distributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recipientsLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
input_text = "<fim_prefix>def print_hello_world():\n    <fim_suffix>\n    print('Hello world!')<fim_middle>"
inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
# pip install -q transformers
from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "bigcode/starcoder"
device = "cuda" # for GPU usage or "cpu" for CPU usage

tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)

inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
 const courseData = (e) => {
        const { currentTarget } = e;
        // get all the dataset information
        const name = currentTarget?.dataset?.name ?? "";
        const id = currentTarget?.dataset?.code ?? "";
        const funded = currentTarget?.dataset?.funded ?? "";
        const demand = currentTarget?.dataset?.demand ?? "";
        const mode = currentTarget?.dataset?.mode ?? "";
        const options = currentTarget?.dataset?.training ?? "";

        // create object from the current course clicked dataset attributes above
        const course = {
            courseName: name,
            courseId: id,
            funding: funded,
            demand: demand,
            delivery: mode,
            training: options,
        };

        return course;
    };


//or

 function getListData(data) {
        if (!data) return [];
        // console.log(data);
        return data?.map((item) => ({
            name: item?.name ?? "",
            category: item?.category ?? "",
            web: item?.website ?? "",
            tel: item?.tel ?? "",
            email: item?.email ?? "",
        }));
    }

getListData(items);
const toggleClass = (element, className, force) => {
     element.classList.toggle(className, force);
    };


const div = document.querySelector("div");

// Toggle the class "active" on the div
toggleClass(div, "active");

// Force add the class "highlight"
toggleClass(div, "highlight", true);

// Force remove the class "hidden"
toggleClass(div, "hidden", false);



        const box = document.querySelector(".box");
        const button = document.getElementById("toggleBtn");

        button.addEventListener("click", () => {
            toggleClass(box, "active");
        });




 const toggleSpan = (currentTarget, force = true) => {
        const compareBlock = currentTarget.closest(".compare-block");
        if (!compareBlock) return;

        const currentSpan = compareBlock.querySelector("span");
        if (currentSpan) {
            toggleClass(currentSpan, "show", force);
            if (currentSpan.className.indexOf("show") > -1) {
                currentSpan.setAttribute("aria-hidden", "false");
            } else {
                currentSpan.setAttribute("aria-hidden", "true");
            }
        }
    };
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>🔬 Aropha AI Biodegradation Prediction Platform</title>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');

    /* General Styles */
    body {
      font-family: 'Roboto', sans-serif;
      margin: 0;
      padding: 0;
      background: #475d63; /*background*/
      color: #ffffff;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      height: 100vh;
    }

    .container {
      background: #1E2A34;
      padding: 30px;
      border-radius: 10px;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
      width: 90%;
      max-width: 400px;
      text-align: center;
    }

    /* Logo */
    .logo {
      width: 200px;
      margin-bottom: 20px;
    }

    h2 {
      margin-bottom: 20px;
      font-size: 24px;
      color: #ffffff;
    }

    label {
      display: block;
      margin: 10px 0 5px;
      text-align: left;
      font-weight: bold;
      color: #ffffff;
    }

    input {
      width: 100%;
      padding: 10px;
      margin-bottom: 10px;
      border: 1px solid #ccc;
      border-radius: 5px;
      background: #24343D;
      color: #ffffff;
      border: none;
      outline: none;
    }

    input::placeholder {
      color: #b0b8bf;
    }

    .error {
      color: red;
      font-size: 14px;
      display: none;
    }

    button[type="submit"] {
      width: 100%;
      background-color: #224a80; /* Dark button background */
      color: white;
      border: none;
      padding: 12px;
      border-radius: 8px;
      cursor: pointer;
      font-size: 16px;
      font-weight: bold;
      transition: all 0.3s ease;
    }

    button[type="submit"]:hover {
      background-color: #234471; /* Hover color */
      color: #ffffff;
    }

    /* Modal Styles */
    .modal {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.6);
      display: none;
      justify-content: center;
      align-items: center;
      z-index: 1000;
    }

    .modal-content {
      background: #1E2A34;
      padding: 20px;
      border-radius: 8px;
      max-width: 500px;
      width: 90%;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
      text-align: center;
      color: #ffffff;
    }

    .close-button {
      margin-top: 20px;
      padding: 10px 20px;
      border: none;
      background: #222a35; /* Dark button background */
      color: white;
      border-radius: 8px;
      cursor: pointer;
      font-weight: bold;
      transition: all 0.3s ease;
    }

    .close-button:hover {
      background: #66ccff; /* Hover color */
      color: #ffffff;
    }

    /* Additional Info */
    .info {
      text-align: center;
      margin-top: 20px;
      font-size: 14px;
      color: #b0b8bf;
    }

    .info a {
      color: #66ccff; /* Link color */
      text-decoration: none;
    }

    .info a:hover {
      text-decoration: underline;
    }

    /* Footer Styles */
    footer {
      text-align: center;
      padding: 10px;
      color: #b0b8bf;
      font-size: 14px;
      margin-top: 20px;
    }

    footer a {
      color: #66ccff; /* Link color */
      text-decoration: none;
    }

    footer a:hover {
      text-decoration: underline;
    }
  </style>
</head>
<body>

  <div class="container">
    <img src="https://www.users.aropha.com/static/assets/img/logo-rectangular.png" alt="Aropha Logo" class="logo">
    <h2>Create an Account</h2>
    <form id="signup-form">
      <label for="first_name">First Name</label>
      <input type="text" id="first_name" name="first_name" placeholder="Optional">

      <label for="last_name">Last Name</label>
      <input type="text" id="last_name" name="last_name" placeholder="Optional">

      <label for="email">Email</label>
      <input type="email" id="email" name="email" required>

      <label for="password">Password</label>
      <input type="password" id="password" name="password" required>

      <label for="confirm_password">Re-enter Password</label>
      <input type="password" id="confirm_password" name="confirm_password" required>
      <p class="error" id="error-message">Passwords do not match.</p>

      <button type="submit">Sign Up</button>
    </form>
    <!-- Additional Info for Password Reset -->
    <div class="info">
      <p>
        Forgot your password? Reset it <a href="https://www.users.aropha.com/login.html" target="_blank">here</a>.
      </p>
    </div>
  </div>

  <!-- Modal for displaying messages from your endpoint -->
  <div id="messageModal" class="modal">
    <div class="modal-content">
      <p id="modalMessage"></p>
      <button class="close-button" id="closeModal">Close</button>
    </div>
  </div>

  <footer>
    <p>
      Follow us on <a href="https://www.linkedin.com/company/aropha/">LinkedIn</a> | &copy; 2025 Aropha Inc. All Rights Reserved.
    </p>
  </footer>

  <script>
    document.getElementById("signup-form").addEventListener("submit", function(event) {
      event.preventDefault(); // Prevent default form submission

      var password = document.getElementById("password").value;
      var confirmPassword = document.getElementById("confirm_password").value;
      var errorMessage = document.getElementById("error-message");

      if (password !== confirmPassword) {
        errorMessage.style.display = "block";
        return;
      } else {
        errorMessage.style.display = "none";
      }

      let formData = new FormData(document.getElementById("signup-form"));

      fetch('https://modelserver.aropha.com/register', {
        method: 'POST',
        body: formData
      })
      .then(async response => {
        let responseData;
        try {
          responseData = await response.json(); // Try parsing as JSON
        } catch (error) {
          responseData = await response.text(); // Fallback for non-JSON responses
        }

        console.log("Server response:", responseData); // Debugging log

        let message = "";
        if (typeof responseData === "object") {
          message = responseData.detail || responseData.message || JSON.stringify(responseData, null, 2);
        } else {
          message = responseData;
        }

        document.getElementById("modalMessage").textContent = message;
        document.getElementById("messageModal").style.display = "flex";
      })
      .catch(error => {
        console.error("Fetch error:", error);
        document.getElementById("modalMessage").textContent = "An error occurred. Please try again.";
        document.getElementById("messageModal").style.display = "flex";
      });
    });

    // Close modal
    document.getElementById("closeModal").addEventListener("click", function() {
      document.getElementById("messageModal").style.display = "none";
    });
  </script>
</body>
</html>
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tutorials and Documentation - Aropha AI</title>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');
    
    /* General Styles */
    body {
      font-family: 'Roboto', sans-serif;
      margin: 0;
      padding: 0;
      background: #ffffff;
      color: #222a35;
    }
    .wrapper {
      max-width: 1200px;
      margin: 0 auto;
      border-radius: 15px;
      padding: 20px;
      margin-top: 140px;
    }
    .top-bar {
      background: #222a35;
      color: #ffffff;
      padding: 15px 0;
      text-align: center;
      font-weight: bold;
      font-size: 1.5em;
      display: flex;
      flex-direction: column;
      align-items: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
    }

    .logo-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .top-bar img.logo {
      height: 50px;
    }

    .nav-container {
      display: flex;
      justify-content: center;
      width: 100%;
      padding: 10px 0;
    }

    .button-container {
      display: flex;
      gap: 20px;
      align-items: center;
    }

    .btn {
      color: #ffffff;
      text-decoration: none;
      font-size: 14px;
      font-weight: normal;
      transition: all 0.3s ease;
      padding: 5px 10px;
    }

    .btn:hover {
      color: #66ccff;
    }

    .btn.active {
      color: #66ccff;
    }

    /* Content Styles */
    .content {
      padding: 20px 40px;
      text-align: left;
    }
    section {
      margin-bottom: 40px;
      padding: 20px;
      border-radius: 10px;
      background: #eeeeee;
      color: #222a35;
    }
    h1 {
      text-align: center;
      color: #222a35;
      font-size: 2.5em;
      margin-bottom: 40px;
    }
    h2 {
      color: #222a35;
      border-bottom: 2px solid #66ccff;
      padding-bottom: 8px;
    }
    p { line-height: 1.6; }
    .img-center {
      display: block;
      margin: 0 auto;
    }
    
    /* Table styles */
    .table-container {
      overflow-x: auto;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0;
    }
    th, td {
      padding: 12px;
      text-align: left;
      border: 1px solid #ddd;
    }
    th {
      background-color: #222a35;
      color: white;
    }
    tr:nth-child(even) {
      background-color: #f9f9f9;
    }

    footer {
      text-align: center;
      padding: 20px 0;
      background: #222a35;
      color: #ffffff;
      border-radius: 10px;
      margin-top: 40px;
    }
  </style>
  <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
  <script>
    mermaid.initialize({
      theme: 'default',
      securityLevel: 'loose',
      startOnLoad: true
    });
  </script>
</head>
<body>
  <div class="top-bar">
    <div class="logo-container">
      <img src="https://www.users.aropha.com/static/assets/img/logo-rectangular.png" alt="Aropha Logo" class="logo">
    </div>
    <div class="nav-container">
      <div class="button-container">
        <a href="/home.html" class="btn">Home</a>
        <a href="/user_registration.html" class="btn">User Registration</a>
        <a href="/tutorials.html" class="btn active">Tutorials and Documentations</a>
        <a href="/activate_free_trial.html" class="btn">Activate Free Trial</a>
        <a href="/aropha_data_submission.html" class="btn">Data Processing and Credits</a>
        <a href="/Biodegrability_screening_case_study.html" class="btn">Biodegradability Case Study</a>
        <a href="/purchase_ai_engine_credits.html" class="btn">Purchase Credits</a>
      </div>
    </div>
  </div>

  <div class="wrapper">
    <div class="content">
      <section>
        <h2>Chemical Data Entry</h2>
        <p>Chemical data can be provided in one of three ways:</p>
        <ul>
          <li>Full SMILES notation of the substance</li>
          <li>in-silico Polymer Synthesis from Monomer Units</li>
          <li>IR Data Entry</li>
        </ul>
        <img src="images/image 7.png" alt="Chemical Data Entry" class="img-center" style="max-width:90%;">
      </section>

      <section>
        <h2>AI Engines</h2>
        <p>Our intelligent engine selection system helps you choose the perfect AI model for your specific needs. Follow the flowchart below to identify the most suitable engine for your material:</p>
        
        <div class="mermaid">
          graph LR
              SM[Small Molecule] --> Q1{Molecular Weight?}
              Poly[Polymer] --> Q2{Known Degree of Polymerization?}
              Q1 -->|MW ≤ 1000| Former[Aropha Former]
              Q1 -->|MW ≥ 1000| Grapher[ArophaGrapher]
              Q2 -->|No, or DP ≤ 100| Former
              Q2 -->|Yes, DP ≤ 2000| Grapher
              Q2 -->|Custom| ArophaPolyformer[ArophaPolyformer]

              classDef default fill:#ffffff,stroke:#222a35,stroke-width:2px,color:#222a35
              classDef decision fill:#222a35,stroke:#66ccff,stroke-width:2px,color:#ffffff
              
              class SM,Poly,Former,Grapher,ArophaPolyformer default
              class Q1,Q2 decision
        </div>

        <div class="table-container">
          <h3>Engine Specifications</h3>
          <table>
            <thead>
              <tr>
                <th>AI Engine</th>
                <th>Chemical Space</th>
                <th>Degree of Polymerization</th>
                <th>Suggested MW for small molecules</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>Aropha Former</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 100</td>
                <td>&le; 1000</td>
              </tr>
              <tr>
                <td>ArophaGrapher</td>
                <td>Small Molecule + Macromolecular Polymer</td>
                <td>&le; 2000</td>
                <td>&ge; 1000</td>
              </tr>
              <tr>
                <td>ArophaPolyformer</td>
                <td>Macromolecular Polymer</td>
                <td>Custom</td>
                <td>N/A</td>
              </tr>
            </tbody>
          </table>
        </div>
      </section>

      <section>
        <h2>Material Morphology</h2>
        <p>
          We consider the impact of material morphology. Please select the shape type that best matches your material from our list and provide the relevant parameters.
        </p>
        <img src="images/image 5.png" alt="Material Morphology" class="img-center" style="max-width:70%;">
      </section>

      <section>
        <h2>Method</h2>
        <p>
          You can choose from 60 standard methods for your experiment or design a customized method tailored to specific environmental conditions.
        </p>
        <img src="images/image 6.png" alt="Method" class="img-center" style="max-width:70%;">
      </section>
    </div>
  </div>

  <footer>
    <p>
      Follow us on <a href="https://www.linkedin.com/company/aropha/">LinkedIn</a> | &copy; 2025 Aropha Inc. All Rights Reserved.
    </p>
  </footer>
</body>
</html>
  let grouping = items.reduce((obj, item) => {
            const key = item.providerId;
            if (!obj[key]) {
                obj[key] = [];
            }

            obj[key].push(item);

            return obj;
        }, {});
   const textModal = document.querySelectorAll(".text-trig");

	textModal.forEach(textLinkModal);


function textLinkModal(trigger) {
        // eslint-disable-next-line no-undef
        const modal = document.querySelector(".check-footer__modal");
        // eslint-disable-next-line no-undef
        const closeBtn = document.querySelector(".check-footer__content .close");
        if (!modal || !closeBtn) return;

        // add open on click
        trigger.addEventListener("click", function () {
            const isOpen = modal.classList.contains("open");
            if (!isOpen) {
                modal.classList.add("open");
            }
        });
        // remove open on click
        closeBtn.addEventListener("click", function () {
            modal.classList.remove("open");
        });

        // remove open if the click occurs on the modal and that click has a class of open
        // this stops the modal from disappearing if the user clicks  on the content of the modal
        modal.addEventListener("click", function (e) {
            const el = e.currentTarget;
            if (e.target === modal && el.classList.contains("open")) {
                el.classList.remove("open");
            }
        });
    }
// where we have two arrays of checked and unchecked 

 function onHandleCheckbox(checkbox) {
        // create a new attay of objects with the value and checked status
        checkbox.addEventListener("change", () => {
            const status = [...trainingRadioBtns].map((btn) => ({
                value: btn.value,
                checked: btn.checked,
            }));
            // update global checkedValues array with objects of items that are checked then another with items unchecked
            checkedValues = status.filter((btn) => btn.checked).map((btn) => btn.value);
            notSelected = status.filter((btn) => !btn.checked).map((btn) => btn.value);
            // console.log("selected", checkedValues);
            // console.log("not selected", notSelected);

            // return values to the filteredItems array that match the below
            filteredItems = locations.filter((item) => {
                // Each individual match condition for filtering from the checkedvalues array or the notselected array
                const matchesFunded = (checkedValues.includes("governmentService") && item.governmentService) || notSelected.includes("governmentService");
                const matchesOnline = (checkedValues.includes("isAvailableOnline") && item.isAvailableOnline) || notSelected.includes("isAvailableOnline");
                const matchesPartTime = (checkedValues.includes("isAvailablePartTime") && item.isAvailablePartTime) || notSelected.includes("isAvailablePartTime");
                const matchesApprentice = (checkedValues.includes("apprenticeshipTraineeship") && item.apprenticeshipTraineeship) || notSelected.includes("apprenticeshipTraineeship");
                const matchesVetFeeCourse = (checkedValues.includes("isVetFeeCourse") && item.isVetFeeCourse) || notSelected.includes("isVetFeeCourse");

                // Check if the item matches All of the selected filters and return
                return matchesFunded && matchesOnline & matchesPartTime & matchesApprentice & matchesVetFeeCourse;
            });

            // updating functions
            noLocationsOverlay(filteredItems);

            checkLoadButton(filteredItems);

            displayLocations();

            updateMarkers(filteredItems);
        });
    }
star

Sun Feb 16 2025 20:05:26 GMT+0000 (Coordinated Universal Time)

@Shesek

star

Sun Feb 16 2025 19:57:03 GMT+0000 (Coordinated Universal Time) https://community.shopify.com/c/shopify-design/how-can-i-properly-display-image-metafields-and-change-fonts-in/m-p/1652369

@procodefinder

star

Sun Feb 16 2025 19:56:49 GMT+0000 (Coordinated Universal Time) https://community.shopify.com/c/shopify-design/how-can-i-properly-display-image-metafields-and-change-fonts-in/m-p/1652369

@procodefinder

star

Sun Feb 16 2025 17:12:18 GMT+0000 (Coordinated Universal Time)

@2late #css

star

Sun Feb 16 2025 15:06:19 GMT+0000 (Coordinated Universal Time) https://www.youtube.com/watch?v=9eISgVV5T7M&ab_channel=ROVEEb

@Pedro_Neto

star

Sun Feb 16 2025 14:14:21 GMT+0000 (Coordinated Universal Time)

@aniket_chavan

star

Sun Feb 16 2025 09:26:11 GMT+0000 (Coordinated Universal Time)

@Wittinunt

star

Sun Feb 16 2025 04:34:18 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Sat Feb 15 2025 19:28:59 GMT+0000 (Coordinated Universal Time) https://www.w3schools.com/java/java_conditions.asp

@omarHesham #java

star

Sat Feb 15 2025 19:11:15 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Sat Feb 15 2025 15:34:13 GMT+0000 (Coordinated Universal Time) https://administrator.de/forum/tool-um-gleichzeitig-mehrere-text-dateien-zu-erstellen-85480.html

@2late #cmd

star

Sat Feb 15 2025 14:46:00 GMT+0000 (Coordinated Universal Time)

@2late #youtube

star

Sat Feb 15 2025 04:03:48 GMT+0000 (Coordinated Universal Time) https://superuser.com/questions/1809593/how-do-i-fix-sudo-commands-will-not-succeed-by-default-on-chromeos-crosh-shell

@v1ral_ITS

star

Fri Feb 14 2025 19:22:28 GMT+0000 (Coordinated Universal Time)

@shahmeeriqbal

star

Fri Feb 14 2025 18:48:00 GMT+0000 (Coordinated Universal Time)

@marcopinero

star

Fri Feb 14 2025 16:48:07 GMT+0000 (Coordinated Universal Time)

@mmare

star

Fri Feb 14 2025 13:19:43 GMT+0000 (Coordinated Universal Time)

@erika

star

Fri Feb 14 2025 12:32:11 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/white-label-crypto-exchange-software/

@CharleenStewar

star

Fri Feb 14 2025 10:24:01 GMT+0000 (Coordinated Universal Time) https://websquadron.co.uk/mobile-tabs-at-top-of-nested-tabs/

@emalbert #css #elementor

star

Fri Feb 14 2025 10:01:24 GMT+0000 (Coordinated Universal Time) https://www.thiscodeworks.com/mass-delete-salesforce-flow-versions-salesforce-flows-soql/66ec4cae518ce400147dd01f

@dennis_both

star

Fri Feb 14 2025 09:44:29 GMT+0000 (Coordinated Universal Time) https://www.thiscodeworks.com/user/dannygelf

@dennis_both

star

Fri Feb 14 2025 02:05:37 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Fri Feb 14 2025 02:02:13 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Fri Feb 14 2025 00:26:20 GMT+0000 (Coordinated Universal Time)

@emma1314

star

Thu Feb 13 2025 23:35:31 GMT+0000 (Coordinated Universal Time)

@emma1314

star

Thu Feb 13 2025 22:08:04 GMT+0000 (Coordinated Universal Time)

@emma1314

star

Thu Feb 13 2025 22:00:22 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/quiz/test-your-knowledge-of-python-operators-quiz/

@pynerds #python

star

Thu Feb 13 2025 21:59:41 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/quiz/python-conditional-execution-quiz-with-answers/

@pynerds #python

star

Thu Feb 13 2025 21:58:53 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/quiz/loops-in-python-quiz-with-answers/

@pynerds #python

star

Thu Feb 13 2025 21:58:11 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/quiz/python-functions-quiz-test-your-skills/

@pynerds #python

star

Thu Feb 13 2025 21:57:20 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/quiz/python-variables-and-data-types-quiz/

@pynerds #python

star

Thu Feb 13 2025 21:55:10 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/visualize/

@pynerds #python

star

Thu Feb 13 2025 21:53:44 GMT+0000 (Coordinated Universal Time) https://www.pynerds.com/walrus-operator-in-python/

@pynerds #python

star

Thu Feb 13 2025 20:50:48 GMT+0000 (Coordinated Universal Time)

@DaviRolam

star

Thu Feb 13 2025 15:25:10 GMT+0000 (Coordinated Universal Time)

@meherbansingh

star

Thu Feb 13 2025 14:44:01 GMT+0000 (Coordinated Universal Time)

@jdeveloper #php

star

Thu Feb 13 2025 14:29:05 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Thu Feb 13 2025 14:28:51 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Thu Feb 13 2025 14:28:31 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Thu Feb 13 2025 11:32:32 GMT+0000 (Coordinated Universal Time) https://huggingface.co/bigcode/starcoder

@zerozero

star

Thu Feb 13 2025 11:32:01 GMT+0000 (Coordinated Universal Time) https://huggingface.co/bigcode/starcoder

@zerozero

star

Thu Feb 13 2025 10:28:02 GMT+0000 (Coordinated Universal Time) https://dnevnik.ru/r/omsk/marks/school/47519/student/1000014996211/current

@bobraSlada

star

Thu Feb 13 2025 10:25:23 GMT+0000 (Coordinated Universal Time) https://dnevnik.ru/r/omsk/marks/school/47519/student/1000014996211/current

@bobraSlada

star

Thu Feb 13 2025 02:22:10 GMT+0000 (Coordinated Universal Time)

@davidmchale

star

Thu Feb 13 2025 02:20:11 GMT+0000 (Coordinated Universal Time)

@davidmchale #toggle #force

star

Thu Feb 13 2025 00:01:52 GMT+0000 (Coordinated Universal Time)

@emma1314

star

Wed Feb 12 2025 23:58:57 GMT+0000 (Coordinated Universal Time)

@emma1314

star

Wed Feb 12 2025 23:20:21 GMT+0000 (Coordinated Universal Time)

@davidmchale #reducer #reduce

star

Wed Feb 12 2025 23:00:05 GMT+0000 (Coordinated Universal Time)

@davidmchale #modal #text

star

Wed Feb 12 2025 22:58:02 GMT+0000 (Coordinated Universal Time)

@davidmchale #checkbox #conditionals

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension