# Zara Products By Category (`pintostudio/zara-products-by-category`)

The Zara Products by Category actor is a web scraping tool that extracts product information from Zara's online store by category.

- **URL**: https://beta-securitybyobscurity.apify.com/pintostudio/zara-products-by-category.md
- **Developed by:** [Pinto Studio](https://beta-securitybyobscurity.apify.com/pintostudio) (community)
- **Categories:** E-commerce, Other, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$27.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

# README

## Zara Products by Category - Actor Documentation

### Overview

The **Zara Products by Category** actor is a web scraping tool that extracts product information from Zara's online store by category. It allows you to scrape products from any Zara category page across different countries and languages, with pagination support for large product catalogs.

### What Does This Actor Do?

This actor helps you:

- Extract product details from any Zara category page
- Get product information in different languages and countries
- Handle pagination to scrape multiple pages of products
- Retrieve structured product data including prices, images, and descriptions

### Quick Start

#### Basic Usage

To use this actor, you only need to provide a Zara category URL. The actor will automatically extract all products from that category.

**Minimum required input:**

```json
{
  "categoryUrl": "https://www.zara.com/us/en/woman-best-sellers-jeans-l6130.html?v1=2491844"
}
```

### Input Parameters

#### Required Parameters

| Parameter | Type | Description | Example |
|-----------|------|-------------|---------|
| `categoryUrl` | String | The Zara category page URL you want to scrape | `"https://www.zara.com/us/en/woman-best-sellers-jeans-l6130.html?v1=2491844"` |

#### Optional Parameters

| Parameter | Type | Default | Description | Range |
|-----------|------|---------|-------------|-------|
| `locale` | String | `"en_US"` | Language and country code for localization | See supported locales below |
| `page` | Integer | `1` | Starting page number for pagination | Minimum: 1 |
| `perPage` | Integer | `36` | Number of products to fetch per page | 1-70 |

### Supported Locales

The actor supports over 100 different language and country combinations. Here are some popular ones:

#### English Locales

- `en_US` - English (United States)
- `en_GB` - English (United Kingdom)
- `en_CA` - English (Canada)
- `en_AU` - English (Australia)

#### Spanish Locales

- `es_ES` - Spanish (Spain)
- `es_US` - Spanish (United States)
- `es_MX` - Spanish (Mexico)
- `es_AR` - Spanish (Argentina)

#### Other Popular Locales

- `fr_FR` - French (France)
- `de_DE` - German (Germany)
- `it_IT` - Italian (Italy)
- `pt_BR` - Portuguese (Brazil)
- `ja_JP` - Japanese (Japan)
- `ko_KR` - Korean (South Korea)
- `zh_CN` - Chinese (China)

*For a complete list of supported locales, refer to the input schema.*

### Input Examples

#### Example 1: Basic Scraping

```json
{
  "categoryUrl": "https://www.zara.com/us/en/woman-best-sellers-jeans-l6130.html?v1=2491844"
}
```

#### Example 2: Spanish Market with Pagination

```json
{
  "categoryUrl": "https://www.zara.com/es/es/mujer-vaqueros-l1335.html",
  "locale": "es_ES",
  "page": 2,
  "perPage": 50
}
```

#### Example 3: Large Batch Scraping

```json
{
  "categoryUrl": "https://www.zara.com/de/de/damen-jeans-l1335.html",
  "locale": "de_DE",
  "page": 1,
  "perPage": 70
}
```

### Output Structure

The actor returns a structured JSON object with the following format:

#### Main Output Structure

```json
{
  "results": {
    "data": [
      // Array of product objects
    ],
    "pagination": {
      "current": 1,
      "totalAvailablePages": 5,
      "total": 150,
      "hasNext": true,
      "hasPrev": false
    }
  },
  "completedAt": "2025-05-26T12:03:17.558Z"
}
```

#### Product Object Structure

Each product in the `data` array contains:

```json
{
  "id": 418199714,
  "type": "Product",
  "kind": "Wear",
  "name": "HIGH-WAISTED TRF MOM FIT JEANS",
  "reference": "02569047-V2025",
  "displayReference": "2569/047",
  "description": "",
  "pricing": {
    "value": 49.9,
    "currency": null
  },
  "colors": [
    {
      "id": "400",
      "name": "Blue",
      "price": "49.90",
      "priceInCents": 4990,
      "hexCode": null
    }
  ],
  "images": [
    "https://static.zara.net/assets/public/73a7/37bb/301e4e63b2a0/f5c756c95488/08727047400-p/08727047400-p.jpg?ts=1740751065310"
  ],
  "section": 1,
  "sectionName": "WOMAN",
  "familyName": "PANTALON",
  "subfamilyName": "T.PANT.PAQUETER",
  "keyword": "high-waisted-trf-mom-fit-jeans",
  "url": "https://www.zara.com/us/en/high-waisted-trf-mom-fit-jeans-p02569047.html"
}
```

#### Key Fields Explained

| Field | Description |
|-------|-------------|
| `id` | Unique product identifier |
| `name` | Product name/title |
| `reference` | Internal Zara product reference |
| `displayReference` | Human-readable product reference |
| `pricing.value` | Product price as a number |
| `colors` | Array of available color variants |
| `images` | Array of product image URLs |
| `sectionName` | Product category (e.g., "WOMAN", "MAN", "KIDS") |
| `familyName` | Product family (e.g., "PANTALON", "T-SHIRT") |
| `url` | Direct link to the product page |

#### Pagination Information

| Field | Description |
|-------|-------------|
| `current` | Current page number |
| `totalAvailablePages` | Total number of pages available |
| `total` | Total number of products in the category |
| `hasNext` | Boolean indicating if there are more pages |
| `hasPrev` | Boolean indicating if there are previous pages |

### How to Find Category URLs

To get a Zara category URL:

1. Go to [zara.com](https://www.zara.com)
2. Navigate to your desired country/language
3. Browse to the category you want (e.g., Women > Jeans)
4. Copy the URL from your browser's address bar

**Example URLs:**

- Women's Jeans (US): `https://www.zara.com/us/en/woman-jeans-l1119.html?v1=2419185`
- Men's Shirts (UK): `https://www.zara.com/gb/en/man-shirts-l707.html`
- Kids' Dresses (Spain): `https://www.zara.com/es/es/ninos-nina-vestidos-l1176.html`

### Common Use Cases

#### 1. Price Monitoring

Track price changes across different markets:

```json
{
  "categoryUrl": "https://www.zara.com/us/en/woman-jeans-l1119.html?v1=2419185",
  "locale": "en_US"
}
```

#### 2. Market Research

Compare product availability across different countries:

```json
{
  "categoryUrl": "https://www.zara.com/de/en/woman-jeans-l1119.html?v1=2419185",
  "locale": "en_DE"
}
```

#### 3. Inventory Analysis

Get complete product catalogs for analysis:

```json
{
  "categoryUrl": "https://www.zara.com/es/es/mujer-camisas-l1217.html?v1=2420369",
  "locale": "es_ES",
  "perPage": 70
}
```

### Best Practices

#### 1. Pagination Strategy

- Start with `page: 1` to understand the total number of products
- Use the `totalAvailablePages` from the response to plan your pagination
- Set `perPage` to maximum (70) for efficient scraping

#### 2. Locale Selection

- Always match the locale with the category URL's country
- Use the actor's automatic locale validation
- Check supported locales for your target market

#### 3. Rate Limiting

- Don't run multiple instances simultaneously on the same category
- Add delays between runs if scraping multiple categories
- Monitor for rate limiting responses

#### 4. Data Processing

- Use the `reference` field for unique product identification
- The `url` field provides direct links to individual products
- Images URLs can be used directly for downloading product photos

### Error Handling

The actor includes built-in error handling for common issues:

#### Invalid Category URL

```
Error: categoryUrl is required
```

**Solution:** Ensure you provide a valid Zara category URL

#### Unsupported Locale

```
Locale xx_XX not supported for country xx. Using first available: yy_YY
```

**Solution:** Check the supported locales list and use a valid combination

#### No Products Found

The actor will return an empty products array but won't throw an error.

### Troubleshooting

#### Common Issues

1. **Empty Results**
   - Check if the category URL is correct and accessible
   - Verify the locale matches the URL's country
   - Try reducing the `perPage` parameter

2. **Locale Warnings**
   - Use supported locale combinations
   - Match the locale with the category URL's country/language

3. **Pagination Issues**
   - Start with page 1 to get total page count
   - Don't exceed the `totalAvailablePages` value

#### Getting Help

If you encounter issues:

1. Verify your input parameters against this documentation
2. Check the actor's logs for specific error messages
3. Test with the provided example inputs first
4. Ensure your category URLs are from the current Zara website

### Data Storage

The actor automatically stores results in two ways:

1. **Dataset**: All scraped products are pushed to the default dataset
2. **Key-Value Store**: A summary is saved under the key `SUMMARY` containing:
   - Complete results object
   - Completion timestamp
   - Pagination information

You can access both through the Apify platform after the run completes.

***

### Support

If you have any questions or encounter any issues, please consult the Apify documentation or reach out to us through one of the following channels:

- **Telegram**: [@pintoflow](https://t.me/pintoflow)
- **Email**: <pintoflowpt@gmail.com>
- **Apify Platform**: You can also contact us directly through this platform.

***

# Actor input Schema

## `categoryUrl` (type: `string`):

The full category url to look for products (e.g., 'https://www.zara.com/us/en/woman-best-sellers-jeans-l6130.html?v1=2491844')

## `locale` (type: `string`):

Language and country locale (format: language\_COUNTRY)

## `page` (type: `integer`):

Page number to start scraping from

## `perPage` (type: `integer`):

Number of products to fetch per page

## Actor input object example

```json
{
  "categoryUrl": "https://www.zara.com/pt/en/woman-beachwear-l1052.html?v1=2418954",
  "locale": "en_US",
  "page": 1,
  "perPage": 36
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "categoryUrl": "https://www.zara.com/pt/en/woman-beachwear-l1052.html?v1=2418954",
    "locale": "en_US",
    "page": 1,
    "perPage": 36
};

// Run the Actor and wait for it to finish
const run = await client.actor("pintostudio/zara-products-by-category").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "categoryUrl": "https://www.zara.com/pt/en/woman-beachwear-l1052.html?v1=2418954",
    "locale": "en_US",
    "page": 1,
    "perPage": 36,
}

# Run the Actor and wait for it to finish
run = client.actor("pintostudio/zara-products-by-category").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "categoryUrl": "https://www.zara.com/pt/en/woman-beachwear-l1052.html?v1=2418954",
  "locale": "en_US",
  "page": 1,
  "perPage": 36
}' |
apify call pintostudio/zara-products-by-category --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pintostudio/zara-products-by-category",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zara Products By Category",
        "description": "The Zara Products by Category actor is a web scraping tool that extracts product information from Zara's online store by category.",
        "version": "0.0",
        "x-build-id": "hOCMFtSKJCF1SIF3o"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pintostudio~zara-products-by-category/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pintostudio-zara-products-by-category",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/pintostudio~zara-products-by-category/runs": {
            "post": {
                "operationId": "runs-sync-pintostudio-zara-products-by-category",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/pintostudio~zara-products-by-category/run-sync": {
            "post": {
                "operationId": "run-sync-pintostudio-zara-products-by-category",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "categoryUrl"
                ],
                "properties": {
                    "categoryUrl": {
                        "title": "categoryUrl",
                        "type": "string",
                        "description": "The full category url to look for products (e.g., 'https://www.zara.com/us/en/woman-best-sellers-jeans-l6130.html?v1=2491844')"
                    },
                    "locale": {
                        "title": "Locale",
                        "enum": [
                            "en_US",
                            "es_US",
                            "en_GB",
                            "es_ES",
                            "en_ES",
                            "eu_ES",
                            "gl_ES",
                            "ca_ES",
                            "fr_FR",
                            "en_FR",
                            "de_DE",
                            "en_DE",
                            "it_IT",
                            "en_IT",
                            "pt_PT",
                            "en_PT",
                            "nl_NL",
                            "en_NL",
                            "ja_JP",
                            "en_JP",
                            "ko_KR",
                            "en_KR",
                            "zh_CN",
                            "en_CN",
                            "zt_HK",
                            "en_HK",
                            "zt_TW",
                            "en_TW",
                            "zt_MO",
                            "en_MO",
                            "en_AU",
                            "en_CA",
                            "fr_CA",
                            "pt_BR",
                            "en_BR",
                            "es_MX",
                            "en_MX",
                            "es_AR",
                            "en_AR",
                            "es_CL",
                            "en_CL",
                            "es_CO",
                            "en_CO",
                            "es_PE",
                            "en_PE",
                            "th_TH",
                            "en_TH",
                            "vi_VN",
                            "en_VN",
                            "id_ID",
                            "en_ID",
                            "en_MY",
                            "en_SG",
                            "en_PH",
                            "en_IN",
                            "tr_TR",
                            "en_TR",
                            "ar_SA",
                            "en_SA",
                            "ar_AE",
                            "en_AE",
                            "en_ZA",
                            "sv_SE",
                            "en_SE",
                            "no_NO",
                            "en_NO",
                            "da_DK",
                            "en_DK",
                            "fi_FI",
                            "sv_FI",
                            "en_FI",
                            "pl_PL",
                            "uk_PL",
                            "en_PL",
                            "cs_CZ",
                            "en_CZ",
                            "sk_SK",
                            "en_SK",
                            "hu_HU",
                            "en_HU",
                            "sl_SI",
                            "en_SI",
                            "hr_HR",
                            "en_HR",
                            "sr_RS",
                            "en_RS",
                            "bg_BG",
                            "en_BG",
                            "ro_RO",
                            "en_RO",
                            "el_GR",
                            "en_GR",
                            "el_CY",
                            "en_CY",
                            "lv_LV",
                            "en_LV",
                            "lt_LT",
                            "en_LT",
                            "et_EE",
                            "en_EE",
                            "en_IE",
                            "en_MT",
                            "fr_LU",
                            "en_LU",
                            "de_LU",
                            "de_AT",
                            "en_AT",
                            "fr_CH",
                            "de_CH",
                            "it_CH",
                            "en_CH",
                            "fr_BE",
                            "nl_BE",
                            "en_BE",
                            "he_IL",
                            "en_IL"
                        ],
                        "type": "string",
                        "description": "Language and country locale (format: language_COUNTRY)",
                        "default": "en_US"
                    },
                    "page": {
                        "title": "Starting Page",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Page number to start scraping from",
                        "default": 1
                    },
                    "perPage": {
                        "title": "Products Per Page",
                        "minimum": 1,
                        "maximum": 70,
                        "type": "integer",
                        "description": "Number of products to fetch per page",
                        "default": 36
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
