Plugin Directory

Changeset 3455079


Ignore:
Timestamp:
02/06/2026 02:36:47 AM (5 weeks ago)
Author:
codeccoop
Message:

feat: improve addons introspection

Location:
forms-bridge/trunk
Files:
4 added
38 edited

Legend:

Unmodified
Added
Removed
  • forms-bridge/trunk/addons/airtable/class-airtable-addon.php

    r3451059 r3455079  
    168168        }
    169169
    170         $schema = array();
     170        $api_schema = array();
    171171        foreach ( $fields as $field ) {
     172            $schema = array();
    172173            switch ( $field['type'] ) {
    173174                case 'number':
    174                     $type = 'number';
     175                    $schema['type'] = 'number';
    175176                    break;
    176177                case 'checkbox':
    177                     $type = 'boolean';
     178                    $schema['type'] = 'boolean';
    178179                    break;
    179180                case 'select':
    180                     $type = $field['is_multi'] ? 'array' : 'string';
     181                    $schema['type'] = 'string';
     182                    if ( $field['is_multi'] ) {
     183                        $schema['items'] = $schema;
     184                        $schema['type']  = 'array';
     185                    }
    181186                    break;
    182187                case 'file':
    183                     $type = 'file';
     188                    $schema['type'] = 'file';
    184189                    break;
    185190                case 'textarea':
    186191                default:
    187                     $type = 'string';
     192                    $schema['type'] = 'string';
    188193                    break;
    189194            }
    190195
    191             $schema[] = array(
     196            $api_schema[] = array(
    192197                'name'   => $field['name'],
    193                 'schema' => array( 'type' => $type ),
     198                'schema' => $schema,
    194199            );
    195200        }
    196201
    197         return $schema;
     202        return self::expand_endpoint_schema( $api_schema );
    198203    }
    199204}
  • forms-bridge/trunk/addons/airtable/class-airtable-form-bridge.php

    r3451059 r3455079  
    282282                    if ( $upload_name === $attachment['key'] || $upload_name === sanitize_title( $attachment['key'] ) ) {
    283283                        $filename = basename( $path );
    284                         $filetype = wp_check_filetype( $path );
    285                         if ( empty( $filetype['type'] ) ) {
    286                             $filetype['type'] = mime_content_type( $path ) ?: 'application/octet-stream';
    287                         }
     284                        $filetype = mime_content_type( $path );
    288285                    }
    289286                }
     
    297294                    "/v0/{$base_id}/{$record_id}/{$attachment['id']}/uploadAttachment",
    298295                    array(
    299                         'contentType' => $filetype['type'] ?? 'application/octet-stream',
     296                        'contentType' => $filetype ?? 'application/octet-stream',
    300297                        'file'        => $attachment['file'],
    301298                        'filename'    => $filename,
  • forms-bridge/trunk/addons/bigin/class-bigin-addon.php

    r3442111 r3455079  
    182182            foreach ( $layout['sections'] as $section ) {
    183183                foreach ( $section['fields'] as $field ) {
     184                    $read_only = $field['field_read_only'] ?? false;
     185                    if ( $read_only ) {
     186                        continue;
     187                    }
     188
    184189                    $type = $field['json_type'];
    185190                    if ( 'jsonobject' === $type ) {
  • forms-bridge/trunk/addons/brevo/class-brevo-addon.php

    r3446693 r3455079  
    9494            if ( ! is_wp_error( $response ) ) {
    9595                $data = yaml_parse( $response['body'] );
     96            }
     97        }
    9698
    97                 if ( $data ) {
    98                     $oa_explorer = new OpenAPI( $data );
     99        if ( empty( $data ) ) {
     100            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/brevo/assets/openapi.json' );
     101            $data     = json_decode( $contents, true );
     102        }
    99103
    100                     $paths = $oa_explorer->paths();
     104        if ( ! $data ) {
     105            return array( '/v3/contacts' );
     106        }
    101107
    102                     if ( $method ) {
    103                         $method       = strtolower( $method );
    104                         $method_paths = array();
     108        $oa_explorer = new OpenAPI( $data );
    105109
    106                         foreach ( $paths as $path ) {
    107                             $path_obj = $oa_explorer->path_obj( $path );
     110        $paths = $oa_explorer->paths();
    108111
    109                             if ( $path_obj && isset( $path_obj[ $method ] ) ) {
    110                                 $method_paths[] = $path;
    111                             }
    112                         }
     112        if ( $method ) {
     113            $method       = strtolower( $method );
     114            $method_paths = array();
    113115
    114                         $paths = $method_paths;
    115                     }
     116            foreach ( $paths as $path ) {
     117                $path_obj = $oa_explorer->path_obj( $path );
    116118
    117                     return array_map(
    118                         function ( $path ) {
    119                             return '/v3' . $path;
    120                         },
    121                         $paths,
    122                     );
     119                if ( $path_obj && isset( $path_obj[ $method ] ) ) {
     120                    $method_paths[] = $path;
    123121                }
    124122            }
    125123
    126             return array( '/v3/contacts' );
     124            $paths = $method_paths;
    127125        }
     126
     127        $endpoints = array();
     128        foreach ( $paths as $path ) {
     129            $endpoints[] = '/v3' . $path;
     130        }
     131
     132        return $endpoints;
    128133    }
    129134
     
    139144     */
    140145    public function get_endpoint_schema( $endpoint, $backend, $method = null ) {
    141         if ( ! function_exists( 'yaml_parse' ) ) {
    142             return array();
     146        if ( function_exists( 'yaml_parse' ) ) {
     147            $response = wp_remote_get( self::OAS_URL );
     148
     149            if ( ! is_wp_error( $response ) ) {
     150                $data = yaml_parse( $response['body'] );
     151            }
    143152        }
    144153
    145         $response = wp_remote_get( self::OAS_URL );
    146 
    147         if ( is_wp_error( $response ) ) {
    148             return array();
     154        if ( empty( $data ) ) {
     155            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/brevo/assets/openapi.json' );
     156            $data     = json_decode( $contents, true );
    149157        }
    150158
    151         $data = yaml_parse( $response['body'] );
    152159        if ( ! $data ) {
    153160            return array();
     
    161168        $params = $oa_explorer->params( $path, $method, $source );
    162169
    163         return $params ?: array();
     170        return self::expand_endpoint_schema( $params ?: array() );
    164171    }
    165172}
  • forms-bridge/trunk/addons/dolibarr/class-dolibarr-addon.php

    r3442111 r3455079  
    140140        $fields = array();
    141141        foreach ( $entry as $field => $value ) {
    142             if ( wp_is_numeric_array( $value ) ) {
    143                 $type = 'array';
    144             } elseif ( is_double( $value ) ) {
    145                 $type = 'number';
    146             } elseif ( is_int( $value ) ) {
    147                 $type = 'integer';
    148             } else {
    149                 $type = 'string';
    150             }
    151 
    152142            $fields[] = array(
    153143                'name'   => $field,
    154                 'schema' => array( 'type' => $type ),
     144                'schema' => $this->get_value_schema( $value ),
    155145            );
    156146        }
    157147
    158         return $fields;
     148        return self::expand_endpoint_schema( $fields );
     149    }
     150
     151    /**
     152     * Return the json schema of a given value.
     153     *
     154     * @param mixed $value Target value.
     155     *
     156     * @return array
     157     */
     158    private function get_value_schema( $value ) {
     159        $schema = array();
     160        // phpcs:disable Universal.Operators.StrictComparisons
     161        if ( wp_is_numeric_array( $value ) ) {
     162            $schema['type'] = 'array';
     163
     164            if ( count( $value ) ) {
     165                $schema['items'] = $this->get_value_schema( $value[0] );
     166            } else {
     167                $schema['items'] = array( 'type' => 'string' );
     168            }
     169        } elseif ( is_array( $value ) ) {
     170            $schema['type'] = 'object';
     171
     172            foreach ( $value as $name => $val ) {
     173                $schema['properties'][ $name ] = $this->get_value_schema( $val );
     174            }
     175        } elseif ( is_double( $value ) ) {
     176            $schema['type'] = 'number';
     177        } elseif ( intval( $value ) == $value ) {
     178            $schema['type'] = 'integer';
     179        } else {
     180            $schema['type'] = 'string';
     181        }
     182        // phpcs:enable
     183
     184        return $schema;
    159185    }
    160186
  • forms-bridge/trunk/addons/gcalendar/class-gcalendar-addon.php

    r3442111 r3455079  
    169169        }
    170170
    171         return array(
     171        $fields = array(
    172172            array(
    173173                'name'   => 'summary',
     
    190190                    'description' => 'Event location',
    191191                ),
     192            ),
     193            array(
     194                'name'   => 'colorId',
     195                'schema' => array( 'type' => 'string' ),
     196            ),
     197            array(
     198                'name'   => 'sendUpdates',
     199                'schema' => array( 'type' => 'boolean' ),
    192200            ),
    193201            array(
     
    239247            ),
    240248        );
     249
     250        return self::expand_endpoint_schema( $fields );
    241251    }
    242252}
  • forms-bridge/trunk/addons/gcalendar/hooks.php

    r3451059 r3455079  
    1919        $schema['properties']['endpoint']['default'] = '/calendars/v3/calendar/{$calendarId}/events';
    2020
    21         $schema['properties']['backend']['default'] = 'Calendar API';
     21        $schema['properties']['backend']['default'] = 'Google API';
    2222
    2323        $schema['properties']['method']['enum']    = array( 'GET', 'POST', 'PUT', 'PATCH', 'DELETE' );
     
    136136                        'ref'     => '#backend',
    137137                        'name'    => 'name',
    138                         'default' => 'Calendar API',
     138                        'default' => 'Google API',
    139139                    ),
    140140                    array(
     
    145145                ),
    146146                'backend'    => array(
    147                     'name'     => 'Calendar API',
     147                    'name'     => 'Google API',
    148148                    'base_url' => 'https://www.googleapis.com',
    149149                    'headers'  => array(
     
    155155                ),
    156156                'bridge'     => array(
    157                     'backend'  => 'Calendar API',
     157                    'backend'  => 'Google API',
    158158                    'endpoint' => '/calendar/v3/calendars/{$calendarId}/events',
    159159                ),
  • forms-bridge/trunk/addons/grist/class-grist-addon.php

    r3451059 r3455079  
    112112        $tables = array();
    113113        foreach ( $response['data'] as $workspace ) {
     114            if ( $workspace['isSupportWorkspace'] ?? false ) {
     115                continue;
     116            }
     117
    114118            foreach ( $workspace['docs'] as $doc ) {
    115119                $docs_response = $backend->get( "/api/docs/{$doc['id']}/tables" );
     
    192196        }
    193197
    194         $schema = array();
     198        $api_schema = array();
    195199        foreach ( $fields as $field ) {
     200            $schema = array();
    196201            switch ( $field['type'] ) {
    197202                case 'number':
    198                     $type = 'number';
     203                    $schema['type'] = 'number';
    199204                    break;
    200205                case 'checkbox':
    201                     $type = 'boolean';
     206                    $schema['type'] = 'boolean';
    202207                    break;
    203208                case 'select':
    204                     $type = $field['is_multi'] ? 'array' : 'string';
     209                    $schema['type'] = 'string';
     210                    if ( $field['is_multi'] ) {
     211                        $schema['items'] = $schema;
     212                        $schema['type']  = 'array';
     213                    }
    205214                    break;
    206215                case 'file':
    207                     $type = 'file';
     216                    $schema['type'] = 'file';
    208217                    break;
    209218                default:
    210                     $type = 'string';
    211                     break;
    212             }
    213 
    214             $schema[] = array(
     219                    $schema['type'] = 'string';
     220                    break;
     221            }
     222
     223            $api_schema[] = array(
    215224                'name'   => $field['name'],
    216                 'schema' => array( 'type' => $type ),
     225                'schema' => $schema,
    217226            );
    218227        }
    219228
    220         return $schema;
     229        return self::expand_endpoint_schema( $api_schema );
    221230    }
    222231}
  • forms-bridge/trunk/addons/gsheets/class-gsheets-addon.php

    r3442111 r3455079  
    191191        }
    192192
    193         $bridge  = null;
    194193        $bridges = FBAPI::get_addon_bridges( self::NAME );
    195194        foreach ( $bridges as $candidate ) {
     
    199198            }
    200199
    201             if (
    202                 $data['endpoint'] === $endpoint &&
    203                 $data['backend'] === $backend
    204             ) {
     200            if ( $data['backend'] === $backend ) {
    205201                /**
    206202                 * Current bridge.
  • forms-bridge/trunk/addons/gsheets/class-gsheets-form-bridge.php

    r3451059 r3455079  
    2929
    3030    /**
    31      * Given an array of values returns a value range descriptor.
    32      *
    33      * @param array $values Array of values.
    34      *
    35      * @return string
    36      *
    37      * @deprecated
    38      */
    39     private function value_range( $values ) {
    40         $range = rawurlencode( $this->tab );
    41 
    42         if ( empty( $values ) ) {
    43             return $range;
    44         }
    45 
    46         $abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    47 
    48         $len = strlen( $abc );
    49 
    50         $columns = array();
    51 
    52         $rows = count( $values );
    53         for ( $row = 0; $row < $rows; $row++ ) {
    54             $rowcols = array();
    55 
    56             $i    = -1;
    57             $cols = count( $values[ $row ] );
    58             for ( $col = 0; $col < $cols; $col++ ) {
    59                 if ( $col > 0 && 0 === $col % $len ) {
    60                     ++$i;
    61                 }
    62 
    63                 if ( $col >= $len ) {
    64                     $index     = $col % $len;
    65                     $rowcols[] = $abc[ $i ] . $abc[ $index ];
    66                 } else {
    67                     $rowcols[] = $abc[ $col ];
    68                 }
    69             }
    70 
    71             if ( count( $rowcols ) > count( $columns ) ) {
    72                 $columns = $rowcols;
    73             }
    74         }
    75 
    76         $range .= '!' . $columns[0] . '1';
    77         $range .= ':' . $columns[ count( $columns ) - 1 ] . $row;
    78 
    79         return $range;
    80     }
    81 
    82     /**
    8331     * Fetches the first row of the sheet and return it as an array of headers / columns.
    8432     *
     
    9644        }
    9745
    98         $range = rawurlencode( $this->tab ) . '!1:1';
     46        $tab   = strtolower( strpos( trim( $this->tab ), ' ' ) ? "'{$this->tab}'" : $this->tab );
     47        $range = rawurlencode( $tab ) . '!1:1';
    9948
    10049        $response = $backend->get( $this->endpoint . '/values/' . $range );
     
    196145        }
    197146
    198         if ( ! in_array( strtolower( $this->tab ), $sheets, true ) ) {
    199             $result = $this->add_sheet( count( $sheets ), $this->tab, $backend );
     147        $tab = trim( $this->tab );
     148        if ( ! in_array( strtolower( $tab ), $sheets, true ) ) {
     149            $result = $this->add_sheet( count( $sheets ), $tab, $backend );
    200150            if ( is_wp_error( $result ) ) {
    201151                return $result;
     
    203153        }
    204154
    205         $endpoint = $this->endpoint . '/values/' . rawurlencode( $this->tab );
     155        $tab      = strtolower( strpos( $tab, ' ' ) ? "'{$tab}'" : $tab );
     156        $endpoint = $this->endpoint . '/values/' . rawurlencode( $tab );
    206157        $method   = $this->method;
    207158
  • forms-bridge/trunk/addons/holded/class-holded-addon.php

    r3442111 r3455079  
    176176        }
    177177
    178         $api_base = $chunks[0];
     178        $api_base = $chunks[0] ?? null;
    179179        if ( 'api' !== $api_base ) {
    180180            array_unshift( $chunks, 'api' );
    181181        }
    182182
    183         [, $module, $version, $resource] = $chunks;
     183        $module   = $chunks[1] ?? null;
     184        $version  = $chunks[2] ?? null;
     185        $resource = $chunks[3] ?? null;
     186
     187        if ( ! ( $module && $version && $resource ) ) {
     188            return array();
     189        }
    184190
    185191        $oas_url = self::OAS_URLS[ $module ] ?? null;
     
    218224        $params = $oa_explorer->params( $path, $method, $source );
    219225
    220         return $params ?: array();
     226        return self::expand_endpoint_schema( $params ?: array() );
    221227    }
    222228}
  • forms-bridge/trunk/addons/holded/hooks.php

    r3395308 r3455079  
    11<?php
     2/**
     3 * Holded addon hooks.
     4 *
     5 * @package formsbridge
     6 */
    27
    38if ( ! defined( 'ABSPATH' ) ) {
     
    813    'forms_bridge_bridge_schema',
    914    function ( $schema, $addon ) {
    10         if ( $addon !== 'holded' ) {
     15        if ( 'holded' !== $addon ) {
    1116            return $schema;
    1217        }
     
    2227    'forms_bridge_template_defaults',
    2328    function ( $defaults, $addon, $schema ) {
    24         if ( $addon !== 'holded' ) {
     29        if ( 'holded' !== $addon ) {
    2530            return $defaults;
    2631        }
     
    7883    'forms_bridge_template_data',
    7984    function ( $data, $template_id ) {
    80         if ( strpos( $template_id, 'holded-' ) !== 0 ) {
     85        if ( 0 !== strpos( $template_id, 'holded-' ) ) {
    8186            return $data;
    8287        }
     
    8489        $index = array_search(
    8590            'tags',
    86             array_column( $data['bridge']['custom_fields'], 'name' )
     91            array_column( $data['bridge']['custom_fields'], 'name' ),
     92            true,
    8793        );
    8894
    89         if ( $index !== false ) {
     95        if ( false !== $index ) {
    9096            $field = &$data['bridge']['custom_fields'][ $index ];
    9197
     
    95101                );
    96102
    97                 for ( $i = 0; $i < count( $tags ); $i++ ) {
     103                $l = count( $tags );
     104                for ( $i = 0; $i < $l; $i++ ) {
    98105                    $data['bridge']['custom_fields'][] = array(
    99106                        'name'  => "tags[{$i}]",
  • forms-bridge/trunk/addons/listmonk/class-listmonk-addon.php

    r3442111 r3455079  
    9292            if ( ! is_wp_error( $response ) ) {
    9393                $data = yaml_parse( $response['body'] );
    94 
    95                 if ( $data ) {
    96                     $oa_explorer = new OpenAPI( $data );
    97                     $paths       = $oa_explorer->paths();
    98 
    99                     if ( $method ) {
    100                         $method       = strtolower( $method );
    101                         $method_paths = array();
    102 
    103                         foreach ( $paths as $path ) {
    104                             $path_obj = $oa_explorer->path_obj( $path );
    105 
    106                             if ( $path_obj && isset( $path_obj[ $method ] ) ) {
    107                                 $method_paths[] = $path;
    108                             }
    109                         }
    110 
    111                         $paths = $method_paths;
    112                     }
    113 
    114                     return array_map(
    115                         function ( $path ) {
    116                             return '/api' . $path;
    117                         },
    118                         $paths
    119                     );
    120                 }
    12194            }
    12295        }
    12396
    124         return array( '/api/subscribers' );
     97        if ( empty( $data ) ) {
     98            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/listmonk/assets/openapi.json' );
     99            $data     = json_decode( $contents, true );
     100        }
     101
     102        if ( ! $data ) {
     103            return array( '/api/subscribers' );
     104        }
     105
     106        $oa_explorer = new OpenAPI( $data );
     107        $paths       = $oa_explorer->paths();
     108
     109        if ( $method ) {
     110            $method       = strtolower( $method );
     111            $method_paths = array();
     112
     113            foreach ( $paths as $path ) {
     114                $path_obj = $oa_explorer->path_obj( $path );
     115
     116                if ( $path_obj && isset( $path_obj[ $method ] ) ) {
     117                    $method_paths[] = $path;
     118                }
     119            }
     120
     121            $paths = $method_paths;
     122        }
     123
     124        $endpoints = array();
     125        foreach ( $paths as $path ) {
     126            $endpoints[] = '/api' . $path;
     127        }
     128
     129        return $endpoints;
    125130    }
    126131
     
    141146            if ( ! is_wp_error( $response ) ) {
    142147                $data = yaml_parse( $response['body'] );
    143 
    144                 if ( $data ) {
    145                     $oa_explorer = new OpenAPI( $data );
    146 
    147                     $method = strtolower( $method ?? 'post' );
    148                     $path   = preg_replace( '/^\/api/', '', $endpoint );
    149                     $source = in_array( $method, array( 'post', 'put', 'patch' ), true ) ? 'body' : 'query';
    150                     $params = $oa_explorer->params( $path, $method, $source );
    151 
    152                     return $params ?: array();
    153                 }
    154148            }
    155149        }
    156150
    157         if ( '/api/subscribers' !== $endpoint ) {
     151        if ( empty( $data ) ) {
     152            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/listmonk/assets/openapi.json' );
     153            $data     = json_decode( $contents, true );
     154        }
     155
     156        if ( ! $data ) {
    158157            return array();
    159158        }
    160159
    161         return array(
    162             array(
    163                 'name'     => 'email',
    164                 'schema'   => array( 'type' => 'string' ),
    165                 'required' => true,
    166             ),
    167             array(
    168                 'name'   => 'name',
    169                 'schema' => array( 'type' => 'string' ),
    170             ),
    171             array(
    172                 'name'   => 'status',
    173                 'schema' => array( 'type' => 'string' ),
    174             ),
    175             array(
    176                 'name'   => 'lists',
    177                 'schema' => array(
    178                     'type'  => 'array',
    179                     'items' => array( 'type' => 'number' ),
    180                 ),
    181             ),
    182             array(
    183                 'name'   => 'preconfirm_subscriptions',
    184                 'schema' => array( 'type' => 'boolean' ),
    185             ),
    186             array(
    187                 'name'   => 'attribs',
    188                 'schema' => array(
    189                     'type'       => 'object',
    190                     'properties' => array(),
    191                 ),
    192             ),
    193         );
     160        $oa_explorer = new OpenAPI( $data );
     161
     162        $method = strtolower( $method ?? 'post' );
     163        $path   = preg_replace( '/^\/api/', '', $endpoint );
     164        $source = in_array( $method, array( 'post', 'put', 'patch' ), true ) ? 'body' : 'query';
     165        $params = $oa_explorer->params( $path, $method, $source );
     166
     167        return self::expand_endpoint_schema( $params ?: array() );
    194168    }
    195169}
  • forms-bridge/trunk/addons/mailchimp/class-mailchimp-addon.php

    r3442111 r3455079  
    172172        $params = $oa_explorer->params( $path, $method, $source );
    173173
    174         return $params ?: array();
     174        return self::expand_endpoint_schema( $params ?: array() );
    175175    }
    176176}
  • forms-bridge/trunk/addons/nextcloud/class-nextcloud-addon.php

    r3451059 r3455079  
    8585        }
    8686
    87         $response = $backend->get(
    88             '/remote.php/dav/files/' . rawurlencode( $credential->client_id )
    89         );
     87        $response = $backend->get( '/remote.php/dav/files/' . rawurlencode( $credential->client_id ) );
    9088
    9189        if ( is_wp_error( $response ) ) {
  • forms-bridge/trunk/addons/nextcloud/class-nextcloud-form-bridge.php

    r3451059 r3455079  
    88namespace FORMS_BRIDGE;
    99
     10use FBAPI;
    1011use WP_Error;
    1112
     
    2930
    3031    /**
     32     * Downloads the file from nextcloud and stream its contents to the bridge filepath.
     33     *
     34     * @param Backend|null $backend Backend object.
     35     *
     36     * @return string|WP_Error Filepath or error.
     37     */
     38    private function download_file( $backend = null ) {
     39        if ( ! $backend ) {
     40            $backend = $this->backend;
     41        }
     42
     43        $filepath = $this->filepath();
     44
     45        $response = $backend->get(
     46            rawurlencode( $this->endpoint ),
     47            array(),
     48            array(),
     49            array(
     50                'stream'   => true,
     51                'filename' => $filepath,
     52            )
     53        );
     54
     55        if ( is_wp_error( $response ) ) {
     56            if ( is_file( $filepath ) ) {
     57                wp_delete_file( $filepath );
     58            }
     59
     60            return $response;
     61        }
     62
     63        $mime_type = mime_content_type( $filepath );
     64        if ( 'text/csv' !== $mime_type ) {
     65            wp_delete_file( $filepath );
     66            return new WP_Error( 'mimetype_error', 'File is not CSV', array( 'filepath' => $filepath ) );
     67        }
     68
     69        return $filepath;
     70    }
     71
     72    /**
    3173     * Returns the bridge local backup file path.
    3274     *
     
    4082        if ( ! is_dir( $uploads ) ) {
    4183            if ( ! wp_mkdir_p( $uploads, 755 ) ) {
    42                 return;
    43             }
    44         }
    45 
    46         $endpoint = preg_replace( '/^\/+/', '', $this->data['endpoint'] );
     84                return new WP_Error(
     85                    'file_permission_error',
     86                    'Can not create the uploads directory',
     87                    array( 'directory' => $uploads ),
     88                );
     89            }
     90        }
     91
     92        $endpoint = ltrim( $this->data['endpoint'], '/' );
    4793        $name     = str_replace( '/', '-', $endpoint );
    4894        $filepath = $uploads . '/' . $name;
     95
     96        if ( ! str_ends_with( strtolower( $filepath ), '.csv' ) ) {
     97            $filepath .= '.csv';
     98        }
    4999
    50100        if ( ! is_file( $filepath ) ) {
     
    53103
    54104            if ( ! $result ) {
    55                 return new WP_Error( 'file_permission_error' );
    56             }
     105                return new WP_Error(
     106                    'file_permission_error',
     107                    'Can not create the local file',
     108                    array( 'filepath' => $filepath ),
     109                );
     110            }
     111        } else {
     112            $touched = false;
    57113        }
    58114
     
    66122     */
    67123    public function table_headers() {
    68         $filepath = $this->filepath();
     124        $filepath = $this->filepath( $touched );
    69125
    70126        if ( is_wp_error( $filepath ) ) {
    71127            return $filepath;
     128        }
     129
     130        if ( $touched ) {
     131            $filepath = $this->download_file();
     132
     133            if ( is_wp_error( $filepath ) ) {
     134                return;
     135            }
    72136        }
    73137
     
    91155     */
    92156    private function get_dav_modified_date( $backend ) {
    93         $response = $backend->head( $this->endpoint );
     157        $response = $backend->head( rawurlencode( $this->endpoint ) );
    94158
    95159        if ( is_wp_error( $response ) ) {
     
    156220            ',',
    157221            array_map(
    158                 fn( $value ) => json_encode(
     222                fn( $value ) => wp_json_encode(
    159223                    $value,
    160224                    JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
     
    176240        return array_map(
    177241            function ( $value ) {
     242                $value = trim( $value );
     243                if ( ! $value ) {
     244                    return $value;
     245                }
     246
    178247                $decoded = json_decode( $value );
    179248                if ( $decoded ) {
     
    226295        }
    227296
    228         $backend = $this->backend;
     297        $backend  = $this->backend;
     298        $endpoint = rawurlencode( $this->endpoint );
    229299
    230300        if ( ! $backend ) {
     
    236306        }
    237307
    238         add_filter(
    239             'forms_bridge_http_backend_url',
    240             function ( $url, $backend ) {
    241                 if ( $backend->name === $this->data['backend'] ) {
    242                     $credential = $backend->credential;
    243                     if ( ! $credential ) {
    244                         return;
    245                     }
    246 
    247                     $user  = rawurlencode( $credential->client_id );
    248                     [$pre] = explode( $this->endpoint, $url );
    249                     $url   =
    250                         preg_replace( '/\/+$/', '', $pre ) .
    251                         "/remote.php/dav/files/{$user}/" .
    252                         preg_replace( '/^\/+/', '', $this->endpoint );
    253                 }
    254 
    255                 return $url;
    256             },
    257             10,
    258             2
    259         );
    260 
    261308        if ( 'PUT' === $this->method ) {
    262309            $payload = self::flatten_payload( $payload );
     
    279326
    280327                file_put_contents( $filepath, $csv );
    281                 $response = parent::submit( $csv );
     328                $response = $backend->put( $endpoint, $csv );
    282329            } elseif ( $touched ) {
    283                     $headers = $this->payload_to_headers( $payload );
    284                     $row     = $this->payload_to_row( $payload );
    285                     $csv     = implode( "\n", array( $headers, $row ) );
    286 
    287                     file_put_contents( $filepath, $csv );
    288                     $response = parent::submit( $csv );
     330                $headers = $this->payload_to_headers( $payload );
     331                $row     = $this->payload_to_row( $payload );
     332                $csv     = implode( "\n", array( $headers, $row ) );
     333
     334                file_put_contents( $filepath, $csv );
     335                $response = $backend->put( $endpoint, $csv );
    289336            } else {
    290337                $local_modified = filemtime( $filepath );
    291338
    292339                if ( $dav_modified > $local_modified ) {
    293                     $response = $backend->get(
    294                         $this->endpoint,
    295                         array(),
    296                         array(),
    297                         array(
    298                             'stream'   => true,
    299                             'filename' => $filepath,
    300                         )
    301                     );
    302 
    303                     if ( is_wp_error( $response ) ) {
    304                         return $response;
     340                    $filepath = $this->download_file( $backend );
     341
     342                    if ( is_wp_error( $filepath ) ) {
     343                        return $filepath;
    305344                    }
    306345                }
     
    308347                $this->add_row( $payload );
    309348
    310                 $csv      = file_get_contents( $filepath );
    311                 $response = parent::submit( $csv );
     349                $csv = file_get_contents( $filepath );
     350
     351                $bom = pack( 'H*', 'EFBBBF' );
     352                $csv = preg_replace( "/^$bom/", '', trim( $csv ) );
     353
     354                $response = $backend->put( $endpoint, $csv );
    312355            }
    313356
     
    320363        }
    321364
    322         return parent::submit( $payload );
     365        $method = $this->method;
     366
     367        $allowed_methods = array( 'GET', 'DELETE', 'MOVE', 'MKCOL', 'PROPFIND' );
     368        if ( ! in_array( $method, $allowed_methods, true ) ) {
     369            return new WP_Error(
     370                'method_not_allowed',
     371                sprintf(
     372                    /* translators: %s: method name */
     373                    __( 'HTTP method %s is not allowed', 'forms-bridge' ),
     374                    sanitize_text_field( $this->method )
     375                ),
     376                array( 'method' => $this->method )
     377            );
     378        }
     379
     380        return $backend->$method( $endpoint, $payload );
    323381    }
    324382
     
    373431        return self::flatten_payload( $value, $path . '.' );
    374432    }
     433
     434    /**
     435     * Retrives the bridge's backend instance with the base url formated to point
     436     * to the root of the nextcloud webdav API.
     437     *
     438     * @return Backend|null
     439     */
     440    protected function backend() {
     441        if ( ! $this->is_valid ) {
     442            return;
     443        }
     444
     445        $backend = FBAPI::get_backend( $this->data['backend'] );
     446        if ( ! $backend ) {
     447            return;
     448        }
     449
     450        $base_url = $backend->base_url;
     451        $base_url = substr( $base_url, 0, strpos( $base_url, '/remote.php', 0 ) ?: strlen( $base_url ) );
     452
     453        $credential = $backend->credential;
     454        if ( ! $credential || 'Basic' !== $credential->schema ) {
     455            return;
     456        }
     457
     458        $user     = rawurlencode( $credential->client_id );
     459        $base_url = rtrim( $base_url, '/' ) . "/remote.php/dav/files/{$user}/";
     460
     461        return $backend->clone( array( 'base_url' => $base_url ) );
     462    }
    375463}
  • forms-bridge/trunk/addons/nextcloud/hooks.php

    r3451059 r3455079  
    5454                        'name'    => 'name',
    5555                        'default' => 'Nextcloud',
    56                     ),
    57                     array(
    58                         'ref'      => '#bridge',
    59                         'name'     => 'endpoint',
    60                         'label'    => __( 'Filepath', 'forms-bridge' ),
    61                         'type'     => 'text',
    62                         'required' => true,
    63                         'pattern'  => '.+.csv$',
    6456                    ),
    6557                    array(
  • forms-bridge/trunk/addons/odoo/class-odoo-addon.php

    r3442111 r3455079  
    161161            }
    162162
    163             if ( 'char' === $spec['type'] || 'html' === $spec['type'] ) {
     163            if (
     164                in_array(
     165                    $spec['type'],
     166                    array( 'char', 'html', 'selection', 'date', 'datetime' ),
     167                    true,
     168                )
     169            ) {
    164170                $schema = array( 'type' => 'string' );
    165171            } elseif ( 'float' === $spec['type'] ) {
    166172                $schema = array( 'type' => 'number' );
    167             } elseif (
    168                 in_array(
    169                     $spec['type'],
    170                     array( 'one2many', 'many2one', 'many2many' ),
    171                     true
    172                 )
    173             ) {
     173            } elseif ( in_array( $spec['type'], array( 'one2many', 'many2many' ), true ) ) {
    174174                $schema = array(
    175175                    'type'            => 'array',
     
    177177                    'additionalItems' => false,
    178178                );
     179            } elseif ( in_array( $spec['type'], array( 'many2one', 'many2one_reference' ), true ) ) {
     180                $schema = array( 'type' => 'integer' );
    179181            } else {
    180182                $schema = array( 'type' => $spec['type'] );
  • forms-bridge/trunk/addons/rocketchat/class-rocketchat-addon.php

    r3442111 r3455079  
    9393            if ( ! is_wp_error( $response ) ) {
    9494                $data = yaml_parse( $response['body'] );
    95 
    96                 if ( $data ) {
    97                     $oa_explorer = new OpenAPI( $data );
    98                     $paths       = $oa_explorer->paths();
    99 
    100                     if ( $method ) {
    101                         $method       = strtolower( $method );
    102                         $method_paths = array();
    103 
    104                         foreach ( $paths as $path ) {
    105                             $path_obj = $oa_explorer->path_obj( $path );
    106 
    107                             if ( $path_obj && isset( $path_obj[ $method ] ) ) {
    108                                 $method_paths[] = $path;
    109                             }
    110                         }
    111 
    112                         $paths = $method_paths;
    113                     }
    114 
    115                     return $paths;
    116                 }
    11795            }
    11896        }
    11997
    120         return array( '/api/v1/chat.postMessage' );
     98        if ( empty( $data ) ) {
     99            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/rocketchat/assets/openapi.json' );
     100            $data     = json_decode( $contents, true );
     101        }
     102
     103        if ( ! $data ) {
     104            return array( '/api/v1/chat.postMessage' );
     105        }
     106
     107        $oa_explorer = new OpenAPI( $data );
     108        $paths       = $oa_explorer->paths();
     109
     110        if ( $method ) {
     111            $method       = strtolower( $method );
     112            $method_paths = array();
     113
     114            foreach ( $paths as $path ) {
     115                $path_obj = $oa_explorer->path_obj( $path );
     116
     117                if ( $path_obj && isset( $path_obj[ $method ] ) ) {
     118                    $method_paths[] = $path;
     119                }
     120            }
     121
     122            $paths = $method_paths;
     123        }
     124
     125        return $paths;
    121126    }
    122127
     
    136141            if ( ! is_wp_error( $response ) ) {
    137142                $data = yaml_parse( $response['body'] );
    138 
    139                 if ( $data ) {
    140                     // phpcs:disable Generic.CodeAnalysis.EmptyStatement
    141                     try {
    142                         $oa_explorer = new OpenAPI( $data );
    143 
    144                         $method = strtolower( $method ?? 'post' );
    145                         $source = in_array( $method, array( 'post', 'put', 'patch' ), true ) ? 'body' : 'query';
    146                         $params = $oa_explorer->params( $endpoint, $method, $source );
    147 
    148                         return $params ?: array();
    149                     } catch ( Exception ) {
    150                         // do nothing.
    151                     }
    152                     // phpcs:enable Generic.CodeAnalysis.EmptyStatement
    153                 }
    154143            }
    155144        }
    156145
    157         if ( '/api/v1/chat.postMessage' !== $endpoint ) {
     146        if ( empty( $data ) ) {
     147            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/rocketchat/assets/openapi.json' );
     148            $data     = json_decode( $contents, true );
     149        }
     150
     151        if ( ! $data ) {
    158152            return array();
    159153        }
    160154
    161         return array(
    162             array(
    163                 'name'   => 'alias',
    164                 'schema' => array( 'type' => 'string' ),
    165             ),
    166             array(
    167                 'name'   => 'avatar',
    168                 'schema' => array( 'type' => 'string' ),
    169             ),
    170             array(
    171                 'name'   => 'emoji',
    172                 'schema' => array( 'type' => 'string' ),
    173             ),
    174             array(
    175                 'name'   => 'roomId',
    176                 'schema' => array( 'type' => 'string' ),
    177             ),
    178             array(
    179                 'name'   => 'text',
    180                 'schema' => array( 'type' => 'string' ),
    181             ),
    182             array(
    183                 'name'   => 'parseUrls',
    184                 'schema' => array( 'type' => 'boolean' ),
    185             ),
    186             array(
    187                 'name'   => 'attachments',
    188                 'items'  => array(
    189                     'type'       => 'object',
    190                     'properties' => array(),
    191                 ),
    192                 'schema' => array( 'type' => 'array' ),
    193             ),
    194             array(
    195                 'name'   => 'tmid',
    196                 'schema' => array( 'type' => 'string' ),
    197             ),
    198             array(
    199                 'name'   => 'customFields',
    200                 'schema' => array( 'type' => 'object' ),
    201             ),
    202         );
     155        $oa_explorer = new OpenAPI( $data );
     156
     157        $method = strtolower( $method ?? 'post' );
     158        $source = in_array( $method, array( 'post', 'put', 'patch' ), true ) ? 'body' : 'query';
     159        $params = $oa_explorer->params( $endpoint, $method, $source );
     160
     161        return self::expand_endpoint_schema( $params ?: array() );
    203162    }
    204163}
  • forms-bridge/trunk/addons/slack/class-slack-addon.php

    r3442111 r3455079  
    149149                    $params = $oas_explorer->params( $path, $method, $source );
    150150
    151                     return $params ?: array();
     151                    return self::expand_endpoint_schema( $params ?: array() );
    152152                } catch ( Exception ) {
    153153                    // do nothin.
  • forms-bridge/trunk/addons/suitecrm/class-suitecrm-addon.php

    r3442111 r3455079  
    164164        $fields = array();
    165165        foreach ( $response['data']['module_fields'] as $name => $spec ) {
     166            if ( $spec['calculated'] ?? false ) {
     167                continue;
     168            }
     169
    166170            $type = 'string';
    167171
    168             if ( in_array( $spec['type'], array( 'int', 'integer' ), true ) ) {
     172            if (
     173                in_array( $spec['type'], array( 'id', 'int', 'integer', 'relate', 'parent' ), true )
     174                || ! empty( $spec['id_name'] )
     175            ) {
    169176                $type = 'integer';
    170177            } elseif ( in_array( $spec['type'], array( 'decimal', 'float', 'currency' ), true ) ) {
  • forms-bridge/trunk/addons/suitecrm/hooks.php

    r3411530 r3455079  
    2020        }
    2121
    22         $schema['properties']['endpoint']['title']       = __(
    23             'Module',
    24             'forms-bridge'
    25         );
     22        $schema['properties']['endpoint']['title']       = __( 'Module', 'forms-bridge' );
    2623        $schema['properties']['endpoint']['description'] = __(
    2724            'Name of the target SuiteCRM module (e.g., Contacts, Leads, Accounts)',
     
    3027        $schema['properties']['endpoint']['default']     = 'Contacts';
    3128
    32         $schema['properties']['method']['description'] = __(
    33             'SuiteCRM API method name',
    34             'forms-bridge'
    35         );
     29        $schema['properties']['method']['description'] = __( 'SuiteCRM API method name', 'forms-bridge' );
    3630        $schema['properties']['method']['enum']        = array(
    3731            'set_entry',
  • forms-bridge/trunk/addons/vtiger/class-vtiger-addon.php

    r3442111 r3455079  
    169169            $type = 'string';
    170170
    171             if ( in_array( $spec['type']['name'], array( 'integer', 'autogenerated' ), true ) ) {
     171            if ( in_array( $spec['type']['name'], array( 'integer', 'autogenerated', 'owner', 'reference' ), true ) ) {
    172172                $type = 'integer';
    173173            } elseif ( in_array( $spec['type']['name'], array( 'double', 'currency' ), true ) ) {
  • forms-bridge/trunk/addons/zoho/class-zoho-addon.php

    r3442111 r3455079  
    181181            foreach ( $layout['sections'] as $section ) {
    182182                foreach ( $section['fields'] as $field ) {
     183                    $read_only = $field['field_read_only'] ?? false;
     184                    if ( $read_only ) {
     185                        continue;
     186                    }
     187
    183188                    $type = $field['json_type'];
    184189                    if ( 'jsonobject' === $type ) {
  • forms-bridge/trunk/addons/zulip/class-zulip-addon.php

    r3442111 r3455079  
    9494            if ( ! is_wp_error( $response ) ) {
    9595                $data = yaml_parse( $response['body'] );
    96 
    97                 if ( $data ) {
    98                     $oa_explorer = new OpenAPI( $data );
    99                     $paths       = $oa_explorer->paths();
    100 
    101                     if ( $method ) {
    102                         $method       = strtolower( $method );
    103                         $method_paths = array();
    104 
    105                         foreach ( $paths as $path ) {
    106                             $path_obj = $oa_explorer->path_obj( $path );
    107 
    108                             if ( $path_obj && isset( $path_obj[ $method ] ) ) {
    109                                 $method_paths[] = $path;
    110                             }
    111                         }
    112 
    113                         $paths = $method_paths;
    114                     }
    115 
    116                     return array_map(
    117                         function ( $path ) {
    118                             return '/api/v1' . $path;
    119                         },
    120                         $paths,
    121                     );
    122                 }
    12396            }
    12497        }
    12598
    126         return array( '/api/v1/messages' );
     99        if ( empty( $data ) ) {
     100            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/zulip/assets/openapi.json' );
     101            $data     = json_decode( $contents, true );
     102        }
     103
     104        if ( ! $data ) {
     105            return array( '/api/v1/messages' );
     106        }
     107
     108        $oa_explorer = new OpenAPI( $data );
     109        $paths       = $oa_explorer->paths();
     110
     111        if ( $method ) {
     112            $method       = strtolower( $method );
     113            $method_paths = array();
     114
     115            foreach ( $paths as $path ) {
     116                $path_obj = $oa_explorer->path_obj( $path );
     117
     118                if ( $path_obj && isset( $path_obj[ $method ] ) ) {
     119                    $method_paths[] = $path;
     120                }
     121            }
     122
     123            $paths = $method_paths;
     124        }
     125
     126        $endpoints = array();
     127        foreach ( $paths as $path ) {
     128            $endpoints[] = '/api/v1' . $path;
     129        }
     130
     131        return $endpoints;
    127132    }
    128133
     
    144149            if ( ! is_wp_error( $response ) ) {
    145150                $data = yaml_parse( $response['body'] );
    146 
    147                 if ( $data ) {
    148                     // phpcs:disable Generic.CodeAnalysis.EmptyStatement
    149                     try {
    150                         $oa_explorer = new OpenAPI( $data );
    151 
    152                         $method = strtolower( $method ?? 'post' );
    153                         $path   = preg_replace( '/^\/api\/v1/', '', $endpoint );
    154                         $source = in_array( $method, array( 'post', 'put', 'patch' ), true ) ? 'body' : 'query';
    155                         $params = $oa_explorer->params( $path, $method, $source );
    156 
    157                         return $params ?: array();
    158                     } catch ( Exception ) {
    159                         // do nothing.
    160                     }
    161                     // phpcs:enable Generic.CodeAnalysis.EmptyStatement
    162                 }
    163151            }
    164152        }
    165153
    166         if ( '/api/v1/messages' !== $endpoint ) {
     154        if ( empty( $data ) ) {
     155            $contents = file_get_contents( FORMS_BRIDGE_ADDONS_DIR . '/zulip/assets/openapi.json' );
     156            $data     = json_decode( $contents, true );
     157        }
     158
     159        if ( ! $data ) {
    167160            return array();
    168161        }
    169162
    170         return array(
    171             array(
    172                 'name'     => 'type',
    173                 'schema'   => array(
    174                     'type' => 'string',
    175                     'enum' => array( 'direct', 'stream' ),
    176                 ),
    177                 'required' => true,
    178             ),
    179             array(
    180                 'name'     => 'to',
    181                 'schema'   => array(
    182                     'type'  => 'array',
    183                     'items' => array(
    184                         'type' => array( 'string', 'integer' ),
    185                     ),
    186                 ),
    187                 'required' => true,
    188             ),
    189             array(
    190                 'name'     => 'content',
    191                 'schema'   => array( 'type' => 'string' ),
    192                 'required' => true,
    193             ),
    194             array(
    195                 'name'   => 'topic',
    196                 'schema' => array(
    197                     'type'    => 'string',
    198                     'default' => '(no topic)',
    199                 ),
    200             ),
    201             array(
    202                 'name'   => 'queue_id',
    203                 'schema' => array( 'type' => 'string' ),
    204             ),
    205             array(
    206                 'name'   => 'local_id',
    207                 'schema' => array( 'type' => 'string' ),
    208             ),
    209             array(
    210                 'name'   => 'read_by_sender',
    211                 'schema' => array( 'type' => 'boolean' ),
    212             ),
    213         );
     163        $oa_explorer = new OpenAPI( $data );
     164
     165        $method = strtolower( $method ?? 'post' );
     166        $path   = preg_replace( '/^\/api\/v1/', '', $endpoint );
     167        $source = in_array( $method, array( 'post', 'put', 'patch' ), true ) ? 'body' : 'query';
     168        $params = $oa_explorer->params( $path, $method, $source );
     169
     170        return self::expand_endpoint_schema( $params ?: array() );
    214171    }
    215172}
  • forms-bridge/trunk/assets/plugin.bundle.js

    r3451313 r3455079  
    1 (()=>{var{Component:tS}=wp.element,ul=class extends tS{constructor(e){super(e),this.state={hasError:!1,err:null}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){console.error(e,t.componentStack)}render(){return this.state.hasError?this.props.fallback:this.props.children}},Gu=ul;var{createContext:iS,useContext:nS,useState:rS,useEffect:sS}=wp.element,{Notice:oS}=wp.components,Iu=iS([]);function dl({children:i}){let[e,t]=rS([]),n=r=>{t(r?[...e,r]:e.slice(1))};return sS(()=>{e.length&&window.scrollTo({left:0,top:0,behavior:"smooth"})},[e]),React.createElement(Iu.Provider,{value:[e[0],n]},e.length&&React.createElement("div",{style:{marginBottom:"calc(-8px)"}},React.createElement(oS,{status:"error",onRemove:()=>n(null),politeness:"assertive"},e[0]))||null,i)}function N(){return nS(Iu)}function pl({show:i}){if(i)return React.createElement("div",{style:{position:"absolute",zIndex:10,top:"0px",left:"0px",right:"0px",bottom:"0px",margin:"auto",backdropFilter:"blur(0.5px)",backgroundColor:"#ffffff1f",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement("img",{src:"/wp-content/plugins/forms-bridge/assets/spinner.gif",height:"67px",width:"67px"}))}var{createContext:aS,useContext:lS,useState:OS}=wp.element,Nu=aS([]);function ml({children:i}){let[e,t]=OS([]),n=r=>{t(r?[...e,!!r]:e.slice(1))};return React.createElement(Nu.Provider,{value:[e.length>0,n]},i,React.createElement(pl,{show:e.length}))}function ue(){return lS(Nu)}var{useEffect:Fu,useState:cS,useRef:hS}=wp.element;function K(){let i=hS(document.querySelector("#forms-bridge")).current,[e,t]=cS(()=>new URLSearchParams(window.location.search).get("tab")||"general");return Fu(()=>{let n=({detail:r})=>{e!==r&&t(r)};return i.addEventListener("tab",n),()=>i.removeEventListener("tab",n)},[e]),Fu(()=>{let n=new URLSearchParams(window.location.search);if(n.get("tab")===e)return;let r=new URLSearchParams(n.toString());r.set("tab",e),window.history.replaceState({from:`${window.location.pathname}?${n.toString()}`},"",`${window.location.pathname}?${r.toString()}`),i.dispatchEvent(new CustomEvent("tab",{detail:e}))},[e]),[e,t]}var{createContext:fS,useContext:uS,useMemo:dS,useEffect:Hu,useRef:pS,useState:mS,useCallback:gS}=wp.element,$S=wp.apiFetch,{__:yS}=wp.i18n,Ku=fS({backend:{},credential:{},bridge:{}});function gl({children:i}){let[e]=K(),[t,n]=mS({}),r=pS(t);r.current=t;let[,s]=ue(),[,o]=N(),a=gS(c=>{!c||r.current[c]||(s(!0),$S({path:`forms-bridge/v1/${c}/schemas`}).then(O=>n({...r.current,[c]:O})).catch(()=>o(yS("Schema loading error","forms-bridge"))).finally(()=>s(!1)))},[t]);Hu(()=>{a("http")},[]),Hu(()=>{e&&e!=="general"&&e!=="http"&&e!=="forms"&&a(e)},[a,e]);let l=dS(()=>{let{bridge:c}=r.current[e]||{},{backend:O,credential:h}=r.current.http||{};return{bridge:c,credential:h,backend:O}},[e,t]);return React.createElement(Ku.Provider,{value:l},i)}function ri(){return uS(Ku)}function zi(i,e=!1){try{i=new URL(i)}catch{return!1}return e===!0&&(i.hash!==""||i.search!=="")||/[^-a-zA-Z0-9._+]+/.test(i.hostname)?!1:i.protocol==="http:"||i.protocol==="https:"}function rr(i){if(!i?.name)return!1;let e=zi(i.base_url)&&Array.isArray(i.headers);return!e||!i.headers.find(({name:n})=>n==="Content-Type")?.value?!1:e}function si(i,e){return i.sort((t,n)=>e.includes(t.name)?e.includes(n.name)?e.indexOf(t.name)-e.indexOf(n.name):-1:1)}function Ce(i){return i[0]?.value===""?i:[{label:"",value:""}].concat(i)}function ln(i,e="forms-bridge-export"){let t=JSON.stringify(i),n=new Blob([t],{type:"application/json"}),r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download=e+".json",document.body.appendChild(s),s.click(),document.body.removeChild(s)}function oi(){return new Promise((i,e)=>{let t=document.createElement("input");t.type="file",t.accept="application/json",t.addEventListener("cancel",function(){document.body.removeChild(t),e()}),t.addEventListener("change",function(){if(t.files.length===1){let n=new FileReader;n.onerror=function(r){document.body.removeChild(t),e(r)},n.onload=function(){let r;try{r=JSON.parse(n.result),i(r)}catch(s){e(s)}finally{document.body.removeChild(t)}},n.readAsText(t.files[0])}else document.body.removeChild(t)}),document.body.appendChild(t),t.click()})}function $l(i){return i===null||typeof i!="object"?i:Array.isArray(i)?[...i]:{...i}}function E(i,e){return!i||typeof i!="object"?!1:Array.isArray(i)?i.length>e:Object.prototype.hasOwnProperty.call(i,e)}function Es(i="",e={}){let t=new URL(wpApiSettings.root.replace(/wp-json/,"wp-admin"));return t.pathname+=i.replace(/^\/+/,""),t.search=new URLSearchParams(e).toString(),t.toString()}function Se(i,e,t=!0){try{let n=id(i,e,t);return nd(n)>0}catch(n){return(!t||n!=="change")&&console.warn(n),!0}}function QS(i){return Object.prototype.toString.call(i)==="[object Date]"}function ed(i){return Object.prototype.toString.call(i)==="[object Array]"}function td(i){return Object.prototype.toString.call(i)==="[object Object]"}function SS(i){return!td(i)&&!ed(i)}function yl(i){if(td(i))return"object";if(QS(i))return"date";if(ed(i))return"array";if(SS(i))return"value"}function id(i,e,t={},n=!0){return t=Ju(i,e,t,n),t=Ju(e,i,t,n),t}function Ju(i,e,t,n){for(let r in i){if(E(t,r))continue;if(!E(e,r)){if(n)throw"change";t[r]=!0;continue}let s=yl(i[r]),o=yl(e[r]);if(!s||!o)throw"Invalid argument: Only serializable data can be diffed";if(s!==o){if(n)throw"change";t[r]=!0;continue}if(s==="object"||s==="array")t={...t,[r]:id(i[r],e[r],{},n)};else if(i[r]!==e[r]){if(n)throw"change";t[r]=!0}else t[r]=!1}return t}function nd(i,e=0){return Object.keys(i).reduce((t,n)=>yl(i[n])==="object"?nd(i[n],t):i[n]?t+1:t,e)}var{createContext:bS,useContext:or,useState:xS,useEffect:rd,useRef:sr,useMemo:vS,useCallback:wS}=wp.element,sd=wp.apiFetch,{__:od}=wp.i18n,ad=Object.freeze({state:{general:{loading:!0,notification_receiver:"",addons:[],integrations:null,debug:!1},http:{backends:[],credentials:[]}},patch:()=>{},submit:()=>Promise.resolve(),fetch:()=>Promise.resolve()}),On=bS(ad);function Ql({children:i}){let[,e]=ue(),[,t]=N(),n=sr(null),[r,s]=xS(null),o=sr(r);o.current=r;let a=sr(()=>(e(!0),sd({path:"forms-bridge/v1/settings"}).then(f=>{n.current=f,o.current=f,s(f)}).catch(()=>t(od("Settings loading error","forms-bridge"))).finally(()=>e(!1)))).current,l=sr(f=>{Se(o.current,n.current)&&(f.preventDefault(),f.returnValue=!0)}).current;rd(()=>(window.addEventListener("beforeunload",l),a(),()=>{window.removeEventListener("beforeunload",l)}),[]),rd(()=>{window.__wpfbInvalidated===!0&&(O(r).then(()=>{window.__wpfbReload&&window.location.reload()}).finally(()=>{window.__wpfbReload=!1}),window.__wpfbInvalidated=!1)},[r]);let c=wS(f=>s({...r,...f}),[r]),O=sr(f=>(e(!0),sd({path:"forms-bridge/v1/settings",method:"POST",headers:{"Content-Type":"application/json"},data:f}).catch(()=>(t(od("Settings submission error","forms-bridge")),{success:!1})).then(u=>{n.current=u,o.current=u,s(u)}).finally(()=>e(!1)))).current,h=r||ad.state;return React.createElement(On.Provider,{value:{state:h,patch:c,submit:O,fetch:a}},i)}function ai(){let{state:i,submit:e}=or(On);return[i,t=>e(t)]}function ot(){let{fetch:i}=or(On);return i}function ar(){let{state:{general:i},patch:e}=or(On);return[i,t=>e({general:t})]}function Ds(){let{state:{http:i},patch:e}=or(On);return[i,t=>e({http:t})]}function Bs(){let{state:i,patch:e}=or(On);return[vS(()=>Object.keys(i).reduce((n,r)=>(r!=="general"&&r!=="http"&&(n[r]=i[r]),n),{}),[i]),e]}var ld=ar;function Od(i,e){return i.map(t=>{let n=!!e.find(({name:r})=>r===t.name)?.enabled;return{...t,enabled:n}})}function cn(){let[i,e]=ar();return[i.addons||[],t=>{e({...i,addons:Od(i.addons||[],t)})}]}function li(){let[i,e]=ar();return[i.integrations||[],t=>{e({...i,integrations:Od(i.integrations||[],t)})}]}function cd(){let[i,e]=ar();return[i.debug,t=>{window.__wpfbInvalidated=!0,e({...i,debug:t})}]}var{createContext:PS,useContext:kS,useState:TS,useEffect:hd,useRef:Sl}=wp.element,zS=wp.apiFetch,{__:XS}=wp.i18n,fd=PS([]);function bl({children:i}){let[e]=ai(),[t,n]=ue(),[,r]=N(),[s,o]=TS([]),a=Sl(!1),[l]=li(),c=Sl(l);hd(()=>(a.current||(a.current=Se(l,c.current)),()=>{c.current=l}),[l]),hd(()=>{t||window.__wpfbInvalidated||a.current&&O().then(()=>a.current=!1)},[e,t,l]);let O=Sl(()=>(n(!0),zS({path:"forms-bridge/v1/forms"}).then(o).catch(()=>r(XS("Forms loading error","forms-bridge"))).finally(()=>n(!1)))).current;return React.createElement(fd.Provider,{value:[s,O]},i)}function at(){return kS(fd)}var{PanelBody:ud,ToggleControl:RS,__experimentalSpacer:qS}=wp.components,{useMemo:xl,useCallback:_S}=wp.element,{__:Ls}=wp.i18n;function vl({loading:i}){let[e,t]=li(),n=_S(a=>{let l=e.map(({name:c,enabled:O})=>(a===c&&(O=!O),{name:c,enabled:O}));window.__wpfbInvalidated=!0,t(l)},[e]),r=xl(()=>e.length===0,[e]),s=xl(()=>e.length>1,[e]),o=xl(()=>e.reduce((a,{enabled:l})=>a&&!l,!0),[e]);if(s||r)return i?React.createElement(ud,{title:Ls("Form builders","forms-bridge"),initialOpen:!1}):React.createElement(ud,{title:Ls("Form builders","forms-bridge"),initialOpen:r||o},r&&React.createElement(React.Fragment,null,React.createElement("p",null,Ls("It seems you have no available form builders. If you want to use Forms Bridge, you should install, at least one of the following plugins before you can create form bridges.","forms-bridge")),React.createElement("ul",null,React.createElement("li",null,React.createElement("a",{href:Es("plugin-install.php",{s:"contact form 7",tab:"search",type:"term"})},"Contact Form 7")),React.createElement("li",null,React.createElement("a",{href:"https://www.gravityforms.com/",target:"_blank"},"GravityForms")),React.createElement("li",null,React.createElement("a",{href:"https://wpforms.com/",target:"_blank"},"WPForms")),React.createElement("li",null,React.createElement("a",{href:Es("plugin-install.php",{s:"ninja forms",tab:"search",type:"term"})},"NinjaForms")),React.createElement("li",null,React.createElement("a",{href:Es("plugin-install.php",{s:"woocommerce",tab:"search",type:"term"})},"WooCommerce"))))||React.createElement("p",null,Ls("Select which form builder plugins you want Forms Bridge to work","forms-bridge")),React.createElement(qS,{paddingBottom:"5px"}),e.map(({name:a,title:l,enabled:c})=>React.createElement("div",{key:a,style:{display:"flex",justifyContent:"left",height:"2em"}},React.createElement(RS,{__nextHasNoMarginBottom:!0,label:l,checked:c,onChange:()=>n(a)}))))}var{useMemo:CS,useCallback:WS}=wp.element,{PanelBody:ZS,__experimentalSpacer:dd}=wp.components,{__:pd}=wp.i18n;function wl(){let[i,e]=cn(),t=WS(r=>{let s=i.map(({name:o,enabled:a})=>(o===r&&(a=!a),{name:o,enabled:a}));window.__wpfbInvalidated=!0,window.__wpfbReload=!0,e(s)},[i]),n=CS(()=>i.sort((r,s)=>r.name>s.name?1:-1),[i]);return React.createElement(ZS,{title:pd("Addons","forms-bridge"),initialOpen:!1},React.createElement("p",null,pd("Each addon allows you to create API specific bridges and comes with a library of bridge templates and workflow jobs","forms-bridge")),React.createElement(dd,{paddingBottom:"5px"}),React.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"20px"}},n.map(({name:r,title:s,enabled:o,logo:a})=>React.createElement("button",{key:r,tabIndex:0,style:{width:"200px",height:"180px",borderRadius:"5px",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",cursor:"pointer",padding:"20px",color:o?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"inherit",border:o?"2px solid":"none"},onClick:()=>t(r)},React.createElement("div",{style:{flex:1,display:"flex",alignItems:"center"}},React.createElement("img",{alt:r,src:a,width:"100px",height:"50px",style:{marginTop:"-8px",objectFit:"contain",objectPosition:"center",marginLeft:"5px"}})),React.createElement("h4",{style:{margin:0,fontSize:"1rem"}},s)))),React.createElement(dd,{paddingY:"calc(10px)"}))}var VS=wp.apiFetch,{useState:Pl,useEffect:md,useRef:AS}=wp.element;function kl({debug:i}){let[e,t]=Pl([]),[n,r]=Pl(!1),[s,o]=Pl(!1),a=AS(null),l=()=>(r(!0),VS({path:"forms-bridge/v1/logs?lines=1000",signal:AbortSignal.timeout(3e3)}).then(c=>{o(!1),t(c)}).catch(()=>o(!0)).finally(()=>r(!1)));return md(()=>{if(i)return setTimeout(l,1e3),a.current=setInterval(()=>l(),1e4),()=>{clearInterval(a.current)}},[i]),md(()=>{s&&t([])},[s]),{loading:n,error:s,logs:e}}var{useEffect:gd,useRef:$d}=wp.element,{__experimentalSpacer:yd,ToggleControl:jS,PanelBody:YS,PanelRow:Qd}=wp.components,{__:hn}=wp.i18n;function Tl(){let[i,e]=cd(),{logs:t,loading:n,error:r}=kl({debug:i}),s=$d(!0),o=$d(null);return gd(()=>{if(!i||!o.current)return;let a=c=>{let O=c.target.children[0].offsetHeight-c.target.clientHeight;s.current=c.target.scrollTop===Math.max(0,O)},l=o.current;return l.addEventListener("scroll",a),()=>{l.removeEventListener("scroll",a)}},[i]),gd(()=>{!o.current||!s.current||o.current.scrollTo(0,o.current.scrollHeight)},[t]),React.createElement(YS,{title:hn("Debug","forms-bridge"),initialOpen:!!i},React.createElement("p",null,hn("Activate the debug mode and open the loggin console to see bridged form submissions' logs","forms-bridge")),React.createElement(yd,{paddingBottom:"5px"}),React.createElement(Qd,null,React.createElement(jS,{label:hn("Logging","forms-bridge"),help:hn("When debug mode is activated, logs will be write to the log file and readed from there. Make sure to deactivate the debug mode once you've done to erase this file contents.","forms-bridge"),checked:!!i,onChange:()=>e(!i),__nextHasNoMarginBottom:!0})),i&&React.createElement(React.Fragment,null,React.createElement(yd,{paddingY:"calc(8px)"}),React.createElement(Qd,null,React.createElement("div",{ref:o,style:{height:"500px",width:"100%",background:"black",color:r?"red":"white",overflowY:"auto",fontFamily:"monospace"}},React.createElement(US,{logs:t,error:r,loading:n})))))}function US({loading:i,error:e,logs:t}){return e?React.createElement("p",{style:{textAlign:"center"}},hn("Log lines loading error \u{1F915}","forms-bridge")):i&&!t.length?React.createElement("p",{style:{textAlign:"center"}},hn("Loading...","forms-bridge")):React.createElement("pre",{style:{width:"max-content",paddingLeft:"1.5em",paddingRight:"1em",margin:0}},t.map((n,r)=>React.createElement("p",{key:r,style:{margin:0,fontSize:"12px"}},n)))}var MS=wp.apiFetch,{useState:Sd,useEffect:ES,useCallback:zl}=wp.element,{__experimentalSpacer:DS,Button:Xi,Modal:bd}=wp.components,{__:he}=wp.i18n;function Xl(){let[i,e]=ue(),[t,n]=N(),[r,s]=ai(),o=ot(),[a,l]=Sd(!1),[c,O]=Sd(!1),h=zl(()=>{let d=new Blob([JSON.stringify(r)],{type:"application/json"}),p=URL.createObjectURL(d),m=document.createElement("a"),g=new Date,y=String(g.getFullYear()),S=String(g.getMonth()+1);S.length===1&&(S="0"+S);let v=String(g.getDate());v.length===1&&(v="0"+v),m.download=`${y}${S}${v}-forms-bridge.json`,m.href=p,document.body.appendChild(m),m.click(),document.body.removeChild(m)},[r]),f=zl(()=>{oi().then(d=>{s(d).catch(()=>{n(he("It has been an error with config import","forms-bridge"))})}).catch(d=>{d.name==="SyntaxError"?n(he("JSON syntax error","forms-bridge")):n(he("Something went wrong with the file upload","forms-bridge"))})},[s]),u=zl(()=>{e(!0),MS({path:"forms-bridge/v1/settings",method:"DELETE"}).then(o).catch(()=>{n(he("Wipe config error","forms-bridge"))}).finally(()=>e(!1))},[o]);return ES(()=>()=>{a&&(l(!1),c&&(a==="import"?f():u(),O(!1)))},[a,c]),React.createElement(React.Fragment,null,React.createElement("p",null,he("Export or import your configuration as a JSON to migrate your bridges to, or from, any other WordPress instance","forms-bridge")),React.createElement(DS,{paddingBottom:"5px"}),React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Xi,{disabled:!!t||i,variant:"secondary",description:he("Export Forms Bridge config as JSON","forms-bridge"),onClick:h,style:{width:"150px",justifyContent:"center"},__next40pxDefaultSize:!0},he("Download config","forms-bridge")),React.createElement(Xi,{disabled:!!t||i,variant:"primary",description:he("Import Forms Bridge JSON config","forms-bridge"),onClick:()=>l("import"),style:{width:"150px",justifyContent:"center"},__next40pxDefaultSize:!0},he("Import config","forms-bridge")),React.createElement(Xi,{disabled:!!t||i,variant:"primary",description:he("Wipe Forms Bridge settings","forms-bridge"),onClick:()=>l("wipe"),style:{width:"150px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},he("Wipe config","forms-bridge"))),a==="import"&&React.createElement(bd,{title:he("Config import warning","forms-bridge"),onRequestClose:()=>l(!1),size:"small"},React.createElement("p",null,he("Import a new configuration is a destructive action. Your current configuration will be replaced with the new one. If there are some errors on the new config, Forms Bridge will filter it to avoid bugs.","forms-bridge")),React.createElement("p",null,he("Are you sure to continue?","forms-bridge")),React.createElement("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"center"}},React.createElement(Xi,{variant:"primary",description:he("Continue","forms-bridge"),onClick:()=>O(!0)},he("Continue","forms-bridge")),React.createElement(Xi,{variant:"primary",isDestructive:!0,description:he("Cancel","forms-bridge"),onClick:()=>O(!1)},he("Cancel","forms-bridge")))),a==="wipe"&&React.createElement(bd,{title:he("Wipe config warning","forms-bridge"),onRequestClose:()=>l(!1),size:"small"},React.createElement("p",null,he("You are going to wipe Forms Bridge config. After that, Forms Bridge will be reset to factory defaults. All your data will be lost.","forms-bridge")),React.createElement("p",null,he("Are you sure to continue?","forms-bridge")),React.createElement("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"center"}},React.createElement(Xi,{variant:"primary",description:he("Continue","forms-bridge"),onClick:()=>O(!0)},he("Continue","forms-bridge")),React.createElement(Xi,{variant:"primary",isDestructive:!0,description:he("Cancel","forms-bridge"),onClick:()=>O(!1)},he("Cancel","forms-bridge")))))}var{PanelBody:xd,PanelRow:BS,TextControl:LS,__experimentalSpacer:GS}=wp.components,{useEffect:IS}=wp.element,{__:Oi}=wp.i18n;function Rl(){let[{loading:i,notification_receiver:e,debug:t,...n},r]=ld(),s=o=>r({notification_receiver:e,debug:t,...n,...o});return IS(()=>{let o=document.querySelector("#general .addon-logo");o&&o.removeAttribute("src")},[]),React.createElement(React.Fragment,null,React.createElement(BS,null,React.createElement(LS,{label:Oi("Error notification receiver","forms-bridge"),help:Oi("Email address where submission errors will be sent with the error log and the submission data","forms-bridge"),onChange:o=>s({notification_receiver:o}),value:e||"",style:{width:"300px"},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(GS,{paddingY:"calc(8px)"}),React.createElement(vl,{loading:i}),React.createElement(wl,null),React.createElement(Tl,null),React.createElement(xd,{title:Oi("Import / Export","forms-bridge"),initialOpen:!1},React.createElement(Xl,null)),React.createElement(xd,{title:Oi("Credits","forms-bridge"),initialOpen:!1},React.createElement("ul",null,React.createElement("li",null,"\u{1F3E0}"," ",React.createElement("a",{href:"https://formsbridge.codeccoop.org",target:"_blank"},Oi("Website","forms-bridge"))),React.createElement("li",null,"\u{1F4D4}"," ",React.createElement("a",{href:"https://formsbridge.codeccoop.org/documentation/",target:"_blank"},Oi("Documentation","forms-bridge"))),React.createElement("li",null,"\u{1F4AC}"," ",React.createElement("a",{href:"https://wordpress.org/support/plugin/forms-bridge/",target:"_blank"},Oi("Support","forms-bridge"))),React.createElement("li",null,"\u{1F4B5}"," ",React.createElement("a",{href:"https://buymeacoffee.com/codeccoop",target:"_blank"},Oi("Donate","forms-bridge")))),React.createElement("p",null,React.createElement("strong",null,"Forms Bridge")," has been created by"," ",React.createElement("a",{href:"https://www.codeccoop.org",target:"_blank"},"C\xF2dec"),", a cooperative web development studio based on Barcelona."),React.createElement("p",null,"Please rate our plugin on"," ",React.createElement("a",{href:"https://wordpress.org/support/plugin/forms-bridge/reviews/?new-post",target:"_blank"},"WordPress.org")," ","and help us to maintain this plugin alive \u{1F496}")))}var vd=Ds;function lt(){let[i,e]=Ds();return[i.backends||[],t=>e({...i,backends:t})]}function ci(){let[i,e]=Ds();return[i.credentials||[],t=>e({...i,credentials:t})]}var{useMemo:NS}=wp.element;function Yt(){let[i]=lt();return NS(()=>new Set(i.map(({name:e})=>e)),[i])}function ql({width:i=40,height:e=58.5}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 40 58.5"},React.createElement("rect",{width:"40",height:"7.5808687",x:"0",y:"0",style:{fill:"#ffffff",strokeWidth:4.99998,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:9}}),React.createElement("path",{d:"M 0.43682956,9.0838308 3.2975745,53.79041 h 0.011404 c 0.2208728,2.623009 2.202482,4.721113 4.8482263,4.721113 H 31.69339 c 2.645747,0 4.627355,-2.098104 4.848227,-4.721113 h 0.0114 L 39.413767,9.0838308 H 34.077348 5.7732537 Z",style:{fill:"#ffffff",strokeWidth:4.99998,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:9}}))}var{useRef:FS}=wp.element,{Button:HS}=wp.components,{__:wd}=wp.i18n;function Ut({onClick:i,variant:e="primary",isDestructive:t=!0,disabled:n=!1,size:r="default",style:s={},children:o,icon:a=!1,label:l}){s={justifyContent:"center",...s},r=="compact"&&(s.width="40px");let c=FS();function O(){clearTimeout(c.current),c.current=setTimeout(()=>alert(wd("Double click to remove","forms-bridge")),300)}return React.createElement(HS,{variant:e,onClick:O,onDoubleClick:h=>{i(h),clearTimeout(c.current),window.__wpfbInvalidated=!!t},style:s,showTooltip:!0,label:l||wd("Double click to remove","forms-bridge"),disabled:n,isDestructive:!0,__next40pxDefaultSize:!0},a&&React.createElement("div",{style:{opacity:n?.5:1}},React.createElement(ql,{width:"12",height:"20"}))||o)}function be({children:i,style:e={},min:t="200px",max:n="300px",isResponsive:r=!1}){let s=r?"100%":"15vw";return r&&(n=s),React.createElement("div",{style:{maxWidth:"100%",width:`clamp(${t}, ${s}, ${n})`,...e}},i)}var{useEffect:KS,useMemo:JS}=wp.element,{SelectControl:eb}=wp.components,{__:lr}=wp.i18n,Or={"application/json":lr("JSON","forms-bridge"),"application/x-www-form-urlencoded":lr("URL Encoded","forms-bridge"),"multipart/form-data":lr("Binary files","forms-bridge")},pt="Content-Type",Gs="application/json";function _l({headers:i,setHeaders:e}){let t=JS(()=>i.find(({name:r})=>r===pt)?.value,[i]),n=r=>{i[0]?.name!==pt?e([{name:pt,value:r},...i]):e([{name:pt,value:r},...i.slice(1)])};return KS(()=>{t===void 0&&i.length&&e([{name:pt,value:Gs},...i])},[t]),React.createElement(be,null,React.createElement(eb,{label:lr("Content encoding"),value:Or[t]?t:"",onChange:n,options:Object.keys(Or).map(r=>({label:Or[r],value:r})).concat([{label:lr("Custom encoding","forms-bridge"),value:""}]),__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}))}var{TextControl:Pd,Button:kd}=wp.components,{useEffect:tb,useMemo:ib}=wp.element,{__:Cl}=wp.i18n;function cr({headers:i,setHeaders:e}){let t=(o,a,l)=>{let c=i.map((O,h)=>(a===h&&(O[o]=l),{...O}));e(c)},n=(o,a="Accept",l=Gs)=>{let c=i.slice(0,o).concat([{name:a,value:l}]).concat(i.slice(o,i.length));e(c)},r=o=>{let a=i.slice(0,o).concat(i.slice(o+1));e(a)};tb(()=>{i.length&&i.find(o=>o.name===pt)||n(0,pt,Gs)},[i]);let s=ib(()=>i.sort((o,a)=>o.name===pt?-1:a.name===pt?1:0),[i]);return React.createElement(React.Fragment,null,React.createElement("div",{className:"components-base-control__label"},React.createElement("label",{className:"components-base-control__label",style:{fontSize:"11px",textTransform:"uppercase",fontWeight:500,marginBottom:"calc(8px)"}},Cl("HTTP Headers","forms-bridge")),React.createElement("table",{style:{width:"calc(100% + 10px)",maxWidth:"900px",borderSpacing:"5px",margin:"0 -5px"}},React.createElement("colgroup",null,React.createElement("col",{span:"1",style:{width:"clamp(150px, 15vw, 300px)"}}),React.createElement("col",{span:"1",style:{width:"auto"}}),React.createElement("col",{span:"1",style:{width:"85px"}})),React.createElement("tbody",null,s.map(({name:o,value:a},l)=>React.createElement("tr",{key:l},React.createElement("td",null,React.createElement(Pd,{disabled:o==="Content-Type"&&l===0,placeholder:Cl("Header-Name","forms-bridge"),value:o,onChange:c=>t("name",l,c),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",null,React.createElement(Pd,{disabled:o===pt&&Or[a]&&l===0,placeholder:Cl("Value","forms-bridge"),value:a,onChange:c=>t("value",l,c),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",null,React.createElement("div",{style:{display:"flex",marginLeft:"0.45em",gap:"0.45em"}},React.createElement(kd,{size:"compact",variant:"secondary",disabled:!o||!a,onClick:()=>n(l+1),style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(kd,{disabled:o==="Content-Type"&&l===0,variant:"secondary",onClick:()=>r(l),style:{width:"40px",height:"40px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},"-")))))))))}var{useState:nb,useEffect:rb,useRef:Td}=wp.element;function Pe(i=1080){let[e,t]=nb(window.innerWidth<=i),n=Td(),r=Td(()=>{clearTimeout(n.current),n.current=setTimeout(()=>t(window.innerWidth<=i),100)}).current;return rb(()=>(window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}),[]),e}function Mt({width:i=26,height:e=26,color:t="#000000"}){return React.createElement("svg",{width:i,height:e,viewBox:"-1 0 26 26",fill:"none"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.676 14.248C17.676 15.8651 16.3651 17.176 14.748 17.176H7.428C5.81091 17.176 4.5 15.8651 4.5 14.248V6.928C4.5 5.31091 5.81091 4 7.428 4H14.748C16.3651 4 17.676 5.31091 17.676 6.928V14.248Z",stroke:t,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"#ffffff00"}),React.createElement("path",{d:"M10.252 20H17.572C19.1891 20 20.5 18.689 20.5 17.072V9.75195",stroke:t,strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",fill:"#ffffff00"}))}function Et({width:i=100,height:e=145,color:t="#000000"}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 100 145"},React.createElement("g",{transform:"translate(-582.90398,-1448.5647)"},React.createElement("path",{style:{fill:t,strokeWidth:1},d:"m 669.08313,1526.3787 h -13.82086 v 33.5929 33.5931 h -22.37222 -22.37221 v -33.5931 -33.5929 h -13.83073 c -11.61145,0 -13.82303,-0.02 -13.78259,-0.1256 0.0391,-0.1018 19.69892,-30.7023 45.71154,-71.15 2.31274,-3.5961 4.23104,-6.5384 4.26292,-6.5384 0.0319,0 5.49256,8.4526 12.13488,18.7835 6.64231,10.3309 17.88488,27.8169 24.98352,38.8577 7.09864,11.0409 12.9066,20.0965 12.9066,20.1235 0,0.027 -6.21938,0.049 -13.82085,0.049 z"})))}function Ri({width:i=100,height:e=145,color:t="#000000"}){return React.createElement("div",{style:{transform:"translateY(-2px) rotate(180deg)"}},React.createElement(Et,{width:i,height:e,color:t}))}var{useMemo:sb}=wp.element,{TextControl:zd,SelectControl:ob}=wp.components,{__:hr}=wp.i18n;function fr({state:i,setState:e,errors:t}){let[n]=ci(),r=sb(()=>Ce(n.map(({name:s})=>({value:s,label:s})).sort((s,o)=>s.name>o.name?1:-1)),[n]);return React.createElement(React.Fragment,null,React.createElement(be,null,React.createElement(zd,{label:hr("Name","forms-bridge"),help:t.name&&hr("This name is already in use","forms-bridge"),value:i.name,onChange:s=>e({...i,name:s}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(be,null,React.createElement(zd,{label:hr("Base URL","forms-bridge"),help:t.base_url&&hr("Invalid base URL","forms-bridge"),value:i.base_url,onChange:s=>e({...i,base_url:s}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(_l,{headers:i.headers,setHeaders:s=>e({...i,headers:s})}),React.createElement(be,null,React.createElement(ob,{label:hr("Authentication","forms-bridge"),value:i.credential||"",onChange:s=>e({...i,credential:s}),options:r,__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})))}var{Button:Xd}=wp.components,{useState:ab,useEffect:Wl,useMemo:Zl,useRef:Vl}=wp.element,{__:Al}=wp.i18n;function jl({update:i,remove:e,data:t,copy:n}){let[r]=ue(),s=Pe(),o=Vl(t.name),[a,l]=ab({...t}),c=Yt(),O=Zl(()=>!a.name||a.name.trim()===o.current.trim()?!1:a.name!==o.current&&c.has(a.name.trim()),[c,a.name]),h=Zl(()=>!zi(a.base_url,!0),[a.base_url]),f=Zl(()=>!O&&!h&&rr(a),[a,O,h]),u=Vl();Wl(()=>{clearTimeout(u.current),f&&(a.name!==t.name?u.current=setTimeout(()=>{o.current=a.name,i(a)},1e3):Se(a,t)&&i(a))},[f,a]),Wl(()=>{t.name!==o.current&&(o.current=t.name,l(t))},[t.name]);let d=Vl(!1);Wl(()=>(!r&&d.current&&Se(t,a)&&l(t),()=>{d.current=r}),[r,t,a]);function p(){let m={...t};ln(m,t.name+" backend config")}return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:s?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(fr,{state:a,setState:l,errors:{name:O,base_url:h}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ut,{label:Al("Delete","forms-bridge"),onClick:()=>e(t),icon:!0}),React.createElement(Xd,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:n,label:Al("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(Xd,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:p,label:Al("Download","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Ri,{width:"12",height:"20",color:"gray"})))),React.createElement("div",{style:s?{paddingTop:"2rem",borderTop:"1px solid"}:{paddingLeft:"2rem",borderLeft:"1px solid",flex:1}},React.createElement(cr,{headers:a.headers,setHeaders:m=>l({...a,headers:m})})))}var{Button:Rd}=wp.components,{useState:lb,useMemo:Yl,useCallback:Ob}=wp.element,{__:Is}=wp.i18n,qd={name:"",base_url:"https://",headers:[{name:"Content-Type",value:"application/json"}],authentication:{}};function Ul({add:i}){let e=Pe(),[t,n]=lb(qd),[r,s]=N(),o=Yt(),a=Yl(()=>t.name?o.has(t.name.trim()):!1,[o,t.name]),l=Yl(()=>!zi(t.base_url,!0),[t.base_url]),c=()=>{window.__wpfbInvalidated=!0,n(qd),i({...t})},O=Yl(()=>!a&&!l&&rr(t),[t,a,l]),h=Ob(()=>{oi().then(f=>{if(!rr(f)){s(Is("Invalid backend config","forms-bridge"));return}let d=1;for(;o.has(f.name);)f.name=f.name.replace(/\([0-9]+\)/,"")+` (${d})`,d++;f.headers=Array.isArray(f.headers)&&f.headers.filter(p=>p&&p.name&&p.value)||[],i(f)}).catch(f=>{f&&(console.error(f),s(Is("An error has ocurred while uploading the backend config","forms-bridge")))})},[o]);return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:e?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(fr,{state:t,setState:n,errors:{name:a,base_url:l}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Rd,{variant:"primary",onClick:c,style:{width:"100px",justifyContent:"center"},disabled:a||!O,__next40pxDefaultSize:!0},Is("Add","forms-bridge")),React.createElement(Rd,{disabled:!!r,variant:"tertiary",size:"compact",style:{width:"40px",height:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:h,__next40pxDefaultSize:!0,label:Is("Upload","forms-bridge"),showTooltip:!0},React.createElement(Et,{width:"12",height:"20",color:"gray"})))),React.createElement("div",{style:e?{paddingTop:"2rem",borderTop:"1px solid"}:{paddingLeft:"2rem",borderLeft:"1px solid",flex:1}},React.createElement(cr,{headers:t.headers,setHeaders:f=>n({...t,headers:f})})))}function qi({name:i}){return React.createElement("div",{style:{position:"relative",padding:"0px 5px"}},React.createElement("span",null,i))}function _i({width:i=30,height:e=30}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 30 30"},React.createElement("path",{d:"M 2.622057,29.862373 C 1.828663,29.690276 1.123542,29.19942 0.655787,28.493598 -0.033852,27.452962 -0.001626,28.119212 9.16e-4,14.954001 0.003016,4.075681 0.012016,3.372831 0.157468,2.730124 0.469143,1.352914 1.392042,0.445513 2.777525,0.154064 3.411524,0.020696 3.979927,0.002724 7.604454,0.001448 L 11.712762,4.8e-5 V 1.685006 3.369963 H 7.54125 3.369737 v 11.626209 11.626209 h 11.587535 c 6.373144,0 11.607885,-2e-6 11.632757,-4e-6 0.02487,-1e-6 0.04316,-1.857667 0.04063,-4.128146 l -0.0046,-4.128143 h 1.686967 1.686968 v 4.206886 c 0,4.848747 -0.02041,5.049055 -0.604115,5.927982 -0.468374,0.705269 -1.186385,1.192115 -2.015216,1.366413 -0.855959,0.180003 -23.927215,0.175391 -24.758611,-0.0049 z M 19.971514,13.353291 V 10.0255 H 16.64095 13.310386 l 0.02285,-1.663896 0.02285,-1.663896 3.307715,-0.02204 3.307714,-0.02204 V 3.326814 0 h 1.68546 1.685459 V 3.327791 6.655583 H 26.671217 30 v 1.684958 1.684958 h -3.328783 -3.328783 v 3.327791 3.327792 h -1.68546 -1.68546 z",style:{strokeWidth:1}}))}var{useRef:cb,useEffect:hb}=wp.element,{TabPanel:fb}=wp.components,{__:_d}=wp.i18n,ub=`.backends-tabs-panel .components-tab-panel__tabs{overflow-x:auto;}
    2 .backends-tabs-panel .components-tab-panel__tabs>button{flex-shrink:0;}`;function Ml({backends:i,setBackends:e}){let t=Yt(),n=i.map(({name:l},c)=>({index:c,name:String(c),title:l,icon:React.createElement(qi,{name:l})})).concat([{index:-1,name:"new",title:_d("Add a backend","forms-bridge"),icon:React.createElement("div",{style:{marginBottom:"-2px"}},React.createElement(_i,{width:"15",height:"15"}))}]),r=(l,c)=>{l===-1&&(l=i.length),c.headers?.length||(c.headers=[{name:"Content-Type",value:"application/json"}]),c.name=c.name.trim(),c.base_url=c.base_url.trim();let O=i.slice(0,l).concat([c]).concat(i.slice(l+1,i.length));e(O)},s=({name:l})=>{let c=i.findIndex(h=>h.name===l),O=i.slice(0,c).concat(i.slice(c+1));e(O)},o=l=>{let c=i.findIndex(f=>f.name===l),h={...i[c]};for(h.name=h.name.trim(),h.base_url=h.base_url.trim();t.has(h.name);)h.name+="-copy";window.__wpfbInvalidated=!0,e(i.concat(h))},a=cb(document.createElement("style"));return hb(()=>(a.current.appendChild(document.createTextNode(ub)),document.head.appendChild(a.current),()=>{document.head.removeChild(a.current)}),[]),React.createElement("div",{style:{width:"100%"}},React.createElement("h3",{style:{marginTop:0,fontSize:"13px"}},_d("Backends","forms-bridge")),React.createElement(fb,{tabs:n,className:"backends-tabs-panel"},l=>{let c=i[l.index];return c?React.createElement(jl,{data:c,remove:s,update:O=>r(l.index,O),copy:()=>o(c.name)}):React.createElement(Ul,{add:O=>r(l.index,O)})}))}var Cd=wp.apiFetch,{createContext:db,useContext:Zd,useRef:Ns,useState:Fs,useMemo:El,useEffect:Wd}=wp.element,Dl=db([]);function ur({children:i,bridge:e}){let[t]=K(),[n]=lt(),[r,s]=Fs(!1),[o,a]=Fs(!1),l=Ns(new Map).current,c=Ns(new Map).current,[,O]=Fs(0),[,h]=Fs(0),f=El(()=>n.find(({name:b})=>e?.backend===b),[n,e]),u=El(()=>f?.name?JSON.stringify({addon:t,method:e?.method||"",backend:f?.name}):"",[t,e?.method,f?.name]),d=(b,x)=>{l.set(b,x),O(Q=>Q+1)},p=(b,x,Q)=>{s(!0),Cd({path:`forms-bridge/v1/${t}/backend/endpoints`,method:"POST",data:{method:x,backend:Q}}).then(w=>d(b,w)).catch(()=>d(b,[])).finally(()=>s(!1))},m=Ns();Wd(()=>{clearTimeout(m.current),!(!e||r||l.get(u))&&(m.current=setTimeout(()=>p(u,e.method,f),400))},[u,e,f]);let g=El(()=>!e?.method||!f?.name?"":JSON.stringify({addon:t,method:e.method,endpoint:e.endpoint||"/",backend:f.name}),[t,e?.method,e?.endpoint,f?.name]),y=(b,x)=>{c.set(b,x),h(Q=>Q+1)},S=(b,x,Q,w)=>{a(!0),Cd({path:`forms-bridge/v1/${t}/backend/endpoint/schema`,method:"POST",data:{endpoint:x,method:Q,backend:w}}).then(k=>y(b,k)).catch(()=>y(b,[])).finally(()=>a(!1))},v=Ns();return Wd(()=>{clearTimeout(v.current),!(!e||!f||o||c.get(g))&&(v.current=setTimeout(()=>S(g,e.endpoint||"/",e.method,f),400))},[g,e,f]),React.createElement(Dl.Provider,{value:{schema:c.get(g),endpoints:l.get(u)}},i)}function Hs(){let{schema:i}=Zd(Dl);return i||[]}function Vd(){let{endpoints:i}=Zd(Dl);return i||[]}var{BaseControl:pb,SelectControl:mb}=wp.components,{useEffect:gb,useMemo:Bl}=wp.element,dr=["enabled","is_valid","workflow","custom_fields","mutations"],Ks=["name","form_id","backend","endpoint","method"];function pr({data:i,setData:e,schema:t,errors:n={}}){let[r]=lt(),s=Bl(()=>r.length?r.map(({name:O})=>({label:O,value:O})).sort((O,h)=>O.label>h.label?1:-1):[{label:"",value:""}],[r]),[o]=at(),a=Bl(()=>o.length?o.map(({_id:O,title:h})=>({label:h,value:O})).sort((O,h)=>O.label>h.label?1:-1):[{label:"",value:""}],[o]),l=Vd(),c=Bl(()=>t?Object.keys(t.properties).filter(O=>!dr.includes(O)).map(O=>({...t.properties[O],label:t.properties[O].title||O,name:O,value:t.properties[O].const})).map(O=>O.name==="form_id"?{...O,type:"select",options:a}:O.name==="backend"?{...O,type:"select",options:s}:O.enum?{...O,type:"select",options:O.enum.map(h=>({label:h,value:h}))}:O):[],[t,a,s]);return gb(()=>{let O=c.reduce((h,f)=>{if(f.default&&!E(i,f.name))h[f.name]=f.default;else if(f.value&&f.value!==i[f.name])h[f.name]=f.value;else if(f.type==="select"){if(!f.options.length&&i[f.name])h[f.name]="";else if(!i[f.name]||f.options.length===1){let u=f.options[0]?.value||"";u!==i[f.name]&&(h[f.name]=u)}}else f.enum&&f.enum.length===1&&i[f.name]!==f.enum[0]&&(h[f.name]=f.enum[0]);return!o.length&&i.form_id&&(h.form_id=""),!r.length&&i.backend&&(h.backend=""),h},{});Object.keys(O).length&&e({...i,...O})},[i,c]),c.filter(O=>!O.value).sort((O,h)=>Ks.includes(O.name)&&Ks.includes(h.name)?Ks.indexOf(O.name)-Ks.indexOf(h.name):0).map(O=>{switch(O.type){case"string":return React.createElement(Ll,{key:O.name,error:n[O.name],label:O.label,value:i[O.name]||"",setValue:h=>e({...i,[O.name]:h}),datalist:O.name==="endpoint"?l:[]});case"select":return React.createElement(Gl,{key:O.name,error:n[O.name],label:O.label,value:i[O.name]||"",setValue:h=>e({...i,[O.name]:h}),options:O.options})}})}function Ll({label:i,value:e,setValue:t,error:n,disabled:r,datalist:s=[]}){return React.createElement(be,null,React.createElement(pb,{label:i,help:n},React.createElement("input",{name:i,type:"text",list:"datalist-"+i,value:e,onChange:o=>t(o.target.value),disabled:r,style:{height:"40px",paddingRight:"12px",paddingLeft:"12px",borderColor:"var(--wp-components-color-gray-600,#949494)",fontSize:"13px",width:"100%",border:"1px solid #949494",borderRadius:"2px"}}),React.createElement("datalist",{id:"datalist-"+i},s.map(o=>React.createElement("option",{value:o})))))}function Gl({label:i,options:e,value:t,setValue:n,optional:r,error:s,disabled:o}){return r&&(e=Ce(e)),React.createElement(be,null,React.createElement(mb,{disabled:o,label:i,value:t,onChange:n,options:e,help:s,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))}var{useEffect:$b,useMemo:Ad}=wp.element,mr=["refresh_token","refresh_token_expires_at"];function gr({data:i,setData:e,schema:t,schemas:n,disabled:r=!1,errors:s}){let o=Ad(()=>n.oneOf.reduce((l,c)=>c.properties.schema.const?l.concat(c.properties.schema.const):l.concat(c.properties.schema.enum||[]),[]).map(l=>({value:l,label:l})),[n]),a=Ad(()=>t?Object.keys(t.properties).filter(l=>t.properties[l].public!==!1).map(l=>({...t.properties[l],label:t.properties[l].title||l,name:l,value:t.properties[l].const})).map(l=>l.name==="schema"?{...l,type:"select",options:o}:l.enum?{...l,type:"select",options:l.enum.map(c=>({label:c,value:c}))}:l):[],[t]);return $b(()=>{let l=a.reduce((c,O)=>{if((O.name==="realm"||O.name==="scope"||O.name==="database")&&!E(i,O.name)&&(c[O.name]=i.realm||i.scope||i.database||"",O.name!=="realm"&&delete i.realm,O.name!=="scope"&&delete i.scope,O.name!=="database"&&delete i.database),O.default&&!E(i,O.name))c[O.name]=O.default;else if(O.value&&O.value!==i[O.name])c[O.name]=O.value;else if(O.type==="select"){if(!O.options.length&&i[O.name])c[O.name]="";else if(!i[O.name]||O.options.length===1){let h=O.options[0]?.value||"";h!==i[O.name]&&(c[O.name]=h)}}else O.enum&&O.enum.length===1&&i[O.name]!==O.enum[0]&&(i[O.name]=O.enum[0]);return c},{});Object.keys(l).length&&e({...i,...l})},[i,a]),a.filter(l=>!l.value).sort(l=>l.name==="name"?-1:0).map(l=>{switch(l.type){case"string":return React.createElement(Ll,{key:l.name,label:l.label,value:i[l.name]||"",setValue:c=>e({...i,[l.name]:c}),error:s[l.name],disabled:r});case"select":return React.createElement(Gl,{key:l.name,label:l.label,value:i[l.name]||"",setValue:c=>e({...i,[l.name]:c}),options:l.options,optional:!t.required.includes(l.name),error:s[l.name],disabled:r})}})}var{useMemo:yb}=wp.element,{Button:jd}=wp.components,Yd=wp.apiFetch,{__:Ud}=wp.i18n;function Il({addon:i,data:e}){let[t,n]=ue(),[r,s]=N(),o=ot(),a=yb(()=>{if(e.refresh_token)return!0;if(!(e.access_token&&e.expires_at))return!1;let O=new Date(e.expires_at);return O.getFullYear()===1970&&(O=new Date(e.expires_at*1e3)),Date.now()<O.getTime()},[e.access_token,e.expires_at]),l=()=>{n(!0),Yd({path:"forms-bridge/v1/oauth/revoke",method:"POST",data:{credential:e}}).then(()=>o()).catch(()=>s("")).finally(()=>n(!1))},c=()=>{n(!0),Yd({path:"forms-bridge/v1/oauth/grant",method:"POST",data:{credential:e}}).then(({success:O,data:h})=>{if(!O)throw"error";let{url:f,params:u}=h,d=document.createElement("form");d.action=f,d.method="GET",d.target="_blank",d.innerHTML=Object.keys(u).reduce((p,m)=>{let g=u[m];return g?p+`<input name="${m}" value="${g}" />`:p},""),d.style.visibility="hidden",document.body.appendChild(d),d.submit(),document.body.removeChild(d)}).catch(()=>s("")).finally(()=>n(!1))};return a?React.createElement(jd,{onClick:l,variant:"secondary",isDestructive:!0,disabled:t||r,style:{justifyContent:"center",marginLeft:"auto"},__next40pxDefaultSize:!0},Ud("Revoke","forms-bridge")):React.createElement(jd,{variant:"primary",onClick:c,disabled:t||r,style:{justifyContent:"center",marginLeft:"auto"},__next40pxDefaultSize:!0},Ud("Authorize","forms-bridge"))}var{Button:Md}=wp.components,{useState:Qb,useEffect:Nl,useMemo:$r,useRef:Fl,useCallback:Sb}=wp.element,{__:Js}=wp.i18n;function Hl({addon:i,data:e,update:t,remove:n,schema:r,copy:s}){let o=Pe(780),[a]=ue(),l=Fl(e.name),[c,O]=Qb({...e}),h=$r(()=>r.oneOf.find(x=>x.properties.schema.const===c.schema||x.properties.schema.enum?.includes(c.schema)),[c.schema]),[f]=ci(),u=$r(()=>new Set(f.map(x=>x.name)),[f]),d=$r(()=>!c.name||l.current.trim()===c.name.trim()?!1:l.current!==c.name&&u.has(c.name.trim()),[u,c.name]),p=Sb(x=>!!Object.keys(h.properties).filter(Q=>!mr.includes(Q)).reduce((Q,w)=>{if(!Q||!h.required.includes(w))return Q;let k=x[w];return h.properties[w].pattern&&(Q=Q&&new RegExp(h.properties[w].pattern).test(k)),Q&&(k||E(h.properties[w],"default"))},!0),[h]),m=$r(()=>p(c),[p,c,d]),g=$r(()=>!!e.refresh_token,[e]),y=Fl();Nl(()=>{clearTimeout(y.current),m&&(e.name!==c.name?y.current=setTimeout(()=>{l.current=c.name,t({...c})},1e3):Se(e,c)&&t({...c}))},[m,c]),Nl(()=>{e.name!==l.current&&(l.current=e.name,O(e))},[e.name]);let S=Fl(!1);Nl(()=>(!a&&S.current&&Se(e,c)&&O(e),()=>{S.current=a}),[a,e,c]);let v=()=>{let x={...e};mr.forEach(Q=>delete x[Q]),ln(x,x.name+" credential config")},b=!!h.properties.refresh_token;return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:o?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(gr,{disabled:g,data:c,setData:O,schema:h,schemas:r,errors:{name:d?Js("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ut,{label:Js("Delete","forms-bridge"),onClick:()=>n(e),icon:!0}),React.createElement(Md,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:s,label:Js("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(Md,{size:"compact",variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:v,__next40pxDefaultSize:!0,label:Js("Download bridge config","forms-bridge"),showTooltip:!0},React.createElement(Ri,{width:"12",height:"20",color:"gray"})),b&&React.createElement(Il,{addon:i,data:e})||null)))}var{Button:Ed}=wp.components,{useState:bb,useMemo:eo,useCallback:Dd}=wp.element,{__:fn}=wp.i18n;function Kl({add:i,schema:e}){let t=Pe(780),[n,r]=N(),[s,o]=bb({schema:"Basic"}),a=eo(()=>e.oneOf.find(p=>p.properties.schema.const===s.schema||p.properties.schema.enum?.includes(s.schema)),[s.schema]),[l]=ci(),c=eo(()=>new Set(l.map(p=>p.name)),[l]),O=eo(()=>s.name?c.has(s.name.trim()):!1,[c,s.name]),h=()=>{let p={...s,name:s.name.trim()};Object.keys(a.properties).forEach(m=>{a.required.includes(m)&&!p[m]&&(p[m]=a.properties[m].default)}),window.__wpfbInvalidated=!0,o({}),i(p)},f=Dd(p=>!!Object.keys(a.properties).filter(m=>!mr.includes(m)).filter(m=>!["access_token","expires_at"].includes(m)).reduce((m,g)=>{if(!m||!a.required.includes(g))return m;let y=p[g];return a.properties[g].pattern&&(m=m&&new RegExp(a.properties[g].pattern).test(y)),m&&(y||E(a.properties[g],"default"))},!0),[a]),u=eo(()=>f(s),[s]),d=Dd(()=>{oi().then(p=>{if(!f(p)){r(fn("Invalid credential config","forms-bridge"));return}let g=1;for(;c.has(p.name);)p.name=p.name.replace(/ \([0-9]+\)/,"")+` (${g})`,g++;i(p)}).catch(p=>{p?.name==="SyntaxError"?r(fn("JSON syntax error","forms-bridge")):r(fn("An error has ocurred while uploading the credential config","forms-bridge"))})},[c]);return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:t?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(gr,{data:s,setData:o,schema:a,schemas:e,errors:{name:O?fn("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ed,{variant:"primary",onClick:h,style:{width:"100px",justifyContent:"center"},disabled:!u||O,__next40pxDefaultSize:!0},fn("Add","forms-bridge")),React.createElement(Ed,{variant:"tertiary",size:"compact",style:{width:"40px",height:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"grey"},disabled:!!n,onClick:d,__next40pxDefaultSize:!0,label:fn("Upload","forms-bridge"),showTooltip:!0},React.createElement(Et,{width:"12",height:"20",color:"gray"})))))}var{useEffect:xb,useRef:vb,useMemo:wb}=wp.element,{PanelBody:Pb,TabPanel:kb}=wp.components,{__:Jl}=wp.i18n,Tb=`.credentials-tabs-panel .components-tab-panel__tabs{overflow-x:auto;}
    3 .credentials-tabs-panel .components-tab-panel__tabs>button{flex-shrink:0;}`;function eO({credentials:i,setCredentials:e}){let[t]=K(),{credential:n}=ri(),r=wb(()=>new Set(i.map(O=>O.name)),[i]),s=i.map(({name:O},h)=>({index:h,name:String(h),title:O,icon:React.createElement(qi,{name:O})})).concat([{index:-1,name:"new",title:Jl("Add a credential","forms-bridge"),icon:React.createElement("div",{style:{marginBottom:"-2px"}},React.createElement(_i,{width:"15",height:"15"}))}]),o=(O,h)=>{O===-1&&(O=i.length),h.name=h.name.trim();let f=i.slice(0,O).concat([h]).concat(i.slice(O+1,i.length));e(f)},a=({name:O})=>{let h=i.findIndex(u=>u.name===O),f=i.slice(0,h).concat(i.slice(h+1));e(f)},l=O=>{let h=i.findIndex(d=>d.name===O),u={...i[h]};for(u.name=u.name.trim();r.has(u.name);)u.name+="-copy";window.__wpfbInvalidated=!0,e(i.concat(u))},c=vb(document.createElement("style"));if(xb(()=>(c.current.appendChild(document.createTextNode(Tb)),document.head.appendChild(c.current),()=>{document.head.removeChild(c.current)}),[]),!!n)return React.createElement(Pb,{title:Jl("Authentication","forms-bridge"),initialOpen:!1},React.createElement("div",{style:{width:"100%"}},React.createElement("p",null,Jl("HTTP authentication credentials","forms-bridge")),React.createElement(kb,{tabs:s,className:"credentials-tabs-panel"},O=>{let h=i[O.index];return h?React.createElement(Hl,{addon:t,data:h,schema:n,remove:a,update:f=>o(O.index,f),copy:()=>l(h.name)}):React.createElement(Kl,{add:f=>o(O.index,f),schema:n})})))}var{useEffect:zb}=wp.element,{__experimentalSpacer:Xb}=wp.components;function tO(){let[{backends:i=[],credentials:e=[]},t]=vd(),n=r=>{t({backends:i,credentials:e,...r})};return zb(()=>{let r=document.querySelector("#http .addon-logo");r&&r.removeAttribute("src")},[]),React.createElement(React.Fragment,null,React.createElement(Ml,{backends:i,setBackends:r=>n({backends:r})}),React.createElement(Xb,{paddingY:"calc(8px)"}),React.createElement(eO,{credentials:e,setCredentials:r=>n({credentials:r})}))}var iO=wp.apiFetch,{createContext:Rb,useContext:Gd,useEffect:Bd,useState:Ld,useCallback:nO}=wp.element,{__:to}=wp.i18n,rO=Rb({job:null,setJob:()=>{},config:null,submit:()=>{},reset:()=>{}});function sO({children:i}){let[,e]=ue(),[,t]=N(),[n]=K(),[r,s]=Ld(null),[o,a]=Ld(null),[l,c]=ai();Bd(()=>{s(null)},[n]),Bd(()=>(r&&O(r),()=>{a(null)}),[r]);let O=nO(u=>iO({path:`forms-bridge/v1/${n}/jobs/${u}`}).then(a).catch(()=>t(to("Job config load error","forms-bridge"))),[n]),h=nO(u=>u?.name?(e(!0),iO({path:`forms-bridge/v1/${n}/jobs/${u.name}`,method:"POST",data:u}).then(d=>{s(d.name),a(d)}).catch(()=>t(to("Job submit error","forms-bridge"))).finally(()=>e(!1))):Promise.reject(),[n]),f=nO(u=>u?(e(!0),iO({path:`forms-bridge/v1/${n}/jobs/${u}`,method:"DELETE"}).then(d=>{d?.name?(s(d.name),a(d)):(a(null),s(null),c(l))}).catch(d=>{console.error(d),t(to("Job reset error","forms-bridge"))}).finally(()=>e(!1))):(t("error",to("Job reset error","forms-bridge")),Promise.resolve()),[n,l]);return React.createElement(rO.Provider,{value:{job:r,setJob:s,config:o,submit:h,reset:f}},i)}function un(){let{job:i,setJob:e}=Gd(rO);return[i,e]}function dn(){let{config:i,submit:e,reset:t}=Gd(rO);return[i,e,t]}var oO=wp.apiFetch,{createContext:qb,useContext:Nd,useEffect:_b,useState:Id,useCallback:aO}=wp.element,{__:lO}=wp.i18n,OO=qb({template:null,setTemplate:()=>{},config:null,submit:()=>{},reset:()=>{}});function cO({children:i}){let[,e]=ue(),[,t]=N(),[n]=K(),[r,s]=Id(null),[o,a]=Id(null),[,l]=at(),c=ot();_b(()=>{r?O(r):a(null)},[r]);let O=aO(u=>oO({path:`forms-bridge/v1/${n}/templates/${u}`}).then(d=>{u&&a(d)}).catch(()=>t("error",lO("Template config load error","forms-bridge"))),[n]),h=aO(({fields:u,integration:d})=>r?(e(!0),oO({path:`forms-bridge/v1/${n}/templates/${r}/use`,method:"POST",data:{integration:d,fields:u}}).then(({success:p})=>(p&&l().then(c),p)).catch(()=>t(lO("Template submit error","forms-bridge"))).finally(()=>e(!1))):Promise.reject(),[n,r]),f=aO(()=>r?(e(!0),oO({path:`forms-bridge/v1/${n}/templates/${r}`,method:"DELETE"}).then(u=>{a(u||null)}).catch(()=>t(lO("Template reset error","forms-bridge"))).finally(()=>e(!1))):Promise.reject(),[n,r]);return React.createElement(OO.Provider,{value:{template:r,setTemplate:s,config:o,submit:h,reset:f}},i)}function io(){let{template:i,setTemplate:e}=Nd(OO);return[i,e]}function Ee(){let{config:i,submit:e,reset:t}=Nd(OO);return[i,e,t]}var{useMemo:Cb}=wp.element,Fd={title:"",jobs:[],templates:[],bridges:[]};function no(){let[i]=K(),[e,t]=Bs();return[Cb(()=>e[i]?{...Fd,...e[i]}:Fd,[e,i]),r=>t({[i]:r})]}function ro(){let[i,e]=no();return[i.bridges||[],t=>e({...i,bridges:t})]}function pn(){let[i,e]=no();return[i.jobs||[],t=>e({...i,jobs:t})]}function Hd(){let[i,e]=no();return[i.templates||[],t=>e({...i,templates:t})]}var{useMemo:Wb}=wp.element;function yr(){let[i]=ro();return Wb(()=>new Set(i.map(({name:e})=>e)),[i])}var Qr=new Map;function Y(i){if(typeof i!="object"||i===null)throw new Error("Input data isn't a valid object type");this.data=i}Y.isConditional=function(i){return(""+i).indexOf("?")===0};Y.parse=function(i){if(i=""+i,Y.isConditional(i)&&(i=i.slice(1)),Qr.has(i))return Qr.get(i).map(r=>r);let e=i.length,t=[],n="";for(let r=0;r<e;r++){let s=i[r];if(s===".")n.length&&(t.push(n),n="");else if(s==="["){for(n.length&&(t.push(n),n=""),r=r+1;i[r]!=="]"&&r<e;)n+=i[r],r+=1;if(n.length===0)n=1/0;else if(isNaN(n)){if(!/^"[^"]+"$/.test(n))return Qr.set(i,[]),[];n=JSON.parse(n)}else n=+n;if(t.push(n),n="",i.length-1>r&&i[r+1]!=="."&&i[r+1]!=="[")return Qr.set(i,[]),[]}else n+=s}return n&&t.push(n),Qr.set(i,t),t.map(r=>r)};Y.sanitizeKey=function(i){return i===1/0?i="[]":+i==i?i=`[${i}]`:(i=i.trim(),/( |\.|")/.test(i)&&!/^\["[^"]+"\]$/.test(i)&&(i=`["${i}"]`)),i};Y.validate=function(i=""){return i=""+i,i.length?Y.parse(i).length>0:!1};Y.pointer=function(i,e=!1){if(!Array.isArray(i))return"";let t=i.reduce((n,r)=>(r===1/0?r="[]":+r==r?r=`[${r}]`:(r=Y.sanitizeKey(r),r[0]!=="["&&n.length>0&&(r="."+r)),n+r),"");return e?"?"+t:t};Y.prototype.getData=function(){return this.data};Y.prototype.get=function(i,e=[]){if(i=""+i,!i)return this.data;if(E(this.data,i))return this.data[i];if(i.indexOf("[]")!==-1)return this.getExpanded(i,e);let t=null;try{let n=Y.parse(i);t=this.data;for(let r of n){if(!E(t,r))return;t=t[r]}}catch{return null}return e.push(t),t};Y.prototype.getExpanded=function(i,e=[]){let t=/\[\]$/.test(i),n=i.split("[]"),r=n[0],s=n.slice(1).filter((c,O)=>c||O!==n.length-2).join("[]"),o;if(r)o=this.get(r);else{if(!Array.isArray(this.data))return[];o=this.data}if(!s.length||!Array.isArray(o))return o;let a=Object.isFrozen(o);o=[...o];let l=a?1:o.length;for(let c=0;c<l;c++)i=`${r}[${c}]${s}`,o[c]=this.get(i,e);return t?(a&&Object.freeze(e),e):(a&&Object.freeze(o),o)};Y.prototype.set=function(i,e,t=!1){if(E(this.data,i))return this.data[i]=e,this.data;if(i.indexOf("[]")!==-1)return this.setExpanded(i,e,t);let n=this.data,r=[];try{let s=Y.parse(i);if(s.length===1)return t?delete n[s[0]]:n[s[0]]=e,this.data=n,n;let o=n;for(let h=0;h<s.length-1;h++){if(!o||typeof o!="object")return n;let f=s[h];if(+f==f){if(!Array.isArray(o))return n;f=+f}if(!E(o,f)){let u=s[h+1]===void 0?"no-key":s[h+1];+u===u?o[f]=[]:o[f]={}}r.push({partial:o,key:f}),o=o[f]}let{partial:a,key:l}=r[r.length-1],c=s.pop(),O=Object.isFrozen(o);if(O&&(o=$l(o)),t){Array.isArray(o)?o.splice(c,1):o&&typeof o=="object"&&delete o[c],O&&(a[l]=Object.freeze(o));for(let h=r.length-1;h>=0;h--){let{partial:f,key:u}=r[h-1]||{},{partial:d,key:p}=r[h];if(Object.keys(d[p]).length)break;let m=Object.isFrozen(d);m&&(d=$l(d)),Array.isArray(d)?d.splice(p,1):delete d[p],m&&f&&(f[u]=Object.freeze(d))}}else o[c]=e,O&&(a[l]=Object.freeze(o))}catch(s){return console.error(s),this.data}return this.data=n,n};Y.prototype.setExpanded=function(i,e,t){let n=i.split("[]"),r=n[0],s=n.slice(1).filter((O,h)=>O||h<n.length-1).join("[]"),o=this.get(r);if(t){if(!Array.isArray(o))return s||this.unset(r),this.data;e=o}let a=Array.isArray(e);if(Array.isArray(o)||(a?o=[]:o=[e],this.set(r,o)),!a&&!t){let O=e;e=[];let h=o.length;for(let f=0;f<h;f++)e.push(JSON.parse(JSON.stringify(O)))}let l=Object.isFrozen(e),c=e.length-1;for(let O=c;O>=0;O--)i=`${r}[${O}]${s}`,t?this.unset(i):this.set(i,e[O]);return l&&!t&&(e=this.get(r),this.set(r,Object.freeze(e))),this.data};Y.prototype.unset=function(i){return E(this.data,i)?(+i==i?Array.isArray(this.data)&&this.data.splice(i,1):delete this.data[i],this.data):this.set(i,null,!0)};Y.prototype.isset=function(i){let e,t=Y.parse(i);switch(t.length){case 0:return!1;case 1:return e=t[0],E(this.data,e);default:e=t.pop();let n=Y.pointer(t),r=this.get(n);if(n.indexOf("[]")===-1)return e===1/0&&Array.isArray(r)?!0:E(r,e);if(!Array.isArray(r))return!1;if(e===1/0)return!0;for(let s of r)if(E(s,e))return!0;return!1}};function Ci(i){if(!i)return{type:"null"};let e=Array.isArray(i)?"array":typeof i=="object"?"object":i;switch(e){case"array":return{type:"array",items:i.map(t=>Ci(t)),additionalItems:Object.isFrozen(i)};case"object":return{type:"object",properties:Object.keys(i).reduce((t,n)=>(t[n]=Ci(i[n]),t),{}),additionalProperties:!Object.isFrozen(i)};default:return{type:e}}}function Sr(i,e){if(i.type==="object"){let t=Y.parse(e),n=Object.keys(i.properties).reduce((r,s)=>(r[s]=Sr(i.properties[s],Y.pointer(t.concat(s))),r),{});return i.additionalProperties===!1&&Object.freeze(n),n}else if(i.type==="array"){let n=(Array.isArray(i.items)?i.items:[i.items]).map((r,s)=>Sr(r,`${e}[${s}]`));return i.additionalItems===!0&&Object.freeze(n),n}return i.type}function mn(i,e=[]){if(!Array.isArray(e)||!e.length)return i;let t=new Y(i);for(let n of e){if(!(Y.validate(n.from)&&Y.validate(n.to)))continue;let s;if(t.isset(n.from))s=t.get(n.from);else{if(Y.isConditional(n.from))continue;s={type:"null"}}(n.cast!=="copy"&&n.from!==n.to||n.cast==="null")&&t.unset(n.from),n.cast!=="null"&&t.set(n.to,br(s,n))}return t.data}function so(i){return Object.entries(i).map(([e,t])=>{let n=Ci(t);return{name:e,label:e,schema:n}})}function gn(i){let e=new Y({});return i.forEach(({name:t,schema:n})=>{let r=Y.parse(t),s=Y.pointer(r);e.set(s,Sr(n,s))}),e.data}function br(i,e){if(e.from.indexOf("[]")!==-1)return Zb(i,e);switch(e.cast){case"join":case"json":case"concat":case"csv":return"string";case"count":return"integer";case"sum":return"number";case"copy":case"inherit":return i;case"not":case"and":case"or":case"xor":return"boolean";default:return e.cast}}function Zb(i,e){if(!Array.isArray(i))return[];let t=Object.isFrozen(i);if(t&&(i=[...i]),!(e.from.replace(/\[\]$/,"").indexOf("[]")!==-1))return i.map(a=>br(a,{cast:e.cast,from:"",to:""}));let r=e.from.split("[]"),s=r[0],o=r.slice(1).filter((a,l)=>a||l<r.length-1).join("[]");for(let a=0;a<i.length;a++){let l=`${s}[${a}]${o}`;i[a]=br(i[a],{from:l,to:"",cast:e.cast})}return t?Object.freeze(i):i}var Vb={boolean:["integer","null"],integer:["number","boolean","null"],number:["integer","boolean","null"],string:["integer","number","boolean","null"],null:["integer","number","boolean","string","array","object"],array:["integer","number","boolean","string","null"],object:[]};function xt(i,e,t=!0){if(!i||!e)return!1;if(i.type!==e.type){if(t)return!1;if(Vb[e.type]?.includes(i.type))if(e.type==="array"&&i.type!=="array")i={type:"array",items:[{type:i.type}]},i.items.type==="null"&&(i.items=[]);else return e.type;else return!1}let n;if(i.type==="object"){let r=Object.keys(i.properties||{}),s=Object.keys(e.properties||{});if(r>s&&e.additionalProperties===!1)return!1;if(e.additionalProperties)return!0;n=r.reduce((o,a)=>o&&(s.includes(a)?o&&xt(i[a],e[a],t):!1),!0)}else if(i.type==="array")if(Array.isArray(i.items))if(Array.isArray(e.items)){if(e.maxItems&&e.maxItems<i.items.length)return!1;n=i.items.reduce((r,s,o)=>r&&r&&xt(s,e.items[o]),!0)}else{if(i.maxItems&&e.items.length>i.maxItems)return!1;n=i.items.reduce((r,s)=>r&&r&&xt(s,i.items,t),!0)}else Array.isArray(e.items)?n=e.items.reduce((r,s)=>r&&r&&xt(i.items,s,t),!0):n=xt(i.items,e.items,t);return n}var Ab=wp.apiFetch,{createContext:jb,useContext:uO,useState:hO,useEffect:fO,useMemo:oo,useRef:Yb}=wp.element,{__:xr}=wp.i18n,ao=jb({jobs:[],isLoading:!1,step:0,setStep:()=>{},stage:[]});function Ub(i,e){let t=new Set,n=new Set,r=new Set,s=new Set;return e?(e.input.filter(o=>o.required).forEach(o=>s.add(o.name)),Object.keys(i).forEach(o=>{if(s.has(o)){s.delete(o);let a=Ci(i[o]),l=e.input.find(O=>O.name===o),c=xt(a,l.schema,!1);c&&c!==!0&&n.add(o)}}),Array.from(s).length?[i,{missing:s,exit:t,enter:r,mutated:n}]:(e.output.forEach(o=>{if((Array.isArray(o.requires)?o.requires.filter(h=>!E(i,h)):[]).length)return;let l=e.input.find(h=>h.name===o.name),c=E(i,o.name),O=!1;l?(xt(l.schema,o.schema)||(n.add(o.name),O=!0),c||(r.add(o.name),O=!0)):(O=!0,r.add(o.name)),O&&(i[o.name]=Sr(o.schema))}),e.input.forEach(o=>{let a=E(i,o.name);!e.output.find(c=>c.name===o.name)&&a&&(delete i[o.name],t.add(o.name))}),[i,{missing:s,enter:r,exit:t,mutated:n}])):[i,{exit:t,mutated:n,enter:r,missing:s}]}function vr({children:i,formId:e,includeFiles:t,customFields:n=[],mutations:r=[],workflow:s=[]}){let[o]=K(),[,a]=N(),[l]=dn(),[c,O]=hO(!1),[h,f]=hO(0),[u,d]=hO([]),p=Yb(),m=x=>(p.current&&(p.current.abort(),p.current=null),!o||!x.length?Promise.resolve([]):(p.current=new AbortController,O(!0),Ab({path:`forms-bridge/v1/${o}/jobs/workflow`,method:"POST",data:{jobs:x},signal:p.current.signal}).catch(Q=>{if(Q.name==="AbortError"){p.current=null;return}return a(xr("Loading workflow job error","forms-bridge")),[]}).finally(()=>{p.current=null,O(!1)}))),[g]=at(),y=oo(()=>g.find(x=>x._id===e),[g,e]);fO(()=>{p.current&&(p.current.abort(),p.current=null),d([])},[o]),fO(()=>{if(!s.length){u.length&&d([]);return}let x=s.filter(Q=>u.find(w=>w.name===Q)===void 0).reduce((Q,w)=>(Q.includes(w)||Q.push(w),Q),[]);if(x.length)m(x).then(Q=>{Q!==void 0&&(Q=u.filter(w=>s.indexOf(w.name)!==-1).concat(Q).sort((w,k)=>s.indexOf(w.name)-s.indexOf(k.name)),d(Q))});else{let Q=s.map(w=>u.find(k=>k.name===w));Q.length<u.length&&d(Q)}},[u,s]);let S=oo(()=>{let x=s.map(Q=>u.find(w=>w.name===Q)).filter(Q=>Q).map(Q=>({...Q}));return[{name:"form-job",title:xr("Form submission","forms-bridge"),description:xr("Form submission after mappers has been applied","forms-bridge"),mappers:r[0]||[],input:[],output:[]}].concat(x.map((Q,w)=>({...Q,mappers:r[w+1]||[]}))).concat([{name:"output-job",title:xr("Output payload","forms-bridge"),description:xr("Workflow output payload","forms-bridge"),mappers:[],input:[],output:[]}])},[s,r,u]),v=oo(()=>y?y.fields.filter(({is_file:x})=>t||!x).reduce((x,{name:Q,label:w,is_file:k,schema:V})=>(t&&k?(x.push({name:Q,label:w,schema:{type:"string"}}),x.push({name:Q+"_filename",label:Q+"_filename",schema:{type:"string"}})):x.push({name:Q,label:w,schema:V}),x),[]).concat(n.map(({name:x})=>({name:x,label:x,schema:{type:"string"}}))):[],[y,n,t]),b=oo(()=>{let x=gn(v),Q,w;for(w=0;w<=h;w++)Q?.missing&&!Array.from(Q.missing).length&&(x=mn(x,S[w-1]?.mappers||[])),[x,Q]=Ub(x,S[w]);let k=so(x);return S[w-1]?.name==="form-job"&&k.forEach(V=>Q.enter.add(V.name)),[k,Q]},[h,S,v]);return fO(()=>{if(!l?.name)return;let x=s.findIndex(k=>l.name===k);if(x===-1)return;let Q={...S[x+1]};delete Q.mappers,Se(l,Q)&&m([l.name]).then(k=>{k!==void 0&&(k=u.slice(0,x).concat(k).concat(u.slice(x+1,u.lenght)),d(k))})},[l,u,S]),React.createElement(ao.Provider,{value:{jobs:u,workflow:S,isLoading:c,step:h,setStep:f,stage:b}},i)}function $n(){let{stage:i}=uO(ao);return i}function Dt(){let{step:i,setStep:e,workflow:t=[]}=uO(ao);return[i,e,t.length-1]}function lo(){let{step:i,workflow:e,isLoading:t}=uO(ao);if(!t)return e?.[i]}var{useState:Mb}=wp.element,{Popover:Eb}=wp.components;function yn({title:i,tags:e,onChange:t,onFocusOutside:n}){let[r,s]=Mb(0);return React.createElement(Eb,{onFocusOutside:n,offset:5,placement:"bottom-start"},React.createElement("div",{style:{position:"relative",paddingTop:"2.6em",maxHeight:"350px"}},React.createElement("label",{htmlFor:"bridge-tags-list",style:{position:"fixed",top:"0px",left:"0px",width:"100%",padding:"0.5em 0.75em",borderBottom:"1px solid",backgroundColor:"white"}},React.createElement("strong",null,i)),React.createElement("ul",{id:"bridge-tags-list",style:{width:"max-content",height:"100%",overflowY:"auto",margin:0}},e.map(({label:o,value:a},l)=>React.createElement("li",{key:o,style:{padding:"0.5em 1em",cursor:"pointer"},tabIndex:"0",role:"button",onKeyDown:c=>{r===l&&c.key==="Enter"&&(c.stopPropagation(),c.preventDefault(),t(a))},onFocus:()=>s(l),onClick:c=>{c.preventDefault(),c.stopPropagation(),t(a)}},o)))))}var{BaseControl:Db,TextControl:Bb,Button:Oo}=wp.components,{useEffect:Kd,useState:Jd,useRef:ep,useMemo:Lb}=wp.element,{__:J}=wp.i18n,Gb=[{label:J("Submission ID","forms-bridge"),value:"$submission_id"},{label:J("Form ID","forms-bridge"),value:"$form_id"},{label:J("Form title","forms-bridge"),value:"$form_title"},{label:J("Site title","forms-bridge"),value:"$site_site"},{label:J("Site description","forms-bridge"),value:"$site_description"},{label:J("Site URL","forms-bridge"),value:"$site_url"},{label:J("Blog URL","forms-bridge"),value:"$blog_url"},{label:J("Admin email","forms-bridge"),value:"$admin_email"},{label:J("WP Version","forms-bridge"),value:"$wp_version"},{label:J("IP address","forms-bridge"),value:"$ip_address"},{label:J("Referer","forms-bridge"),value:"$referer"},{label:J("User agent","forms-bridge"),value:"$user_agent"},{label:J("Browser locale","forms-bridge"),value:"$browser_locale"},{label:J("Page locale","forms-bridge"),value:"$locale"},{label:J("Page language","forms-bridge"),value:"$language"},{label:J("Datetime","forms-bridge"),value:"$datetime"},{label:J("GMT Datetime","forms-bridge"),value:"$gmt_datetime"},{label:J("ISO Date","forms-bridge"),value:"$iso_date"},{label:J("ISO GMT Date","forms-bridge"),value:"$gmt_iso_date"},{label:J("UTC Date","forms-bridge"),value:"$utc_date"},{label:J("Timestamp","forms-bridge"),value:"$timestamp"},{label:J("User ID","forms-bridge"),value:"$user_id"},{label:J("user_login","forms-bridge"),value:"$user_login"},{label:J("User name","forms-bridge"),value:"$user_name"},{label:J("User email","forms-bridge"),value:"$user_email"}],Ib=`.scrollbar-hide {
     1(()=>{var{Component:rS}=wp.element,ul=class extends rS{constructor(e){super(e),this.state={hasError:!1,err:null}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){console.error(e,t.componentStack)}render(){return this.state.hasError?this.props.fallback:this.props.children}},Gu=ul;var{createContext:sS,useContext:oS,useState:aS,useEffect:lS}=wp.element,{Notice:OS}=wp.components,Iu=sS([]);function dl({children:i}){let[e,t]=aS([]),n=r=>{t(r?[...e,r]:e.slice(1))};return lS(()=>{e.length&&window.scrollTo({left:0,top:0,behavior:"smooth"})},[e]),React.createElement(Iu.Provider,{value:[e[0],n]},e.length&&React.createElement("div",{style:{marginBottom:"calc(-8px)"}},React.createElement(OS,{status:"error",onRemove:()=>n(null),politeness:"assertive"},e[0]))||null,i)}function F(){return oS(Iu)}function pl({show:i}){if(i)return React.createElement("div",{style:{position:"absolute",zIndex:10,top:"0px",left:"0px",right:"0px",bottom:"0px",margin:"auto",backdropFilter:"blur(0.5px)",backgroundColor:"#ffffff1f",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement("img",{src:"/wp-content/plugins/forms-bridge/assets/spinner.gif",height:"67px",width:"67px"}))}var{createContext:cS,useContext:hS,useState:fS}=wp.element,Nu=cS([]);function ml({children:i}){let[e,t]=fS([]),n=r=>{t(r?[...e,!!r]:e.slice(1))};return React.createElement(Nu.Provider,{value:[e.length>0,n]},i,React.createElement(pl,{show:e.length}))}function ue(){return hS(Nu)}var{useEffect:Fu,useState:uS,useRef:dS}=wp.element;function I(){let i=dS(document.querySelector("#forms-bridge")).current,[e,t]=uS(()=>new URLSearchParams(window.location.search).get("tab")||"general");return Fu(()=>{let n=({detail:r})=>{e!==r&&t(r)};return i.addEventListener("tab",n),()=>i.removeEventListener("tab",n)},[e]),Fu(()=>{let n=new URLSearchParams(window.location.search);if(n.get("tab")===e)return;let r=new URLSearchParams(n.toString());r.set("tab",e),window.history.replaceState({from:`${window.location.pathname}?${n.toString()}`},"",`${window.location.pathname}?${r.toString()}`),i.dispatchEvent(new CustomEvent("tab",{detail:e}))},[e]),[e,t]}var{createContext:pS,useContext:mS,useMemo:gS,useEffect:Hu,useRef:$S,useState:yS,useCallback:QS}=wp.element,SS=wp.apiFetch,{__:bS}=wp.i18n,Ku=pS({backend:{},credential:{},bridge:{}});function gl({children:i}){let[e]=I(),[t,n]=yS({}),r=$S(t);r.current=t;let[,s]=ue(),[,o]=F(),a=QS(c=>{!c||r.current[c]||(s(!0),SS({path:`forms-bridge/v1/${c}/schemas`}).then(O=>n({...r.current,[c]:O})).catch(()=>o(bS("Schema loading error","forms-bridge"))).finally(()=>s(!1)))},[t]);Hu(()=>{a("http")},[]),Hu(()=>{e&&e!=="general"&&e!=="http"&&e!=="forms"&&a(e)},[a,e]);let l=gS(()=>{let{bridge:c}=r.current[e]||{},{backend:O,credential:h}=r.current.http||{};return{bridge:c,credential:h,backend:O}},[e,t]);return React.createElement(Ku.Provider,{value:l},i)}function ri(){return mS(Ku)}function zi(i,e=!1){try{i=new URL(i)}catch{return!1}return e===!0&&(i.hash!==""||i.search!=="")||/[^-a-zA-Z0-9._+]+/.test(i.hostname)?!1:i.protocol==="http:"||i.protocol==="https:"}function rr(i){if(!i?.name)return!1;let e=zi(i.base_url)&&Array.isArray(i.headers);return!e||!i.headers.find(({name:n})=>n==="Content-Type")?.value?!1:e}function si(i,e){return i.sort((t,n)=>e.includes(t.name)?e.includes(n.name)?e.indexOf(t.name)-e.indexOf(n.name):-1:1)}function Ce(i){return i[0]?.value===""?i:[{label:"",value:""}].concat(i)}function ln(i,e="forms-bridge-export"){let t=JSON.stringify(i),n=new Blob([t],{type:"application/json"}),r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download=e+".json",document.body.appendChild(s),s.click(),document.body.removeChild(s)}function oi(){return new Promise((i,e)=>{let t=document.createElement("input");t.type="file",t.accept="application/json",t.addEventListener("cancel",function(){document.body.removeChild(t),e()}),t.addEventListener("change",function(){if(t.files.length===1){let n=new FileReader;n.onerror=function(r){document.body.removeChild(t),e(r)},n.onload=function(){let r;try{r=JSON.parse(n.result),i(r)}catch(s){e(s)}finally{document.body.removeChild(t)}},n.readAsText(t.files[0])}else document.body.removeChild(t)}),document.body.appendChild(t),t.click()})}function $l(i){return i===null||typeof i!="object"?i:Array.isArray(i)?[...i]:{...i}}function E(i,e){return!i||typeof i!="object"?!1:Array.isArray(i)?i.length>e:Object.prototype.hasOwnProperty.call(i,e)}function Es(i="",e={}){let t=new URL(wpApiSettings.root.replace(/wp-json/,"wp-admin"));return t.pathname+=i.replace(/^\/+/,""),t.search=new URLSearchParams(e).toString(),t.toString()}function Se(i,e,t=!0){try{let n=id(i,e,t);return nd(n)>0}catch(n){return(!t||n!=="change")&&console.warn(n),!0}}function xS(i){return Object.prototype.toString.call(i)==="[object Date]"}function ed(i){return Object.prototype.toString.call(i)==="[object Array]"}function td(i){return Object.prototype.toString.call(i)==="[object Object]"}function vS(i){return!td(i)&&!ed(i)}function yl(i){if(td(i))return"object";if(xS(i))return"date";if(ed(i))return"array";if(vS(i))return"value"}function id(i,e,t={},n=!0){return t=Ju(i,e,t,n),t=Ju(e,i,t,n),t}function Ju(i,e,t,n){for(let r in i){if(E(t,r))continue;if(!E(e,r)){if(n)throw"change";t[r]=!0;continue}let s=yl(i[r]),o=yl(e[r]);if(!s||!o)throw"Invalid argument: Only serializable data can be diffed";if(s!==o){if(n)throw"change";t[r]=!0;continue}if(s==="object"||s==="array")t={...t,[r]:id(i[r],e[r],{},n)};else if(i[r]!==e[r]){if(n)throw"change";t[r]=!0}else t[r]=!1}return t}function nd(i,e=0){return Object.keys(i).reduce((t,n)=>yl(i[n])==="object"?nd(i[n],t):i[n]?t+1:t,e)}var{createContext:wS,useContext:or,useState:PS,useEffect:rd,useRef:sr,useMemo:kS,useCallback:TS}=wp.element,sd=wp.apiFetch,{__:od}=wp.i18n,ad=Object.freeze({state:{general:{loading:!0,notification_receiver:"",addons:[],integrations:null,debug:!1},http:{backends:[],credentials:[]}},patch:()=>{},submit:()=>Promise.resolve(),fetch:()=>Promise.resolve()}),On=wS(ad);function Ql({children:i}){let[,e]=ue(),[,t]=F(),n=sr(null),[r,s]=PS(null),o=sr(r);o.current=r;let a=sr(()=>(e(!0),sd({path:"forms-bridge/v1/settings"}).then(f=>{n.current=f,o.current=f,s(f)}).catch(()=>t(od("Settings loading error","forms-bridge"))).finally(()=>e(!1)))).current,l=sr(f=>{Se(o.current,n.current)&&(f.preventDefault(),f.returnValue=!0)}).current;rd(()=>(window.addEventListener("beforeunload",l),a(),()=>{window.removeEventListener("beforeunload",l)}),[]),rd(()=>{window.__wpfbInvalidated===!0&&(O(r).then(()=>{window.__wpfbReload&&window.location.reload()}).finally(()=>{window.__wpfbReload=!1}),window.__wpfbInvalidated=!1)},[r]);let c=TS(f=>s({...r,...f}),[r]),O=sr(f=>(e(!0),sd({path:"forms-bridge/v1/settings",method:"POST",headers:{"Content-Type":"application/json"},data:f}).catch(()=>(t(od("Settings submission error","forms-bridge")),{success:!1})).then(u=>{n.current=u,o.current=u,s(u)}).finally(()=>e(!1)))).current,h=r||ad.state;return React.createElement(On.Provider,{value:{state:h,patch:c,submit:O,fetch:a}},i)}function ai(){let{state:i,submit:e}=or(On);return[i,t=>e(t)]}function ot(){let{fetch:i}=or(On);return i}function ar(){let{state:{general:i},patch:e}=or(On);return[i,t=>e({general:t})]}function Ds(){let{state:{http:i},patch:e}=or(On);return[i,t=>e({http:t})]}function Ls(){let{state:i,patch:e}=or(On);return[kS(()=>Object.keys(i).reduce((n,r)=>(r!=="general"&&r!=="http"&&(n[r]=i[r]),n),{}),[i]),e]}var ld=ar;function Od(i,e){return i.map(t=>{let n=!!e.find(({name:r})=>r===t.name)?.enabled;return{...t,enabled:n}})}function cn(){let[i,e]=ar();return[i.addons||[],t=>{e({...i,addons:Od(i.addons||[],t)})}]}function li(){let[i,e]=ar();return[i.integrations||[],t=>{e({...i,integrations:Od(i.integrations||[],t)})}]}function cd(){let[i,e]=ar();return[i.debug,t=>{window.__wpfbInvalidated=!0,e({...i,debug:t})}]}var{createContext:zS,useContext:XS,useState:RS,useEffect:hd,useRef:Sl}=wp.element,qS=wp.apiFetch,{__:_S}=wp.i18n,fd=zS([]);function bl({children:i}){let[e]=ai(),[t,n]=ue(),[,r]=F(),[s,o]=RS([]),a=Sl(!1),[l]=li(),c=Sl(l);hd(()=>(a.current||(a.current=Se(l,c.current)),()=>{c.current=l}),[l]),hd(()=>{t||window.__wpfbInvalidated||a.current&&O().then(()=>a.current=!1)},[e,t,l]);let O=Sl(()=>(n(!0),qS({path:"forms-bridge/v1/forms"}).then(o).catch(()=>r(_S("Forms loading error","forms-bridge"))).finally(()=>n(!1)))).current;return React.createElement(fd.Provider,{value:[s,O]},i)}function at(){return XS(fd)}var{PanelBody:ud,ToggleControl:CS,__experimentalSpacer:WS}=wp.components,{useMemo:xl,useCallback:ZS}=wp.element,{__:Bs}=wp.i18n;function vl({loading:i}){let[e,t]=li(),n=ZS(a=>{let l=e.map(({name:c,enabled:O})=>(a===c&&(O=!O),{name:c,enabled:O}));window.__wpfbInvalidated=!0,t(l)},[e]),r=xl(()=>e.length===0,[e]),s=xl(()=>e.length>1,[e]),o=xl(()=>e.reduce((a,{enabled:l})=>a&&!l,!0),[e]);if(s||r)return i?React.createElement(ud,{title:Bs("Form builders","forms-bridge"),initialOpen:!1}):React.createElement(ud,{title:Bs("Form builders","forms-bridge"),initialOpen:r||o},r&&React.createElement(React.Fragment,null,React.createElement("p",null,Bs("It seems you have no available form builders. If you want to use Forms Bridge, you should install, at least one of the following plugins before you can create form bridges.","forms-bridge")),React.createElement("ul",null,React.createElement("li",null,React.createElement("a",{href:Es("plugin-install.php",{s:"contact form 7",tab:"search",type:"term"})},"Contact Form 7")),React.createElement("li",null,React.createElement("a",{href:"https://www.gravityforms.com/",target:"_blank"},"GravityForms")),React.createElement("li",null,React.createElement("a",{href:"https://wpforms.com/",target:"_blank"},"WPForms")),React.createElement("li",null,React.createElement("a",{href:Es("plugin-install.php",{s:"ninja forms",tab:"search",type:"term"})},"NinjaForms")),React.createElement("li",null,React.createElement("a",{href:Es("plugin-install.php",{s:"woocommerce",tab:"search",type:"term"})},"WooCommerce"))))||React.createElement("p",null,Bs("Select which form builder plugins you want Forms Bridge to work","forms-bridge")),React.createElement(WS,{paddingBottom:"5px"}),e.map(({name:a,title:l,enabled:c})=>React.createElement("div",{key:a,style:{display:"flex",justifyContent:"left",height:"2em"}},React.createElement(CS,{__nextHasNoMarginBottom:!0,label:l,checked:c,onChange:()=>n(a)}))))}var{useMemo:VS,useCallback:AS}=wp.element,{PanelBody:jS,__experimentalSpacer:dd}=wp.components,{__:pd}=wp.i18n;function wl(){let[i,e]=cn(),t=AS(r=>{let s=i.map(({name:o,enabled:a})=>(o===r&&(a=!a),{name:o,enabled:a}));window.__wpfbInvalidated=!0,window.__wpfbReload=!0,e(s)},[i]),n=VS(()=>i.sort((r,s)=>r.name>s.name?1:-1),[i]);return React.createElement(jS,{title:pd("Add-ons","forms-bridge"),initialOpen:!1},React.createElement("p",null,pd("Each add-on allows you to create API specific bridges and comes with a library of bridge templates and workflow jobs","forms-bridge")),React.createElement(dd,{paddingBottom:"5px"}),React.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"20px"}},n.map(({name:r,title:s,enabled:o,logo:a})=>React.createElement("button",{key:r,tabIndex:0,style:{width:"200px",height:"180px",borderRadius:"5px",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",cursor:"pointer",padding:"20px",color:o?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"inherit",border:o?"2px solid":"none"},onClick:()=>t(r)},React.createElement("div",{style:{flex:1,display:"flex",alignItems:"center"}},React.createElement("img",{alt:r,src:a,width:"100px",height:"50px",style:{marginTop:"-8px",objectFit:"contain",objectPosition:"center",marginLeft:"5px"}})),React.createElement("h4",{style:{margin:0,fontSize:"1rem"}},s)))),React.createElement(dd,{paddingY:"calc(10px)"}))}var YS=wp.apiFetch,{useState:Pl,useEffect:md,useRef:US}=wp.element;function kl({debug:i}){let[e,t]=Pl([]),[n,r]=Pl(!1),[s,o]=Pl(!1),a=US(null),l=()=>(r(!0),YS({path:"forms-bridge/v1/logs?lines=1000",signal:AbortSignal.timeout(3e3)}).then(c=>{o(!1),t(c)}).catch(()=>o(!0)).finally(()=>r(!1)));return md(()=>{if(i)return setTimeout(l,1e3),a.current=setInterval(()=>l(),1e4),()=>{clearInterval(a.current)}},[i]),md(()=>{s&&t([])},[s]),{loading:n,error:s,logs:e}}var{useEffect:gd,useRef:$d}=wp.element,{__experimentalSpacer:yd,ToggleControl:MS,PanelBody:ES,PanelRow:Qd}=wp.components,{__:hn}=wp.i18n;function Tl(){let[i,e]=cd(),{logs:t,loading:n,error:r}=kl({debug:i}),s=$d(!0),o=$d(null);return gd(()=>{if(!i||!o.current)return;let a=c=>{let O=c.target.children[0].offsetHeight-c.target.clientHeight;s.current=c.target.scrollTop===Math.max(0,O)},l=o.current;return l.addEventListener("scroll",a),()=>{l.removeEventListener("scroll",a)}},[i]),gd(()=>{!o.current||!s.current||o.current.scrollTo(0,o.current.scrollHeight)},[t]),React.createElement(ES,{title:hn("Debug","forms-bridge"),initialOpen:!!i},React.createElement("p",null,hn("Activate the debug mode and open the loggin console to see bridged form submissions logs","forms-bridge")),React.createElement(yd,{paddingBottom:"5px"}),React.createElement(Qd,null,React.createElement(MS,{label:hn("Logging","forms-bridge"),help:hn("When debug mode is activated, logs will be write to the log file and readed from there. Make sure to deactivate the debug mode once you've done to erase this file contents.","forms-bridge"),checked:!!i,onChange:()=>e(!i),__nextHasNoMarginBottom:!0})),i&&React.createElement(React.Fragment,null,React.createElement(yd,{paddingY:"calc(8px)"}),React.createElement(Qd,null,React.createElement("div",{ref:o,style:{height:"500px",width:"100%",background:"black",color:r?"red":"white",overflowY:"auto",fontFamily:"monospace"}},React.createElement(DS,{logs:t,error:r,loading:n})))))}function DS({loading:i,error:e,logs:t}){return e?React.createElement("p",{style:{textAlign:"center"}},hn("Log lines loading error \u{1F915}","forms-bridge")):i&&!t.length?React.createElement("p",{style:{textAlign:"center"}},hn("Loading...","forms-bridge")):React.createElement("pre",{style:{width:"max-content",paddingLeft:"1.5em",paddingRight:"1em",margin:0}},t.map((n,r)=>React.createElement("p",{key:r,style:{margin:0,fontSize:"12px"}},n)))}var LS=wp.apiFetch,{useState:Sd,useEffect:BS,useCallback:zl}=wp.element,{__experimentalSpacer:GS,Button:Xi,Modal:bd}=wp.components,{__:he}=wp.i18n;function Xl(){let[i,e]=ue(),[t,n]=F(),[r,s]=ai(),o=ot(),[a,l]=Sd(!1),[c,O]=Sd(!1),h=zl(()=>{let d=new Blob([JSON.stringify(r)],{type:"application/json"}),p=URL.createObjectURL(d),m=document.createElement("a"),g=new Date,Q=String(g.getFullYear()),x=String(g.getMonth()+1);x.length===1&&(x="0"+x);let v=String(g.getDate());v.length===1&&(v="0"+v),m.download=`${Q}${x}${v}-forms-bridge.json`,m.href=p,document.body.appendChild(m),m.click(),document.body.removeChild(m)},[r]),f=zl(()=>{oi().then(d=>{s(d).catch(()=>{n(he("It has been an error with config import","forms-bridge"))})}).catch(d=>{d.name==="SyntaxError"?n(he("JSON syntax error","forms-bridge")):n(he("Something went wrong with the file upload","forms-bridge"))})},[s]),u=zl(()=>{e(!0),LS({path:"forms-bridge/v1/settings",method:"DELETE"}).then(o).catch(()=>{n(he("Wipe config error","forms-bridge"))}).finally(()=>e(!1))},[o]);return BS(()=>()=>{a&&(l(!1),c&&(a==="import"?f():u(),O(!1)))},[a,c]),React.createElement(React.Fragment,null,React.createElement("p",null,he("Export or import your configuration as a JSON to migrate your bridges to, or from, any other WordPress instance","forms-bridge")),React.createElement(GS,{paddingBottom:"5px"}),React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Xi,{disabled:!!t||i,variant:"secondary",description:he("Export Forms Bridge config as JSON","forms-bridge"),onClick:h,style:{width:"150px",justifyContent:"center"},__next40pxDefaultSize:!0},he("Download config","forms-bridge")),React.createElement(Xi,{disabled:!!t||i,variant:"primary",description:he("Import Forms Bridge JSON config","forms-bridge"),onClick:()=>l("import"),style:{width:"150px",justifyContent:"center"},__next40pxDefaultSize:!0},he("Import config","forms-bridge")),React.createElement(Xi,{disabled:!!t||i,variant:"primary",description:he("Wipe Forms Bridge settings","forms-bridge"),onClick:()=>l("wipe"),style:{width:"150px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},he("Wipe config","forms-bridge"))),a==="import"&&React.createElement(bd,{title:he("Config import warning","forms-bridge"),onRequestClose:()=>l(!1),size:"small"},React.createElement("p",null,he("Import a new configuration is a destructive action. Your current configuration will be replaced with the new one. If there are some errors on the new config, Forms Bridge will filter it to avoid bugs.","forms-bridge")),React.createElement("p",null,he("Are you sure to continue?","forms-bridge")),React.createElement("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"center"}},React.createElement(Xi,{variant:"primary",description:he("Continue","forms-bridge"),onClick:()=>O(!0)},he("Continue","forms-bridge")),React.createElement(Xi,{variant:"primary",isDestructive:!0,description:he("Cancel","forms-bridge"),onClick:()=>O(!1)},he("Cancel","forms-bridge")))),a==="wipe"&&React.createElement(bd,{title:he("Wipe config warning","forms-bridge"),onRequestClose:()=>l(!1),size:"small"},React.createElement("p",null,he("You are going to wipe Forms Bridge config. After that, Forms Bridge will be reset to factory defaults. All your data will be lost.","forms-bridge")),React.createElement("p",null,he("Are you sure to continue?","forms-bridge")),React.createElement("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"center"}},React.createElement(Xi,{variant:"primary",description:he("Continue","forms-bridge"),onClick:()=>O(!0)},he("Continue","forms-bridge")),React.createElement(Xi,{variant:"primary",isDestructive:!0,description:he("Cancel","forms-bridge"),onClick:()=>O(!1)},he("Cancel","forms-bridge")))))}var{PanelBody:xd,PanelRow:IS,TextControl:NS,__experimentalSpacer:FS}=wp.components,{useEffect:HS}=wp.element,{__:Oi}=wp.i18n;function Rl(){let[{loading:i,notification_receiver:e,debug:t,...n},r]=ld(),s=o=>r({notification_receiver:e,debug:t,...n,...o});return HS(()=>{let o=document.querySelector("#general .addon-logo");o&&o.removeAttribute("src")},[]),React.createElement(React.Fragment,null,React.createElement(IS,null,React.createElement(NS,{label:Oi("Error notification receiver","forms-bridge"),help:Oi("Email address where submission errors will be sent with the error log and the submission data","forms-bridge"),onChange:o=>s({notification_receiver:o}),value:e||"",style:{width:"300px"},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(FS,{paddingY:"calc(8px)"}),React.createElement(vl,{loading:i}),React.createElement(wl,null),React.createElement(Tl,null),React.createElement(xd,{title:Oi("Import / Export","forms-bridge"),initialOpen:!1},React.createElement(Xl,null)),React.createElement(xd,{title:Oi("Credits","forms-bridge"),initialOpen:!1},React.createElement("ul",null,React.createElement("li",null,"\u{1F3E0}"," ",React.createElement("a",{href:"https://formsbridge.codeccoop.org",target:"_blank"},Oi("Website","forms-bridge"))),React.createElement("li",null,"\u{1F4D4}"," ",React.createElement("a",{href:"https://formsbridge.codeccoop.org/documentation/",target:"_blank"},Oi("Documentation","forms-bridge"))),React.createElement("li",null,"\u{1F4AC}"," ",React.createElement("a",{href:"https://wordpress.org/support/plugin/forms-bridge/",target:"_blank"},Oi("Support","forms-bridge"))),React.createElement("li",null,"\u{1F4B5}"," ",React.createElement("a",{href:"https://buymeacoffee.com/codeccoop",target:"_blank"},Oi("Donate","forms-bridge")))),React.createElement("p",null,React.createElement("strong",null,"Forms Bridge")," has been created by"," ",React.createElement("a",{href:"https://www.codeccoop.org",target:"_blank"},"C\xF2dec"),", a cooperative web development studio based on Barcelona."),React.createElement("p",null,"Please rate our plugin on"," ",React.createElement("a",{href:"https://wordpress.org/support/plugin/forms-bridge/reviews/?new-post",target:"_blank"},"WordPress.org")," ","and help us to maintain this plugin alive \u{1F496}")))}var vd=Ds;function lt(){let[i,e]=Ds();return[i.backends||[],t=>e({...i,backends:t})]}function ci(){let[i,e]=Ds();return[i.credentials||[],t=>e({...i,credentials:t})]}var{useMemo:KS}=wp.element;function Yt(){let[i]=lt();return KS(()=>new Set(i.map(({name:e})=>e)),[i])}function ql({width:i=40,height:e=58.5}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 40 58.5"},React.createElement("rect",{width:"40",height:"7.5808687",x:"0",y:"0",style:{fill:"#ffffff",strokeWidth:4.99998,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:9}}),React.createElement("path",{d:"M 0.43682956,9.0838308 3.2975745,53.79041 h 0.011404 c 0.2208728,2.623009 2.202482,4.721113 4.8482263,4.721113 H 31.69339 c 2.645747,0 4.627355,-2.098104 4.848227,-4.721113 h 0.0114 L 39.413767,9.0838308 H 34.077348 5.7732537 Z",style:{fill:"#ffffff",strokeWidth:4.99998,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:9}}))}var{useRef:JS}=wp.element,{Button:eb}=wp.components,{__:wd}=wp.i18n;function Ut({onClick:i,variant:e="primary",isDestructive:t=!0,disabled:n=!1,size:r="default",style:s={},children:o,icon:a=!1,label:l}){s={justifyContent:"center",...s},r=="compact"&&(s.width="40px");let c=JS();function O(){clearTimeout(c.current),c.current=setTimeout(()=>alert(wd("Double click to remove","forms-bridge")),300)}return React.createElement(eb,{variant:e,onClick:O,onDoubleClick:h=>{i(h),clearTimeout(c.current),window.__wpfbInvalidated=!!t},style:s,showTooltip:!0,label:l||wd("Double click to remove","forms-bridge"),disabled:n,isDestructive:!0,__next40pxDefaultSize:!0},a&&React.createElement("div",{style:{opacity:n?.5:1}},React.createElement(ql,{width:"12",height:"20"}))||o)}function be({children:i,style:e={},min:t="200px",max:n="300px",isResponsive:r=!1}){let s=r?"100%":"15vw";return r&&(n=s),React.createElement("div",{style:{maxWidth:"100%",width:`clamp(${t}, ${s}, ${n})`,...e}},i)}var{useEffect:tb,useMemo:ib}=wp.element,{SelectControl:nb}=wp.components,{__:lr}=wp.i18n,Or={"application/json":lr("JSON","forms-bridge"),"application/x-www-form-urlencoded":lr("URL Encoded","forms-bridge"),"multipart/form-data":lr("Binary files","forms-bridge")},pt="Content-Type",Gs="application/json";function _l({headers:i,setHeaders:e}){let t=ib(()=>i.find(({name:r})=>r===pt)?.value,[i]),n=r=>{i[0]?.name!==pt?e([{name:pt,value:r},...i]):e([{name:pt,value:r},...i.slice(1)])};return tb(()=>{t===void 0&&i.length&&e([{name:pt,value:Gs},...i])},[t]),React.createElement(be,null,React.createElement(nb,{label:lr("Content encoding"),value:Or[t]?t:"",onChange:n,options:Object.keys(Or).map(r=>({label:Or[r],value:r})).concat([{label:lr("Custom encoding","forms-bridge"),value:""}]),__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}))}var{TextControl:Pd,Button:kd}=wp.components,{useEffect:rb,useMemo:sb}=wp.element,{__:Cl}=wp.i18n;function cr({headers:i,setHeaders:e}){let t=(o,a,l)=>{let c=i.map((O,h)=>(a===h&&(O[o]=l),{...O}));e(c)},n=(o,a="Accept",l=Gs)=>{let c=i.slice(0,o).concat([{name:a,value:l}]).concat(i.slice(o,i.length));e(c)},r=o=>{let a=i.slice(0,o).concat(i.slice(o+1));e(a)};rb(()=>{i.length&&i.find(o=>o.name===pt)||n(0,pt,Gs)},[i]);let s=sb(()=>i.sort((o,a)=>o.name===pt?-1:a.name===pt?1:0),[i]);return React.createElement(React.Fragment,null,React.createElement("div",{className:"components-base-control__label"},React.createElement("label",{className:"components-base-control__label",style:{fontSize:"11px",textTransform:"uppercase",fontWeight:500,marginBottom:"calc(8px)"}},Cl("HTTP Headers","forms-bridge")),React.createElement("table",{style:{width:"calc(100% + 10px)",maxWidth:"900px",borderSpacing:"5px",margin:"0 -5px"}},React.createElement("colgroup",null,React.createElement("col",{span:"1",style:{width:"clamp(150px, 15vw, 300px)"}}),React.createElement("col",{span:"1",style:{width:"auto"}}),React.createElement("col",{span:"1",style:{width:"85px"}})),React.createElement("tbody",null,s.map(({name:o,value:a},l)=>React.createElement("tr",{key:l},React.createElement("td",null,React.createElement(Pd,{disabled:o==="Content-Type"&&l===0,placeholder:Cl("Header-Name","forms-bridge"),value:o,onChange:c=>t("name",l,c),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",null,React.createElement(Pd,{disabled:o===pt&&Or[a]&&l===0,placeholder:Cl("Value","forms-bridge"),value:a,onChange:c=>t("value",l,c),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",null,React.createElement("div",{style:{display:"flex",marginLeft:"0.45em",gap:"0.45em"}},React.createElement(kd,{size:"compact",variant:"secondary",disabled:!o||!a,onClick:()=>n(l+1),style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(kd,{disabled:o==="Content-Type"&&l===0,variant:"secondary",onClick:()=>r(l),style:{width:"40px",height:"40px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},"-")))))))))}var{useState:ob,useEffect:ab,useRef:Td}=wp.element;function Pe(i=1080){let[e,t]=ob(window.innerWidth<=i),n=Td(),r=Td(()=>{clearTimeout(n.current),n.current=setTimeout(()=>t(window.innerWidth<=i),100)}).current;return ab(()=>(window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}),[]),e}function Mt({width:i=26,height:e=26,color:t="#000000"}){return React.createElement("svg",{width:i,height:e,viewBox:"-1 0 26 26",fill:"none"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.676 14.248C17.676 15.8651 16.3651 17.176 14.748 17.176H7.428C5.81091 17.176 4.5 15.8651 4.5 14.248V6.928C4.5 5.31091 5.81091 4 7.428 4H14.748C16.3651 4 17.676 5.31091 17.676 6.928V14.248Z",stroke:t,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"#ffffff00"}),React.createElement("path",{d:"M10.252 20H17.572C19.1891 20 20.5 18.689 20.5 17.072V9.75195",stroke:t,strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",fill:"#ffffff00"}))}function Et({width:i=100,height:e=145,color:t="#000000"}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 100 145"},React.createElement("g",{transform:"translate(-582.90398,-1448.5647)"},React.createElement("path",{style:{fill:t,strokeWidth:1},d:"m 669.08313,1526.3787 h -13.82086 v 33.5929 33.5931 h -22.37222 -22.37221 v -33.5931 -33.5929 h -13.83073 c -11.61145,0 -13.82303,-0.02 -13.78259,-0.1256 0.0391,-0.1018 19.69892,-30.7023 45.71154,-71.15 2.31274,-3.5961 4.23104,-6.5384 4.26292,-6.5384 0.0319,0 5.49256,8.4526 12.13488,18.7835 6.64231,10.3309 17.88488,27.8169 24.98352,38.8577 7.09864,11.0409 12.9066,20.0965 12.9066,20.1235 0,0.027 -6.21938,0.049 -13.82085,0.049 z"})))}function Ri({width:i=100,height:e=145,color:t="#000000"}){return React.createElement("div",{style:{transform:"translateY(-2px) rotate(180deg)"}},React.createElement(Et,{width:i,height:e,color:t}))}var{useMemo:lb}=wp.element,{TextControl:zd,SelectControl:Ob}=wp.components,{__:hr}=wp.i18n;function fr({state:i,setState:e,errors:t}){let[n]=ci(),r=lb(()=>Ce(n.map(({name:s})=>({value:s,label:s})).sort((s,o)=>s.name>o.name?1:-1)),[n]);return React.createElement(React.Fragment,null,React.createElement(be,null,React.createElement(zd,{label:hr("Name","forms-bridge"),help:t.name&&hr("This name is already in use","forms-bridge"),value:i.name,onChange:s=>e({...i,name:s}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(be,null,React.createElement(zd,{label:hr("Base URL","forms-bridge"),help:t.base_url&&hr("Invalid base URL","forms-bridge"),value:i.base_url,onChange:s=>e({...i,base_url:s}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(_l,{headers:i.headers,setHeaders:s=>e({...i,headers:s})}),React.createElement(be,null,React.createElement(Ob,{label:hr("Authentication","forms-bridge"),value:i.credential||"",onChange:s=>e({...i,credential:s}),options:r,__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})))}var{Button:Xd}=wp.components,{useState:cb,useEffect:Wl,useMemo:Zl,useRef:Vl}=wp.element,{__:Al}=wp.i18n;function jl({update:i,remove:e,data:t,copy:n}){let[r]=ue(),s=Pe(),o=Vl(t.name),[a,l]=cb({...t}),c=Yt(),O=Zl(()=>!a.name||a.name.trim()===o.current.trim()?!1:a.name!==o.current&&c.has(a.name.trim()),[c,a.name]),h=Zl(()=>!zi(a.base_url,!0),[a.base_url]),f=Zl(()=>!O&&!h&&rr(a),[a,O,h]),u=Vl();Wl(()=>{clearTimeout(u.current),f&&(a.name!==t.name?u.current=setTimeout(()=>{o.current=a.name,i(a)},1e3):Se(a,t)&&i(a))},[f,a]),Wl(()=>{t.name!==o.current&&(o.current=t.name,l(t))},[t.name]);let d=Vl(!1);Wl(()=>(!r&&d.current&&Se(t,a)&&l(t),()=>{d.current=r}),[r,t,a]);function p(){let m={...t};ln(m,t.name+" backend config")}return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:s?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(fr,{state:a,setState:l,errors:{name:O,base_url:h}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ut,{label:Al("Delete","forms-bridge"),onClick:()=>e(t),icon:!0}),React.createElement(Xd,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:n,label:Al("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(Xd,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:p,label:Al("Download","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Ri,{width:"12",height:"20",color:"gray"})))),React.createElement("div",{style:s?{paddingTop:"2rem",borderTop:"1px solid"}:{paddingLeft:"2rem",borderLeft:"1px solid",flex:1}},React.createElement(cr,{headers:a.headers,setHeaders:m=>l({...a,headers:m})})))}var{Button:Rd}=wp.components,{useState:hb,useMemo:Yl,useCallback:fb}=wp.element,{__:Is}=wp.i18n,qd={name:"",base_url:"https://",headers:[{name:"Content-Type",value:"application/json"}],authentication:{}};function Ul({add:i}){let e=Pe(),[t,n]=hb(qd),[r,s]=F(),o=Yt(),a=Yl(()=>t.name?o.has(t.name.trim()):!1,[o,t.name]),l=Yl(()=>!zi(t.base_url,!0),[t.base_url]),c=()=>{window.__wpfbInvalidated=!0,n(qd),i({...t})},O=Yl(()=>!a&&!l&&rr(t),[t,a,l]),h=fb(()=>{oi().then(f=>{if(!rr(f)){s(Is("Invalid backend config","forms-bridge"));return}let d=1;for(;o.has(f.name);)f.name=f.name.replace(/\([0-9]+\)/,"")+` (${d})`,d++;f.headers=Array.isArray(f.headers)&&f.headers.filter(p=>p&&p.name&&p.value)||[],i(f)}).catch(f=>{f&&(console.error(f),s(Is("An error has ocurred while uploading the backend config","forms-bridge")))})},[o]);return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:e?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(fr,{state:t,setState:n,errors:{name:a,base_url:l}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Rd,{variant:"primary",onClick:c,style:{width:"100px",justifyContent:"center"},disabled:a||!O,__next40pxDefaultSize:!0},Is("Add","forms-bridge")),React.createElement(Rd,{disabled:!!r,variant:"tertiary",size:"compact",style:{width:"40px",height:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:h,__next40pxDefaultSize:!0,label:Is("Upload","forms-bridge"),showTooltip:!0},React.createElement(Et,{width:"12",height:"20",color:"gray"})))),React.createElement("div",{style:e?{paddingTop:"2rem",borderTop:"1px solid"}:{paddingLeft:"2rem",borderLeft:"1px solid",flex:1}},React.createElement(cr,{headers:t.headers,setHeaders:f=>n({...t,headers:f})})))}function qi({name:i}){return React.createElement("div",{style:{position:"relative",padding:"0px 5px"}},React.createElement("span",null,i))}function _i({width:i=30,height:e=30}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 30 30"},React.createElement("path",{d:"M 2.622057,29.862373 C 1.828663,29.690276 1.123542,29.19942 0.655787,28.493598 -0.033852,27.452962 -0.001626,28.119212 9.16e-4,14.954001 0.003016,4.075681 0.012016,3.372831 0.157468,2.730124 0.469143,1.352914 1.392042,0.445513 2.777525,0.154064 3.411524,0.020696 3.979927,0.002724 7.604454,0.001448 L 11.712762,4.8e-5 V 1.685006 3.369963 H 7.54125 3.369737 v 11.626209 11.626209 h 11.587535 c 6.373144,0 11.607885,-2e-6 11.632757,-4e-6 0.02487,-1e-6 0.04316,-1.857667 0.04063,-4.128146 l -0.0046,-4.128143 h 1.686967 1.686968 v 4.206886 c 0,4.848747 -0.02041,5.049055 -0.604115,5.927982 -0.468374,0.705269 -1.186385,1.192115 -2.015216,1.366413 -0.855959,0.180003 -23.927215,0.175391 -24.758611,-0.0049 z M 19.971514,13.353291 V 10.0255 H 16.64095 13.310386 l 0.02285,-1.663896 0.02285,-1.663896 3.307715,-0.02204 3.307714,-0.02204 V 3.326814 0 h 1.68546 1.685459 V 3.327791 6.655583 H 26.671217 30 v 1.684958 1.684958 h -3.328783 -3.328783 v 3.327791 3.327792 h -1.68546 -1.68546 z",style:{strokeWidth:1}}))}var{useRef:ub,useEffect:db}=wp.element,{TabPanel:pb}=wp.components,{__:_d}=wp.i18n,mb=`.backends-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
     2.backends-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`;function Ml({backends:i,setBackends:e}){let t=Yt(),n=i.map(({name:l},c)=>({index:c,name:String(c),title:l,icon:React.createElement(qi,{name:l})})).concat([{index:-1,name:"new",title:_d("Add a backend","forms-bridge"),icon:React.createElement("div",{style:{marginBottom:"-2px"}},React.createElement(_i,{width:"15",height:"15"}))}]),r=(l,c)=>{l===-1&&(l=i.length),c.headers?.length||(c.headers=[{name:"Content-Type",value:"application/json"}]),c.name=c.name.trim(),c.base_url=c.base_url.trim();let O=i.slice(0,l).concat([c]).concat(i.slice(l+1,i.length));e(O)},s=({name:l})=>{let c=i.findIndex(h=>h.name===l),O=i.slice(0,c).concat(i.slice(c+1));e(O)},o=l=>{let c=i.findIndex(f=>f.name===l),h={...i[c]};for(h.name=h.name.trim(),h.base_url=h.base_url.trim();t.has(h.name);)h.name+="-copy";window.__wpfbInvalidated=!0,e(i.concat(h))},a=ub(document.createElement("style"));return db(()=>(a.current.appendChild(document.createTextNode(mb)),document.head.appendChild(a.current),()=>{document.head.removeChild(a.current)}),[]),React.createElement("div",{style:{width:"100%"}},React.createElement("h3",{style:{marginTop:0,fontSize:"13px"}},_d("Backends","forms-bridge")),React.createElement(pb,{tabs:n,className:"backends-tabs-panel"},l=>{let c=i[l.index];return c?React.createElement(jl,{data:c,remove:s,update:O=>r(l.index,O),copy:()=>o(c.name)}):React.createElement(Ul,{add:O=>r(l.index,O)})}))}var Cd=wp.apiFetch,{createContext:gb,useContext:Zd,useRef:Ns,useState:Fs,useMemo:El,useEffect:Wd}=wp.element,Dl=gb([]);function ur({children:i,bridge:e}){let[t]=I(),[n]=lt(),[r,s]=Fs(!1),[o,a]=Fs(!1),l=Ns(new Map).current,c=Ns(new Map).current,[,O]=Fs(0),[,h]=Fs(0),f=El(()=>n.find(({name:S})=>e?.backend===S),[n,e]),u=El(()=>f?.name?JSON.stringify({addon:t,method:e?.method||"",backend:f?.name}):"",[t,e?.method,f?.name]),d=(S,b)=>{l.set(S,b),O(y=>y+1)},p=(S,b,y)=>{s(!0),Cd({path:`forms-bridge/v1/${t}/backend/endpoints`,method:"POST",data:{method:b,backend:y}}).then(w=>d(S,w)).catch(()=>d(S,[])).finally(()=>s(!1))},m=Ns();Wd(()=>{clearTimeout(m.current),!(!e||r||l.get(u))&&(m.current=setTimeout(()=>p(u,e.method,f),400))},[u,e,f]);let g=El(()=>!e?.method||!f?.name?"":JSON.stringify({addon:t,method:e.method,endpoint:e.endpoint||"/",backend:f.name}),[t,e?.method,e?.endpoint,f?.name]),Q=(S,b)=>{c.set(S,b),h(y=>y+1)},x=(S,b,y,w)=>{a(!0),Cd({path:`forms-bridge/v1/${t}/backend/endpoint/schema`,method:"POST",data:{endpoint:b,method:y,backend:w}}).then(k=>Q(S,k)).catch(()=>Q(S,[])).finally(()=>a(!1))},v=Ns();return Wd(()=>{clearTimeout(v.current),!(!e||!f||o||c.get(g))&&(v.current=setTimeout(()=>x(g,e.endpoint||"/",e.method,f),400))},[g,e,f]),React.createElement(Dl.Provider,{value:{schema:c.get(g),endpoints:l.get(u)}},i)}function Hs(){let{schema:i}=Zd(Dl);return i||[]}function Vd(){let{endpoints:i}=Zd(Dl);return i||[]}var{BaseControl:$b,SelectControl:yb}=wp.components,{useEffect:Qb,useMemo:Ll}=wp.element,dr=["enabled","is_valid","workflow","custom_fields","mutations"],Ks=["name","form_id","backend","endpoint","method"];function pr({data:i,setData:e,schema:t,errors:n={}}){let r=Vd(),[s]=lt(),o=Ll(()=>s.length?s.map(({name:O})=>({label:O,value:O})).sort((O,h)=>O.label>h.label?1:-1):[{label:"",value:""}],[s]),[a]=at(),l=Ll(()=>{let O=[{label:"",value:""}];return a.length?O.concat(a.map(({_id:h,title:f})=>({label:f,value:h})).sort((h,f)=>h.label>f.label?1:-1)):O},[a]),c=Ll(()=>t?Object.keys(t.properties).filter(O=>!dr.includes(O)).map(O=>({...t.properties[O],label:t.properties[O].title||O,name:O,value:t.properties[O].const})).map(O=>O.name==="form_id"?{...O,type:"select",options:l}:O.name==="backend"?{...O,type:"select",options:o}:O.enum?{...O,type:"select",options:O.enum.map(h=>({label:h,value:h}))}:O):[],[t,l,o]);return Qb(()=>{let O=c.reduce((h,f)=>{if(f.default&&!E(i,f.name))h[f.name]=f.default;else if(f.value&&f.value!==i[f.name])h[f.name]=f.value;else if(f.type==="select"){if(!f.options.length&&i[f.name])h[f.name]="";else if(!i[f.name]||f.options.length===1){let u=f.options[0]?.value||"";u!==i[f.name]&&(h[f.name]=u)}}else f.enum&&f.enum.length===1&&i[f.name]!==f.enum[0]&&(h[f.name]=f.enum[0]);return!a.length&&i.form_id&&(h.form_id=""),!s.length&&i.backend&&(h.backend=""),h},{});Object.keys(O).length&&e({...i,...O})},[i,c]),c.filter(O=>!O.value).sort((O,h)=>Ks.includes(O.name)&&Ks.includes(h.name)?Ks.indexOf(O.name)-Ks.indexOf(h.name):0).map(O=>{switch(O.type){case"string":return React.createElement(Bl,{key:O.name,error:n[O.name],label:O.label,value:i[O.name]||"",setValue:h=>e({...i,[O.name]:h}),datalist:O.name==="endpoint"?r:[]});case"select":return React.createElement(Gl,{key:O.name,error:n[O.name],label:O.label,value:i[O.name]||"",setValue:h=>e({...i,[O.name]:h}),options:O.options})}})}function Bl({label:i,value:e,setValue:t,error:n,disabled:r,datalist:s=[]}){return React.createElement(be,null,React.createElement($b,{label:i,help:n},React.createElement("input",{name:i,type:"text",list:"datalist-"+i,value:e,onChange:o=>t(o.target.value),disabled:r,style:{height:"40px",paddingRight:"12px",paddingLeft:"12px",borderColor:"var(--wp-components-color-gray-600,#949494)",fontSize:"13px",width:"100%",border:"1px solid #949494",borderRadius:"2px"}}),React.createElement("datalist",{id:"datalist-"+i},s.map(o=>React.createElement("option",{key:o,value:o})))))}function Gl({label:i,options:e,value:t,setValue:n,optional:r,error:s,disabled:o}){return r&&(e=Ce(e)),React.createElement(be,null,React.createElement(yb,{disabled:o,label:i,value:t,onChange:n,options:e,help:s,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))}var{useEffect:Sb,useMemo:Ad}=wp.element,mr=["refresh_token","refresh_token_expires_at"];function gr({data:i,setData:e,schema:t,schemas:n,disabled:r=!1,errors:s}){let o=Ad(()=>n.oneOf.reduce((l,c)=>c.properties.schema.const?l.concat(c.properties.schema.const):l.concat(c.properties.schema.enum||[]),[]).map(l=>({value:l,label:l})),[n]),a=Ad(()=>t?Object.keys(t.properties).filter(l=>t.properties[l].public!==!1).map(l=>({...t.properties[l],label:t.properties[l].title||l,name:l,value:t.properties[l].const})).map(l=>l.name==="schema"?{...l,type:"select",options:o}:l.enum?{...l,type:"select",options:l.enum.map(c=>({label:c,value:c}))}:l):[],[t]);return Sb(()=>{let l=a.reduce((c,O)=>{if((O.name==="realm"||O.name==="scope"||O.name==="database")&&!E(i,O.name)&&(c[O.name]=i.realm||i.scope||i.database||"",O.name!=="realm"&&delete i.realm,O.name!=="scope"&&delete i.scope,O.name!=="database"&&delete i.database),O.default&&!E(i,O.name))c[O.name]=O.default;else if(O.value&&O.value!==i[O.name])c[O.name]=O.value;else if(O.type==="select"){if(!O.options.length&&i[O.name])c[O.name]="";else if(!i[O.name]||O.options.length===1){let h=O.options[0]?.value||"";h!==i[O.name]&&(c[O.name]=h)}}else O.enum&&O.enum.length===1&&i[O.name]!==O.enum[0]&&(i[O.name]=O.enum[0]);return c},{});Object.keys(l).length&&e({...i,...l})},[i,a]),a.filter(l=>!l.value).sort(l=>l.name==="name"?-1:0).map(l=>{switch(l.type){case"string":return React.createElement(Bl,{key:l.name,label:l.label,value:i[l.name]||"",setValue:c=>e({...i,[l.name]:c}),error:s[l.name],disabled:r});case"select":return React.createElement(Gl,{key:l.name,label:l.label,value:i[l.name]||"",setValue:c=>e({...i,[l.name]:c}),options:l.options,optional:!t.required.includes(l.name),error:s[l.name],disabled:r})}})}var{useMemo:bb}=wp.element,{Button:jd}=wp.components,Yd=wp.apiFetch,{__:Ud}=wp.i18n;function Il({data:i}){let[e,t]=ue(),[n,r]=F(),s=ot(),o=bb(()=>{if(i.refresh_token)return!0;if(!(i.access_token&&i.expires_at))return!1;let c=new Date(i.expires_at);return c.getFullYear()===1970&&(c=new Date(i.expires_at*1e3)),Date.now()<c.getTime()},[i.access_token,i.expires_at]),a=()=>{t(!0),Yd({path:"forms-bridge/v1/oauth/revoke",method:"POST",data:{credential:i}}).then(()=>s()).catch(()=>r("")).finally(()=>t(!1))},l=()=>{t(!0),Yd({path:"forms-bridge/v1/oauth/grant",method:"POST",data:{credential:i}}).then(({success:c,data:O})=>{if(!c)throw"error";let{url:h,params:f}=O,u=document.createElement("form");u.action=h,u.method="GET",u.target="_blank",u.innerHTML=Object.keys(f).reduce((d,p)=>{let m=f[p];return m?d+`<input name="${p}" value="${m}" />`:d},""),u.style.visibility="hidden",document.body.appendChild(u),u.submit(),document.body.removeChild(u)}).catch(()=>r("")).finally(()=>t(!1))};return o?React.createElement(jd,{onClick:a,variant:"secondary",isDestructive:!0,disabled:e||n,style:{justifyContent:"center",marginLeft:"auto"},__next40pxDefaultSize:!0},Ud("Revoke","forms-bridge")):React.createElement(jd,{variant:"primary",onClick:l,disabled:e||n,style:{justifyContent:"center",marginLeft:"auto"},__next40pxDefaultSize:!0},Ud("Authorize","forms-bridge"))}var{Button:Md}=wp.components,{useState:xb,useEffect:Nl,useMemo:$r,useRef:Fl,useCallback:vb}=wp.element,{__:Js}=wp.i18n;function Hl({addon:i,data:e,update:t,remove:n,schema:r,copy:s}){let o=Pe(780),[a]=ue(),l=Fl(e.name),[c,O]=xb({...e}),h=$r(()=>r.oneOf.find(b=>b.properties.schema.const===c.schema||b.properties.schema.enum?.includes(c.schema)),[c.schema]),[f]=ci(),u=$r(()=>new Set(f.map(b=>b.name)),[f]),d=$r(()=>!c.name||l.current.trim()===c.name.trim()?!1:l.current!==c.name&&u.has(c.name.trim()),[u,c.name]),p=vb(b=>!!Object.keys(h.properties).filter(y=>!mr.includes(y)).reduce((y,w)=>{if(!y||!h.required.includes(w))return y;let k=b[w];return h.properties[w].pattern&&(y=y&&new RegExp(h.properties[w].pattern).test(k)),y&&(k||E(h.properties[w],"default"))},!0),[h]),m=$r(()=>p(c),[p,c,d]),g=$r(()=>!!e.refresh_token,[e]),Q=Fl();Nl(()=>{clearTimeout(Q.current),m&&(e.name!==c.name?Q.current=setTimeout(()=>{l.current=c.name,t({...c})},1e3):Se(e,c)&&t({...c}))},[m,c]),Nl(()=>{e.name!==l.current&&(l.current=e.name,O(e))},[e.name]);let x=Fl(!1);Nl(()=>(!a&&x.current&&Se(e,c)&&O(e),()=>{x.current=a}),[a,e,c]);let v=()=>{let b={...e};mr.forEach(y=>delete b[y]),ln(b,b.name+" credential config")},S=!!h.properties.refresh_token;return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:o?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(gr,{disabled:g,data:c,setData:O,schema:h,schemas:r,errors:{name:d?Js("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ut,{label:Js("Delete","forms-bridge"),onClick:()=>n(e),icon:!0}),React.createElement(Md,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:s,label:Js("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(Md,{size:"compact",variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:v,__next40pxDefaultSize:!0,label:Js("Download bridge config","forms-bridge"),showTooltip:!0},React.createElement(Ri,{width:"12",height:"20",color:"gray"})),S&&React.createElement(Il,{addon:i,data:e})||null)))}var{Button:Ed}=wp.components,{useState:wb,useMemo:eo,useCallback:Dd}=wp.element,{__:fn}=wp.i18n;function Kl({add:i,schema:e}){let t=Pe(780),[n,r]=F(),[s,o]=wb({schema:"Basic"}),a=eo(()=>e.oneOf.find(p=>p.properties.schema.const===s.schema||p.properties.schema.enum?.includes(s.schema)),[s.schema]),[l]=ci(),c=eo(()=>new Set(l.map(p=>p.name)),[l]),O=eo(()=>s.name?c.has(s.name.trim()):!1,[c,s.name]),h=()=>{let p={...s,name:s.name.trim()};Object.keys(a.properties).forEach(m=>{a.required.includes(m)&&!p[m]&&(p[m]=a.properties[m].default)}),window.__wpfbInvalidated=!0,o({}),i(p)},f=Dd(p=>!!Object.keys(a.properties).filter(m=>!mr.includes(m)).filter(m=>!["access_token","expires_at"].includes(m)).reduce((m,g)=>{if(!m||!a.required.includes(g))return m;let Q=p[g];return a.properties[g].pattern&&(m=m&&new RegExp(a.properties[g].pattern).test(Q)),m&&(Q||E(a.properties[g],"default"))},!0),[a]),u=eo(()=>f(s),[s]),d=Dd(()=>{oi().then(p=>{if(!f(p)){r(fn("Invalid credential config","forms-bridge"));return}let g=1;for(;c.has(p.name);)p.name=p.name.replace(/ \([0-9]+\)/,"")+` (${g})`,g++;i(p)}).catch(p=>{p?.name==="SyntaxError"?r(fn("JSON syntax error","forms-bridge")):r(fn("An error has ocurred while uploading the credential config","forms-bridge"))})},[c]);return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:t?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(gr,{data:s,setData:o,schema:a,schemas:e,errors:{name:O?fn("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ed,{variant:"primary",onClick:h,style:{width:"100px",justifyContent:"center"},disabled:!u||O,__next40pxDefaultSize:!0},fn("Add","forms-bridge")),React.createElement(Ed,{variant:"tertiary",size:"compact",style:{width:"40px",height:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"grey"},disabled:!!n,onClick:d,__next40pxDefaultSize:!0,label:fn("Upload","forms-bridge"),showTooltip:!0},React.createElement(Et,{width:"12",height:"20",color:"gray"})))))}var{useEffect:Pb,useRef:kb,useMemo:Tb}=wp.element,{PanelBody:zb,TabPanel:Xb}=wp.components,{__:Jl}=wp.i18n,Rb=`.credentials-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
     3.credentials-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`;function eO({credentials:i,setCredentials:e}){let[t]=I(),{credential:n}=ri(),r=Tb(()=>new Set(i.map(O=>O.name)),[i]),s=i.map(({name:O},h)=>({index:h,name:String(h),title:O,icon:React.createElement(qi,{name:O})})).concat([{index:-1,name:"new",title:Jl("Add a credential","forms-bridge"),icon:React.createElement("div",{style:{marginBottom:"-2px"}},React.createElement(_i,{width:"15",height:"15"}))}]),o=(O,h)=>{O===-1&&(O=i.length),h.name=h.name.trim();let f=i.slice(0,O).concat([h]).concat(i.slice(O+1,i.length));e(f)},a=({name:O})=>{let h=i.findIndex(u=>u.name===O),f=i.slice(0,h).concat(i.slice(h+1));e(f)},l=O=>{let h=i.findIndex(d=>d.name===O),u={...i[h]};for(u.name=u.name.trim();r.has(u.name);)u.name+="-copy";window.__wpfbInvalidated=!0,e(i.concat(u))},c=kb(document.createElement("style"));if(Pb(()=>(c.current.appendChild(document.createTextNode(Rb)),document.head.appendChild(c.current),()=>{document.head.removeChild(c.current)}),[]),!!n)return React.createElement(zb,{title:Jl("Authentication","forms-bridge"),initialOpen:!1},React.createElement("div",{style:{width:"100%"}},React.createElement("p",null,Jl("HTTP authentication credentials","forms-bridge")),React.createElement(Xb,{tabs:s,className:"credentials-tabs-panel"},O=>{let h=i[O.index];return h?React.createElement(Hl,{addon:t,data:h,schema:n,remove:a,update:f=>o(O.index,f),copy:()=>l(h.name)}):React.createElement(Kl,{add:f=>o(O.index,f),schema:n})})))}var{useEffect:qb}=wp.element,{__experimentalSpacer:_b}=wp.components;function tO(){let[{backends:i=[],credentials:e=[]},t]=vd(),n=r=>{t({backends:i,credentials:e,...r})};return qb(()=>{let r=document.querySelector("#http .addon-logo");r&&r.removeAttribute("src")},[]),React.createElement(React.Fragment,null,React.createElement(Ml,{backends:i,setBackends:r=>n({backends:r})}),React.createElement(_b,{paddingY:"calc(8px)"}),React.createElement(eO,{credentials:e,setCredentials:r=>n({credentials:r})}))}var iO=wp.apiFetch,{createContext:Cb,useContext:Gd,useEffect:Ld,useState:Bd,useCallback:nO}=wp.element,{__:to}=wp.i18n,rO=Cb({job:null,setJob:()=>{},config:null,submit:()=>{},reset:()=>{}});function sO({children:i}){let[,e]=ue(),[,t]=F(),[n]=I(),[r,s]=Bd(null),[o,a]=Bd(null),[l,c]=ai();Ld(()=>{s(null)},[n]),Ld(()=>(r&&O(r),()=>{a(null)}),[r]);let O=nO(u=>iO({path:`forms-bridge/v1/${n}/jobs/${u}`}).then(a).catch(()=>t(to("Job config load error","forms-bridge"))),[n]),h=nO(u=>u?.name?(e(!0),iO({path:`forms-bridge/v1/${n}/jobs/${u.name}`,method:"POST",data:u}).then(d=>{s(d.name),a(d)}).catch(()=>t(to("Job submit error","forms-bridge"))).finally(()=>e(!1))):Promise.reject(),[n]),f=nO(u=>u?(e(!0),iO({path:`forms-bridge/v1/${n}/jobs/${u}`,method:"DELETE"}).then(d=>{d?.name?(s(d.name),a(d)):(a(null),s(null),c(l))}).catch(d=>{console.error(d),t(to("Job reset error","forms-bridge"))}).finally(()=>e(!1))):(t("error",to("Job reset error","forms-bridge")),Promise.resolve()),[n,l]);return React.createElement(rO.Provider,{value:{job:r,setJob:s,config:o,submit:h,reset:f}},i)}function un(){let{job:i,setJob:e}=Gd(rO);return[i,e]}function dn(){let{config:i,submit:e,reset:t}=Gd(rO);return[i,e,t]}var oO=wp.apiFetch,{createContext:Wb,useContext:Nd,useEffect:Zb,useState:Id,useCallback:aO}=wp.element,{__:lO}=wp.i18n,OO=Wb({template:null,setTemplate:()=>{},config:null,submit:()=>{},reset:()=>{}});function cO({children:i}){let[,e]=ue(),[,t]=F(),[n]=I(),[r,s]=Id(null),[o,a]=Id(null),[,l]=at(),c=ot();Zb(()=>{r?O(r):a(null)},[r]);let O=aO(u=>oO({path:`forms-bridge/v1/${n}/templates/${u}`}).then(d=>{u&&a(d)}).catch(()=>t("error",lO("Template config load error","forms-bridge"))),[n]),h=aO(({fields:u,integration:d})=>r?(e(!0),oO({path:`forms-bridge/v1/${n}/templates/${r}/use`,method:"POST",data:{integration:d,fields:u}}).then(({success:p})=>(p&&l().then(c),p)).catch(()=>t(lO("Template submit error","forms-bridge"))).finally(()=>e(!1))):Promise.reject(),[n,r]),f=aO(()=>r?(e(!0),oO({path:`forms-bridge/v1/${n}/templates/${r}`,method:"DELETE"}).then(u=>{a(u||null)}).catch(()=>t(lO("Template reset error","forms-bridge"))).finally(()=>e(!1))):Promise.reject(),[n,r]);return React.createElement(OO.Provider,{value:{template:r,setTemplate:s,config:o,submit:h,reset:f}},i)}function io(){let{template:i,setTemplate:e}=Nd(OO);return[i,e]}function Ee(){let{config:i,submit:e,reset:t}=Nd(OO);return[i,e,t]}var{useMemo:Vb}=wp.element,Fd={title:"",jobs:[],templates:[],bridges:[]};function no(){let[i]=I(),[e,t]=Ls();return[Vb(()=>e[i]?{...Fd,...e[i]}:Fd,[e,i]),r=>t({[i]:r})]}function ro(){let[i,e]=no();return[i.bridges||[],t=>e({...i,bridges:t})]}function pn(){let[i,e]=no();return[i.jobs||[],t=>e({...i,jobs:t})]}function Hd(){let[i,e]=no();return[i.templates||[],t=>e({...i,templates:t})]}var{useMemo:Ab}=wp.element;function yr(){let[i]=ro();return Ab(()=>new Set(i.map(({name:e})=>e)),[i])}var Qr=new Map;function Y(i){if(typeof i!="object"||i===null)throw new Error("Input data isn't a valid object type");this.data=i}Y.isConditional=function(i){return(""+i).indexOf("?")===0};Y.parse=function(i){if(i=""+i,Y.isConditional(i)&&(i=i.slice(1)),Qr.has(i))return Qr.get(i).map(r=>r);let e=i.length,t=[],n="";for(let r=0;r<e;r++){let s=i[r];if(s===".")n.length&&(t.push(n),n="");else if(s==="["){for(n.length&&(t.push(n),n=""),r=r+1;i[r]!=="]"&&r<e;)n+=i[r],r+=1;if(n.length===0)n=1/0;else if(isNaN(n)){if(!/^"[^"]+"$/.test(n))return Qr.set(i,[]),[];n=JSON.parse(n)}else n=+n;if(t.push(n),n="",i.length-1>r&&i[r+1]!=="."&&i[r+1]!=="[")return Qr.set(i,[]),[]}else n+=s}return n&&t.push(n),Qr.set(i,t),t.map(r=>r)};Y.sanitizeKey=function(i){return i===1/0?i="[]":+i==i?i=`[${i}]`:(i=i.trim(),/( |\.|")/.test(i)&&!/^\["[^"]+"\]$/.test(i)&&(i=`["${i}"]`)),i};Y.validate=function(i=""){return i=""+i,i.length?Y.parse(i).length>0:!1};Y.pointer=function(i,e=!1){if(!Array.isArray(i))return"";let t=i.reduce((n,r)=>(r===1/0?r="[]":+r==r?r=`[${r}]`:(r=Y.sanitizeKey(r),r[0]!=="["&&n.length>0&&(r="."+r)),n+r),"");return e?"?"+t:t};Y.prototype.getData=function(){return this.data};Y.prototype.get=function(i,e=[]){if(i=""+i,!i)return this.data;if(E(this.data,i))return this.data[i];if(i.indexOf("[]")!==-1)return this.getExpanded(i,e);let t=null;try{let n=Y.parse(i);t=this.data;for(let r of n){if(!E(t,r))return;t=t[r]}}catch{return null}return e.push(t),t};Y.prototype.getExpanded=function(i,e=[]){let t=/\[\]$/.test(i),n=i.split("[]"),r=n[0],s=n.slice(1).filter((c,O)=>c||O!==n.length-2).join("[]"),o;if(r)o=this.get(r);else{if(!Array.isArray(this.data))return[];o=this.data}if(!s.length||!Array.isArray(o))return o;let a=Object.isFrozen(o);o=[...o];let l=a?1:o.length;for(let c=0;c<l;c++)i=`${r}[${c}]${s}`,o[c]=this.get(i,e);return t?(a&&Object.freeze(e),e):(a&&Object.freeze(o),o)};Y.prototype.set=function(i,e,t=!1){if(E(this.data,i))return this.data[i]=e,this.data;if(i.indexOf("[]")!==-1)return this.setExpanded(i,e,t);let n=this.data,r=[];try{let s=Y.parse(i);if(s.length===1)return t?delete n[s[0]]:n[s[0]]=e,this.data=n,n;let o=n;for(let h=0;h<s.length-1;h++){if(!o||typeof o!="object")return n;let f=s[h];if(+f==f){if(!Array.isArray(o))return n;f=+f}if(!E(o,f)){let u=s[h+1]===void 0?"no-key":s[h+1];+u===u?o[f]=[]:o[f]={}}r.push({partial:o,key:f}),o=o[f]}let{partial:a,key:l}=r[r.length-1],c=s.pop(),O=Object.isFrozen(o);if(O&&(o=$l(o)),t){Array.isArray(o)?o.splice(c,1):o&&typeof o=="object"&&delete o[c],O&&(a[l]=Object.freeze(o));for(let h=r.length-1;h>=0;h--){let{partial:f,key:u}=r[h-1]||{},{partial:d,key:p}=r[h];if(Object.keys(d[p]).length)break;let m=Object.isFrozen(d);m&&(d=$l(d)),Array.isArray(d)?d.splice(p,1):delete d[p],m&&f&&(f[u]=Object.freeze(d))}}else o[c]=e,O&&(a[l]=Object.freeze(o))}catch(s){return console.error(s),this.data}return this.data=n,n};Y.prototype.setExpanded=function(i,e,t){let n=i.split("[]"),r=n[0],s=n.slice(1).filter((O,h)=>O||h<n.length-1).join("[]"),o=this.get(r);if(t){if(!Array.isArray(o))return s||this.unset(r),this.data;e=o}let a=Array.isArray(e);if(Array.isArray(o)||(a?o=[]:o=[e],this.set(r,o)),!a&&!t){let O=e;e=[];let h=o.length;for(let f=0;f<h;f++)e.push(JSON.parse(JSON.stringify(O)))}let l=Object.isFrozen(e),c=e.length-1;for(let O=c;O>=0;O--)i=`${r}[${O}]${s}`,t?this.unset(i):this.set(i,e[O]);return l&&!t&&(e=this.get(r),this.set(r,Object.freeze(e))),this.data};Y.prototype.unset=function(i){return E(this.data,i)?(+i==i?Array.isArray(this.data)&&this.data.splice(i,1):delete this.data[i],this.data):this.set(i,null,!0)};Y.prototype.isset=function(i){let e,t=Y.parse(i);switch(t.length){case 0:return!1;case 1:return e=t[0],E(this.data,e);default:e=t.pop();let n=Y.pointer(t),r=this.get(n);if(n.indexOf("[]")===-1)return e===1/0&&Array.isArray(r)?!0:E(r,e);if(!Array.isArray(r))return!1;if(e===1/0)return!0;for(let s of r)if(E(s,e))return!0;return!1}};function Ci(i){if(!i)return{type:"null"};let e=Array.isArray(i)?"array":typeof i=="object"?"object":i;switch(e){case"array":return{type:"array",items:i.map(t=>Ci(t)),additionalItems:Object.isFrozen(i)};case"object":return{type:"object",properties:Object.keys(i).reduce((t,n)=>(t[n]=Ci(i[n]),t),{}),additionalProperties:!Object.isFrozen(i)};default:return{type:e}}}function Sr(i,e){if(i.type==="object"){let t=Y.parse(e),n=Object.keys(i.properties).reduce((r,s)=>(r[s]=Sr(i.properties[s],Y.pointer(t.concat(s))),r),{});return i.additionalProperties===!1&&Object.freeze(n),n}else if(i.type==="array"){let n=(Array.isArray(i.items)?i.items:[i.items]).map((r,s)=>Sr(r,`${e}[${s}]`));return i.additionalItems===!0&&Object.freeze(n),n}return i.type}function mn(i,e=[]){if(!Array.isArray(e)||!e.length)return i;let t=new Y(i);for(let n of e){if(!(Y.validate(n.from)&&Y.validate(n.to)))continue;let s;if(t.isset(n.from))s=t.get(n.from);else{if(Y.isConditional(n.from))continue;s={type:"null"}}(n.cast!=="copy"&&n.from!==n.to||n.cast==="null")&&t.unset(n.from),n.cast!=="null"&&t.set(n.to,br(s,n))}return t.data}function so(i){return Object.entries(i).map(([e,t])=>{let n=Ci(t);return{name:e,label:e,schema:n}})}function gn(i){let e=new Y({});return i.forEach(({name:t,schema:n})=>{let r=Y.parse(t),s=Y.pointer(r);e.set(s,Sr(n,s))}),e.data}function br(i,e){if(e.from.indexOf("[]")!==-1)return jb(i,e);switch(e.cast){case"join":case"json":case"concat":case"csv":return"string";case"count":return"integer";case"sum":return"number";case"copy":case"inherit":return i;case"not":case"and":case"or":case"xor":return"boolean";default:return e.cast}}function jb(i,e){if(!Array.isArray(i))return[];let t=Object.isFrozen(i);if(t&&(i=[...i]),!(e.from.replace(/\[\]$/,"").indexOf("[]")!==-1))return i.map(a=>br(a,{cast:e.cast,from:"",to:""}));let r=e.from.split("[]"),s=r[0],o=r.slice(1).filter((a,l)=>a||l<r.length-1).join("[]");for(let a=0;a<i.length;a++){let l=`${s}[${a}]${o}`;i[a]=br(i[a],{from:l,to:"",cast:e.cast})}return t?Object.freeze(i):i}var Yb={boolean:["integer","null"],integer:["number","boolean","null"],number:["integer","boolean","null"],string:["integer","number","boolean","null"],null:["integer","number","boolean","string","array","object"],array:["integer","number","boolean","string","null"],object:[]};function xt(i,e,t=!0){if(!i||!e)return!1;if(i.type!==e.type){if(t)return!1;if(Yb[e.type]?.includes(i.type))if(e.type==="array"&&i.type!=="array")i={type:"array",items:[{type:i.type}]},i.items.type==="null"&&(i.items=[]);else return e.type;else return!1}let n;if(i.type==="object"){let r=Object.keys(i.properties||{}),s=Object.keys(e.properties||{});if(r>s&&e.additionalProperties===!1)return!1;if(e.additionalProperties)return!0;n=r.reduce((o,a)=>o&&(s.includes(a)?o&&xt(i[a],e[a],t):!1),!0)}else if(i.type==="array")if(Array.isArray(i.items))if(Array.isArray(e.items)){if(e.maxItems&&e.maxItems<i.items.length)return!1;n=i.items.reduce((r,s,o)=>r&&r&&xt(s,e.items[o]),!0)}else{if(i.maxItems&&e.items.length>i.maxItems)return!1;n=i.items.reduce((r,s)=>r&&r&&xt(s,i.items,t),!0)}else Array.isArray(e.items)?n=e.items.reduce((r,s)=>r&&r&&xt(i.items,s,t),!0):n=xt(i.items,e.items,t);return n}var Ub=wp.apiFetch,{createContext:Mb,useContext:uO,useState:hO,useEffect:fO,useMemo:oo,useRef:Eb}=wp.element,{__:xr}=wp.i18n,ao=Mb({jobs:[],isLoading:!1,step:0,setStep:()=>{},stage:[]});function Db(i,e){let t=new Set,n=new Set,r=new Set,s=new Set;return e?(e.input.filter(o=>o.required).forEach(o=>s.add(o.name)),Object.keys(i).forEach(o=>{if(s.has(o)){s.delete(o);let a=Ci(i[o]),l=e.input.find(O=>O.name===o),c=xt(a,l.schema,!1);c&&c!==!0&&n.add(o)}}),Array.from(s).length?[i,{missing:s,exit:t,enter:r,mutated:n}]:(e.output.forEach(o=>{if((Array.isArray(o.requires)?o.requires.filter(h=>!E(i,h)):[]).length)return;let l=e.input.find(h=>h.name===o.name),c=E(i,o.name),O=!1;l?(xt(l.schema,o.schema)||(n.add(o.name),O=!0),c||(r.add(o.name),O=!0)):(O=!0,r.add(o.name)),O&&(i[o.name]=Sr(o.schema))}),e.input.forEach(o=>{let a=E(i,o.name);!e.output.find(c=>c.name===o.name)&&a&&(delete i[o.name],t.add(o.name))}),[i,{missing:s,enter:r,exit:t,mutated:n}])):[i,{exit:t,mutated:n,enter:r,missing:s}]}function vr({children:i,formId:e,includeFiles:t,customFields:n=[],mutations:r=[],workflow:s=[]}){let[o]=I(),[,a]=F(),[l]=dn(),[c,O]=hO(!1),[h,f]=hO(0),[u,d]=hO([]),p=Eb(),m=b=>(p.current&&(p.current.abort(),p.current=null),!o||!b.length?Promise.resolve([]):(p.current=new AbortController,O(!0),Ub({path:`forms-bridge/v1/${o}/jobs/workflow`,method:"POST",data:{jobs:b},signal:p.current.signal}).catch(y=>{if(y.name==="AbortError"){p.current=null;return}return a(xr("Loading workflow job error","forms-bridge")),[]}).finally(()=>{p.current=null,O(!1)}))),[g]=at(),Q=oo(()=>g.find(b=>b._id===e),[g,e]);fO(()=>{p.current&&(p.current.abort(),p.current=null),d([])},[o]),fO(()=>{if(!s.length){u.length&&d([]);return}let b=s.filter(y=>u.find(w=>w.name===y)===void 0).reduce((y,w)=>(y.includes(w)||y.push(w),y),[]);if(b.length)m(b).then(y=>{y!==void 0&&(y=u.filter(w=>s.indexOf(w.name)!==-1).concat(y).sort((w,k)=>s.indexOf(w.name)-s.indexOf(k.name)),d(y))});else{let y=s.map(w=>u.find(k=>k.name===w));y.length<u.length&&d(y)}},[u,s]);let x=oo(()=>{let b=s.map(y=>u.find(w=>w.name===y)).filter(y=>y).map(y=>({...y}));return[{name:"form-job",title:xr("Form submission","forms-bridge"),description:xr("Form submission after mappers has been applied","forms-bridge"),mappers:r[0]||[],input:[],output:[]}].concat(b.map((y,w)=>({...y,mappers:r[w+1]||[]}))).concat([{name:"output-job",title:xr("Output payload","forms-bridge"),description:xr("Workflow output payload","forms-bridge"),mappers:[],input:[],output:[]}])},[s,r,u]),v=oo(()=>Q?Q.fields.filter(({is_file:b})=>t||!b).reduce((b,{name:y,label:w,is_file:k,schema:V})=>(t&&k?(b.push({name:y,label:w,schema:{type:"string"}}),b.push({name:y+"_filename",label:y+"_filename",schema:{type:"string"}})):b.push({name:y,label:w,schema:V}),b),[]).concat(n.map(({name:b})=>({name:b,label:b,schema:{type:"string"}}))):[],[Q,n,t]),S=oo(()=>{let b=gn(v),y,w;for(w=0;w<=h;w++)y?.missing&&!Array.from(y.missing).length&&(b=mn(b,x[w-1]?.mappers||[])),[b,y]=Db(b,x[w]);let k=so(b);return x[w-1]?.name==="form-job"&&k.forEach(V=>y.enter.add(V.name)),[k,y]},[h,x,v]);return fO(()=>{if(!l?.name)return;let b=s.findIndex(k=>l.name===k);if(b===-1)return;let y={...x[b+1]};delete y.mappers,Se(l,y)&&m([l.name]).then(k=>{k!==void 0&&(k=u.slice(0,b).concat(k).concat(u.slice(b+1,u.lenght)),d(k))})},[l,u,x]),React.createElement(ao.Provider,{value:{jobs:u,workflow:x,isLoading:c,step:h,setStep:f,stage:S}},i)}function $n(){let{stage:i}=uO(ao);return i}function Dt(){let{step:i,setStep:e,workflow:t=[]}=uO(ao);return[i,e,t.length-1]}function lo(){let{step:i,workflow:e,isLoading:t}=uO(ao);if(!t)return e?.[i]}var{useState:Kd,useEffect:Jd,useMemo:Lb,useRef:Bb}=wp.element,{Popover:Gb}=wp.components;function yn({open:i,title:e,tags:t,onChange:n,onRequestClose:r}){let[s,o]=Kd(0),[a,l]=Kd(""),c=Bb();Jd(()=>{c.current&&c.current.focus()},[i]),Jd(()=>{if(!i)return;let h=f=>{f.key==="Escape"&&i&&r()};return document.body.addEventListener("keydown",h),()=>{document.body.removeEventListener("keydown",h)}},[i]);let O=Lb(()=>{if(!a)return t;let h=a.toLowerCase().split(" ").map(f=>f.trim());return t.filter(f=>h.find(u=>f.value.toLowerCase().includes(u)))},[t,a]);if(i)return React.createElement(Gb,{onFocusOutside:r,offset:5,placement:"bottom-start"},React.createElement("div",{style:{position:"relative",marginTop:"62px",minWidth:"300px"}},React.createElement("label",{htmlFor:"bridge-tags-list",style:{position:"fixed",top:"0px",left:"0px",width:"100%",padding:"0.5em 0.75em",borderBottom:"1px solid",backgroundColor:"white"}},React.createElement("strong",null,e)),React.createElement("input",{name:"dropdown-select",ref:c,type:"text",value:a,onChange:h=>l(h.target.value),style:{position:"fixed",top:"32.2px",left:0,boxShadow:"none",outline:"none",border:"none",borderRadius:0,borderBottom:"1px solid",width:"100%"}}),React.createElement("ul",{id:"bridge-tags-list",style:{height:"100%",overflowY:"auto",margin:0,maxHeight:"300px",width:"100%"}},O.map(({label:h,value:f},u)=>React.createElement("li",{key:h,style:{padding:"0.5em 1em",cursor:"pointer"},tabIndex:"0",role:"button",onKeyDown:d=>{s===u&&d.key==="Enter"&&(d.stopPropagation(),d.preventDefault(),n(f))},onFocus:()=>o(u),onClick:d=>{d.preventDefault(),d.stopPropagation(),n(f)}},h)))))}var{BaseControl:Ib,TextControl:Nb,Button:Oo}=wp.components,{useEffect:ep,useState:tp,useRef:ip,useMemo:Fb}=wp.element,{__:J}=wp.i18n,Hb=[{label:J("Submission ID","forms-bridge"),value:"$submission_id"},{label:J("Form ID","forms-bridge"),value:"$form_id"},{label:J("Form title","forms-bridge"),value:"$form_title"},{label:J("Site title","forms-bridge"),value:"$site_site"},{label:J("Site description","forms-bridge"),value:"$site_description"},{label:J("Site URL","forms-bridge"),value:"$site_url"},{label:J("Blog URL","forms-bridge"),value:"$blog_url"},{label:J("Admin email","forms-bridge"),value:"$admin_email"},{label:J("WP Version","forms-bridge"),value:"$wp_version"},{label:J("IP address","forms-bridge"),value:"$ip_address"},{label:J("Referer","forms-bridge"),value:"$referer"},{label:J("User agent","forms-bridge"),value:"$user_agent"},{label:J("Browser locale","forms-bridge"),value:"$browser_locale"},{label:J("Page locale","forms-bridge"),value:"$locale"},{label:J("Page language","forms-bridge"),value:"$language"},{label:J("Datetime","forms-bridge"),value:"$datetime"},{label:J("GMT Datetime","forms-bridge"),value:"$gmt_datetime"},{label:J("ISO Date","forms-bridge"),value:"$iso_date"},{label:J("ISO GMT Date","forms-bridge"),value:"$gmt_iso_date"},{label:J("UTC Date","forms-bridge"),value:"$utc_date"},{label:J("Timestamp","forms-bridge"),value:"$timestamp"},{label:J("User ID","forms-bridge"),value:"$user_id"},{label:J("user_login","forms-bridge"),value:"$user_login"},{label:J("User name","forms-bridge"),value:"$user_name"},{label:J("User email","forms-bridge"),value:"$user_email"}],Kb=`.scrollbar-hide {
    44  -ms-overflow-style: none;
    55  scrollbar-width: none;
     
    3838  outline: 1px solid;
    3939  border-radius: 0px;
    40 }`,Nb={"--wp-components-color-accent":"#cc1818",color:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))",borderColor:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))"};function Fb(i=""){let e={height:"40px",paddingLeft:"12px",paddingRight:"12px",fontSize:"13px",borderRadius:"2px",width:"100%",display:"block"};return i.length&&(!Y.validate(i)||/\[\]/.test(i))?{...e,...Nb}:e}function dO({customFields:i,setCustomFields:e}){let t=Hs(),n=Lb(()=>t.map(u=>({value:u.name,label:`${u.name} | ${u.schema.type}`})),[t]),r=ep(),[s,o]=Jd(-1),[a,l]=Jd(-1),c=(u,d,p)=>{let m=i.map((g,y)=>(d===y&&(g[u]=p),{...g}));e(m)},O=u=>{let d=i.slice(0,u).concat([{name:"",value:""}]).concat(i.slice(u,i.length));u===i.length&&setTimeout(()=>{r.current.scrollTo(0,r.current.children[0].offsetHeight)},100),e(d)},h=u=>{let d=i.slice(0,u).concat(i.slice(u+1));e(d)};Kd(()=>{i.length||O(0)},[i]);let f=ep(document.createElement("style"));return Kd(()=>(f.current.appendChild(document.createTextNode(Ib)),document.head.appendChild(f.current),()=>{document.head.removeChild(f.current)}),[]),React.createElement(React.Fragment,null,React.createElement("div",{ref:r,className:"scrollbar-hide",style:{flex:1}},React.createElement("datalist",{id:"datalist-mappers-api-fields"},t.map(u=>React.createElement("option",{value:u.name}))),React.createElement("table",{style:{width:"calc(100% + 10px)",margin:"0 -5px",borderSpacing:"0px"}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{"aria-hidden":"true"}),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em"}},J("Name","forms-bridge")),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em"}},J("Value","forms-bridge")),React.createElement("th",{"aria-hidden":"true"}))),React.createElement("tbody",null,i.map(({name:u,value:d,index:p},m)=>React.createElement("tr",{key:p},React.createElement("td",{style:{width:0}},m+1,"."),React.createElement("td",null,React.createElement("div",{style:{display:"flex"}},React.createElement("div",{style:{flex:1}},React.createElement(Db,{__nextHasNoMarginBottom:!0},React.createElement("input",{type:"text",value:u,onChange:g=>c("name",m,g.target.value),style:Fb(u),list:"datalist-mappers-api-fields"}))),React.createElement(Oo,{style:{height:"40px",width:"40px",justifyContent:"center",marginLeft:"2px"},disabled:n.length===0,size:"compact",variant:"secondary",onClick:()=>o(m),__next40pxDefaultSize:!0},"{...}",s===m&&React.createElement(yn,{title:J("Fields","forms-bridge"),tags:n,onChange:g=>{o(-1),c("name",m,g)},onFocusOutside:()=>o(-1)})))),React.createElement("td",null,React.createElement("div",{style:{display:"flex"}},React.createElement("div",{style:{flex:1}},React.createElement(Bb,{value:d,onChange:g=>c("value",m,g),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(Oo,{disabled:!u,style:{height:"40px",width:"40px",justifyContent:"center",marginLeft:"2px"},size:"compact",variant:"secondary",onClick:()=>l(m),__next40pxDefaultSize:!0},"$",a===m&&React.createElement(yn,{title:J("Tags","forms-bridge"),tags:Gb,onChange:g=>{l(-1),c("value",m,d+g)},onFocusOutside:()=>l(-1)})))),React.createElement("td",{style:{width:0}},React.createElement("div",{style:{display:"flex",marginLeft:"0.45em",gap:"0.45em"}},React.createElement(Oo,{size:"compact",variant:"secondary",disabled:!u||d==="",onClick:()=>O(m+1),style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(Oo,{size:"compact",variant:"secondary",onClick:()=>h(m),style:{width:"40px",height:"40px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},"-")))))))))}var{Button:Hb,Modal:Kb}=wp.components,{useState:tp,useEffect:ip,useRef:np,useCallback:Jb}=wp.element,{__:pO}=wp.i18n,ex=`.components-modal__frame.no-scrollable .components-modal__content {
     40}`,Jb={"--wp-components-color-accent":"#cc1818",color:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))",borderColor:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))"};function ex(i=""){let e={height:"40px",paddingLeft:"12px",paddingRight:"12px",fontSize:"13px",borderRadius:"2px",width:"100%",display:"block"};return i.length&&(!Y.validate(i)||/\[\]/.test(i))?{...e,...Jb}:e}function dO({customFields:i,setCustomFields:e}){let t=Hs(),n=Fb(()=>t.map(u=>({value:u.name,label:`${u.name} | ${u.schema.type}`})),[t]),r=ip(),[s,o]=tp(-1),[a,l]=tp(-1),c=(u,d,p)=>{let m=i.map((g,Q)=>(d===Q&&(g[u]=p),{...g}));e(m)},O=u=>{let d=i.slice(0,u).concat([{name:"",value:""}]).concat(i.slice(u,i.length));u===i.length&&setTimeout(()=>{r.current.scrollTo(0,r.current.children[0].offsetHeight)},100),e(d)},h=u=>{let d=i.slice(0,u).concat(i.slice(u+1));e(d)};ep(()=>{i.length||O(0)},[i]);let f=ip(document.createElement("style"));return ep(()=>(f.current.appendChild(document.createTextNode(Kb)),document.head.appendChild(f.current),()=>{document.head.removeChild(f.current)}),[]),React.createElement(React.Fragment,null,React.createElement("div",{ref:r,className:"scrollbar-hide",style:{flex:1}},React.createElement("datalist",{id:"datalist-mappers-api-fields"},t.map(u=>React.createElement("option",{key:u.name,value:u.name}))),React.createElement("table",{style:{width:"calc(100% + 10px)",margin:"0 -5px",borderSpacing:"0px"}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{"aria-hidden":"true"}),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em"}},J("Name","forms-bridge")),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em"}},J("Value","forms-bridge")),React.createElement("th",{"aria-hidden":"true"}))),React.createElement("tbody",null,i.map(({name:u,value:d,index:p},m)=>React.createElement("tr",{key:p},React.createElement("td",{style:{width:0}},m+1,"."),React.createElement("td",null,React.createElement("div",{style:{display:"flex"}},React.createElement("div",{style:{flex:1}},React.createElement(Ib,{__nextHasNoMarginBottom:!0},React.createElement("input",{type:"text",value:u,onChange:g=>c("name",m,g.target.value),style:ex(u),list:"datalist-mappers-api-fields"}))),React.createElement(Oo,{style:{height:"40px",width:"40px",justifyContent:"center",marginLeft:"2px"},disabled:n.length===0,size:"compact",variant:"secondary",onClick:()=>o(m),__next40pxDefaultSize:!0},"{...}",React.createElement(yn,{open:s===m,title:J("Fields","forms-bridge"),tags:n,onChange:g=>{o(-1),c("name",m,g)},onRequestClose:()=>o(-1)})))),React.createElement("td",null,React.createElement("div",{style:{display:"flex"}},React.createElement("div",{style:{flex:1}},React.createElement(Nb,{value:d,onChange:g=>c("value",m,g),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(Oo,{disabled:!u,style:{height:"40px",width:"40px",justifyContent:"center",marginLeft:"2px"},size:"compact",variant:"secondary",onClick:()=>l(m),__next40pxDefaultSize:!0},"$",React.createElement(yn,{open:a===m,title:J("Tags","forms-bridge"),tags:Hb,onChange:g=>{l(-1),c("value",m,d+g)},onRequestClose:()=>l(-1)})))),React.createElement("td",{style:{width:0}},React.createElement("div",{style:{display:"flex",marginLeft:"0.45em",gap:"0.45em"}},React.createElement(Oo,{size:"compact",variant:"secondary",disabled:!u||d==="",onClick:()=>O(m+1),style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(Oo,{size:"compact",variant:"secondary",onClick:()=>h(m),style:{width:"40px",height:"40px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},"-")))))))))}var{Button:tx,Modal:ix}=wp.components,{useState:np,useEffect:rp,useRef:sp,useCallback:nx}=wp.element,{__:pO}=wp.i18n,rx=`.components-modal__frame.no-scrollable .components-modal__content {
    4141  overflow: hidden;
    4242}
    4343.components-modal__frame.no-scrollable .components-modal__content > .components-modal__header + div {
    4444  height: 100%;
    45 }`;function mO({customFields:i,setCustomFields:e}){let[t,n]=tp(!1),[r,s]=tp(i);ip(()=>{s(i)},[i]);let o=np(c=>{let O=c.map(({name:h,value:f})=>({name:h,value:f}));s(O)}).current,a=Jb(()=>{let c=r.filter(({name:O,value:h})=>O&&h!=="");e(c),n(!1)},[r]),l=np(document.createElement("style"));return ip(()=>(l.current.appendChild(document.createTextNode(ex)),document.head.appendChild(l.current),()=>{document.head.removeChild(l.current)}),[]),React.createElement(React.Fragment,null,React.createElement(Hb,{variant:"secondary",onClick:()=>n(!0),__next40pxDefaultSize:!0},pO("Custom fields","forms-bridge")," (",i.length,")"),t&&React.createElement(Kb,{title:pO("Custom fields","forms-bridge"),onRequestClose:a,className:"no-scrollable"},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},pO("Add custom fields to the form submission payload","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"760px",maxWidth:"80vw",minHeight:"125px",height:"calc(100% - 2rem)",display:"flex",flexDirection:"column",borderTop:"1px solid",borderBottom:"1px solid"}},React.createElement(dO,{customFields:r.map((c,O)=>({...c,index:O})),setCustomFields:o}))))}var $O=[],ap=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<i.length;e++)(e%2?ap:$O).push(t=t+i[e])})();function tx(i){if(i<768)return!1;for(let e=0,t=$O.length;;){let n=e+t>>1;if(i<$O[n])t=n;else if(i>=ap[n])e=n+1;else return!0;if(e==t)return!1}}function rp(i){return i>=127462&&i<=127487}var sp=8205;function lp(i,e,t=!0,n=!0){return(t?Op:ix)(i,e,n)}function Op(i,e,t){if(e==i.length)return e;e&&cp(i.charCodeAt(e))&&hp(i.charCodeAt(e-1))&&e--;let n=gO(i,e);for(e+=op(n);e<i.length;){let r=gO(i,e);if(n==sp||r==sp||t&&tx(r))e+=op(r),n=r;else if(rp(r)){let s=0,o=e-2;for(;o>=0&&rp(gO(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function ix(i,e,t){for(;e>0;){let n=Op(i,e-2,t);if(n<e)return n;e--}return 0}function gO(i,e){let t=i.charCodeAt(e);if(!hp(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return cp(n)?(t-55296<<10)+(n-56320)+65536:t}function cp(i){return i>=56320&&i<57344}function hp(i){return i>=55296&&i<56320}function op(i){return i<65536?1:2}var M=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=vn(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),Sn.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=vn(this,e,t);let n=[];return this.decompose(e,t,n,0),Sn.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new Vi(this),s=new Vi(e);for(let o=t,a=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new Vi(this,e)}iterRange(e,t=this.length){return new po(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new mo(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Fe(e):Sn.from(Fe.split(e,[]))}},Fe=class i extends M{constructor(e,t=nx(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.text[s],a=r+o.length;if((t?n:a)>=e)return new QO(r,a,n,o);r=a+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new i(fp(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=n.pop(),a=uo(s.text,o.text.slice(),0,s.length);if(a.length<=32)n.push(new i(a,o.length+s.length));else{let l=a.length>>1;n.push(new i(a.slice(0,l)),new i(a.slice(l)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof i))return super.replace(e,t,n);[e,t]=vn(this,e,t);let r=uo(this.text,uo(n.text,fp(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new i(r,s):Sn.from(i.split(r,[]),s)}sliceString(e,t=this.length,n=`
     45}`;function mO({customFields:i,setCustomFields:e}){let[t,n]=np(!1),[r,s]=np(i);rp(()=>{s(i)},[i]);let o=sp(c=>{let O=c.map(({name:h,value:f})=>({name:h,value:f}));s(O)}).current,a=nx(()=>{let c=r.filter(({name:O,value:h})=>O&&h!=="");e(c),n(!1)},[r]),l=sp(document.createElement("style"));return rp(()=>(l.current.appendChild(document.createTextNode(rx)),document.head.appendChild(l.current),()=>{document.head.removeChild(l.current)}),[]),React.createElement(React.Fragment,null,React.createElement(tx,{variant:"secondary",onClick:()=>n(!0),__next40pxDefaultSize:!0},pO("Custom fields","forms-bridge")," (",i.length,")"),t&&React.createElement(ix,{title:pO("Custom fields","forms-bridge"),onRequestClose:a,className:"no-scrollable"},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},pO("Add custom fields to the form submission payload","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"760px",maxWidth:"80vw",minHeight:"125px",height:"calc(100% - 2rem)",display:"flex",flexDirection:"column",borderTop:"1px solid",borderBottom:"1px solid"}},React.createElement(dO,{customFields:r.map((c,O)=>({...c,index:O})),setCustomFields:o}))))}var $O=[],Op=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<i.length;e++)(e%2?Op:$O).push(t=t+i[e])})();function sx(i){if(i<768)return!1;for(let e=0,t=$O.length;;){let n=e+t>>1;if(i<$O[n])t=n;else if(i>=Op[n])e=n+1;else return!0;if(e==t)return!1}}function op(i){return i>=127462&&i<=127487}var ap=8205;function cp(i,e,t=!0,n=!0){return(t?hp:ox)(i,e,n)}function hp(i,e,t){if(e==i.length)return e;e&&fp(i.charCodeAt(e))&&up(i.charCodeAt(e-1))&&e--;let n=gO(i,e);for(e+=lp(n);e<i.length;){let r=gO(i,e);if(n==ap||r==ap||t&&sx(r))e+=lp(r),n=r;else if(op(r)){let s=0,o=e-2;for(;o>=0&&op(gO(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function ox(i,e,t){for(;e>0;){let n=hp(i,e-2,t);if(n<e)return n;e--}return 0}function gO(i,e){let t=i.charCodeAt(e);if(!up(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return fp(n)?(t-55296<<10)+(n-56320)+65536:t}function fp(i){return i>=56320&&i<57344}function up(i){return i>=55296&&i<56320}function lp(i){return i<65536?1:2}var M=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=vn(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),Sn.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=vn(this,e,t);let n=[];return this.decompose(e,t,n,0),Sn.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new Vi(this),s=new Vi(e);for(let o=t,a=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new Vi(this,e)}iterRange(e,t=this.length){return new po(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new mo(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Fe(e):Sn.from(Fe.split(e,[]))}},Fe=class i extends M{constructor(e,t=ax(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.text[s],a=r+o.length;if((t?n:a)>=e)return new QO(r,a,n,o);r=a+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new i(dp(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=n.pop(),a=uo(s.text,o.text.slice(),0,s.length);if(a.length<=32)n.push(new i(a,o.length+s.length));else{let l=a.length>>1;n.push(new i(a.slice(0,l)),new i(a.slice(l)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof i))return super.replace(e,t,n);[e,t]=vn(this,e,t);let r=uo(this.text,uo(n.text,dp(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new i(r,s):Sn.from(i.split(r,[]),s)}sliceString(e,t=this.length,n=`
    4646`){[e,t]=vn(this,e,t);let r="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(r+=n),e<l&&t>s&&(r+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],r=-1;for(let s of e)n.push(s),r+=s.length+1,n.length==32&&(t.push(new i(n,r)),n=[],r=-1);return r>-1&&t.push(new i(n,r)),t}},Sn=class i extends M{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.children[s],a=r+o.length,l=n+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,n,r);r=a+1,n=l+1}}decompose(e,t,n,r){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=r&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?n.push(a):a.decompose(e-o,t-o,n,c)}o=l+1}}replace(e,t,n){if([e,t]=vn(this,e,t),n.lines<this.lines)for(let r=0,s=0;r<this.children.length;r++){let o=this.children[r],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,n),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let O=this.children.slice();return O[r]=l,new i(O,this.length-(t-e)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
    47 `){[e,t]=vn(this,e,t);let r="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(r+=n),e<l&&t>o&&(r+=a.sliceString(e-o,t-o,n)),o=l+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let n=0,[r,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==a)return n;let l=this.children[r],c=e.children[s];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,r)=>n+r.length+1,-1)){let n=0;for(let u of e)n+=u.lines;if(n<32){let u=[];for(let d of e)d.flatten(u);return new Fe(u,t)}let r=Math.max(32,n>>5),s=r<<1,o=r>>1,a=[],l=0,c=-1,O=[];function h(u){let d;if(u.lines>s&&u instanceof i)for(let p of u.children)h(p);else u.lines>o&&(l>o||!l)?(f(),a.push(u)):u instanceof Fe&&l&&(d=O[O.length-1])instanceof Fe&&u.lines+d.lines<=32?(l+=u.lines,c+=u.length+1,O[O.length-1]=new Fe(d.text.concat(u.text),d.length+1+u.length)):(l+u.lines>r&&f(),l+=u.lines,c+=u.length+1,O.push(u))}function f(){l!=0&&(a.push(O.length==1?O[0]:i.from(O,c)),c=-1,l=O.length=0)}for(let u of e)h(u);return f(),a.length==1?a[0]:new i(a,t)}};M.empty=new Fe([""],0);function nx(i){let e=-1;for(let t of i)e+=t.length+1;return e}function uo(i,e,t=0,n=1e9){for(let r=0,s=0,o=!0;s<i.length&&r<=n;s++){let a=i[s],l=r+a.length;l>=t&&(l>n&&(a=a.slice(0,n-r)),r<t&&(a=a.slice(t-r)),o?(e[e.length-1]+=a,o=!1):e.push(a)),r=l+1}return e}function fp(i,e,t){return uo(i,[""],e,t)}var Vi=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Fe?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,a=r instanceof Fe?r.text.length:r.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
    48 `,this;e--}else if(r instanceof Fe){let l=r.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=r.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fe?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},po=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Vi(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},mo=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(M.prototype[Symbol.iterator]=function(){return this.iter()},Vi.prototype[Symbol.iterator]=po.prototype[Symbol.iterator]=mo.prototype[Symbol.iterator]=function(){return this});var QO=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function vn(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function ve(i,e,t=!0,n=!0){return lp(i,e,t,n)}function rx(i){return i>=56320&&i<57344}function sx(i){return i>=55296&&i<56320}function Xe(i,e){let t=i.charCodeAt(e);if(!sx(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return rx(n)?(t-55296<<10)+(n-56320)+65536:t}function Xr(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function Ke(i){return i<65536?1:2}var SO=/\r\n?|\n/,ke=function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i}(ke||(ke={})),Bt=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,r=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(n,r,s),r+=s):r+=o,n+=s}}iterChangedRanges(e,t=!1){bO(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];r<0?e.push(n,r):e.push(r,n)}return new i(e)}composeDesc(e){return this.empty?e:e.empty?this:gp(this,e)}mapDesc(e,t=!1){return e.empty?this:xO(this,e,t)}mapPos(e,t=-1,n=ke.Simple){let r=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=r+a;if(l<0){if(c>e)return s+(e-r);s+=a}else{if(n!=ke.Simple&&c>=e&&(n==ke.TrackDel&&r<e&&c>e||n==ke.TrackBefore&&r<e||n==ke.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==r||t<0?s:s+l;s+=l}r=c}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let n=0,r=0;n<this.sections.length&&r<=t;){let s=this.sections[n++],o=this.sections[n++],a=r+s;if(o>=0&&r<=t&&a>=e)return r<e&&a>t?"cover":!0;r=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];e+=(e?" ":"")+n+(r>=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},Ae=class i extends Bt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return bO(this,(t,n,r,s,o)=>e=e.replace(r,r+(n-t),o),!1),e}mapDesc(e,t=!1){return xO(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,s=0;r<t.length;r+=2){let o=t[r],a=t[r+1];if(a>=0){t[r]=a,t[r+1]=o;let l=r>>1;for(;n.length<l;)n.push(M.empty);n.push(o?e.slice(s,s+o):M.empty)}s+=o}return new i(t,n)}compose(e){return this.empty?e:e.empty?this:gp(this,e,!0)}map(e,t=!1){return e.empty?this:xO(this,e,t,!0)}iterChanges(e,t=!1){bO(this,e,t)}get desc(){return Bt.create(this.sections)}filter(e){let t=[],n=[],r=[],s=new Ai(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&s.len==0;){if(s.done)break e;let O=Math.min(s.len,l-a);We(r,O,-1);let h=s.ins==-1?-1:s.off==0?s.ins:0;We(t,O,h),h>0&&hi(n,t,s.text),s.forward(O),a+=O}let c=e[o++];for(;a<c;){if(s.done)break e;let O=Math.min(s.len,c-a);We(t,O,-1),We(r,O,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(O),a+=O}}return{changes:new i(t,n),filtered:Bt.create(r)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],r=this.sections[t+1];r<0?e.push(n):r==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let r=[],s=[],o=0,a=null;function l(O=!1){if(!O&&!r.length)return;o<t&&We(r,t-o,-1);let h=new i(r,s);a=a?a.compose(h.map(a)):h,r=[],s=[],o=0}function c(O){if(Array.isArray(O))for(let h of O)c(h);else if(O instanceof i){if(O.length!=t)throw new RangeError(`Mismatched change set length (got ${O.length}, expected ${t})`);l(),a=a?a.compose(O.map(a)):O}else{let{from:h,to:f=h,insert:u}=O;if(h>f||h<0||f>t)throw new RangeError(`Invalid change range ${h} to ${f} (in doc of length ${t})`);let d=u?typeof u=="string"?M.of(u.split(n||SO)):u:M.empty,p=d.length;if(h==f&&p==0)return;h<o&&l(),h>o&&We(r,h-o,-1),We(r,f-h,p),hi(s,r,d),o=f}}return c(e),l(!a),a}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;r<e.length;r++){let s=e[r];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length<r;)n.push(M.empty);n[r]=M.of(s.slice(1)),t.push(s[0],n[r].length)}}}return new i(t,n)}static createSet(e,t){return new i(e,t)}};function We(i,e,t,n=!1){if(e==0&&t<=0)return;let r=i.length-2;r>=0&&t<=0&&t==i[r+1]?i[r]+=e:r>=0&&e==0&&i[r]==0?i[r+1]+=t:n?(i[r]+=e,i[r+1]+=t):i.push(e,t)}function hi(i,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<i.length)i[i.length-1]=i[i.length-1].append(t);else{for(;i.length<n;)i.push(M.empty);i.push(t)}}function bO(i,e,t){let n=i.inserted;for(let r=0,s=0,o=0;o<i.sections.length;){let a=i.sections[o++],l=i.sections[o++];if(l<0)r+=a,s+=a;else{let c=r,O=s,h=M.empty;for(;c+=a,O+=l,l&&n&&(h=h.append(n[o-2>>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)a=i.sections[o++],l=i.sections[o++];e(r,c,s,O,h),r=c,s=O}}}function xO(i,e,t,n=!1){let r=[],s=n?[]:null,o=new Ai(i),a=new Ai(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);We(r,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let c=a.len;for(We(r,a.ins,-1);c;){let O=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=O&&(We(r,0,o.ins),s&&hi(s,r,o.text),l=o.i),o.forward(O),c-=O}a.next()}else if(o.ins>=0){let c=0,O=o.len;for(;O;)if(a.ins==-1){let h=Math.min(O,a.len);c+=h,O-=h,a.forward(h)}else if(a.ins==0&&a.len<O)O-=a.len,a.next();else break;We(r,c,l<o.i?o.ins:0),s&&l<o.i&&hi(s,r,o.text),l=o.i,o.forward(o.len-O)}else{if(o.done&&a.done)return s?Ae.createSet(r,s):Bt.create(r);throw new Error("Mismatched change set lengths")}}}function gp(i,e,t=!1){let n=[],r=t?[]:null,s=new Ai(i),o=new Ai(e);for(let a=!1;;){if(s.done&&o.done)return r?Ae.createSet(n,r):Bt.create(n);if(s.ins==0)We(n,s.len,0,a),s.next();else if(o.len==0&&!o.done)We(n,0,o.ins,a),r&&hi(r,n,o.text),o.next();else{if(s.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(s.len2,o.len),c=n.length;if(s.ins==-1){let O=o.ins==-1?-1:o.off?0:o.ins;We(n,l,O,a),r&&O&&hi(r,n,o.text)}else o.ins==-1?(We(n,s.off?0:s.len,l,a),r&&hi(r,n,s.textBit(l))):(We(n,s.off?0:s.len,o.off?0:o.ins,a),r&&!o.off&&hi(r,n,o.text));a=(s.ins>l||o.ins>=0&&o.len>l)&&(a||n.length>c),s.forward2(l),o.forward(l)}}}}var Ai=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?M.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?M.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Qn=class i{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let n,r;return this.empty?n=r=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new i(n,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return P.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return P.range(this.anchor,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return P.range(e.anchor,e.head)}static create(e,t,n){return new i(e,t,n)}},P=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new i([this.main],0)}addRange(e,t=!0){return i.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,i.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>Qn.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;r<e.length;r++){let s=e[r];if(s.empty?s.from<=n:s.from<n)return i.normalized(e.slice(),t);n=s.to}return new i(e,t)}static cursor(e,t=0,n,r){return Qn.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(r??16777215)<<6)}static range(e,t,n,r){let s=(n??16777215)<<6|(r==null?7:Math.min(6,r));return t<e?Qn.create(t,e,48|s):Qn.create(e,t,(t>e?8:0)|s)}static normalized(e,t=0){let n=e[t];e.sort((r,s)=>r.from-s.from),t=e.indexOf(n);for(let r=1;r<e.length;r++){let s=e[r],o=e[r-1];if(s.empty?s.from<=o.to:s.from<o.to){let a=o.from,l=Math.max(s.to,o.to);r<=t&&t--,e.splice(--r,2,s.anchor>s.head?i.range(l,a):i.range(a,l))}}return new i(e,t)}};function $p(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var _O=0,X=class i{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=_O++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:CO),!!e.static,e.enables)}of(e){return new bn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new bn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new bn(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function CO(i,e){return i==e||i.length==e.length&&i.every((t,n)=>t===e[n])}var bn=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=_O++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,O=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:((t=e[h.id])!==null&&t!==void 0?t:1)&1||O.push(e[h.id]);return{create(h){return h.values[o]=n(h),1},update(h,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||vO(h,O)){let u=n(h);if(a?!up(u,h.values[o],r):!r(u,h.values[o]))return h.values[o]=u,1}return 0},reconfigure:(h,f)=>{let u,d=f.config.address[s];if(d!=null){let p=Qo(f,d);if(this.dependencies.every(m=>m instanceof X?f.facet(m)===h.facet(m):m instanceof de?f.field(m,!1)==h.field(m,!1):!0)||(a?up(u=n(h),p,r):r(u=n(h),p)))return h.values[o]=p,0}else u=n(h);return h.values[o]=u,1}}}};function up(i,e,t){if(i.length!=e.length)return!1;for(let n=0;n<i.length;n++)if(!t(i[n],e[n]))return!1;return!0}function vO(i,e){let t=!1;for(let n of e)Pr(i,n)&1&&(t=!0);return t}function ox(i,e,t){let n=t.map(l=>i[l.id]),r=t.map(l=>l.type),s=n.filter(l=>!(l&1)),o=i[e.id]>>1;function a(l){let c=[];for(let O=0;O<n.length;O++){let h=Qo(l,n[O]);if(r[O]==2)for(let f of h)c.push(f);else c.push(h)}return e.combine(c)}return{create(l){for(let c of n)Pr(l,c);return l.values[o]=a(l),1},update(l,c){if(!vO(l,s))return 0;let O=a(l);return e.compare(O,l.values[o])?0:(l.values[o]=O,1)},reconfigure(l,c){let O=vO(l,n),h=c.config.facets[e.id],f=c.facet(e);if(h&&!O&&CO(t,h))return l.values[o]=f,0;let u=a(l);return e.compare(u,f)?(l.values[o]=f,0):(l.values[o]=u,1)}}}var co=X.define({static:!0}),de=class i{constructor(e,t,n,r,s){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=s,this.provides=void 0}static define(e){let t=new i(_O++,e.create,e.update,e.compare||((n,r)=>n===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(co).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,r)=>{let s=n.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(n.values[t]=o,1)},reconfigure:(n,r)=>{let s=n.facet(co),o=r.facet(co),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[t]=a.create(n),1):r.config.address[this.id]!=null?(n.values[t]=r.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,co.of({field:this,create:e})]}get extension(){return this}},Wi={lowest:4,low:3,default:2,high:1,highest:0};function wr(i){return e=>new go(e,i)}var Ot={highest:wr(Wi.highest),high:wr(Wi.high),default:wr(Wi.default),low:wr(Wi.low),lowest:wr(Wi.lowest)},go=class{constructor(e,t){this.inner=e,this.prec=t}},$o=class i{of(e){return new kr(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},kr=class{constructor(e,t){this.compartment=e,this.inner=t}},yo=class i{constructor(e,t,n,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let r=[],s=Object.create(null),o=new Map;for(let f of ax(e,t,o))f instanceof de?r.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of r)a[f.id]=c.length<<1,c.push(u=>f.slot(u));let O=n?.config.facets;for(let f in s){let u=s[f],d=u[0].facet,p=O&&O[f]||[];if(u.every(m=>m.type==0))if(a[d.id]=l.length<<1|1,CO(p,u))l.push(n.facet(d));else{let m=d.combine(u.map(g=>g.value));l.push(n&&d.compare(m,n.facet(d))?n.facet(d):m)}else{for(let m of u)m.type==0?(a[m.id]=l.length<<1|1,l.push(m.value)):(a[m.id]=c.length<<1,c.push(g=>m.dynamicSlot(g)));a[d.id]=c.length<<1,c.push(m=>ox(m,d,u))}}let h=c.map(f=>f(a));return new i(e,o,h,a,l,s)}};function ax(i,e,t){let n=[[],[],[],[],[]],r=new Map;function s(o,a){let l=r.get(o);if(l!=null){if(l<=a)return;let c=n[l].indexOf(o);c>-1&&n[l].splice(c,1),o instanceof kr&&t.delete(o.compartment)}if(r.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof kr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof go)s(o.inner,o.prec);else if(o instanceof de)n[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof bn)n[a].push(o),o.facet.extensions&&s(o.facet.extensions,Wi.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(i,Wi.default),n.reduce((o,a)=>o.concat(a))}function Pr(i,e){if(e&1)return 2;let t=e>>1,n=i.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;i.status[t]=4;let r=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|r}function Qo(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var yp=X.define(),wO=X.define({combine:i=>i.some(e=>e),static:!0}),Qp=X.define({combine:i=>i.length?i[0]:void 0,static:!0}),Sp=X.define(),bp=X.define(),xp=X.define(),vp=X.define({combine:i=>i.length?i[0]:!1}),De=class{constructor(e,t){this.type=e,this.value=t}static define(){return new PO}},PO=class{of(e){return new De(this,e)}},kO=class{constructor(e){this.map=e}of(e){return new Z(this,e)}},Z=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new kO(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let s=r.map(t);s&&n.push(s)}return n}};Z.reconfigure=Z.define();Z.appendConfig=Z.define();var xe=class i{constructor(e,t,n,r,s,o){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,n&&$p(n,t.newLength),s.some(a=>a.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,n,r,s,o){return new i(e,t,n,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};xe.time=De.define();xe.userEvent=De.define();xe.addToHistory=De.define();xe.remote=De.define();function lx(i,e){let t=[];for(let n=0,r=0;;){let s,o;if(n<i.length&&(r==e.length||e[r]>=i[n]))s=i[n++],o=i[n++];else if(r<e.length)s=e[r++],o=e[r++];else return t;!t.length||t[t.length-1]<s?t.push(s,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function Pp(i,e,t){var n;let r,s,o;return t?(r=e.changes,s=Ae.empty(e.changes.length),o=i.changes.compose(e.changes)):(r=e.changes.map(i.changes),s=i.changes.mapDesc(e.changes,!0),o=i.changes.compose(r)),{changes:o,selection:e.selection?e.selection.map(s):(n=i.selection)===null||n===void 0?void 0:n.map(r),effects:Z.mapEffects(i.effects,r).concat(Z.mapEffects(e.effects,s)),annotations:i.annotations.length?i.annotations.concat(e.annotations):e.annotations,scrollIntoView:i.scrollIntoView||e.scrollIntoView}}function TO(i,e,t){let n=e.selection,r=xn(e.annotations);return e.userEvent&&(r=r.concat(xe.userEvent.of(e.userEvent))),{changes:e.changes instanceof Ae?e.changes:Ae.of(e.changes||[],t,i.facet(Qp)),selection:n&&(n instanceof P?n:P.single(n.anchor,n.head)),effects:xn(e.effects),annotations:r,scrollIntoView:!!e.scrollIntoView}}function kp(i,e,t){let n=TO(i,e.length?e[0]:{},i.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let o=!!e[s].sequential;n=Pp(n,TO(i,e[s],o?n.changes.newLength:i.doc.length),o)}let r=xe.create(i,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return cx(t?Ox(r):r)}function Ox(i){let e=i.startState,t=!0;for(let r of e.facet(Sp)){let s=r(i);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:lx(t,s))}if(t!==!0){let r,s;if(t===!1)s=i.changes.invertedDesc,r=Ae.empty(e.doc.length);else{let o=i.changes.filter(t);r=o.changes,s=o.filtered.mapDesc(o.changes).invertedDesc}i=xe.create(e,r,i.selection&&i.selection.map(s),Z.mapEffects(i.effects,s),i.annotations,i.scrollIntoView)}let n=e.facet(bp);for(let r=n.length-1;r>=0;r--){let s=n[r](i);s instanceof xe?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof xe?i=s[0]:i=kp(e,xn(s),!1)}return i}function cx(i){let e=i.startState,t=e.facet(xp),n=i;for(let r=t.length-1;r>=0;r--){let s=t[r](i);s&&Object.keys(s).length&&(n=Pp(n,TO(e,s,i.changes.newLength),!0))}return n==i?i:xe.create(e,i.changes,i.selection,n.effects,n.annotations,n.scrollIntoView)}var hx=[];function xn(i){return i==null?hx:Array.isArray(i)?i:[i]}var ie=function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i}(ie||(ie={})),fx=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,zO;try{zO=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function ux(i){if(zO)return zO.test(i);for(let e=0;e<i.length;e++){let t=i[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||fx.test(t)))return!0}return!1}function dx(i){return e=>{if(!/\S/.test(e))return ie.Space;if(ux(e))return ie.Word;for(let t=0;t<i.length;t++)if(e.indexOf(i[t])>-1)return ie.Word;return ie.Other}}var ee=class i{constructor(e,t,n,r,s,o){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)Pr(this,a<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return Pr(this,n),Qo(this,n)}update(...e){return kp(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:r}=t;for(let a of e.effects)a.is($o.reconfigure)?(t&&(r=new Map,t.compartments.forEach((l,c)=>r.set(c,l)),t=null),r.set(a.value.compartment,a.value.extension)):a.is(Z.reconfigure)?(t=null,n=a.value):a.is(Z.appendConfig)&&(t=null,n=xn(n).concat(a.value));let s;t?s=e.startState.values.slice():(t=yo.resolve(n,r,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(wO)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:P.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),s=[n.range],o=xn(n.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),c=this.changes(l.changes),O=c.map(r);for(let f=0;f<a;f++)s[f]=s[f].map(O);let h=r.mapDesc(c,!0);s.push(l.range.map(h)),r=r.compose(O),o=Z.mapEffects(o,O).concat(Z.mapEffects(xn(l.effects),h))}return{changes:r,selection:P.create(s,t.mainIndex),effects:o}}changes(e=[]){return e instanceof Ae?e:Ae.of(e,this.doc.length,this.facet(i.lineSeparator))}toText(e){return M.of(e.split(this.facet(i.lineSeparator)||SO))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Pr(this,t),Qo(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof de&&this.config.address[r.id]!=null&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let r=[];if(n){for(let s in n)if(Object.prototype.hasOwnProperty.call(e,s)){let o=n[s],a=e[s];r.push(o.init(l=>o.spec.fromJSON(a,l)))}}return i.create({doc:e.doc,selection:P.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=yo.resolve(e.extensions||[],new Map),n=e.doc instanceof M?e.doc:M.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||SO)),r=e.selection?e.selection instanceof P?e.selection:P.single(e.selection.anchor,e.selection.head):P.single(0);return $p(r,n.length),t.staticFacet(wO)||(r=r.asSingle()),new i(t,n,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||`
    49 `}get readOnly(){return this.facet(vp)}phrase(e,...t){for(let n of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let r=[];for(let s of this.facet(yp))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){return dx(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=ve(t,o,!1);if(s(t.slice(l,o))!=ie.Word)break;o=l}for(;a<r;){let l=ve(t,a);if(s(t.slice(a,l))!=ie.Word)break;a=l}return o==a?null:P.range(o+n,a+n)}};ee.allowMultipleSelections=wO;ee.tabSize=X.define({combine:i=>i.length?i[0]:4});ee.lineSeparator=Qp;ee.readOnly=vp;ee.phrases=X.define({compare(i,e){let t=Object.keys(i),n=Object.keys(e);return t.length==n.length&&t.every(r=>i[r]==e[r])}});ee.languageData=yp;ee.changeFilter=Sp;ee.transactionFilter=bp;ee.transactionExtender=xp;$o.reconfigure=Z.define();function Ze(i,e,t={}){let n={};for(let r of i)for(let s of Object.keys(r)){let o=r[s],a=n[s];if(a===void 0)n[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)n[r]===void 0&&(n[r]=e[r]);return n}var mt=class{eq(e){return this==e}range(e,t=e){return Tr.create(e,t,this)}};mt.prototype.startSide=mt.prototype.endSide=0;mt.prototype.point=!1;mt.prototype.mapMode=ke.TrackDel;var Tr=class i{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new i(e,t,n)}};function XO(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var RO=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,r=0){let s=n?this.to:this.from;for(let o=r,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);s<o;s++)if(r(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],r=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],O=this.from[l]+e,h=this.to[l]+e,f,u;if(O==h){let d=t.mapPos(O,c.startSide,c.mapMode);if(d==null||(f=u=d,c.startSide!=c.endSide&&(u=t.mapPos(O,c.endSide),u<f)))continue}else if(f=t.mapPos(O,c.startSide),u=t.mapPos(h,c.endSide),f>u||f==u&&c.startSide>0&&c.endSide<=0)continue;(u-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,u-f)),n.push(c),r.push(f-o),s.push(u-o))}return{mapped:n.length?new i(r,s,n,a):null,pos:o}}},F=class i{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new i(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(XO)),this.isEmpty)return t.length?i.of(t):this;let a=new So(this,null,-1).goto(0),l=0,c=[],O=new He;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];O.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||r>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&O.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||r>a.to||s<a.from||o(a.from,a.to,a.value))&&(O.addInner(a.from,a.to,a.value)||c.push(Tr.create(a.from,a.to,a.value))),a.next());return O.finishInner(this.nextLayer.isEmpty&&!c.length?i.empty:this.nextLayer.update({add:c,filter:o,filterFrom:r,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],r=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)r=Math.max(r,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:O,pos:h}=l.map(a,e);O&&(r=Math.max(r,O.maxPoint),t.push(O),n.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new i(n,t,s||i.empty,r)}between(e,t,n){if(!this.isEmpty){for(let r=0;r<this.chunk.length;r++){let s=this.chunkPos[r],o=this.chunk[r];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return zr.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return zr.from(e).goto(t)}static compare(e,t,n,r,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),l=dp(o,a,n),c=new Zi(o,l,s),O=new Zi(a,l,s);n.iterGaps((h,f,u)=>pp(c,h,O,f,u,r)),n.empty&&n.length==0&&pp(c,0,O,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=999999999);let s=e.filter(O=>!O.isEmpty&&t.indexOf(O)<0),o=t.filter(O=>!O.isEmpty&&e.indexOf(O)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=dp(s,o),l=new Zi(s,a,0).goto(n),c=new Zi(o,a,0).goto(n);for(;;){if(l.to!=c.to||!qO(l.active,c.active)||l.point&&(!c.point||!l.point.eq(c.point)))return!1;if(l.to>r)return!0;l.next(),c.next()}}static spans(e,t,n,r,s=-1){let o=new Zi(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let O=o.activeForPoint(o.to),h=o.pointFrom<t?O.length+1:o.point.startSide<0?O.length:Math.min(O.length,l);r.point(a,c,o.point,O,h,o.pointRank),l=Math.min(o.openEnd(c),O.length)}else c>a&&(r.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,t=!1){let n=new He;for(let r of e instanceof Tr?[e]:t?px(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let r=e[n];r!=i.empty;r=r.nextLayer)t=new i(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}};F.empty=new F([],[],null,-1);function px(i){if(i.length>1)for(let e=i[0],t=1;t<i.length;t++){let n=i[t];if(XO(e,n)>0)return i.slice().sort(XO);e=n}return i}F.empty.nextLayer=F.empty;var He=class i{finishChunk(e){this.chunks.push(new RO(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,n)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(F.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=F.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function dp(i,e,t){let n=new Map;for(let s of i)for(let o=0;o<s.chunk.length;o++)s.chunk[o].maxPoint<=0&&n.set(s.chunk[o],s.chunkPos[o]);let r=new Set;for(let s of e)for(let o=0;o<s.chunk.length;o++){let a=n.get(s.chunk[o]);a!=null&&(t?t.mapPos(a):a)==s.chunkPos[o]&&!t?.touchesRange(a,a+s.chunk[o].length)&&r.add(s.chunk[o])}return r}var So=class{constructor(e,t,n,r=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=r}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let r=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(r)||this.layer.chunkEnd(this.chunkIndex)<e||r.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let r=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<r)&&this.setRangeIndex(r)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},zr=class i{constructor(e){this.heap=e}static from(e,t=null,n=-1){let r=[];for(let s=0;s<e.length;s++)for(let o=e[s];!o.isEmpty;o=o.nextLayer)o.maxPoint>=n&&r.push(new So(o,t,n,s));return r.length==1?r[0]:new i(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)yO(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)yO(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),yO(this.heap,0)}}};function yO(i,e){for(let t=i[e];;){let n=(e<<1)+1;if(n>=i.length)break;let r=i[n];if(n+1<i.length&&r.compare(i[n+1])>=0&&(r=i[n+1],n++),t.compare(r)<0)break;i[n]=t,i[e]=r,e=n}}var Zi=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=zr.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){ho(this.active,e),ho(this.activeTo,e),ho(this.activeRank,e),this.minActive=mp(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:s}=this.cursor;for(;t<this.activeRank.length&&(s-this.activeRank[t]||r-this.activeTo[t])>0;)t++;fo(this.active,t,n),fo(this.activeTo,t,r),fo(this.activeRank,t,s),e&&fo(e,t,this.cursor.from),this.minActive=mp(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&ho(n,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let r=n.length-1;r>=0&&n[r]<e;r--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function pp(i,e,t,n,r,s){i.goto(e),t.goto(n);let o=n+r,a=n,l=n-e;for(;;){let c=i.to+l-t.to,O=c||i.endSide-t.endSide,h=O<0?i.to+l:t.to,f=Math.min(h,o);if(i.point||t.point?i.point&&t.point&&(i.point==t.point||i.point.eq(t.point))&&qO(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(a,f,i.point,t.point):f>a&&!qO(i.active,t.active)&&s.compareRange(a,f,i.active,t.active),h>o)break;(c||i.openEnd!=t.openEnd)&&s.boundChange&&s.boundChange(h),a=h,O<=0&&i.next(),O>=0&&t.next()}}function qO(i,e){if(i.length!=e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!=e[t]&&!i[t].eq(e[t]))return!1;return!0}function ho(i,e){for(let t=e,n=i.length-1;t<n;t++)i[t]=i[t+1];i.pop()}function fo(i,e,t){for(let n=i.length-1;n>=e;n--)i[n+1]=i[n];i[e]=t}function mp(i,e){let t=-1,n=1e9;for(let r=0;r<e.length;r++)(e[r]-n||i[r].endSide-i[t].endSide)<0&&(t=r,n=e[r]);return t}function Lt(i,e,t=i.length){let n=0;for(let r=0;r<t&&r<i.length;)i.charCodeAt(r)==9?(n+=e-n%e,r++):(n++,r=ve(i,r));return n}function bo(i,e,t,n){for(let r=0,s=0;;){if(s>=e)return r;if(r==i.length)break;s+=i.charCodeAt(r)==9?t-s%t:1,r=ve(i,r)}return n===!0?-1:i.length}var WO="\u037C",Tp=typeof Symbol>"u"?"__"+WO:Symbol.for(WO),ZO=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),zp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},ct=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let O=[],h=/^@(\w+)\b/.exec(o[0]),f=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let u in a){let d=a[u];if(/&/.test(u))s(u.split(/,\s*/).map(p=>o.map(m=>p.replace(/&/,m))).reduce((p,m)=>p.concat(m)),d,l);else if(d&&typeof d=="object"){if(!h)throw new RangeError("The value of a property ("+u+") should be a primitive value.");s(r(u),d,O,f)}else d!=null&&O.push(u.replace(/_.*/,"").replace(/[A-Z]/g,p=>"-"+p.toLowerCase())+": "+d+";")}(O.length||f)&&l.push((n&&!h&&!c?o.map(n):o).join(", ")+" {"+O.join(" ")+"}")}for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(`
    50 `)}static newName(){let e=zp[Tp]||1;return zp[Tp]=e+1,WO+e.toString(36)}static mount(e,t,n){let r=e[ZO],s=n&&n.nonce;r?s&&r.setNonce(s):r=new VO(e,s),r.mount(Array.isArray(t)?t:[t],e)}},Xp=new Map,VO=class{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=Xp.get(n);if(s)return e[ZO]=s;this.sheet=new r.CSSStyleSheet,Xp.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[ZO]=this}mount(e,t){let n=this.sheet,r=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],r++)}else{for(;s<l;)r+=this.modules[s++].rules.length;r+=a.rules.length,s++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
    51 `;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var Gt={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},wn={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},mx=typeof navigator<"u"&&/Mac/.test(navigator.platform),gx=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(we=0;we<10;we++)Gt[48+we]=Gt[96+we]=String(we);var we;for(we=1;we<=24;we++)Gt[we+111]="F"+we;var we;for(we=65;we<=90;we++)Gt[we]=String.fromCharCode(we+32),wn[we]=String.fromCharCode(we);var we;for(xo in Gt)wn.hasOwnProperty(xo)||(wn[xo]=Gt[xo]);var xo;function Rp(i){var e=mx&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||gx&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?wn:Gt)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function I(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r=t[n];typeof r=="string"?i.setAttribute(n,r):r!=null&&(i[n]=r)}e++}for(;e<arguments.length;e++)qp(i,arguments[e]);return i}function qp(i,e){if(typeof e=="string")i.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)i.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)qp(i,e[t]);else throw new RangeError("Unsupported child node: "+e)}function Er(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function BO(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function _o(i,e){if(!e.anchorNode)return!1;try{return BO(i,e.anchorNode)}catch{return!1}}function Dr(i){return i.nodeType==3?Ui(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function Zr(i,e,t,n){return t?_p(i,e,t,n,-1)||_p(i,e,t,n,1):!1}function Yi(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function Yo(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function _p(i,e,t,n,r){for(;;){if(i==t&&e==n)return!0;if(e==(r<0?0:Tt(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Yi(i)+(r<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(r<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=r<0?Tt(i):0}else return!1}}function Tt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function ta(i,e){let t=e?i.left:i.right;return{left:t,right:t,top:i.top,bottom:i.bottom}}function $x(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function Sm(i,e){let t=e.width/i.offsetWidth,n=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-i.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function yx(i,e,t,n,r,s,o,a){let l=i.ownerDocument,c=l.defaultView||window;for(let O=i,h=!1;O&&!h;)if(O.nodeType==1){let f,u=O==l.body,d=1,p=1;if(u)f=$x(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(O).position)&&(h=!0),O.scrollHeight<=O.clientHeight&&O.scrollWidth<=O.clientWidth){O=O.assignedSlot||O.parentNode;continue}let y=O.getBoundingClientRect();({scaleX:d,scaleY:p}=Sm(O,y)),f={left:y.left,right:y.left+O.clientWidth*d,top:y.top,bottom:y.top+O.clientHeight*p}}let m=0,g=0;if(r=="nearest")e.top<f.top?(g=e.top-(f.top+o),t>0&&e.bottom>f.bottom+g&&(g=e.bottom-f.bottom+o)):e.bottom>f.bottom&&(g=e.bottom-f.bottom+o,t<0&&e.top-g<f.top&&(g=e.top-(f.top+o)));else{let y=e.bottom-e.top,S=f.bottom-f.top;g=(r=="center"&&y<=S?e.top+y/2-S/2:r=="start"||r=="center"&&t<0?e.top-o:e.bottom-S+o)-f.top}if(n=="nearest"?e.left<f.left?(m=e.left-(f.left+s),t>0&&e.right>f.right+m&&(m=e.right-f.right+s)):e.right>f.right&&(m=e.right-f.right+s,t<0&&e.left<f.left+m&&(m=e.left-(f.left+s))):m=(n=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:n=="start"==a?e.left-s:e.right-(f.right-f.left)+s)-f.left,m||g)if(u)c.scrollBy(m,g);else{let y=0,S=0;if(g){let v=O.scrollTop;O.scrollTop+=g/p,S=(O.scrollTop-v)*p}if(m){let v=O.scrollLeft;O.scrollLeft+=m/d,y=(O.scrollLeft-v)*d}e={left:e.left-y,top:e.top-S,right:e.right-y,bottom:e.bottom-S},y&&Math.abs(y-m)<1&&(n="nearest"),S&&Math.abs(S-g)<1&&(r="nearest")}if(u)break;(e.top<f.top||e.bottom>f.bottom||e.left<f.left||e.right>f.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),O=O.assignedSlot||O.parentNode}else if(O.nodeType==11)O=O.host;else break}function Qx(i){let e=i.ownerDocument,t,n;for(let r=i.parentNode;r&&!(r==e.body||t&&n);)if(r.nodeType==1)!n&&r.scrollHeight>r.clientHeight&&(n=r),!t&&r.scrollWidth>r.clientWidth&&(t=r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;return{x:t,y:n}}var LO=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?Tt(t):0),n,Math.min(e.focusOffset,n?Tt(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},Pn=null;function bm(i){if(i.setActive)return i.setActive();if(Pn)return i.focus(Pn);let e=[];for(let t=i;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(i.focus(Pn==null?{get preventScroll(){return Pn={preventScroll:!0},!0}}:void 0),!Pn){Pn=!1;for(let t=0;t<e.length;){let n=e[t++],r=e[t++],s=e[t++];n.scrollTop!=r&&(n.scrollTop=r),n.scrollLeft!=s&&(n.scrollLeft=s)}}}var Cp;function Ui(i,e,t=e){let n=Cp||(Cp=document.createRange());return n.setEnd(i,t),n.setStart(i,e),n}function Rn(i,e,t,n){let r={key:e,code:e,keyCode:t,which:t,cancelable:!0};n&&({altKey:r.altKey,ctrlKey:r.ctrlKey,shiftKey:r.shiftKey,metaKey:r.metaKey}=n);let s=new KeyboardEvent("keydown",r);s.synthetic=!0,i.dispatchEvent(s);let o=new KeyboardEvent("keyup",r);return o.synthetic=!0,i.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function Sx(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function xm(i){for(;i.attributes.length;)i.removeAttributeNode(i.attributes[0])}function bx(i,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,Tt(t));;)if(n){if(t.nodeType!=1)return!1;let r=t.childNodes[n-1];r.contentEditable=="false"?n--:(t=r,n=Tt(t))}else{if(t==i)return!0;n=Yi(t),t=t.parentNode}}function vm(i){return i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function wm(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=Tt(t)}else if(t.parentNode&&!Yo(t))n=Yi(t),t=t.parentNode;else return null}}function Pm(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n<t.nodeValue.length)return{node:t,offset:n};if(t.nodeType==1&&n<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[n],n=0}else if(t.parentNode&&!Yo(t))n=Yi(t)+1,t=t.parentNode;else return null}}var je=class i{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new i(e.parentNode,Yi(e),t)}static after(e,t){return new i(e.parentNode,Yi(e)+1,t)}},qc=[],Oe=class i{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(this.flags&2){let n=this.dom,r=null,s;for(let o of this.children){if(o.flags&7){if(!o.dom&&(s=r?r.nextSibling:n.firstChild)){let a=i.get(s);(!a||!a.parent&&a.canReuseDOM(o))&&o.reuseDOM(s)}o.sync(e,t),o.flags&=-8}if(s=r?r.nextSibling:n.firstChild,t&&!t.written&&t.node==n&&s!=o.dom&&(t.written=!0),o.dom.parentNode==n)for(;s&&s!=o.dom;)s=Wp(s);else n.insertBefore(o.dom,s);r=o.dom}for(s=r?r.nextSibling:n.firstChild,s&&t&&t.node==n&&(t.written=!0);s;)s=Wp(s)}else if(this.flags&1)for(let n of this.children)n.flags&7&&(n.sync(e,t),n.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];else{let r=Tt(e)==0?0:t==0?-1:1;for(;;){let s=e.parentNode;if(s==this.dom)break;r==0&&s.firstChild!=s.lastChild&&(e==s.firstChild?r=-1:r=1),e=s}r<0?n=e:n=e.nextSibling}if(n==this.dom.firstChild)return 0;for(;n&&!i.get(n);)n=n.nextSibling;if(!n)return this.length;for(let r=0,s=0;;r++){let o=this.children[r];if(o.dom==n)return s;s+=o.length+o.breakAfter}}domBoundsAround(e,t,n=0){let r=-1,s=-1,o=-1,a=-1;for(let l=0,c=n,O=n;l<this.children.length;l++){let h=this.children[l],f=c+h.length;if(c<e&&f>t)return h.domBoundsAround(e,t,c);if(f>=e&&r==-1&&(r=l,s=c),c>t&&h.dom.parentNode==this.dom){o=l,a=O;break}O=f,c=f+h.breakAfter}return{from:s,to:a<0?n+this.length:a,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o<this.children.length&&o>=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=qc){this.markDirty();for(let r=e;r<t;r++){let s=this.children[r];s.parent==this&&n.indexOf(s)<0&&s.destroy()}n.length<250?this.children.splice(e,t-e,...n):this.children=[].concat(this.children.slice(0,e),n,this.children.slice(t));for(let r=0;r<n.length;r++)n[r].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new Uo(this.children,e,this.children.length)}childPos(e,t=1){return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,t,n,r,s,o){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){for(let e of this.children)e.parent==this&&e.destroy();this.parent=null}};Oe.prototype.breakAfter=0;function Wp(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var Uo=class{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}};function km(i,e,t,n,r,s,o,a,l){let{children:c}=i,O=c.length?c[e]:null,h=s.length?s[s.length-1]:null,f=h?h.breakAfter:o;if(!(e==n&&O&&!o&&!f&&s.length<2&&O.merge(t,r,s.length?h:null,t==0,a,l))){if(n<c.length){let u=c[n];u&&(r<u.length||u.breakAfter&&h?.breakAfter)?(e==n&&(u=u.split(r),r=0),!f&&h&&u.merge(0,r,h,!0,0,l)?s[s.length-1]=u:((r||u.children.length&&!u.children[0].length)&&u.merge(0,r,null,!1,0,l),s.push(u))):u?.breakAfter&&(h?h.breakAfter=1:o=1),n++}for(O&&(O.breakAfter=o,t>0&&(!o&&s.length&&O.merge(t,O.length,s[0],!1,a,0)?O.breakAfter=s.shift().breakAfter:(t<O.length||O.children.length&&O.children[O.children.length-1].length==0)&&O.merge(t,O.length,null,!1,a,0),e++));e<n&&s.length;)if(c[n-1].become(s[s.length-1]))n--,s.pop(),l=s.length?0:a;else if(c[e].become(s[0]))e++,s.shift(),a=s.length?0:l;else break;!s.length&&e&&n<c.length&&!c[e-1].breakAfter&&c[n].merge(0,0,c[e-1],!1,a,l)&&e--,(e<n||s.length)&&i.replaceChildren(e,n,s)}}function Tm(i,e,t,n,r,s){let o=i.childCursor(),{i:a,off:l}=o.findPos(t,1),{i:c,off:O}=o.findPos(e,-1),h=e-t;for(let f of n)h+=f.length;i.length+=h,km(i,c,O,a,l,n,0,r,s)}var Be=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},GO=typeof document<"u"?document:{documentElement:{style:{}}},IO=/Edge\/(\d+)/.exec(Be.userAgent),zm=/MSIE \d/.test(Be.userAgent),NO=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Be.userAgent),ia=!!(zm||NO||IO),Zp=!ia&&/gecko\/(\d+)/i.test(Be.userAgent),AO=!ia&&/Chrome\/(\d+)/.exec(Be.userAgent),Vp="webkitFontSmoothing"in GO.documentElement.style,Xm=!ia&&/Apple Computer/.test(Be.vendor),Ap=Xm&&(/Mobile\/\w+/.test(Be.userAgent)||Be.maxTouchPoints>2),R={mac:Ap||/Mac/.test(Be.platform),windows:/Win/.test(Be.platform),linux:/Linux|X11/.test(Be.platform),ie:ia,ie_version:zm?GO.documentMode||6:NO?+NO[1]:IO?+IO[1]:0,gecko:Zp,gecko_version:Zp?+(/Firefox\/(\d+)/.exec(Be.userAgent)||[0,0])[1]:0,chrome:!!AO,chrome_version:AO?+AO[1]:0,ios:Ap,android:/Android\b/.test(Be.userAgent),webkit:Vp,safari:Xm,webkit_version:Vp?+(/\bAppleWebKit\/(\d+)/.exec(Be.userAgent)||[0,0])[1]:0,tabSize:GO.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},xx=256,zt=class i extends Oe{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,n){return this.flags&8||n&&(!(n instanceof i)||this.length-(t-e)+n.length>xx||n.flags&8)?!1:(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new i(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new je(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return vx(this.dom,e,t)}},di=class i extends Oe{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let r of t)r.setParent(this)}setAttrs(e){if(xm(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,r,s,o){return n&&(!(n instanceof i&&n.mark.eq(this.mark))||e&&s<=0||t<this.length&&o<=0)?!1:(Tm(this,e,t,n?n.children.slice():[],s-1,o-1),this.markDirty(),!0)}split(e){let t=[],n=0,r=-1,s=0;for(let a of this.children){let l=n+a.length;l>e&&t.push(n<e?a.split(e-n):a),r<0&&n>=e&&(r=s),n=l,s++}let o=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new i(this.mark,t,o)}domAtPos(e){return Rm(this,e)}coordsAt(e,t){return _m(this,e,t)}};function vx(i,e,t){let n=i.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;e==0&&t<0||e==n&&t>=0?R.chrome||R.gecko||(e?(r--,o=1):s<n&&(s++,o=-1)):t<0?r--:s<n&&s++;let a=Ui(i,r,s).getClientRects();if(!a.length)return null;let l=a[(o?o<0:t>=0)?0:a.length-1];return R.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?ta(l,o<0):l||null}var Br=class i extends Oe{static create(e,t,n){return new i(e,t,n)}constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}split(e){let t=i.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,n,r,s,o){return n&&(!(n instanceof i)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&o<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}become(e){return e instanceof i&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.compare(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return M.empty;let e=this;for(;e.parent;)e=e.parent;let{view:t}=e,n=t&&t.state.doc,r=this.posAtStart;return n?n.slice(r,r+this.length):M.empty}domAtPos(e){return(this.length?e==0:this.side>0)?je.before(this.dom):je.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let r=this.dom.getClientRects(),s=null;if(!r.length)return null;let o=this.side?this.side<0:e>0;for(let a=o?r.length-1:0;s=r[a],!(e>0?a==0:a==r.length-1||s.top<s.bottom);a+=o?-1:1);return ta(s,!o)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},Lr=class i extends Oe{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof i&&e.side==this.side}split(){return new i(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?je.before(this.dom):je.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return M.empty}get isHidden(){return!0}};zt.prototype.children=Br.prototype.children=Lr.prototype.children=qc;function Rm(i,e){let t=i.dom,{children:n}=i,r=0;for(let s=0;r<n.length;r++){let o=n[r],a=s+o.length;if(!(a==s&&o.getSide()<=0)){if(e>s&&e<a&&o.dom.parentNode==t)return o.domAtPos(e-s);if(e<=s)break;s=a}}for(let s=r;s>0;s--){let o=n[s-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let s=r;s<n.length;s++){let o=n[s];if(o.dom.parentNode==t)return o.domAtPos(0)}return new je(t,0)}function qm(i,e,t){let n,{children:r}=i;t>0&&e instanceof di&&r.length&&(n=r[r.length-1])instanceof di&&n.mark.eq(e.mark)?qm(n,e.children[0],t-1):(r.push(e),e.setParent(i)),i.length+=e.length}function _m(i,e,t){let n=null,r=-1,s=null,o=-1;function a(c,O){for(let h=0,f=0;h<c.children.length&&f<=O;h++){let u=c.children[h],d=f+u.length;d>=O&&(u.children.length?a(u,O-f):(!s||s.isHidden&&(t>0||Px(s,u)))&&(d>O||f==d&&u.getSide()>0)?(s=u,o=O-f):(f<O||f==d&&u.getSide()<0&&!u.isHidden)&&(n=u,r=O-f)),f=d}}a(i,e);let l=(t<0?n:s)||n||s;return l?l.coordsAt(Math.max(0,l==n?r:o),t):wx(i)}function wx(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let t=Dr(e);return t[t.length-1]||null}function Px(i,e){let t=i.coordsAt(0,1),n=e.coordsAt(0,1);return t&&n&&n.top<t.bottom}function FO(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var jp=Object.create(null);function Mo(i,e,t){if(i==e)return!0;i||(i=jp),e||(e=jp);let n=Object.keys(i),r=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(r.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function HO(i,e,t){let n=!1;if(e)for(let r in e)t&&r in t||(n=!0,r=="style"?i.style.cssText="":i.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(n=!0,r=="style"?i.style.cssText=t[r]:i.setAttribute(r,t[r]));return n}function kx(i){let e=Object.create(null);for(let t=0;t<i.attributes.length;t++){let n=i.attributes[t];e[n.name]=n.value}return e}var Le=class{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Ye=function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i}(Ye||(Ye={})),q=class extends mt{constructor(e,t,n,r){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=r}get heightRelevant(){return!1}static mark(e){return new Gr(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new pi(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:s,end:o}=Cm(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(o?t?2e8:1:-6e8)+1}return new pi(e,n,r,t,e.widget||null,!0)}static line(e){return new Ir(e)}static set(e,t=!1){return F.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};q.none=F.empty;var Gr=class i extends q{constructor(e){let{start:t,end:n}=Cm(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof i&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((n=e.attrs)===null||n===void 0?void 0:n.class))&&Mo(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};Gr.prototype.point=!1;var Ir=class i extends q{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&Mo(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};Ir.prototype.mapMode=ke.TrackBefore;Ir.prototype.point=!0;var pi=class i extends q{constructor(e,t,n,r,s,o){super(t,n,s,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?ke.TrackBefore:ke.TrackAfter:ke.TrackDel}get type(){return this.startSide!=this.endSide?Ye.WidgetRange:this.startSide<=0?Ye.WidgetBefore:Ye.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&Tx(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};pi.prototype.point=!0;function Cm(i,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=i;return t==null&&(t=i.inclusive),n==null&&(n=i.inclusive),{start:t??e,end:n??e}}function Tx(i,e){return i==e||!!(i&&e&&i.compare(e))}function Co(i,e,t,n=0){let r=t.length-1;r>=0&&t[r]+n>=i?t[r]=Math.max(t[r],e):t.push(i,e)}var Re=class i extends Oe{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,r,s,o){if(n){if(!(n instanceof i))return!1;this.dom||n.transferDOM(this)}return r&&this.setDeco(n?n.attrs:null),Tm(this,e,t,n?n.children.slice():[],s,o),!0}split(e){let t=new i;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i:n,off:r}=this.childPos(e);r&&(t.append(this.children[n].split(r),0),this.children[n].merge(r,this.children[n].length,null,!1,0,0),n++);for(let s=n;s<this.children.length;s++)t.append(this.children[s],0);for(;n>0&&this.children[n-1].length==0;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Mo(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){qm(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=FO(t,this.attrs||{})),n&&(this.attrs=FO({class:n},this.attrs||{}))}domAtPos(e){return Rm(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?this.flags&4&&(xm(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(HO(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&Oe.get(r)instanceof di;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((n=Oe.get(r))===null||n===void 0?void 0:n.isEditable)==!1&&(!R.ios||!this.children.some(s=>s instanceof zt))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let n of this.children){if(!(n instanceof zt)||/[^ -~]/.test(n.text))return null;let r=Dr(n.dom);if(r.length!=1)return null;e+=r[0].width,t=r[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let n=_m(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:r}=this.parent.view.viewState,s=n.bottom-n.top;if(Math.abs(s-r.lineHeight)<2&&r.textHeight<s){let o=(s-r.textHeight)/2;return{top:n.top+o,bottom:n.bottom-o,left:n.left,right:n.left}}}return n}become(e){return e instanceof i&&this.children.length==0&&e.children.length==0&&Mo(this.attrs,e.attrs)&&this.breakAfter==e.breakAfter}covers(){return!0}static find(e,t){for(let n=0,r=0;n<e.children.length;n++){let s=e.children[n],o=r+s.length;if(o>=t){if(s instanceof i)return s;if(o>t)break}r=o+s.breakAfter}return null}},ji=class i extends Oe{constructor(e,t,n){super(),this.widget=e,this.length=t,this.deco=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,r,s,o){return n&&(!(n instanceof i)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&o<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}domAtPos(e){return e==0?je.before(this.dom):je.after(this.dom,e==this.length)}split(e){let t=this.length-e;this.length=e;let n=new i(this.widget,t,this.deco);return n.breakAfter=this.breakAfter,n}get children(){return qc}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):M.empty}domBoundsAround(){return null}become(e){return e instanceof i&&e.widget.constructor==this.widget.constructor?(e.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.deco=e.deco,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);return n||(this.widget instanceof Nr?null:ta(this.dom.getBoundingClientRect(),this.length?e==0:t<=0))}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(e){let{startSide:t,endSide:n}=this.deco;return t==n?!1:e<0?t<0:n>0}},Nr=class extends Le{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Vr=class i{constructor(e,t,n,r){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof ji&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Re),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(vo(new Lr(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof ji)&&this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:s,lineBreak:o,done:a}=this.cursor.next(this.skip);if(this.skip=0,a)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=s,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(vo(new zt(this.text.slice(this.textOff,this.textOff+r)),t),n),this.atCursorPos=!0,this.textOff+=r,e-=r,n=0}}span(e,t,n,r){this.buildText(t-e,n,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,n,r,s,o){if(this.disallowBlockEffectsFor[o]&&n instanceof pi){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let a=t-e;if(n instanceof pi)if(n.block)n.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new ji(n.widget||mi.block,a,n));else{let l=Br.create(n.widget||mi.inline,a,a?0:n.startSide),c=this.atCursorPos&&!l.isEditable&&s<=r.length&&(e<t||n.startSide>0),O=!l.isEditable&&(e<t||s>r.length||n.startSide<=0),h=this.getLine();this.pendingBuffer==2&&!c&&!l.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),c&&(h.append(vo(new Lr(1),r),s),s=r.length+Math.max(0,s-r.length)),h.append(vo(l,r),s),this.atCursorPos=O,this.pendingBuffer=O?e<t||s>r.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);a&&(this.textOff+a<=this.text.length?this.textOff+=a:(this.skip+=a-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=s)}static build(e,t,n,r,s){let o=new i(e,t,n,s);return o.openEnd=F.spans(r,t,n,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}};function vo(i,e){for(let t of e)i=new di(t,[i],i.length);return i}var mi=class extends Le{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};mi.inline=new mi("span");mi.block=new mi("div");var ne=function(i){return i[i.LTR=0]="LTR",i[i.RTL=1]="RTL",i}(ne||(ne={})),Mi=ne.LTR,_c=ne.RTL;function Wm(i){let e=[];for(let t=0;t<i.length;t++)e.push(1<<+i[t]);return e}var zx=Wm("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Xx=Wm("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),KO=Object.create(null),vt=[];for(let i of["()","[]","{}"]){let e=i.charCodeAt(0),t=i.charCodeAt(1);KO[e]=t,KO[t]=-e}function Zm(i){return i<=247?zx[i]:1424<=i&&i<=1524?2:1536<=i&&i<=1785?Xx[i-1536]:1774<=i&&i<=2220?4:8192<=i&&i<=8204?256:64336<=i&&i<=65023?4:1}var Rx=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,Pt=class{get dir(){return this.level%2?_c:Mi}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,r){let s=-1;for(let o=0;o<e.length;o++){let a=e[o];if(a.from<=t&&a.to>=t){if(a.level==n)return o;(s<0||(r!=0?r<0?a.from<t:a.to>t:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function Vm(i,e){if(i.length!=e.length)return!1;for(let t=0;t<i.length;t++){let n=i[t],r=e[t];if(n.from!=r.from||n.to!=r.to||n.direction!=r.direction||!Vm(n.inner,r.inner))return!1}return!0}var oe=[];function qx(i,e,t,n,r){for(let s=0;s<=n.length;s++){let o=s?n[s-1].to:e,a=s<n.length?n[s].from:t,l=s?256:r;for(let c=o,O=l,h=l;c<a;c++){let f=Zm(i.charCodeAt(c));f==512?f=O:f==8&&h==4&&(f=16),oe[c]=f==4?2:f,f&7&&(h=f),O=f}for(let c=o,O=l,h=l;c<a;c++){let f=oe[c];if(f==128)c<a-1&&O==oe[c+1]&&O&24?f=oe[c]=O:oe[c]=256;else if(f==64){let u=c+1;for(;u<a&&oe[u]==64;)u++;let d=c&&O==8||u<t&&oe[u]==8?h==1?1:8:256;for(let p=c;p<u;p++)oe[p]=d;c=u-1}else f==8&&h==1&&(oe[c]=1);O=f,f&7&&(h=f)}}}function _x(i,e,t,n,r){let s=r==1?2:1;for(let o=0,a=0,l=0;o<=n.length;o++){let c=o?n[o-1].to:e,O=o<n.length?n[o].from:t;for(let h=c,f,u,d;h<O;h++)if(u=KO[f=i.charCodeAt(h)])if(u<0){for(let p=a-3;p>=0;p-=3)if(vt[p+1]==-u){let m=vt[p+2],g=m&2?r:m&4?m&1?s:r:0;g&&(oe[h]=oe[vt[p]]=g),a=p;break}}else{if(vt.length==189)break;vt[a++]=h,vt[a++]=f,vt[a++]=l}else if((d=oe[h])==2||d==1){let p=d==r;l=p?0:1;for(let m=a-3;m>=0;m-=3){let g=vt[m+2];if(g&2)break;if(p)vt[m+2]|=2;else{if(g&4)break;vt[m+2]|=4}}}}}function Cx(i,e,t,n){for(let r=0,s=n;r<=t.length;r++){let o=r?t[r-1].to:i,a=r<t.length?t[r].from:e;for(let l=o;l<a;){let c=oe[l];if(c==256){let O=l+1;for(;;)if(O==a){if(r==t.length)break;O=t[r++].to,a=r<t.length?t[r].from:e}else if(oe[O]==256)O++;else break;let h=s==1,f=(O<e?oe[O]:n)==1,u=h==f?h?1:2:n;for(let d=O,p=r,m=p?t[p-1].to:i;d>l;)d==m&&(d=t[--p].from,m=p?t[p-1].to:i),oe[--d]=u;l=O}else s=c,l++}}}function JO(i,e,t,n,r,s,o){let a=n%2?2:1;if(n%2==r%2)for(let l=e,c=0;l<t;){let O=!0,h=!1;if(c==s.length||l<s[c].from){let p=oe[l];p!=a&&(O=!1,h=p==16)}let f=!O&&a==1?[]:null,u=O?n:n+1,d=l;e:for(;;)if(c<s.length&&d==s[c].from){if(h)break e;let p=s[c];if(!O)for(let m=p.to,g=c+1;;){if(m==t)break e;if(g<s.length&&s[g].from==m)m=s[g++].to;else{if(oe[m]==a)break e;break}}if(c++,f)f.push(p);else{p.from>l&&o.push(new Pt(l,p.from,u));let m=p.direction==Mi!=!(u%2);ec(i,m?n+1:n,r,p.inner,p.from,p.to,o),l=p.to}d=p.to}else{if(d==t||(O?oe[d]!=a:oe[d]==a))break;d++}f?JO(i,l,d,n+1,r,f,o):l<d&&o.push(new Pt(l,d,u)),l=d}else for(let l=t,c=s.length;l>e;){let O=!0,h=!1;if(!c||l>s[c-1].to){let p=oe[l-1];p!=a&&(O=!1,h=p==16)}let f=!O&&a==1?[]:null,u=O?n:n+1,d=l;e:for(;;)if(c&&d==s[c-1].to){if(h)break e;let p=s[--c];if(!O)for(let m=p.from,g=c;;){if(m==e)break e;if(g&&s[g-1].to==m)m=s[--g].from;else{if(oe[m-1]==a)break e;break}}if(f)f.push(p);else{p.to<l&&o.push(new Pt(p.to,l,u));let m=p.direction==Mi!=!(u%2);ec(i,m?n+1:n,r,p.inner,p.from,p.to,o),l=p.from}d=p.from}else{if(d==e||(O?oe[d-1]!=a:oe[d-1]==a))break;d--}f?JO(i,d,l,n+1,r,f,o):d<l&&o.push(new Pt(d,l,u)),l=d}}function ec(i,e,t,n,r,s,o){let a=e%2?2:1;qx(i,r,s,n,a),_x(i,r,s,n,a),Cx(r,s,n,a),JO(i,r,s,e,t,n,o)}function Wx(i,e,t){if(!i)return[new Pt(0,0,e==_c?1:0)];if(e==Mi&&!t.length&&!Rx.test(i))return Am(i.length);if(t.length)for(;i.length>oe.length;)oe[oe.length]=256;let n=[],r=e==Mi?0:1;return ec(i,r,r,t,0,i.length,n),n}function Am(i){return[new Pt(0,i,0)]}var jm="";function Zx(i,e,t,n,r){var s;let o=n.head-i.from,a=Pt.find(e,o,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc),l=e[a],c=l.side(r,t);if(o==c){let f=a+=r?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!r,t),c=l.side(r,t)}let O=ve(i.text,o,l.forward(r,t));(O<l.from||O>l.to)&&(O=c),jm=i.text.slice(Math.min(o,O),Math.max(o,O));let h=a==(r?e.length-1:0)?null:e[a+(r?1:-1)];return h&&O==c&&h.level+(r?0:1)<l.level?P.cursor(h.side(!r,t)+i.from,h.forward(r,t)?1:-1,h.level):P.cursor(O+i.from,l.forward(r,t)?-1:1,l.level)}function Vx(i,e,t){for(let n=e;n<t;n++){let r=Zm(i.charCodeAt(n));if(r==1)return Mi;if(r==2||r==4)return _c}return Mi}var Ym=X.define(),Um=X.define(),Mm=X.define(),Em=X.define(),tc=X.define(),Dm=X.define(),Bm=X.define(),Cc=X.define(),Wc=X.define(),Lm=X.define({combine:i=>i.some(e=>e)}),Gm=X.define({combine:i=>i.some(e=>e)}),Im=X.define(),Ar=class i{constructor(e,t="nearest",n="nearest",r=5,s=5,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(P.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},wo=Z.define({map:(i,e)=>i.map(e)}),Nm=Z.define();function qe(i,e,t){let n=i.facet(Em);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var It=X.define({combine:i=>i.length?i[0]:!0}),Ax=0,kn=X.define({combine(i){return i.filter((e,t)=>{for(let n=0;n<t;n++)if(i[n].plugin==e.plugin)return!1;return!0})}}),ge=class i{constructor(e,t,n,r,s){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=r,this.baseExtensions=s(this),this.extension=this.baseExtensions.concat(kn.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(kn.of({plugin:this,arg:e}))}static define(e,t){let{eventHandlers:n,eventObservers:r,provide:s,decorations:o}=t||{};return new i(Ax++,e,n,r,a=>{let l=[];return o&&l.push(Fr.of(c=>{let O=c.plugin(a);return O?o(O):q.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return i.define((n,r)=>new e(n,r),t)}},jr=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(qe(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){qe(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){qe(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Fm=X.define(),Zc=X.define(),Fr=X.define(),Hm=X.define(),Vc=X.define(),Km=X.define();function Yp(i,e){let t=i.state.facet(Km);if(!t.length)return t;let n=t.map(s=>s instanceof Function?s(i):s),r=[];return F.spans(n,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,O=o-e.from,h=r;for(let f=a.length-1;f>=0;f--,l--){let u=a[f].spec.bidiIsolate,d;if(u==null&&(u=Vx(e.text,c,O)),l>0&&h.length&&(d=h[h.length-1]).to==c&&d.direction==u)d.to=O,h=d.inner;else{let p={from:c,to:O,direction:u,inner:[]};h.push(p),h=p.inner}}}}),r}var Jm=X.define();function Ac(i){let e=0,t=0,n=0,r=0;for(let s of i.state.facet(Jm)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(r=Math.max(r,o.bottom)))}return{left:e,right:t,top:n,bottom:r}}var qr=X.define(),kt=class i{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toA<n.fromA)break;n=n.join(r),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let r=0,s=0,o=0,a=0;;r++){let l=r==e.length?null:e[r],c=o-a,O=l?l.fromB:1e9;for(;s<t.length&&t[s]<O;){let h=t[s],f=t[s+1],u=Math.max(a,h),d=Math.min(O,f);if(u<=d&&new i(u+c,d+c,u,d).addToSet(n),f>O)break;s+=2}if(!l)return n;new i(l.fromA,l.toA,l.fromB,l.toB).addToSet(n),o=l.toA,a=l.toB}}},Eo=class i{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=Ae.empty(this.startState.doc.length);for(let s of n)this.changes=this.changes.compose(s.changes);let r=[];this.changes.iterChangedRanges((s,o,a,l)=>r.push(new kt(s,o,a,l))),this.changedRanges=r}static create(e,t,n){return new i(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Do=class extends Oe{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=q.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new Re],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new kt(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:c,toA:O})=>O<this.minWidthFrom||c>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let r=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!Bx(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let s=r>-1?Yx(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:O}=this.hasComposition;n=new kt(c,O,e.changes.mapPos(c,-1),e.changes.mapPos(O,1)).addToSet(n.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(R.ie||R.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.updateDeco(),l=Ex(o,a,e.changes);return n=kt.extendWithRanges(n,l),!(this.flags&7)&&n.length==0?!1:(this.updateInner(n,e.startState.doc.length,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:r}=this.view;r.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=R.chrome||R.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||r.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let o of this.children)o instanceof ji&&o.widget instanceof Nr&&s.push(o.dom);r.updateGaps(s)}updateChildren(e,t,n){let r=n?n.range.addToSet(e.slice()):e,s=this.childCursor(t);for(let o=r.length-1;;o--){let a=o>=0?r[o]:null;if(!a)break;let{fromA:l,toA:c,fromB:O,toB:h}=a,f,u,d,p;if(n&&n.range.fromB<h&&n.range.toB>O){let v=Vr.build(this.view.state.doc,O,n.range.fromB,this.decorations,this.dynamicDecorationMap),b=Vr.build(this.view.state.doc,n.range.toB,h,this.decorations,this.dynamicDecorationMap);u=v.breakAtStart,d=v.openStart,p=b.openEnd;let x=this.compositionView(n);b.breakAtStart?x.breakAfter=1:b.content.length&&x.merge(x.length,x.length,b.content[0],!1,b.openStart,0)&&(x.breakAfter=b.content[0].breakAfter,b.content.shift()),v.content.length&&x.merge(0,0,v.content[v.content.length-1],!0,0,v.openEnd)&&v.content.pop(),f=v.content.concat(x).concat(b.content)}else({content:f,breakAtStart:u,openStart:d,openEnd:p}=Vr.build(this.view.state.doc,O,h,this.decorations,this.dynamicDecorationMap));let{i:m,off:g}=s.findPos(c,1),{i:y,off:S}=s.findPos(l,-1);km(this,y,S,m,g,f,u,d,p)}n&&this.fixCompositionDOM(n)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let n of t.effects)n.is(Nm)&&(this.editContextFormatting=n.value)}compositionView(e){let t=new zt(e.text.nodeValue);t.flags|=8;for(let{deco:r}of e.marks)t=new di(r,[t],t.length);let n=new Re;return n.append(t,0),n}fixCompositionDOM(e){let t=(s,o)=>{o.flags|=8|(o.children.some(l=>l.flags&7)?1:0),this.markedForComposition.add(o);let a=Oe.get(s);a&&a!=o&&(a.dom=null),o.setDOM(s)},n=this.childPos(e.range.fromB,1),r=this.children[n.i];t(e.line,r);for(let s=e.marks.length-1;s>=-1;s--)n=r.childPos(n.off,1),r=r.children[n.i],t(s>=0?e.marks[s].node:e.text,r)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let n=this.view.root.activeElement,r=n==this.dom,s=!r&&!(this.view.state.facet(It)||this.dom.tabIndex>-1)&&_o(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(r||t||s))return;let o=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,l=this.moveToLine(this.domAtPos(a.anchor)),c=a.empty?l:this.moveToLine(this.domAtPos(a.head));if(R.gecko&&a.empty&&!this.hasComposition&&jx(l)){let h=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(h,l.node.childNodes[l.offset]||null)),l=c=new je(h,0),o=!0}let O=this.view.observer.selectionRange;(o||!O.focusNode||(!Zr(l.node,l.offset,O.anchorNode,O.anchorOffset)||!Zr(c.node,c.offset,O.focusNode,O.focusOffset))&&!this.suppressWidgetCursorChange(O,a))&&(this.view.observer.ignore(()=>{R.android&&R.chrome&&this.dom.contains(O.focusNode)&&Dx(O.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let h=Er(this.view.root);if(h)if(a.empty){if(R.gecko){let f=Ux(l.node,l.offset);if(f&&f!=3){let u=(f==1?wm:Pm)(l.node,l.offset);u&&(l=new je(u.node,u.offset))}}h.collapse(l.node,l.offset),a.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=a.bidiLevel)}else if(h.extend){h.collapse(l.node,l.offset);try{h.extend(c.node,c.offset)}catch{}}else{let f=document.createRange();a.anchor>a.head&&([l,c]=[c,l]),f.setEnd(c.node,c.offset),f.setStart(l.node,l.offset),h.removeAllRanges(),h.addRange(f)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(l,c)),this.impreciseAnchor=l.precise?null:new je(O.anchorNode,O.anchorOffset),this.impreciseHead=c.precise?null:new je(O.focusNode,O.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Zr(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=Er(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=Re.find(this,t.head);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let O=this.domAtPos(t.head+t.assoc);n.collapse(O.node,O.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&n.collapse(r,s)}moveToLine(e){let t=this.dom,n;if(e.node!=t)return e;for(let r=e.offset;!n&&r<t.childNodes.length;r++){let s=Oe.get(t.childNodes[r]);s instanceof Re&&(n=s.domAtPos(0))}for(let r=e.offset-1;!n&&r>=0;r--){let s=Oe.get(t.childNodes[r]);s instanceof Re&&(n=s.domAtPos(s.length))}return n?new je(n.node,n.offset,!0):e}nearest(e){for(let t=e;t;){let n=Oe.get(t);if(n&&n.rootView==this)return n;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t<this.children.length-1;){let r=this.children[t];if(n<r.length||r instanceof Re)break;t++,n=0}return this.children[t].domAtPos(n)}coordsAt(e,t){let n=null,r=0;for(let s=this.length,o=this.children.length-1;o>=0;o--){let a=this.children[o],l=s-a.breakAfter,c=l-a.length;if(l<e)break;if(c<=e&&(c<e||a.covers(-1))&&(l>e||a.covers(1))&&(!n||a instanceof Re&&!(n instanceof Re&&t>=0)))n=a,r=c;else if(n&&c==e&&l==e&&a instanceof ji&&Math.abs(t)<2){if(a.deco.startSide<0)break;o&&(n=null)}s=c}return n?n.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),r=this.children[t];if(!(r instanceof Re))return null;for(;r.children.length;){let{i:a,off:l}=r.childPos(n,1);for(;;a++){if(a==r.children.length)return null;if((r=r.children[a]).length)break}n=l}if(!(r instanceof zt))return null;let s=ve(r.text,n);if(s==n)return null;let o=Ui(r.dom,n,s).getClientRects();for(let a=0;a<o.length;a++){let l=o[a];if(a==o.length-1||l.top<l.bottom&&l.left<l.right)return l}return null}measureVisibleLineHeights(e){let t=[],{from:n,to:r}=e,s=this.view.contentDOM.clientWidth,o=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==ne.LTR;for(let c=0,O=0;O<this.children.length;O++){let h=this.children[O],f=c+h.length;if(f>r)break;if(c>=n){let u=h.dom.getBoundingClientRect();if(t.push(u.height),o){let d=h.dom.lastChild,p=d?Dr(d):[];if(p.length){let m=p[p.length-1],g=l?m.right-u.left:u.right-m.left;g>a&&(a=g,this.minWidth=s,this.minWidthFrom=c,this.minWidthTo=f)}}}c=f+h.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?ne.RTL:ne.LTR}measureTextSize(){for(let s of this.children)if(s instanceof Re){let o=s.measureTextSize();if(o)return o}let e=document.createElement("div"),t,n,r;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=Dr(e.firstChild)[0];t=e.getBoundingClientRect().height,n=s?s.width/27:7,r=s?s.height:t,e.remove()}),{lineHeight:t,charWidth:n,textHeight:r}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Uo(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],o=s?s.from-1:this.length;if(o>n){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(q.replace({widget:new Nr(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!s)break;n=s.to+1}return q.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Fr).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),n=!1,r=this.view.state.facet(Hm).map((s,o)=>{let a=typeof s=="function";return a&&(n=!0),a?s(this.view):s});for(r.length&&(this.dynamicDecorationMap[e++]=n,t.push(F.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;return this.decorations}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(Im))try{if(c(this.view,e.range,e))return!0}catch(O){qe(this.view.state,O,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let s=Ac(this.view),o={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;yx(this.view.scrollDOM,o,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,a),-a),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==ne.LTR)}};function jx(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function eg(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let n=wm(t.focusNode,t.focusOffset),r=Pm(t.focusNode,t.focusOffset),s=n||r;if(r&&n&&r.node!=n.node){let a=Oe.get(r.node);if(!a||a instanceof zt&&a.text!=r.node.nodeValue)s=r;else if(i.docView.lastCompositionAfterCursor){let l=Oe.get(n.node);!l||l instanceof zt&&l.text!=n.node.nodeValue||(s=r)}}if(i.docView.lastCompositionAfterCursor=s!=n,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function Yx(i,e,t){let n=eg(i,t);if(!n)return null;let{node:r,from:s,to:o}=n,a=r.nodeValue;if(/[\n\r]/.test(a)||i.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc,c=new kt(l.mapPos(s),l.mapPos(o),s,o),O=[];for(let h=r.parentNode;;h=h.parentNode){let f=Oe.get(h);if(f instanceof di)O.push({node:h,deco:f.mark});else{if(f instanceof Re||h.nodeName=="DIV"&&h.parentNode==i.contentDOM)return{range:c,text:r,marks:O,line:h};if(h!=i.contentDOM)O.push({node:h,deco:new Gr({inclusive:!0,attributes:kx(h),tagName:h.tagName.toLowerCase()})});else return null}}}function Ux(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e<i.childNodes.length&&i.childNodes[e].contentEditable=="false"?2:0)}var Mx=class{constructor(){this.changes=[]}compareRange(e,t){Co(e,t,this.changes)}comparePoint(e,t){Co(e,t,this.changes)}boundChange(e){Co(e,e,this.changes)}};function Ex(i,e,t){let n=new Mx;return F.compare(i,e,t,n),n.changes}function Dx(i,e){for(let t=i;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function Bx(i,e){let t=!1;return e&&i.iterChangedRanges((n,r)=>{n<e.to&&r>e.from&&(t=!0)}),t}function Lx(i,e,t=1){let n=i.charCategorizer(e),r=i.doc.lineAt(e),s=e-r.from;if(r.length==0)return P.cursor(e);s==0?t=1:s==r.length&&(t=-1);let o=s,a=s;t<0?o=ve(r.text,s,!1):a=ve(r.text,s);let l=n(r.text.slice(o,a));for(;o>0;){let c=ve(r.text,o,!1);if(n(r.text.slice(c,o))!=l)break;o=c}for(;a<r.length;){let c=ve(r.text,a);if(n(r.text.slice(a,c))!=l)break;a=c}return P.range(o+r.from,a+r.from)}function Gx(i,e){return e.left>i?e.left-i:Math.max(0,i-e.right)}function Ix(i,e){return e.top>i?e.top-i:Math.max(0,i-e.bottom)}function jO(i,e){return i.top<e.bottom-1&&i.bottom>e.top+1}function Up(i,e){return e<i.top?{top:e,left:i.left,right:i.right,bottom:i.bottom}:i}function Mp(i,e){return e>i.bottom?{top:i.top,left:i.left,right:i.right,bottom:e}:i}function ic(i,e,t){let n,r,s,o,a=!1,l,c,O,h;for(let d=i.firstChild;d;d=d.nextSibling){let p=Dr(d);for(let m=0;m<p.length;m++){let g=p[m];r&&jO(r,g)&&(g=Up(Mp(g,r.bottom),r.top));let y=Gx(e,g),S=Ix(t,g);if(y==0&&S==0)return d.nodeType==3?Ep(d,e,t):ic(d,e,t);(!n||o>S||o==S&&s>y)&&(n=d,r=g,s=y,o=S,a=y?e<g.left?m>0:m<p.length-1:!0),y==0?t>g.bottom&&(!O||O.bottom<g.bottom)?(l=d,O=g):t<g.top&&(!h||h.top>g.top)&&(c=d,h=g):O&&jO(O,g)?O=Mp(O,g.bottom):h&&jO(h,g)&&(h=Up(h,g.top))}}if(O&&O.bottom>=t?(n=l,r=O):h&&h.top<=t&&(n=c,r=h),!n)return{node:i,offset:0};let f=Math.max(r.left,Math.min(r.right,e));if(n.nodeType==3)return Ep(n,f,t);if(a&&n.contentEditable!="false")return ic(n,f,t);let u=Array.prototype.indexOf.call(i.childNodes,n)+(e>=(r.left+r.right)/2?1:0);return{node:i,offset:u}}function Ep(i,e,t){let n=i.nodeValue.length,r=-1,s=1e9,o=0;for(let a=0;a<n;a++){let l=Ui(i,a,a+1).getClientRects();for(let c=0;c<l.length;c++){let O=l[c];if(O.top==O.bottom)continue;o||(o=e-O.left);let h=(O.top>t?O.top-t:t-O.bottom)-1;if(O.left-1<=e&&O.right+1>=e&&h<s){let f=e>=(O.left+O.right)/2,u=f;if((R.chrome||R.gecko)&&Ui(i,a).getBoundingClientRect().left==O.right&&(u=!f),h<=0)return{node:i,offset:a+(u?1:0)};r=a+(u?1:0),s=h}}}return{node:i,offset:r>-1?r:o>0?i.nodeValue.length:0}}function tg(i,e,t,n=-1){var r,s;let o=i.contentDOM.getBoundingClientRect(),a=o.top+i.viewState.paddingTop,l,{docHeight:c}=i.viewState,{x:O,y:h}=e,f=h-a;if(f<0)return 0;if(f>c)return i.state.doc.length;for(let v=i.viewState.heightOracle.textHeight/2,b=!1;l=i.elementAtHeight(f),l.type!=Ye.Text;)for(;f=n>0?l.bottom+v:l.top-v,!(f>=0&&f<=c);){if(b)return t?null:0;b=!0,n=-n}h=a+f;let u=l.from;if(u<i.viewport.from)return i.viewport.from==0?0:t?null:Dp(i,o,l,O,h);if(u>i.viewport.to)return i.viewport.to==i.state.doc.length?i.state.doc.length:t?null:Dp(i,o,l,O,h);let d=i.dom.ownerDocument,p=i.root.elementFromPoint?i.root:d,m=p.elementFromPoint(O,h);m&&!i.contentDOM.contains(m)&&(m=null),m||(O=Math.max(o.left+1,Math.min(o.right-1,O)),m=p.elementFromPoint(O,h),m&&!i.contentDOM.contains(m)&&(m=null));let g,y=-1;if(m&&((r=i.docView.nearest(m))===null||r===void 0?void 0:r.isEditable)!=!1){if(d.caretPositionFromPoint){let v=d.caretPositionFromPoint(O,h);v&&({offsetNode:g,offset:y}=v)}else if(d.caretRangeFromPoint){let v=d.caretRangeFromPoint(O,h);v&&({startContainer:g,startOffset:y}=v,(!i.contentDOM.contains(g)||R.safari&&Nx(g,y,O)||R.chrome&&Fx(g,y,O))&&(g=void 0))}g&&(y=Math.min(Tt(g),y))}if(!g||!i.docView.dom.contains(g)){let v=Re.find(i.docView,u);if(!v)return f>l.top+l.height/2?l.to:l.from;({node:g,offset:y}=ic(v.dom,O,h))}let S=i.docView.nearest(g);if(!S)return null;if(S.isWidget&&((s=S.dom)===null||s===void 0?void 0:s.nodeType)==1){let v=S.dom.getBoundingClientRect();return e.y<v.top||e.y<=v.bottom&&e.x<=(v.left+v.right)/2?S.posAtStart:S.posAtEnd}else return S.localPosFromDOM(g,y)+S.posAtStart}function Dp(i,e,t,n,r){let s=Math.round((n-e.left)*i.defaultCharacterWidth);if(i.lineWrapping&&t.height>i.defaultLineHeight*1.5){let a=i.viewState.heightOracle.textHeight,l=Math.floor((r-t.top-(i.defaultLineHeight-a)*.5)/a);s+=l*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+bo(o,s,i.state.tabSize)}function Nx(i,e,t){let n,r=i;if(i.nodeType!=3||e!=(n=i.nodeValue.length))return!1;for(;;){let s=r.nextSibling;if(s){if(s.nodeName=="BR")break;return!1}else{let o=r.parentNode;if(!o||o.nodeName=="DIV")break;r=o}}return Ui(i,n-1,n).getBoundingClientRect().right>t}function Fx(i,e,t){if(e!=0)return!1;for(let r=i;;){let s=r.parentNode;if(!s||s.nodeType!=1||s.firstChild!=r)return!1;if(s.classList.contains("cm-line"))break;r=s}let n=i.nodeType==1?i.getBoundingClientRect():Ui(i,0,Math.max(i.nodeValue.length,1)).getBoundingClientRect();return t-n.left>5}function nc(i,e,t){let n=i.lineBlockAt(e);if(Array.isArray(n.type)){let r;for(let s of n.type){if(s.from>e)break;if(!(s.to<e)){if(s.from<e&&s.to>e)return s;(!r||s.type==Ye.Text&&(r.type!=s.type||(t<0?s.from<e:s.to>e)))&&(r=s)}}return r||n}return n}function Hx(i,e,t,n){let r=nc(i,e.head,e.assoc||-1),s=!n||r.type!=Ye.Text||!(i.lineWrapping||r.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),a=i.textDirectionAt(r.from),l=i.posAtCoords({x:t==(a==ne.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return P.cursor(l,t?-1:1)}return P.cursor(t?r.to:r.from,t?-1:1)}function Bp(i,e,t,n){let r=i.state.doc.lineAt(e.head),s=i.bidiSpans(r),o=i.textDirectionAt(r.from);for(let a=e,l=null;;){let c=Zx(r,s,o,a,t),O=jm;if(!c){if(r.number==(t?i.state.doc.lines:1))return a;O=`
    52 `,r=i.state.doc.line(r.number+(t?1:-1)),s=i.bidiSpans(r),c=i.visualLineSide(r,!t)}if(l){if(!l(O))return a}else{if(!n)return c;l=n(O)}a=c}}function Kx(i,e,t){let n=i.state.charCategorizer(e),r=n(t);return s=>{let o=n(s);return r==ie.Space&&(r=o),r==o}}function Jx(i,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return P.cursor(r,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(r,e.assoc||-1),O=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let u=i.viewState.lineBlockAt(r);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(r-u.from))),a=(s<0?u.top:u.bottom)+O}let h=l.left+o,f=n??i.viewState.heightOracle.textHeight>>1;for(let u=0;;u+=10){let d=a+(f+u)*s,p=tg(i,{x:h,y:d},!1,s);if(d<l.top||d>l.bottom||(s<0?p<r:p>r)){let m=i.docView.coordsForChar(p),g=!m||d<m.top?-1:1;return P.cursor(p,g,void 0,o)}}}function Wo(i,e,t){for(;;){let n=0;for(let r of i)r.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=n||t||(e-s<o-e?-1:1);e=l<0?s:o,n=l}});if(!n)return e}}function YO(i,e,t){let n=Wo(i.state.facet(Vc).map(r=>r(i)),t.from,e.head>t.from?-1:1);return n==t.from?t:P.cursor(n,n<t.from?1:-1)}var _r="\uFFFF",rc=class{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(ee.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=_r}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let s=this.text.length;this.readNode(r);let o=r.nextSibling;if(o==t)break;let a=Oe.get(r),l=Oe.get(o);(a&&l?a.breakAfter:(a?a.breakAfter:Yo(r))||Yo(o)&&(r.nodeName!="BR"||r.cmIgnore)&&this.text.length>s)&&this.lineBreak(),r=o}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=r.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);n=s+o}}readNode(e){if(e.cmIgnore)return;let t=Oe.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(e1(e,n.node,n.offset)?t:0))}};function e1(i,e,t){for(;;){if(!e||t<Tt(e))return!1;if(e==i)return!0;t=Yi(e)+1,e=e.parentNode}}var Bo=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},sc=class{constructor(e,t,n,r){this.typeOver=r,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let a=s||o?[]:n1(e),l=new rc(a,e.state);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=r1(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!BO(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!BO(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),O=e.viewport;if((R.ios||R.chrome)&&e.state.selection.main.empty&&l!=c&&(O.from>0||O.to<e.state.doc.length)){let h=Math.min(l,c),f=Math.max(l,c),u=O.from-h,d=O.to-f;(u==0||u==1||h==0)&&(d==0||d==-1||f==e.state.doc.length)&&(l=0,c=e.state.doc.length)}this.newSel=P.single(c,l)}}};function ig(i,e){let t,{newSel:n}=e,r=i.state.selection.main,s=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=r.from,c=null;(s===8||R.android&&e.text.length<a-o)&&(l=r.to,c="end");let O=i1(i.state.doc.sliceString(o,a,_r),e.text,l-o,c);O&&(R.chrome&&s==13&&O.toB==O.from+2&&e.text.slice(O.from,O.toB)==_r+_r&&O.toB--,t={from:o+O.from,to:o+O.toA,insert:M.of(e.text.slice(O.from,O.toB).split(_r))})}else n&&(!i.hasFocus&&i.state.facet(It)||n.main.eq(r))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!r.empty&&n&&n.main.empty?t={from:r.from,to:r.to,insert:i.state.doc.slice(r.from,r.to)}:(R.mac||R.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=P.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:M.of([t.insert.toString().replace("."," ")])}):t&&t.from>=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:i.state.doc.slice(r.from,t.from).append(t.insert).append(i.state.doc.slice(t.to,r.to))}:R.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==`
    53  `&&i.lineWrapping&&(n&&(n=P.single(n.main.anchor-1,n.main.head-1)),t={from:r.from,to:r.to,insert:M.of([" "])}),t)return jc(i,t,n,s);if(n&&!n.main.eq(r)){let o=!1,a="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(o=!0),a=i.inputState.lastSelectionOrigin),i.dispatch({selection:n,scrollIntoView:o,userEvent:a}),!0}else return!1}function jc(i,e,t,n=-1){if(R.ios&&i.inputState.flushIOSKey(e))return!0;let r=i.state.selection.main;if(R.android&&(e.to==r.to&&(e.from==r.from||e.from==r.from-1&&i.state.sliceDoc(e.from,r.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Rn(i.contentDOM,"Enter",13)||(e.from==r.from-1&&e.to==r.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>r.head)&&Rn(i.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&Rn(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=t1(i,e,t));return i.state.facet(Dm).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function t1(i,e,t){let n,r=i.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let a=s.from<e.from?r.sliceDoc(s.from,e.from):"",l=s.to>e.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(i.state.toText(a+e.insert.sliceString(0,void 0,i.state.lineBreak)+l))}else{let a=r.changes(e),l=t&&t.main.to<=a.newLength?t.main:void 0;if(r.selection.ranges.length>1&&i.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let c=i.state.sliceDoc(e.from,e.to),O,h=t&&eg(i,t.main.head);if(h){let d=e.insert.length-(e.to-e.from);O={from:h.from,to:h.to-d}}else O=i.state.doc.lineAt(s.head);let f=s.to-e.to,u=s.to-s.from;n=r.changeByRange(d=>{if(d.from==s.from&&d.to==s.to)return{changes:a,range:l||d.map(a)};let p=d.to-f,m=p-c.length;if(d.to-d.from!=u||i.state.sliceDoc(m,p)!=c||d.to>=O.from&&d.from<=O.to)return{range:d};let g=r.changes({from:m,to:p,insert:e.insert}),y=d.to-s.to;return{changes:g,range:l?P.range(Math.max(0,l.anchor+y),Math.max(0,l.head+y)):d.map(g)}})}else n={changes:a,selection:l&&r.selection.replaceRange(l)}}let o="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,o+=".compose",i.inputState.compositionFirstChange&&(o+=".start",i.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:o,scrollIntoView:!0})}function i1(i,e,t,n){let r=Math.min(i.length,e.length),s=0;for(;s<r&&i.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==r&&i.length==e.length)return null;let o=i.length,a=e.length;for(;o>0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&i.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function n1(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new Bo(t,n)),(r!=t||s!=n)&&e.push(new Bo(r,s))),e}function r1(i,e){if(i.length==0)return null;let t=i[0].pos,n=i.length==2?i[1].pos:t;return t>-1&&n>-1?P.single(t+e,n+e):null}var oc=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,R.safari&&e.contentDOM.addEventListener("input",()=>null),R.gecko&&y1(e.contentDOM.ownerDocument)}handleEvent(e){!h1(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let r of n.observers)r(this.view,t);for(let r of n.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=s1(e),n=this.handlers,r=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=n[s];a&&o!=!a.handlers.length&&(r.removeEventListener(s,this.handleEvent),a=null),a||r.addEventListener(s,this.handleEvent,{passive:o})}for(let s in n)s!="scroll"&&!t[s]&&r.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&rg.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),R.android&&R.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return R.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=ng.find(n=>n.keyCode==e.keyCode))&&!e.ctrlKey||o1.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,Rn(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:R.safari&&!R.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function Lp(i,e){return(t,n)=>{try{return e.call(i,n,t)}catch(r){qe(t.state,r)}}}function s1(i){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of i){let r=n.spec,s=r&&r.plugin.domEventHandlers,o=r&&r.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push(Lp(n.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(Lp(n.value,l))}}for(let n in gt)t(n).handlers.push(gt[n]);for(let n in ft)t(n).observers.push(ft[n]);return e}var ng=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],o1="dthko",rg=[16,17,18,20,91,92,224,225],Po=6;function ko(i){return Math.max(0,i)*.7+8}function a1(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var ac=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=Qx(e.contentDOM),this.atoms=e.state.facet(Vc).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ee.allowMultipleSelections)&&l1(e,t),this.dragging=c1(e,t)&&ag(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&a1(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,r=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Ac(this.view);e.clientX-l.left<=r+Po?t=-ko(r-e.clientX):e.clientX+l.right>=o-Po&&(t=ko(e.clientX-o)),e.clientY-l.top<=s+Po?n=-ko(s-e.clientY):e.clientY+l.bottom>=a-Po&&(n=ko(e.clientY-a)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;n<e.ranges.length;n++){let r=e.ranges[n],s=null;if(r.empty){let o=Wo(this.atoms,r.from,0);o!=r.from&&(s=P.cursor(o,-1))}else{let o=Wo(this.atoms,r.from,-1),a=Wo(this.atoms,r.to,1);(o!=r.from||a!=r.to)&&(s=P.range(r.from==r.anchor?o:a,r.from==r.head?o:a))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?P.create(t,e.mainIndex):e}select(e){let{view:t}=this,n=this.skipAtoms(this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function l1(i,e){let t=i.state.facet(Ym);return t.length?t[0](e):R.mac?e.metaKey:e.ctrlKey}function O1(i,e){let t=i.state.facet(Um);return t.length?t[0](e):R.mac?!e.altKey:!e.ctrlKey}function c1(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let n=Er(i.root);if(!n||n.rangeCount==0)return!0;let r=n.getRangeAt(0).getClientRects();for(let s=0;s<r.length;s++){let o=r[s];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function h1(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=Oe.get(t))&&n.ignoreEvent(e))return!1;return!0}var gt=Object.create(null),ft=Object.create(null),sg=R.ie&&R.ie_version<15||R.ios&&R.webkit_version<604;function f1(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),og(i,t.value)},50)}function na(i,e,t){for(let n of i.facet(e))t=n(t,i);return t}function og(i,e){e=na(i.state,Cc,e);let{state:t}=i,n,r=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(lc!=null&&t.selection.ranges.every(l=>l.empty)&&lc==s.toString()){let l=-1;n=t.changeByRange(c=>{let O=t.doc.lineAt(c.from);if(O.from==l)return{range:c};l=O.from;let h=t.toText((o?s.line(r++).text:e)+t.lineBreak);return{changes:{from:O.from,insert:h},range:P.cursor(c.from+h.length)}})}else o?n=t.changeByRange(l=>{let c=s.line(r++);return{changes:{from:l.from,to:l.to,insert:c.text},range:P.cursor(l.from+c.length)}}):n=t.replaceSelection(s);i.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}ft.scroll=i=>{i.inputState.lastScrollTop=i.scrollDOM.scrollTop,i.inputState.lastScrollLeft=i.scrollDOM.scrollLeft};gt.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);ft.touchstart=(i,e)=>{i.inputState.lastTouchTime=Date.now(),i.inputState.setSelectionOrigin("select.pointer")};ft.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};gt.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of i.state.facet(Mm))if(t=n(i,e),t)break;if(!t&&e.button==0&&(t=p1(i,e)),t){let n=!i.hasFocus;i.inputState.startMouseSelection(new ac(i,e,t,n)),n&&i.observer.ignore(()=>{bm(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let r=i.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}return!1};function Gp(i,e,t,n){if(n==1)return P.cursor(e,t);if(n==2)return Lx(i.state,e,t);{let r=Re.find(i.docView,e),s=i.state.doc.lineAt(r?r.posAtEnd:e),o=r?r.posAtStart:s.from,a=r?r.posAtEnd:s.to;return a<i.state.doc.length&&a==s.to&&a++,P.range(o,a)}}var Ip=(i,e,t)=>e>=t.top&&e<=t.bottom&&i>=t.left&&i<=t.right;function u1(i,e,t,n){let r=Re.find(i.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(s==0)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Ip(t,n,o))return-1;let a=r.coordsAt(s,1);return a&&Ip(t,n,a)?1:o&&o.bottom>=n?-1:1}function Np(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:u1(i,t,e.clientX,e.clientY)}}var d1=R.ie&&R.ie_version<=11,Fp=null,Hp=0,Kp=0;function ag(i){if(!d1)return i.detail;let e=Fp,t=Kp;return Fp=i,Kp=Date.now(),Hp=!e||t>Date.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(Hp+1)%3:1}function p1(i,e){let t=Np(i,e),n=ag(e),r=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,o,a){let l=Np(i,s),c,O=Gp(i,l.pos,l.bias,n);if(t.pos!=l.pos&&!o){let h=Gp(i,t.pos,t.bias,n),f=Math.min(h.from,O.from),u=Math.max(h.to,O.to);O=f<O.from?P.range(f,u):P.range(u,f)}return o?r.replaceRange(r.main.extend(O.from,O.to)):a&&n==1&&r.ranges.length>1&&(c=m1(r,l.pos))?c:a?r.addRange(O):P.create([O])}}}function m1(i,e){for(let t=0;t<i.ranges.length;t++){let{from:n,to:r}=i.ranges[t];if(n<=e&&r>=e)return P.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}gt.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let r=i.docView.nearest(e.target);if(r&&r.isWidget){let s=r.posAtStart,o=s+r.length;(s>=t.to||o<=t.from)&&(t=P.range(s,o))}}let{inputState:n}=i;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",na(i.state,Wc,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};gt.dragend=i=>(i.inputState.draggedContent=null,!1);function Jp(i,e,t,n){if(t=na(i.state,Cc,t),!t)return;let r=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=n&&s&&O1(i,e)?{from:s.from,to:s.to}:null,a={from:r,insert:t},l=i.state.changes(o?[o,a]:a);i.focus(),i.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}gt.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),r=0,s=()=>{++r==t.length&&Jp(i,e,n.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let a=new FileReader;a.onerror=s,a.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return Jp(i,e,n,!0),!0}return!1};gt.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=sg?null:e.clipboardData;return t?(og(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(f1(i),!1)};function g1(i,e){let t=i.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),i.focus()},50)}function $1(i){let e=[],t=[],n=!1;for(let r of i.selection.ranges)r.empty||(e.push(i.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>r&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),r=o.number}n=!0}return{text:na(i,Wc,e.join(i.lineBreak)),ranges:t,linewise:n}}var lc=null;gt.copy=gt.cut=(i,e)=>{let{text:t,ranges:n,linewise:r}=$1(i.state);if(!t&&!r)return!1;lc=r?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let s=sg?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(g1(i,t),!1)};var lg=De.define();function Og(i,e){let t=[];for(let n of i.facet(Bm)){let r=n(i,e);r&&t.push(r)}return t.length?i.update({effects:t,annotations:lg.of(!0)}):null}function cg(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=Og(i.state,e);t?i.dispatch(t):i.update([])}},10)}ft.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),cg(i)};ft.blur=i=>{i.observer.clearSelectionRange(),cg(i)};ft.compositionstart=ft.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};ft.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,R.chrome&&R.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};ft.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};gt.beforeinput=(i,e)=>{var t,n;if(e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=i.posAtDOM(a.startContainer,a.startOffset),c=i.posAtDOM(a.endContainer,a.endOffset);return jc(i,{from:l,to:c,insert:i.state.toText(s)},null),!0}}let r;if(R.chrome&&R.android&&(r=ng.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let s=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return R.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),R.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>ft.compositionend(i,e),20),!1};var em=new Set;function y1(i){em.has(i)||(em.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var tm=["pre-wrap","normal","pre-line","break-spaces"],qn=!1;function im(){qn=!1}var Oc=class{constructor(e){this.lineWrapping=e,this.doc=M.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return tm.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];r<0?n++:this.heightSamples[Math.floor(r*10)]||(t=!0,this.heightSamples[Math.floor(r*10)]=!0)}return t}refresh(e,t,n,r,s,o){let a=tm.indexOf(e)>-1,l=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=s,l){this.heightSamples={};for(let c=0;c<o.length;c++){let O=o[c];O<0?c++:this.heightSamples[Math.floor(O*10)]=!0}}return l}},cc=class{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}},wt=class i{constructor(e,t,n,r,s){this.from=e,this.length=t,this.top=n,this.height=r,this._content=s}get type(){return typeof this._content=="number"?Ye.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof pi?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new i(this.from,this.length+e.length,this.top,this.height+e.height,t)}},fe=function(i){return i[i.ByPos=0]="ByPos",i[i.ByHeight=1]="ByHeight",i[i.ByPosNoHeight=2]="ByPosNoHeight",i}(fe||(fe={})),Zo=.001,Je=class i{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Zo&&(qn=!0),this.height=e)}replace(e,t,n){return i.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let s=this,o=n.doc;for(let a=r.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:O,toB:h}=r[a],f=s.lineAt(l,fe.ByPosNoHeight,n.setDoc(t),0,0),u=f.to>=c?f:s.lineAt(c,fe.ByPosNoHeight,n,0,0);for(h+=u.to-c,c=u.to;a>0&&f.from<=r[a-1].toA;)l=r[a-1].fromA,O=r[a-1].fromB,a--,l<f.from&&(f=s.lineAt(l,fe.ByPosNoHeight,n,0,0));O+=f.from-l,l=f.from;let d=fc.build(n.setDoc(o),e,O,h);s=Lo(s,s.replace(l,c,d))}return s.updateHeight(n,0)}static empty(){return new ht(0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,r=0,s=0;for(;;)if(t==n)if(r>s*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),n+=1+a.break,r-=a.size}else if(s>r*2){let a=e[n];a.break?e.splice(n,1,a.left,null,a.right):e.splice(n,1,a.left,a.right),n+=2+a.break,s-=a.size}else break;else if(r<s){let a=e[t++];a&&(r+=a.size)}else{let a=e[--n];a&&(s+=a.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,n++),new hc(i.of(e.slice(0,t)),o,i.of(e.slice(n)))}};function Lo(i,e){return i==e?i:(i.constructor!=e.constructor&&(qn=!0),e)}Je.prototype.size=1;var Go=class extends Je{constructor(e,t,n){super(e,t),this.deco=n}blockAt(e,t,n,r){return new wt(r,this.length,n,this.height,this.deco||0)}lineAt(e,t,n,r,s){return this.blockAt(0,n,r,s)}forEachLine(e,t,n,r,s,o){e<=s+this.length&&t>=s&&o(this.blockAt(0,n,r,s))}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},ht=class i extends Go{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,r){return new wt(r,this.length,n,this.height,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof i||r instanceof ui&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof ui?r=new i(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):Je.of(n)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setHeight(r.heights[r.index++]):(n||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},ui=class i extends Je{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:n,lastLine:r,perLine:o,perChar:a}}blockAt(e,t,n,r){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,r);if(t.lineWrapping){let c=r+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),O=t.doc.lineAt(c),h=a+O.length*l,f=Math.max(n,e-h/2);return new wt(O.from,O.length,f,h,0)}else{let c=Math.max(0,Math.min(o-s,Math.floor((e-n)/a))),{from:O,length:h}=t.doc.line(s+c);return new wt(O,h,n+a*c,a,0)}}lineAt(e,t,n,r,s){if(t==fe.ByHeight)return this.blockAt(e,n,r,s);if(t==fe.ByPosNoHeight){let{from:u,to:d}=n.doc.lineAt(e);return new wt(u,d-u,0,0,0)}let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(n,s),c=n.doc.lineAt(e),O=a+c.length*l,h=c.number-o,f=r+a*h+l*(c.from-s-h);return new wt(c.from,c.length,Math.max(r,Math.min(f,r+this.height-O)),O,0)}forEachLine(e,t,n,r,s,o){e=Math.max(e,s),t=Math.min(t,s+this.length);let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(n,s);for(let O=e,h=r;O<=t;){let f=n.doc.lineAt(O);if(O==e){let d=f.number-a;h+=l*d+c*(e-s-d)}let u=l+c*f.length;o(new wt(f.from,f.length,h,u,0)),h+=u,O=f.to+1}}replace(e,t,n){let r=this.length-t;if(r>0){let s=n[n.length-1];s instanceof i?n[n.length-1]=new i(s.length+r):n.push(null,new i(r-1))}if(e>0){let s=n[0];s instanceof i?n[0]=new i(e+s.length):n.unshift(new i(e-1),null)}return Je.of(n)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,n=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let o=[],a=Math.max(t,r.from),l=-1;for(r.from>t&&o.push(new i(r.from-t-1).updateHeight(e,t));a<=s&&r.more;){let O=e.doc.lineAt(a).length;o.length&&o.push(null);let h=r.heights[r.index++];l==-1?l=h:Math.abs(h-l)>=Zo&&(l=-2);let f=new ht(O,h);f.outdated=!1,o.push(f),a+=O+1}a<=s&&o.push(null,new i(s-a).updateHeight(e,a));let c=Je.of(o);return(l<0||Math.abs(c.height-this.height)>=Zo||Math.abs(l-this.heightMetrics(e,t).perLine)>=Zo)&&(qn=!0),Lo(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},hc=class extends Je{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let s=n+this.left.height;return e<s?this.left.blockAt(e,t,n,r):this.right.blockAt(e,t,s,r+this.left.length+this.break)}lineAt(e,t,n,r,s){let o=r+this.left.height,a=s+this.left.length+this.break,l=t==fe.ByHeight?e<o:e<a,c=l?this.left.lineAt(e,t,n,r,s):this.right.lineAt(e,t,n,o,a);if(this.break||(l?c.to<a:c.from>a))return c;let O=t==fe.ByPosNoHeight?fe.ByPosNoHeight:fe.ByPos;return l?c.join(this.right.lineAt(a,O,n,o,a)):this.left.lineAt(a,O,n,r,s).join(c)}forEachLine(e,t,n,r,s,o){let a=r+this.left.height,l=s+this.left.length+this.break;if(this.break)e<l&&this.left.forEachLine(e,t,n,r,s,o),t>=l&&this.right.forEachLine(e,t,n,a,l,o);else{let c=this.lineAt(l,fe.ByPos,n,r,s);e<c.from&&this.left.forEachLine(e,c.from-1,n,r,s,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,a,l,o)}}replace(e,t,n){let r=this.left.length+this.break;if(t<r)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of n)s.push(a);if(e>0&&nm(s,o-1),t<this.length){let a=s.length;this.decomposeRight(t,s),nm(s,a)}return Je.of(s)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<r&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Je.of(this.break?[e,null,t]:[e,t]):(this.left=Lo(this.left,e),this.right=Lo(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return r&&r.from<=t+s.length&&r.more?l=s=s.updateHeight(e,t,n,r):s.updateHeight(e,t,n),r&&r.from<=a+o.length&&r.more?l=o=o.updateHeight(e,a,n,r):o.updateHeight(e,a,n),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function nm(i,e){let t,n;i[e]==null&&(t=i[e-1])instanceof ui&&(n=i[e+1])instanceof ui&&i.splice(e-1,3,new ui(t.length+1+n.length))}var Q1=5,fc=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof ht?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new ht(n-this.pos,-1)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let r=n.widget?n.widget.estimatedHeight:0,s=n.widget?n.widget.lineBreaks:0;r<0&&(r=this.oracle.lineHeight);let o=t-e;n.block?this.addBlock(new Go(o,r,n)):(o||s||r>=Q1)&&this.addLineDeco(r,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new ht(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new ui(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof ht)return e;let t=new ht(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof ht)&&!this.isCovered?this.nodes.push(new ht(0,-1)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let r of this.nodes)r instanceof ht&&r.updateHeight(this.oracle,n),n+=r?r.length:1;return this.nodes}static build(e,t,n,r){let s=new i(n,e);return F.spans(t,n,r,s,0),s.finish(n)}};function S1(i,e,t){let n=new uc;return F.compare(i,e,t,n,0),n.changes}var uc=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,r){(e<t||n&&n.heightRelevant||r&&r.heightRelevant)&&Co(e,t,this.changes,5)}};function b1(i,e){let t=i.getBoundingClientRect(),n=i.ownerDocument,r=n.defaultView||window,s=Math.max(0,t.left),o=Math.min(r.innerWidth,t.right),a=Math.max(0,t.top),l=Math.min(r.innerHeight,t.bottom);for(let c=i.parentNode;c&&c!=n.body;)if(c.nodeType==1){let O=c,h=window.getComputedStyle(O);if((O.scrollHeight>O.clientHeight||O.scrollWidth>O.clientWidth)&&h.overflow!="visible"){let f=O.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==i.parentNode?r.innerHeight:l,f.bottom)}c=h.position=="absolute"||h.position=="fixed"?O.offsetParent:O.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function x1(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left<t.innerWidth&&e.right>0&&e.top<t.innerHeight&&e.bottom>0}function v1(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Yr=class{constructor(e,t,n,r){this.from=e,this.to=t,this.size=n,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],s=t[n];if(r.from!=s.from||r.to!=s.to||r.size!=s.size)return!1}return!0}draw(e,t){return q.replace({widget:new dc(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}},dc=class extends Le{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}},Io=class{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=rm,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=ne.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Zc).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new Oc(t),this.stateDeco=e.facet(Fr).filter(n=>typeof n!="function"),this.heightMap=Je.empty().applyChanges(this.stateDeco,M.empty,this.heightOracle.setDoc(e.doc),[new kt(0,0,0,e.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=q.set(this.lineGaps.map(n=>n.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);e.push(new Tn(s,o))}}return this.viewports=e.sort((n,r)=>n.from-r.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?rm:new pc(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Cr(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(Fr).filter(O=>typeof O!="function");let r=e.changedRanges,s=kt.extendWithRanges(r,S1(n,this.stateDeco,e?e.changes:Ae.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);im(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||qn)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Gm)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?ne.RTL:ne.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,O=0;if(a.width&&a.height){let{scaleX:v,scaleY:b}=Sm(t,a);(v>.005&&Math.abs(this.scaleX-v)>.005||b>.005&&Math.abs(this.scaleY-b)>.005)&&(this.scaleX=v,this.scaleY=b,c|=16,o=l=!0)}let h=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=f)&&(this.paddingTop=h,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let u=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=u&&(this.scrollAnchorHeight=-1,this.scrollTop=u),this.scrolledToBottom=vm(e.scrollDOM);let d=(this.printing?v1:b1)(t,this.paddingTop),p=d.top-this.pixelViewport.top,m=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(l=!0)),!this.inView&&!this.scrollTarget&&!x1(e.dom))return 0;let y=a.width;if((this.contentDOMWidth!=y||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let v=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(v)&&(o=!0),o||r.lineWrapping&&Math.abs(y-this.contentDOMWidth)>r.charWidth){let{lineHeight:b,charWidth:x,textHeight:Q}=e.docView.measureTextSize();o=b>0&&r.refresh(s,b,x,Q,Math.max(5,y/x),v),o&&(e.docView.minWidth=0,c|=16)}p>0&&m>0?O=Math.max(p,m):p<0&&m<0&&(O=Math.min(p,m)),im();for(let b of this.viewports){let x=b.from==this.viewport.from?v:e.docView.measureVisibleLineHeights(b);this.heightMap=(o?Je.empty().applyChanges(this.stateDeco,M.empty,this.heightOracle,[new kt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new cc(b.from,x))}qn&&(c|=2)}let S=!this.viewportIsAppropriate(this.viewport,O)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return S&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(O,this.scrollTarget),c|=this.updateForViewport()),(c&2||S)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Tn(r.lineAt(o-n*1e3,fe.ByHeight,s,0,0).from,r.lineAt(a+(1-n)*1e3,fe.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(c<l.from||c>l.to){let O=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=r.lineAt(c,fe.ByPos,s,0,0),f;t.y=="center"?f=(h.top+h.bottom)/2-O/2:t.y=="start"||t.y=="nearest"&&c<l.from?f=h.top:f=h.bottom-O,l=new Tn(r.lineAt(f-1e3/2,fe.ByHeight,s,0,0).from,r.lineAt(f+O+1e3/2,fe.ByHeight,s,0,0).to)}}return l}mapViewport(e,t){let n=t.mapPos(e.from,-1),r=t.mapPos(e.to,1);return new Tn(this.heightMap.lineAt(n,fe.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(r,fe.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:r}=this.heightMap.lineAt(e,fe.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,fe.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:a}=this;return(e==0||r<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||s>=a+Math.max(10,Math.min(n,250)))&&r>o-2*1e3&&s<a+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let r of e)t.touchesRange(r.from,r.to)||n.push(new Yr(t.mapPos(r.from),t.mapPos(r.to),r.size,r.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,r=n?1e4:2e3,s=r>>1,o=r<<1;if(this.defaultTextDirection!=ne.LTR&&!n)return[];let a=[],l=(O,h,f,u)=>{if(h-O<s)return;let d=this.state.selection.main,p=[d.from];d.empty||p.push(d.to);for(let g of p)if(g>O&&g<h){l(O,g-10,f,u),l(g+10,h,f,u);return}let m=P1(e,g=>g.from>=f.from&&g.to<=f.to&&Math.abs(g.from-O)<s&&Math.abs(g.to-h)<s&&!p.some(y=>g.from<y&&g.to>y));if(!m){if(h<f.to&&t&&n&&t.visibleRanges.some(S=>S.from<=h&&S.to>=h)){let S=t.moveToLineBoundary(P.cursor(h),!1,!0).head;S>O&&(h=S)}let g=this.gapSize(f,O,h,u),y=n||g<2e6?g:2e6;m=new Yr(O,h,g,y)}a.push(m)},c=O=>{if(O.length<o||O.type!=Ye.Text)return;let h=w1(O.from,O.to,this.stateDeco);if(h.total<o)return;let f=this.scrollTarget?this.scrollTarget.range.head:null,u,d;if(n){let p=r/this.heightOracle.lineLength*this.heightOracle.lineHeight,m,g;if(f!=null){let y=zo(h,f),S=((this.visibleBottom-this.visibleTop)/2+p)/O.height;m=y-S,g=y+S}else m=(this.visibleTop-O.top-p)/O.height,g=(this.visibleBottom-O.top+p)/O.height;u=To(h,m),d=To(h,g)}else{let p=h.total*this.heightOracle.charWidth,m=r*this.heightOracle.charWidth,g=0;if(p>2e6)for(let x of e)x.from>=O.from&&x.from<O.to&&x.size!=x.displaySize&&x.from*this.heightOracle.charWidth+g<this.pixelViewport.left&&(g=x.size-x.displaySize);let y=this.pixelViewport.left+g,S=this.pixelViewport.right+g,v,b;if(f!=null){let x=zo(h,f),Q=((S-y)/2+m)/p;v=x-Q,b=x+Q}else v=(y-m)/p,b=(S+m)/p;u=To(h,v),d=To(h,b)}u>O.from&&l(O.from,u,O,h),d<O.to&&l(d,O.to,O,h)};for(let O of this.viewportLines)Array.isArray(O.type)?O.type.forEach(c):c(O);return a}gapSize(e,t,n,r){let s=zo(r,n)-zo(r,t);return this.heightOracle.lineWrapping?e.height*s:r.total*this.heightOracle.charWidth*s}updateLineGaps(e){Yr.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=q.set(e.map(t=>t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];F.spans(t,this.viewport.from,this.viewport.to,{span(s,o){n.push({from:s,to:o})},point(){}},20);let r=0;if(n.length!=this.visibleRanges.length)r=12;else for(let s=0;s<n.length&&!(r&8);s++){let o=this.visibleRanges[s],a=n[s];(o.from!=a.from||o.to!=a.to)&&(r|=4,e&&e.mapPos(o.from,-1)==a.from&&e.mapPos(o.to,1)==a.to||(r|=8))}return this.visibleRanges=n,r}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Cr(this.heightMap.lineAt(e,fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Cr(this.heightMap.lineAt(this.scaler.fromDOM(e),fe.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Cr(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Tn=class{constructor(e,t){this.from=e,this.to=t}};function w1(i,e,t){let n=[],r=i,s=0;return F.spans(t,i,e,{span(){},point(o,a){o>r&&(n.push({from:r,to:o}),s+=o-r),r=a}},20),r<e&&(n.push({from:r,to:e}),s+=e-r),{total:s,ranges:n}}function To({total:i,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(i*t);for(let r=0;;r++){let{from:s,to:o}=e[r],a=o-s;if(n<=a)return s+n;n-=a}}function zo(i,e){let t=0;for(let{from:n,to:r}of i.ranges){if(e<=r){t+=e-n;break}t+=r-n}return t/i.total}function P1(i,e){for(let t of i)if(e(t))return t}var rm={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}},pc=class i{constructor(e,t,n){let r=0,s=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let c=t.lineAt(a,fe.ByPos,e,0,0).top,O=t.lineAt(l,fe.ByPos,e,0,0).bottom;return r+=O-c,{from:a,to:l,top:c,bottom:O,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.top)return r+(e-n)*this.scale;if(e<=s.bottom)return s.domTop+(e-s.top);n=s.bottom,r=s.domBottom}}fromDOM(e){for(let t=0,n=0,r=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.domTop)return n+(e-r)/this.scale;if(e<=s.domBottom)return s.top+(e-s.domTop);n=s.bottom,r=s.domBottom}}eq(e){return e instanceof i?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((t,n)=>t.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}};function Cr(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),n=e.toDOM(i.bottom);return new wt(i.from,i.length,t,n-t,Array.isArray(i._content)?i._content.map(r=>Cr(r,e)):i._content)}var Xo=X.define({combine:i=>i.join(" ")}),mc=X.define({combine:i=>i.indexOf(!0)>-1}),gc=ct.newName(),hg=ct.newName(),fg=ct.newName(),ug={"&light":"."+hg,"&dark":"."+fg};function $c(i,e,t){return new ct(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,r=>{if(r=="&")return i;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):i+" "+n}})}var k1=$c("."+gc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},ug),T1={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},UO=R.ie&&R.ie_version<=11,yc=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new LO,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(R.ie&&R.ie_version<=11||R.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&R.android&&e.constructor.EDIT_CONTEXT!==!1&&!(R.chrome&&R.chrome_version<126)&&(this.editContext=new Qc(e),e.state.facet(It)&&(e.contentDOM.editContext=this.editContext.editContext)),UO&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(It)?n.root.activeElement!=this.dom:!_o(this.dom,r))return;let s=r.anchorNode&&n.docView.nearest(r.anchorNode);if(s&&s.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(R.ie&&R.ie_version<=11||R.android&&R.chrome)&&!n.state.selection.main.empty&&r.focusNode&&Zr(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Er(e.root);if(!t)return!1;let n=R.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&z1(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=_o(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&bx(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),r&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,T1),UO&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),UO&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let r=()=>{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Rn(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&_o(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new sc(this.view,e,t,n);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=ig(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.flags|=4),e.type=="childList"){let n=sm(t,e.previousSibling||e.target.previousSibling,-1),r=sm(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(It)!=e.state.facet(It)&&(e.view.contentDOM.editContext=e.state.facet(It)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function sm(i,e,t){for(;e;){let n=Oe.get(e);if(n&&n.parent==i)return n;let r=e.parentNode;e=r!=i.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function om(i,e){let t=e.startContainer,n=e.startOffset,r=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor);return Zr(o.node,o.offset,r,s)&&([t,n,r,s]=[r,s,t,n]),{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}}function z1(i,e){if(e.getComposedRanges){let r=e.getComposedRanges(i.root)[0];if(r)return om(i,r)}let t=null;function n(r){r.preventDefault(),r.stopImmediatePropagation(),t=r.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",n,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",n,!0),t?om(i,t):null}var Qc=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let r=e.state.selection.main,{anchor:s,head:o}=r,a=this.toEditorPos(n.updateRangeStart),l=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:a,drifted:!1});let c={from:a,to:l,insert:M.of(n.text.split(`
    54 `))};if(c.from==this.from&&s<this.from?c.from=s:c.to==this.to&&s>this.to&&(c.to=s),c.from==c.to&&!c.insert.length){let O=P.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));O.main.eq(r)||e.dispatch({selection:O,userEvent:"select"});return}if((R.mac||R.android)&&c.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:a,to:l,insert:M.of([n.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let O=this.to-this.from+(c.to-c.from+c.insert.length);jc(e,c,P.single(this.toEditorPos(n.selectionStart,O),this.toEditorPos(n.selectionEnd,O)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=n=>{let r=[],s=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,r.push(s)}t.updateCharacterBounds(n.rangeStart,r)},this.handlers.textformatupdate=n=>{let r=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(o!="None"&&a!="None"){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let O=`text-decoration: underline ${o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${a=="Thin"?1:2}px`;r.push(q.mark({attributes:{style:O}}).range(l,c))}}}e.dispatch({effects:Nm.of(q.set(r))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{this.editContext.updateControlBounds(n.contentDOM.getBoundingClientRect());let r=Er(n.root);r&&r.rangeCount&&this.editContext.updateSelectionBounds(r.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,r=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(n)return;let O=c.length-(o-s);if(r&&o>=r.to)if(r.from==s&&r.to==o&&r.insert.eq(c)){r=this.pendingContextChange=null,t+=O,this.to+=O;return}else r=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=O,this.to+=O;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=O}t+=O}),r&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(r=>!r.isUserEvent("input.type")&&r.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(n,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},T=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(r=>r.forEach(s=>n(s,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||Sx(e.parent)||document,this.viewState=new Io(e.state||ee.create(e)),e.scrollTo&&e.scrollTo.is(wo)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(kn).map(r=>new jr(r));for(let r of this.plugins)r.update(this);this.observer=new yc(this),this.inputState=new oc(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Do(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let t=e.length==1&&e[0]instanceof xe?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,r,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(lg))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=Og(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,O=null;if(c?(this.observer.clearDelayedAndroidKey(),O=this.observer.readChange(),(O&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(O=null)):this.observer.clear(),s.facet(ee.phrases)!=this.state.facet(ee.phrases))return this.setState(s);r=Eo.create(this,s,e),r.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(h&&(h=h.map(f.changes)),f.scrollIntoView){let{main:u}=f.state.selection;h=new Ar(u.empty?u:P.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of f.effects)u.is(wo)&&(h=u.value.clip(this.state))}this.viewState.update(r,h),this.bidiCache=No.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(qr)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Xo)!=r.state.facet(Xo)&&(this.viewState.mustMeasureContent=!0),(t||n||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let f of this.state.facet(tc))try{f(r)}catch(u){qe(this.state,u,"update listener")}(l||O)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),O&&!ig(this,O)&&c.force&&Rn(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Io(e),this.plugins=e.facet(kn).map(n=>new jr(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Do(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(kn),n=e.state.facet(kn);if(t!=n){let r=[];for(let s of n){let o=t.indexOf(s);if(o<0)r.push(new jr(s));else{let a=this.plugins[o];a.mustUpdate=e,r.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r<this.plugins.length;r++)this.plugins[r].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(n){qe(this.state,n,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,r=n.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(vm(n))s=-1,o=this.viewState.heightMap.height;else{let u=this.viewState.scrollAnchorAt(r);s=u.from,o=u.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let O=c.map(u=>{try{return u.read(this)}catch(d){return qe(this.state,d),am}}),h=Eo.create(this,this.state,[]),f=!1;h.flags|=l,t?t.flags|=l:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),f=this.docView.update(h),f&&this.docViewUpdate());for(let u=0;u<c.length;u++)if(O[u]!=am)try{let d=c[u];d.write&&d.write(O[u],this)}catch(d){qe(this.state,d)}if(f&&this.docView.updateSelection(!0),!h.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let d=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-o;if(d>1||d<-1){r=r+d,n.scrollTop=r/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(tc))a(t)}get themeClasses(){return gc+" "+(this.state.facet(mc)?fg:hg)+" "+this.state.facet(Xo)}updateAttrs(){let e=lm(this,Fm,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(It)?"true":"false",class:"cm-content",style:`${R.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),lm(this,Zc,t);let n=this.observer.ignore(()=>{let r=HO(this.contentDOM,this.contentAttrs,t),s=HO(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let r of n.effects)if(r.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(qr);let e=this.state.facet(i.cspNonce);ct.mount(this.root,this.styleModules.concat(k1).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return YO(this,e,Bp(this,e,t,n))}moveByGroup(e,t){return YO(this,e,Bp(this,e,t,n=>Kx(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),r=this.textDirectionAt(e.from),s=n[t?n.length-1:0];return P.cursor(s.side(t,r)+e.from,s.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,n=!0){return Hx(this,e,t,n)}moveVertically(e,t,n){return YO(this,e,Jx(this,e,t,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),tg(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let r=this.state.doc.lineAt(e),s=this.bidiSpans(r),o=s[Pt.find(s,e-r.from,-1,t)];return ta(n,o.dir==ne.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Lm)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>X1)return Am(e.length);let t=this.textDirectionAt(e.from),n;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||Vm(s.isolates,n=Yp(this,e))))return s.order;n||(n=Yp(this,e));let r=Wx(e.text,t,n);return this.bidiCache.push(new No(e.from,e.to,t,n,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||R.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{bm(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return wo.of(new Ar(typeof e=="number"?P.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return wo.of(new Ar(P.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ge.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ge.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=ct.newName(),r=[Xo.of(n),qr.of($c(`.${n}`,e))];return t&&t.dark&&r.push(mc.of(!0)),r}static baseTheme(e){return Ot.lowest(qr.of($c("."+gc,e,ug)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&Oe.get(n)||Oe.get(e);return((t=r?.rootView)===null||t===void 0?void 0:t.view)||null}};T.styleModule=qr;T.inputHandler=Dm;T.clipboardInputFilter=Cc;T.clipboardOutputFilter=Wc;T.scrollHandler=Im;T.focusChangeEffect=Bm;T.perLineTextDirection=Lm;T.exceptionSink=Em;T.updateListener=tc;T.editable=It;T.mouseSelectionStyle=Mm;T.dragMovesSelection=Um;T.clickAddsSelectionRange=Ym;T.decorations=Fr;T.outerDecorations=Hm;T.atomicRanges=Vc;T.bidiIsolatedRanges=Km;T.scrollMargins=Jm;T.darkTheme=mc;T.cspNonce=X.define({combine:i=>i.length?i[0]:""});T.contentAttributes=Zc;T.editorAttributes=Fm;T.lineWrapping=T.contentAttributes.of({class:"cm-lineWrapping"});T.announce=Z.define();var X1=4096,am={},No=class i{constructor(e,t,n,r,s,o){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let n=[],r=e.length?e[e.length-1].dir:ne.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let o=e[s];o.dir==r&&!t.touchesRange(o.from,o.to)&&n.push(new i(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return n}};function lm(i,e,t){for(let n=i.state.facet(e),r=n.length-1;r>=0;r--){let s=n[r],o=typeof s=="function"?s(i):s;o&&FO(o,t)}return t}var R1=R.mac?"mac":R.windows?"win":R.linux?"linux":"key";function q1(i,e){let t=i.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,s,o,a;for(let l=0;l<t.length-1;++l){let c=t[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))r=!0;else if(/^(c|ctrl|control)$/i.test(c))s=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?a=!0:s=!0;else throw new Error("Unrecognized modifier name: "+c)}return r&&(n="Alt-"+n),s&&(n="Ctrl-"+n),a&&(n="Meta-"+n),o&&(n="Shift-"+n),n}function Ro(i,e,t){return e.altKey&&(i="Alt-"+i),e.ctrlKey&&(i="Ctrl-"+i),e.metaKey&&(i="Meta-"+i),t!==!1&&e.shiftKey&&(i="Shift-"+i),i}var _1=Ot.default(T.domEventHandlers({keydown(i,e){return mg(dg(e.state),i,e,"editor")}})),_n=X.define({enables:_1}),Om=new WeakMap;function dg(i){let e=i.facet(_n),t=Om.get(e);return t||Om.set(e,t=W1(e.reduce((n,r)=>n.concat(r),[]))),t}function pg(i,e,t){return mg(dg(i.state),e,i,t)}var fi=null,C1=4e3;function W1(i,e=R1){let t=Object.create(null),n=Object.create(null),r=(o,a)=>{let l=n[o];if(l==null)n[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,O)=>{var h,f;let u=t[o]||(t[o]=Object.create(null)),d=a.split(/ (?!$)/).map(g=>q1(g,e));for(let g=1;g<d.length;g++){let y=d.slice(0,g).join(" ");r(y,!0),u[y]||(u[y]={preventDefault:!0,stopPropagation:!1,run:[S=>{let v=fi={view:S,prefix:y,scope:o};return setTimeout(()=>{fi==v&&(fi=null)},C1),!0}]})}let p=d.join(" ");r(p,!1);let m=u[p]||(u[p]={preventDefault:!1,stopPropagation:!1,run:((f=(h=u._any)===null||h===void 0?void 0:h.run)===null||f===void 0?void 0:f.slice())||[]});l&&m.run.push(l),c&&(m.preventDefault=!0),O&&(m.stopPropagation=!0)};for(let o of i){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let O=t[c]||(t[c]=Object.create(null));O._any||(O._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let f in O)O[f].run.push(u=>h(u,Sc))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var Sc=null;function mg(i,e,t,n){Sc=e;let r=Rp(e),s=Xe(r,0),o=Ke(s)==r.length&&r!=" ",a="",l=!1,c=!1,O=!1;fi&&fi.view==t&&fi.scope==n&&(a=fi.prefix+" ",rg.indexOf(e.keyCode)<0&&(c=!0,fi=null));let h=new Set,f=m=>{if(m){for(let g of m.run)if(!h.has(g)&&(h.add(g),g(t)))return m.stopPropagation&&(O=!0),!0;m.preventDefault&&(m.stopPropagation&&(O=!0),c=!0)}return!1},u=i[n],d,p;return u&&(f(u[a+Ro(r,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(R.windows&&e.ctrlKey&&e.altKey)&&!(R.mac&&e.altKey&&!e.ctrlKey)&&(d=Gt[e.keyCode])&&d!=r?(f(u[a+Ro(d,e,!0)])||e.shiftKey&&(p=wn[e.keyCode])!=r&&p!=d&&f(u[a+Ro(p,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(u[a+Ro(r,e,!0)])&&(l=!0),!l&&f(u._any)&&(l=!0)),c&&(l=!0),l&&O&&e.stopPropagation(),Sc=null,l}var Hr=class i{constructor(e,t,n,r,s){this.className=e,this.left=t,this.top=n,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let s=gg(e);return[new i(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return Z1(e,t,n)}};function gg(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==ne.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function cm(i,e,t,n){let r=i.coordsAtPos(e,t*2);if(!r)return n;let s=i.dom.getBoundingClientRect(),o=(r.top+r.bottom)/2,a=i.posAtCoords({x:s.left+1,y:o}),l=i.posAtCoords({x:s.right-1,y:o});return a==null||l==null?n:{from:Math.max(n.from,Math.min(a,l)),to:Math.min(n.to,Math.max(a,l))}}function Z1(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let n=Math.max(t.from,i.viewport.from),r=Math.min(t.to,i.viewport.to),s=i.textDirection==ne.LTR,o=i.contentDOM,a=o.getBoundingClientRect(),l=gg(i),c=o.querySelector(".cm-line"),O=c&&window.getComputedStyle(c),h=a.left+(O?parseInt(O.paddingLeft)+Math.min(0,parseInt(O.textIndent)):0),f=a.right-(O?parseInt(O.paddingRight):0),u=nc(i,n,1),d=nc(i,r,-1),p=u.type==Ye.Text?u:null,m=d.type==Ye.Text?d:null;if(p&&(i.lineWrapping||u.widgetLineBreaks)&&(p=cm(i,n,1,p)),m&&(i.lineWrapping||d.widgetLineBreaks)&&(m=cm(i,r,-1,m)),p&&m&&p.from==m.from&&p.to==m.to)return y(S(t.from,t.to,p));{let b=p?S(t.from,null,p):v(u,!1),x=m?S(null,t.to,m):v(d,!0),Q=[];return(p||u).to<(m||d).from-(p&&m?1:0)||u.widgetLineBreaks>1&&b.bottom+i.defaultLineHeight/2<x.top?Q.push(g(h,b.bottom,f,x.top)):b.bottom<x.top&&i.elementAtHeight((b.bottom+x.top)/2).type==Ye.Text&&(b.bottom=x.top=(b.bottom+x.top)/2),y(b).concat(Q).concat(y(x))}function g(b,x,Q,w){return new Hr(e,b-l.left,x-l.top,Q-b,w-x)}function y({top:b,bottom:x,horizontal:Q}){let w=[];for(let k=0;k<Q.length;k+=2)w.push(g(Q[k],b,Q[k+1],x));return w}function S(b,x,Q){let w=1e9,k=-1e9,V=[];function A(B,L,re,me,Me){let Qe=i.coordsAtPos(B,B==Q.to?-2:2),U=i.coordsAtPos(re,re==Q.from?2:-2);!Qe||!U||(w=Math.min(Qe.top,U.top,w),k=Math.max(Qe.bottom,U.bottom,k),Me==ne.LTR?V.push(s&&L?h:Qe.left,s&&me?f:U.right):V.push(!s&&me?h:U.left,!s&&L?f:Qe.right))}let C=b??Q.from,D=x??Q.to;for(let B of i.visibleRanges)if(B.to>C&&B.from<D)for(let L=Math.max(B.from,C),re=Math.min(B.to,D);;){let me=i.state.doc.lineAt(L);for(let Me of i.bidiSpans(me)){let Qe=Me.from+me.from,U=Me.to+me.from;if(Qe>=re)break;U>L&&A(Math.max(Qe,L),b==null&&Qe<=C,Math.min(U,re),x==null&&U>=D,Me.dir)}if(L=me.to+1,L>=re)break}return V.length==0&&A(C,b==null,D,x==null,i.textDirection),{top:w,bottom:k,horizontal:V}}function v(b,x){let Q=a.top+(x?b.top:b.bottom);return{top:Q,bottom:Q,horizontal:[]}}}function V1(i,e){return i.constructor==e.constructor&&i.eq(e)}var bc=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Vo)!=e.state.facet(Vo)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(Vo);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!V1(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Vo=X.define();function $g(i){return[ge.define(e=>new bc(e,i)),Vo.of(i)]}var Kr=X.define({combine(i){return Ze(i,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function yg(i={}){return[Kr.of(i),A1,j1,Y1,Gm.of(!0)]}function Qg(i){return i.startState.facet(Kr)!=i.state.facet(Kr)}var A1=$g({above:!0,markers(i){let{state:e}=i,t=e.facet(Kr),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty||t.drawRangeCursor){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=r.empty?r:P.cursor(r.head,r.head>r.anchor?-1:1);for(let l of Hr.forRange(i,o,a))n.push(l)}}return n},update(i,e){i.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Qg(i);return t&&hm(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){hm(e.state,i)},class:"cm-cursorLayer"});function hm(i,e){e.style.animationDuration=i.facet(Kr).cursorBlinkRate+"ms"}var j1=$g({above:!1,markers(i){return i.state.selection.ranges.map(e=>e.empty?[]:Hr.forRange(i,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||Qg(i)},class:"cm-selectionLayer"}),Y1=Ot.highest(T.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Sg=Z.define({map(i,e){return i==null?null:e.mapPos(i)}}),Wr=de.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,n)=>n.is(Sg)?n.value:t,i)}}),U1=ge.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(Wr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(Wr)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Wr),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let n=i.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-n.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Wr)!=i&&this.view.dispatch({effects:Sg.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function bg(){return[Wr,U1]}function fm(i,e,t,n,r){e.lastIndex=0;for(let s=i.iterRange(t,n),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)r(o+a.index,a)}function M1(i,e){let t=i.visibleRanges;if(t.length==1&&t[0].from==i.viewport.from&&t[0].to==i.viewport.to)return t;let n=[];for(let{from:r,to:s}of t)r=Math.max(i.state.doc.lineAt(r).from,r-e),s=Math.min(i.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=r?n[n.length-1].to=s:n.push({from:r,to:s});return n}var xc=class{constructor(e){let{regexp:t,decoration:n,decorate:r,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(a,l,c,O)=>r(O,c,c+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,c,O)=>{let h=n(a,l,c);h&&O(c,c+a[0].length,h)};else if(n)this.addMatch=(a,l,c,O)=>O(c,c+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new He,n=t.add.bind(t);for(let{from:r,to:s}of M1(e,this.maxLength))fm(e.state.doc,this.regexp,r,s,(o,a)=>this.addMatch(a,e,o,n));return t.finish()}updateDeco(e,t){let n=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(n=Math.min(a,n),r=Math.max(l,r))}),e.viewportMoved||r-n>1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),n,r):t}updateRange(e,t,n,r){for(let s of e.visibleRanges){let o=Math.max(s.from,n),a=Math.min(s.to,r);if(a>=o){let l=e.state.doc.lineAt(o),c=l.to<a?e.state.doc.lineAt(a):l,O=Math.max(s.from,l.from),h=Math.min(s.to,c.to);if(this.boundary){for(;o>l.from;o--)if(this.boundary.test(l.text[o-1-l.from])){O=o;break}for(;a<c.to;a++)if(this.boundary.test(c.text[a-c.from])){h=a;break}}let f=[],u,d=(p,m,g)=>f.push(g.range(p,m));if(l==c)for(this.regexp.lastIndex=O-l.from;(u=this.regexp.exec(l.text))&&u.index<h-l.from;)this.addMatch(u,e,u.index+l.from,d);else fm(e.state.doc,this.regexp,O,h,(p,m)=>this.addMatch(m,e,p,d));t=t.update({filterFrom:O,filterTo:h,filter:(p,m)=>p<O||m>h,add:f})}}return t}},vc=/x/.unicode!=null?"gu":"g",E1=new RegExp(`[\0-\b
    55 -\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,vc),D1={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},MO=null;function B1(){var i;if(MO==null&&typeof document<"u"&&document.body){let e=document.body.style;MO=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return MO||!1}var Ao=X.define({combine(i){let e=Ze(i,{render:null,specialChars:E1,addSpecialChars:null});return(e.replaceTabs=!B1())&&(e.specialChars=new RegExp("   |"+e.specialChars.source,vc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,vc)),e}});function xg(i={}){return[Ao.of(i),L1()]}var um=null;function L1(){return um||(um=ge.fromClass(class{constructor(i){this.view=i,this.decorations=q.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(Ao)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new xc({regexp:i.specialChars,decoration:(e,t,n)=>{let{doc:r}=t.state,s=Xe(e[0],0);if(s==9){let o=r.lineAt(n),a=t.state.tabSize,l=Lt(o.text,a,n-o.from);return q.replace({widget:new Pc((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=q.replace({widget:new wc(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(Ao);i.startState.facet(Ao)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var G1="\u2022";function I1(i){return i>=32?G1:i==10?"\u2424":String.fromCharCode(9216+i)}var wc=class extends Le{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=I1(this.code),n=e.state.phrase("Control character")+" "+(D1[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,n,t);if(r)return r;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},Pc=class extends Le{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function vg(){return F1}var N1=q.line({class:"cm-activeLine"}),F1=ge.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let n of i.state.selection.ranges){let r=i.lineBlockAt(n.head);r.from>e&&(t.push(N1.range(r.from)),e=r.from)}return q.set(t)}},{decorations:i=>i.decorations});var kc=2e3;function H1(i,e,t){let n=Math.min(e.line,t.line),r=Math.max(e.line,t.line),s=[];if(e.off>kc||t.off>kc||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=r;l++){let c=i.doc.line(l);c.length<=a&&s.push(P.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=r;l++){let c=i.doc.line(l),O=bo(c.text,o,i.tabSize,!0);if(O<0)s.push(P.cursor(c.to));else{let h=bo(c.text,a,i.tabSize);s.push(P.range(c.from+O,c.from+h))}}}return s}function K1(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function dm(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),n=i.state.doc.lineAt(t),r=t-n.from,s=r>kc?-1:r==n.length?K1(i,e.clientX):Lt(n.text,i.state.tabSize,t-n.from);return{line:n.number,col:s,off:r}}function J1(i,e){let t=dm(i,e),n=i.state.selection;return t?{update(r){if(r.docChanged){let s=r.changes.mapPos(r.startState.doc.line(t.line).from),o=r.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(r.changes)}},get(r,s,o){let a=dm(i,r);if(!a)return n;let l=H1(i.state,t,a);return l.length?o?P.create(l.concat(n.ranges)):P.create(l):n}}:null}function wg(i){let e=i?.eventFilter||(t=>t.altKey&&t.button==0);return T.mouseSelectionStyle.of((t,n)=>e(n)?J1(t,n):null)}var ev={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},tv={style:"cursor: crosshair"};function Pg(i={}){let[e,t]=ev[i.key||"Alt"],n=ge.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventObservers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[n,T.contentAttributes.of(r=>{var s;return!((s=r.plugin(n))===null||s===void 0)&&s.isDown?tv:null})]}var Rr="-10000px",Fo=class{constructor(e,t,n,r){this.facet=t,this.createTooltipView=n,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=n(o,s))}update(e,t){var n;let r=e.state.facet(this.facet),s=r.filter(l=>l);if(r===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;l<s.length;l++){let c=s[l],O=-1;if(c){for(let h=0;h<this.tooltips.length;h++){let f=this.tooltips[h];f&&f.create==c.create&&(O=h)}if(O<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let h=o[l]=this.tooltipViews[O];a&&(a[l]=t[O]),h.update&&h.update(e)}}}for(let l of this.tooltipViews)o.indexOf(l)<0&&(this.removeTooltipView(l),(n=l.destroy)===null||n===void 0||n.call(l));return t&&(a.forEach((l,c)=>t[c]=l),t.length=a.length),this.input=r,this.tooltips=s,this.tooltipViews=o,!0}};function iv(i){let e=i.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var EO=X.define({combine:i=>{var e,t,n;return{position:R.ios?"absolute":((e=i.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=i.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((n=i.find(r=>r.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||iv}}}),pm=new WeakMap,Yc=ge.fromClass(class{constructor(i){this.view=i,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=i.state.facet(EO);this.position=e.position,this.parent=e.parent,this.classes=i.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Fo(i,Jr,(t,n)=>this.createTooltip(t,n),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),i.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let i of this.manager.tooltipViews)this.intersectionObserver.observe(i.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(i){i.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(i,this.above);e&&this.observeIntersection();let t=e||i.geometryChanged,n=i.state.facet(EO);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(i,e){let t=i.create(this.view),n=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),i.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let r=document.createElement("div");r.className="cm-tooltip-arrow",t.dom.appendChild(r)}return t.dom.style.position=this.position,t.dom.style.top=Rr,t.dom.style.left="0px",this.container.insertBefore(t.dom,n),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var i,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(i=n.destroy)===null||i===void 0||i.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let i=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(R.gecko)t=s.offsetParent!=this.container.ownerDocument.body;else if(s.style.top==Rr&&s.style.left=="0px"){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(i=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:i,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),r=Ac(this.view);return{visible:{left:n.left+r.left,top:n.top+r.top,right:n.right-r.right,bottom:n.bottom-r.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(EO).tooltipSpace(this.view),scaleX:i,scaleY:e,makeAbsolute:t}}writeMeasure(i){var e;if(i.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:n,scaleX:r,scaleY:s}=i,o=[];for(let a=0;a<this.manager.tooltips.length;a++){let l=this.manager.tooltips[a],c=this.manager.tooltipViews[a],{dom:O}=c,h=i.pos[a],f=i.size[a];if(!h||l.clip!==!1&&(h.bottom<=Math.max(t.top,n.top)||h.top>=Math.min(t.bottom,n.bottom)||h.right<Math.max(t.left,n.left)-.1||h.left>Math.min(t.right,n.right)+.1)){O.style.top=Rr;continue}let u=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,d=u?7:0,p=f.right-f.left,m=(e=pm.get(c))!==null&&e!==void 0?e:f.bottom-f.top,g=c.offset||rv,y=this.view.textDirection==ne.LTR,S=f.width>n.right-n.left?y?n.left:n.right-f.width:y?Math.max(n.left,Math.min(h.left-(u?14:0)+g.x,n.right-p)):Math.min(Math.max(n.left,h.left-p+(u?14:0)-g.x),n.right-p),v=this.above[a];!l.strictSide&&(v?h.top-m-d-g.y<n.top:h.bottom+m+d+g.y>n.bottom)&&v==n.bottom-h.bottom>h.top-n.top&&(v=this.above[a]=!v);let b=(v?h.top-n.top:n.bottom-h.bottom)-d;if(b<m&&c.resize!==!1){if(b<this.view.defaultLineHeight){O.style.top=Rr;continue}pm.set(c,m),O.style.height=(m=b)/s+"px"}else O.style.height&&(O.style.height="");let x=v?h.top-m-d-g.y:h.bottom+d+g.y,Q=S+p;if(c.overlap!==!0)for(let w of o)w.left<Q&&w.right>S&&w.top<x+m&&w.bottom>x&&(x=v?w.top-m-2-d:w.bottom+d+2);if(this.position=="absolute"?(O.style.top=(x-i.parent.top)/s+"px",mm(O,(S-i.parent.left)/r)):(O.style.top=x/s+"px",mm(O,S/r)),u){let w=h.left+(y?g.x:-g.x)-(S+14-7);u.style.left=w/r+"px"}c.overlap!==!0&&o.push({left:S,top:x,right:Q,bottom:x+m}),O.classList.toggle("cm-tooltip-above",v),O.classList.toggle("cm-tooltip-below",!v),c.positioned&&c.positioned(i.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let i of this.manager.tooltipViews)i.dom.style.top=Rr}},{eventObservers:{scroll(){this.maybeMeasure()}}});function mm(i,e){let t=parseInt(i.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(i.style.left=e+"px")}var nv=T.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),rv={x:0,y:0},Jr=X.define({enables:[Yc,nv]}),Ho=X.define({combine:i=>i.reduce((e,t)=>e.concat(t),[])}),Ko=class i{static create(e){return new i(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Fo(e,Ho,(t,n)=>this.createHostedView(t,n),t=>t.dom.remove())}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let r=n[e];if(r!==void 0){if(t===void 0)t=r;else if(t!==r)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},sv=Jr.compute([Ho],i=>{let e=i.facet(Ho);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var n;return(n=t.end)!==null&&n!==void 0?n:t.pos})),create:Ko.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),Tc=class{constructor(e,t,n,r,s){this.view=e,this.source=t,this.field=n,this.setHover=r,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,n=e.docView.nearest(t.target);if(!n)return;let r,s=1;if(n instanceof Br)r=n.posAtStart;else{if(r=e.posAtCoords(t),r==null)return;let a=e.coordsAtPos(r);if(!a||t.y<a.top||t.y>a.bottom||t.x<a.left-e.defaultCharacterWidth||t.x>a.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(r)).find(O=>O.from<=r&&O.to>=r),c=l&&l.dir==ne.RTL?-1:1;s=t.x<a.left?-c:c}let o=this.source(e,r,s);if(o?.then){let a=this.pending={pos:r};o.then(l=>{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>qe(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Yc),t=e?e.manager.tooltips.findIndex(n=>n.create==Ko.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:r,tooltip:s}=this;if(r.length&&s&&!ov(s.dom,e)||this.pending){let{pos:o}=r[0]||this.pending,a=(n=(t=r[0])===null||t===void 0?void 0:t.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!av(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},qo=4;function ov(i,e){let{left:t,right:n,top:r,bottom:s}=i.getBoundingClientRect(),o;if(o=i.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();r=Math.min(a.top,r),s=Math.max(a.bottom,s)}return e.clientX>=t-qo&&e.clientX<=n+qo&&e.clientY>=r-qo&&e.clientY<=s+qo}function av(i,e,t,n,r,s){let o=i.scrollDOM.getBoundingClientRect(),a=i.documentTop+i.documentPadding.top+i.contentHeight;if(o.left>n||o.right<n||o.top>r||Math.min(o.bottom,a)<r)return!1;let l=i.posAtCoords({x:n,y:r},!1);return l>=e&&l<=t}function kg(i,e={}){let t=Z.define(),n=de.define({create(){return[]},update(r,s){if(r.length&&(e.hideOnChange&&(s.docChanged||s.selection)?r=[]:e.hideOn&&(r=r.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let a of r){let l=s.changes.mapPos(a.pos,-1,ke.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=s.changes.mapPos(c.end)),o.push(c)}}r=o}for(let o of s.effects)o.is(t)&&(r=o.value),o.is(lv)&&(r=[]);return r},provide:r=>Ho.from(r)});return{active:n,extension:[n,ge.define(r=>new Tc(r,i,n,t,e.hoverTime||300)),sv]}}function Uc(i,e){let t=i.plugin(Yc);if(!t)return null;let n=t.manager.tooltips.indexOf(e);return n<0?null:t.manager.tooltipViews[n]}var lv=Z.define();var gm=X.define({combine(i){let e,t;for(let n of i)e=e||n.topContainer,t=t||n.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Di(i,e){let t=i.plugin(Tg),n=t?t.specs.indexOf(e):-1;return n>-1?t.panels[n]:null}var Tg=ge.fromClass(class{constructor(i){this.input=i.state.facet(Ei),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(i));let e=i.state.facet(gm);this.top=new zn(i,!0,e.topContainer),this.bottom=new zn(i,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(i){let e=i.state.facet(gm);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new zn(i.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new zn(i.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=i.state.facet(Ei);if(t!=this.input){let n=t.filter(l=>l),r=[],s=[],o=[],a=[];for(let l of n){let c=this.specs.indexOf(l),O;c<0?(O=l(i.view),a.push(O)):(O=this.panels[c],O.update&&O.update(i)),r.push(O),(O.top?s:o).push(O)}this.specs=n,this.panels=r,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let n of this.panels)n.update&&n.update(i)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:i=>T.scrollMargins.of(e=>{let t=e.plugin(i);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),zn=class{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=$m(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=$m(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function $m(i){let e=i.nextSibling;return i.remove(),e}var Ei=X.define({enables:Tg});var et=class extends mt{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};et.prototype.elementClass="";et.prototype.toDOM=void 0;et.prototype.mapMode=ke.TrackBefore;et.prototype.startSide=et.prototype.endSide=-1;et.prototype.point=!0;var jo=X.define(),Ov=X.define(),cv={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>F.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Ur=X.define();function Mc(i){return[zg(),Ur.of({...cv,...i})]}var zc=X.define({combine:i=>i.some(e=>e)});function zg(i){let e=[hv];return i&&i.fixed===!1&&e.push(zc.of(!0)),e}var hv=ge.fromClass(class{constructor(i){this.view=i,this.domAfter=null,this.prevViewport=i.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=i.state.facet(Ur).map(e=>new Jo(i,e)),this.fixed=!i.state.facet(zc);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),i.scrollDOM.insertBefore(this.dom,i.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(i){if(this.updateGutters(i)){let e=this.prevViewport,t=i.view.viewport,n=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(n<(t.to-t.from)*.8)}if(i.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(zc)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=i.view.viewport}syncGutters(i){let e=this.dom.nextSibling;i&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=F.iter(this.view.state.facet(jo),this.view.viewport.from),n=[],r=this.gutters.map(s=>new Rc(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==Ye.Text&&o){Xc(t,n,a.from);for(let l of r)l.line(this.view,a,n);o=!1}else if(a.widget)for(let l of r)l.widget(this.view,a)}else if(s.type==Ye.Text){Xc(t,n,s.from);for(let o of r)o.line(this.view,s,n)}else if(s.widget)for(let o of r)o.widget(this.view,s);for(let s of r)s.finish();i&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(i){let e=i.startState.facet(Ur),t=i.state.facet(Ur),n=i.docChanged||i.heightChanged||i.viewportChanged||!F.eq(i.startState.facet(jo),i.state.facet(jo),i.view.viewport.from,i.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(i)&&(n=!0);else{n=!0;let r=[];for(let s of t){let o=e.indexOf(s);o<0?r.push(new Jo(this.view,s)):(this.gutters[o].update(i),r.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),r.indexOf(s)<0&&s.destroy();for(let s of r)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=r}return n}destroy(){for(let i of this.gutters)i.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:i=>T.scrollMargins.of(e=>{let t=e.plugin(i);if(!t||t.gutters.length==0||!t.fixed)return null;let n=t.dom.offsetWidth*e.scaleX,r=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==ne.LTR?{left:n,right:r}:{right:n,left:r}})});function ym(i){return Array.isArray(i)?i:[i]}function Xc(i,e,t){for(;i.value&&i.from<=t;)i.from==t&&e.push(i.value),i.next()}var Rc=class{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=F.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:r}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let a=new ea(e,o,s,n);r.elements.push(a),r.dom.appendChild(a.dom)}else r.elements[this.i].update(e,o,s,n);this.height=t.bottom,this.i++}line(e,t,n){let r=[];Xc(this.cursor,r,t.from),n.length&&(r=r.concat(n));let s=this.gutter.config.lineMarker(e,t,r);s&&r.unshift(s);let o=this.gutter;r.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,r)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),r=n?[n]:null;for(let s of e.state.facet(Ov)){let o=s(e,t.widget,t);o&&(r||(r=[])).push(o)}r&&this.addElement(e,t,r)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},Jo=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,r=>{let s=r.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=r.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,a,r)&&r.preventDefault()});this.markers=ym(t.markers(e)),t.initialSpacer&&(this.spacer=new ea(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=ym(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let n=e.view.viewport;return!F.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},ea=class{constructor(e,t,n,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,r)}update(e,t,n,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),fv(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let n="cm-gutterElement",r=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=s<t.length?t[s++]:null,c=!1;if(l){let O=l.elementClass;O&&(n+=" "+O);for(let h=o;h<this.markers.length;h++)if(this.markers[h].compare(l)){a=h,c=!0;break}}else a=this.markers.length;for(;o<a;){let O=this.markers[o++];if(O.toDOM){O.destroy(r);let h=r.nextSibling;r.remove(),r=h}}if(!l)break;l.toDOM&&(c?r=r.nextSibling:this.dom.insertBefore(l.toDOM(e),r)),c&&o++}this.dom.className=n,this.markers=t}destroy(){this.setMarkers(null,[])}};function fv(i,e){if(i.length!=e.length)return!1;for(let t=0;t<i.length;t++)if(!i[t].compare(e[t]))return!1;return!0}var uv=X.define(),dv=X.define(),Xn=X.define({combine(i){return Ze(i,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let r in t){let s=n[r],o=t[r];n[r]=s?(a,l,c)=>s(a,l,c)||o(a,l,c):o}return n}})}}),Mr=class extends et{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function DO(i,e){return i.state.facet(Xn).formatNumber(e,i.state)}var pv=Ur.compute([Xn],i=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(uv)},lineMarker(e,t,n){return n.some(r=>r.toDOM)?null:new Mr(DO(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let r of e.state.facet(dv)){let s=r(e,t,n);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Xn)!=e.state.facet(Xn),initialSpacer(e){return new Mr(DO(e,Qm(e.state.doc.lines)))},updateSpacer(e,t){let n=DO(t.view,Qm(t.view.state.doc.lines));return n==e.number?e:new Mr(n)},domEventHandlers:i.facet(Xn).domEventHandlers,side:"before"}));function Xg(i={}){return[Xn.of(i),zg(),pv]}function Qm(i){let e=9;for(;e<i;)e=e*10+9;return e}var mv=new class extends et{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},gv=jo.compute(["selection"],i=>{let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.head).from;r>t&&(t=r,e.push(mv.range(r)))}return F.of(e)});function Rg(){return gv}var $v=0,Ge=class{constructor(e,t){this.from=e,this.to=t}},j=class{constructor(e={}){this.id=$v++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=_e.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};j.closedBy=new j({deserialize:i=>i.split(" ")});j.openedBy=new j({deserialize:i=>i.split(" ")});j.group=new j({deserialize:i=>i.split(" ")});j.isolate=new j({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var Bi=class{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}static get(e){return e&&e.props&&e.props[j.mounted.id]}},yv=Object.create(null),_e=class i{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):yv,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new i(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(j.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(j.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?n.name:r[s]];if(o)return o}}}};_e.none=new _e("",Object.create(null),0,8);var es=class i{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let r=null;for(let s of e){let o=s(n);o&&(r||(r=Object.assign({},n.props)),r[o[0].id]=o[1])}t.push(r?new _e(n.name,r,n.id,n.flags):n)}return new i(t)}},ra=new WeakMap,qg=new WeakMap,H;(function(i){i[i.ExcludeBuffers=1]="ExcludeBuffers",i[i.IncludeAnonymous=2]="IncludeAnonymous",i[i.IgnoreMounts=4]="IgnoreMounts",i[i.IgnoreOverlays=8]="IgnoreOverlays"})(H||(H={}));var pe=class i{constructor(e,t,n,r,s){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=Bi.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let r=n.toString();r&&(t&&(t+=","),t+=r)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Cn(this.topNode,e)}cursorAt(e,t=0,n=0){let r=ra.get(this)||this.topNode,s=new Cn(r);return s.moveTo(e,t),ra.set(this,s._tree),s}get topNode(){return new Ie(this,0,0,null)}resolve(e,t=0){let n=ts(ra.get(this)||this.topNode,e,t,!1);return ra.set(this,n),n}resolveInner(e,t=0){let n=ts(qg.get(this)||this.topNode,e,t,!0);return qg.set(this,n),n}resolveStack(e,t=0){return Qv(this,e,t)}iterate(e){let{enter:t,leave:n,from:r=0,to:s=this.length}=e,o=e.mode||0,a=(o&H.IncludeAnonymous)>0;for(let l=this.cursor(o|H.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=r&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Jc(_e.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new i(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new i(_e.none,t,n,r)))}static build(e){return Sv(e)}};pe.empty=new pe(_e.none,[],[],0);var Ec=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},gi=class i{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return _e.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],s=r.name;if(/\W/.test(s)&&!r.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,n,r,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(jg(s,r,o[l+1],o[l+2])&&(a=l,n>0));l=o[l+3]);return a}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=r[a++],s[l++]=r[a++]-n;let c=s[l++]=r[a++]-n;s[l++]=r[a++]-e,o=Math.max(o,c)}return new i(s,o,this.set)}};function jg(i,e,t,n){switch(i){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function ts(i,e,t,n){for(var r;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to<e);){let o=!n&&i instanceof Ie&&i.index<0?null:i.parent;if(!o)return i;i=o}let s=n?0:H.IgnoreOverlays;if(n)for(let o=i,a=o.parent;a;o=a,a=o.parent)o instanceof Ie&&o.index<0&&((r=a.enter(e,t,s))===null||r===void 0?void 0:r.from)!=o.from&&(i=a);for(;;){let o=i.enter(e,t,s);if(!o)return i;i=o}}var oa=class{cursor(e=0){return new Cn(this,e)}getChild(e,t=null,n=null){let r=_g(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return _g(this,e,t,n)}resolve(e,t=0){return ts(this,e,t,!1)}resolveInner(e,t=0){return ts(this,e,t,!0)}matchContext(e){return Dc(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}get node(){return this}get next(){return this.parent}},Ie=class i extends oa{constructor(e,t,n,r){super(),this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,r,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,c=t>0?a.length:-1;e!=c;e+=t){let O=a[e],h=l[e]+o.from;if(jg(r,n,h,h+O.length)){if(O instanceof gi){if(s&H.ExcludeBuffers)continue;let f=O.findChild(0,O.buffer.length,t,n-h,r);if(f>-1)return new Li(new Bc(o,O,e,h),null,f)}else if(s&H.IncludeAnonymous||!O.type.isAnonymous||Kc(O)){let f;if(!(s&H.IgnoreMounts)&&(f=Bi.get(O))&&!f.overlay)return new i(f.tree,h,e,o);let u=new i(O,h,e,o);return s&H.IncludeAnonymous||!u.type.isAnonymous?u:u.nextChild(t<0?O.children.length-1:0,t,n,r)}}}if(s&H.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let r;if(!(n&H.IgnoreOverlays)&&(r=Bi.get(this._tree))&&r.overlay){let s=e-this.from;for(let{from:o,to:a}of r.overlay)if((t>0?o<=s:o<s)&&(t<0?a>=s:a>s))return new i(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function _g(i,e,t,n){let r=i.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function Dc(i,e,t=e.length-1){for(let n=i;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Bc=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},Li=class i extends oa{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&H.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let o=n.buffer[this.index+1];e.push(n.slice(r,s,o)),t.push(0)}return new pe(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Yg(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;s<i.length;s++){let o=i[s];(o.from>t.from||o.to<t.to)&&(t=o,e=s)}let n=t instanceof Ie&&t.index<0?null:t.parent,r=i.slice();return n?r[e]=n:r.splice(e,1),new Lc(r,t)}var Lc=class{constructor(e,t){this.heads=e,this.node=t}get next(){return Yg(this.heads)}};function Qv(i,e,t){let n=i.resolveInner(e,t),r=null;for(let s=n instanceof Ie?n:n.context.parent;s;s=s.parent)if(s.index<0){let o=s.parent;(r||(r=[n])).push(o.resolve(e,t)),s=o}else{let o=Bi.get(s.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new Ie(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[n])).push(ts(a,e,t,!1))}}return r?Yg(r):n}var Cn=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Ie)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof Ie?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&H.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&H.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&H.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(r.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let a=n._tree.children[s];if(this.mode&H.IncludeAnonymous||a instanceof gi||!a.type.isAnonymous||Kc(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let r=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=s+1;break e}r=this.stack[--s]}for(let r=n;r<this.stack.length;r++)t=new Li(this.buffer,t,this.stack[r]);return this.bufferNode=new Li(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;;){if(r&&t&&t(this),r=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return Dc(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,s=this.stack.length-1;r>=0;s--){if(s<0)return Dc(this._tree,e,r);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}};function Kc(i){return i.children.some(e=>e instanceof gi||!e.type.isAnonymous||Kc(e))}function Sv(i){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=n.types.length}=i,a=Array.isArray(t)?new Ec(t,t.length):t,l=n.types,c=0,O=0;function h(b,x,Q,w,k,V){let{id:A,start:C,end:D,size:B}=a,L=O,re=c;for(;B<0;)if(a.next(),B==-1){let se=s[A];Q.push(se),w.push(C-b);return}else if(B==-3){c=A;return}else if(B==-4){O=A;return}else throw new RangeError(`Unrecognized record size: ${B}`);let me=l[A],Me,Qe,U=C-b;if(D-C<=r&&(Qe=m(a.pos-x,k))){let se=new Uint16Array(Qe.size-Qe.skip),G=a.pos-Qe.size,le=se.length;for(;a.pos>G;)le=g(Qe.start,se,le);Me=new gi(se,D-Qe.start,n),U=Qe.start-b}else{let se=a.pos-B;a.next();let G=[],le=[],W=A>=o?A:-1,te=0,ce=D;for(;a.pos>se;)W>=0&&a.id==W&&a.size>=0?(a.end<=ce-r&&(d(G,le,C,te,a.end,ce,W,L,re),te=G.length,ce=a.end),a.next()):V>2500?f(C,se,G,le):h(C,se,G,le,W,V+1);if(W>=0&&te>0&&te<G.length&&d(G,le,C,te,C,ce,W,L,re),G.reverse(),le.reverse(),W>-1&&te>0){let ze=u(me,re);Me=Jc(me,G,le,0,G.length,0,D-C,ze,ze)}else Me=p(me,G,le,D-C,L-D,re)}Q.push(Me),w.push(U)}function f(b,x,Q,w){let k=[],V=0,A=-1;for(;a.pos>x;){let{id:C,start:D,end:B,size:L}=a;if(L>4)a.next();else{if(A>-1&&D<A)break;A<0&&(A=B-r),k.push(C,D,B),V++,a.next()}}if(V){let C=new Uint16Array(V*4),D=k[k.length-2];for(let B=k.length-3,L=0;B>=0;B-=3)C[L++]=k[B],C[L++]=k[B+1]-D,C[L++]=k[B+2]-D,C[L++]=L;Q.push(new gi(C,k[2]-D,n)),w.push(D-b)}}function u(b,x){return(Q,w,k)=>{let V=0,A=Q.length-1,C,D;if(A>=0&&(C=Q[A])instanceof pe){if(!A&&C.type==b&&C.length==k)return C;(D=C.prop(j.lookAhead))&&(V=w[A]+C.length+D)}return p(b,Q,w,k,V,x)}}function d(b,x,Q,w,k,V,A,C,D){let B=[],L=[];for(;b.length>w;)B.push(b.pop()),L.push(x.pop()+Q-k);b.push(p(n.types[A],B,L,V-k,C-V,D)),x.push(k-Q)}function p(b,x,Q,w,k,V,A){if(V){let C=[j.contextHash,V];A=A?[C].concat(A):[C]}if(k>25){let C=[j.lookAhead,k];A=A?[C].concat(A):[C]}return new pe(b,x,Q,w,A)}function m(b,x){let Q=a.fork(),w=0,k=0,V=0,A=Q.end-r,C={size:0,start:0,skip:0};e:for(let D=Q.pos-b;Q.pos>D;){let B=Q.size;if(Q.id==x&&B>=0){C.size=w,C.start=k,C.skip=V,V+=4,w+=4,Q.next();continue}let L=Q.pos-B;if(B<0||L<D||Q.start<A)break;let re=Q.id>=o?4:0,me=Q.start;for(Q.next();Q.pos>L;){if(Q.size<0)if(Q.size==-3)re+=4;else break e;else Q.id>=o&&(re+=4);Q.next()}k=me,w+=B,V+=re}return(x<0||w==b)&&(C.size=w,C.start=k,C.skip=V),C.size>4?C:void 0}function g(b,x,Q){let{id:w,start:k,end:V,size:A}=a;if(a.next(),A>=0&&w<o){let C=Q;if(A>4){let D=a.pos-(A-4);for(;a.pos>D;)Q=g(b,x,Q)}x[--Q]=C,x[--Q]=V-b,x[--Q]=k-b,x[--Q]=w}else A==-3?c=w:A==-4&&(O=w);return Q}let y=[],S=[];for(;a.pos>0;)h(i.start||0,i.bufferStart||0,y,S,-1,0);let v=(e=i.length)!==null&&e!==void 0?e:y.length?S[0]+y[0].length:0;return new pe(l[i.topID],y.reverse(),S.reverse(),v)}var Cg=new WeakMap;function sa(i,e){if(!i.isAnonymous||e instanceof gi||e.type!=i)return 1;let t=Cg.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=i||!(n instanceof pe)){t=1;break}t+=sa(i,n)}Cg.set(e,t)}return t}function Jc(i,e,t,n,r,s,o,a,l){let c=0;for(let d=n;d<r;d++)c+=sa(i,e[d]);let O=Math.ceil(c*1.5/8),h=[],f=[];function u(d,p,m,g,y){for(let S=m;S<g;){let v=S,b=p[S],x=sa(i,d[S]);for(S++;S<g;S++){let Q=sa(i,d[S]);if(x+Q>=O)break;x+=Q}if(S==v+1){if(x>O){let Q=d[v];u(Q.children,Q.positions,0,Q.children.length,p[v]+y);continue}h.push(d[v])}else{let Q=p[S-1]+d[S-1].length-b;h.push(Jc(i,d,p,v,S,b,Q,null,l))}f.push(b+y-s)}}return u(e,t,n,r,0),(a||l)(h,f,o)}var Wn=class{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof Li?this.setBuffer(e.context.buffer,e.index,t):e instanceof Ie&&this.map.set(e.tree,t)}get(e){return e instanceof Li?this.getBuffer(e.context.buffer,e.index):e instanceof Ie?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},Nt=class i{constructor(e,t,n,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new i(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let O=a<t.length?t[a]:null,h=O?O.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let f=o;if(l>=f.from||h<=f.to||c){let u=Math.max(f.from,l)-c,d=Math.min(f.to,h)-c;f=u>=d?null:new i(u,d,f.tree,f.offset+c,a>0,!!O)}if(f&&r.push(f),o.to>h)break;o=s<e.length?e[s++]:null}if(!O)break;l=O.toA,c=O.toA-O.toB}return r}},Zn=class{startParse(e,t,n){return typeof e=="string"&&(e=new Gc(e)),n=n?n.length?n.map(r=>new Ge(r.from,r.to)):[new Ge(0,0)]:[new Ge(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}},Gc=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function Oa(i){return(e,t,n,r)=>new Fc(e,i,t,n,r)}var aa=class{constructor(e,t,n,r,s){this.parser=e,this.parse=t,this.overlay=n,this.target=r,this.from=s}};function Wg(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var Ic=class{constructor(e,t,n,r,s,o,a){this.parser=e,this.predicate=t,this.mounts=n,this.index=r,this.start=s,this.target=o,this.prev=a,this.depth=0,this.ranges=[]}},Nc=new j({perNode:!0}),Fc=class{constructor(e,t,n,r,s){this.nest=t,this.input=n,this.fragments=r,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new pe(n.type,n.children,n.positions,n.length,n.propValues.concat([[Nc,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[j.mounted.id]=new Bi(t,e.overlay,e.parser),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].from<e&&(e=Math.min(e,this.inner[t].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].parse.stopAt(e)}startInner(){let e=new Hc(this.fragments),t=null,n=null,r=new Cn(new Ie(this.baseTree,this.ranges[0].from,0,null),H.IncludeAnonymous|H.IgnoreMounts);e:for(let s,o;;){let a=!0,l;if(this.stoppedAt!=null&&r.from>=this.stoppedAt)a=!1;else if(e.hasNode(r)){if(t){let c=t.mounts.find(O=>O.frag.from<=r.from&&O.frag.to>=r.to&&O.mount.overlay);if(c)for(let O of c.mount.overlay){let h=O.from+c.pos,f=O.to+c.pos;h>=r.from&&f<=r.to&&!t.ranges.some(u=>u.from<f&&u.to>h)&&t.ranges.push({from:h,to:f})}}a=!1}else if(n&&(o=bv(n.ranges,r.from,r.to)))a=o!=2;else if(!r.type.isAnonymous&&(s=this.nest(r,this.input))&&(r.from<r.to||!s.overlay)){r.tree||xv(r);let c=e.findMounts(r.from,s.parser);if(typeof s.overlay=="function")t=new Ic(s.parser,s.overlay,c,this.inner.length,r.from,r.tree,t);else{let O=Vg(this.ranges,s.overlay||(r.from<r.to?[new Ge(r.from,r.to)]:[]));O.length&&Wg(O),(O.length||!s.overlay)&&this.inner.push(new aa(s.parser,O.length?s.parser.startParse(this.input,Ag(c,O),O):s.parser.startParse(""),s.overlay?s.overlay.map(h=>new Ge(h.from-r.from,h.to-r.from)):null,r.tree,O.length?O[0].from:r.from)),s.overlay?O.length&&(n={ranges:O,depth:0,prev:n}):a=!1}}else if(t&&(l=t.predicate(r))&&(l===!0&&(l=new Ge(r.from,r.to)),l.from<l.to)){let c=t.ranges.length-1;c>=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&r.firstChild())t&&t.depth++,n&&n.depth++;else for(;!r.nextSibling();){if(!r.parent())break e;if(t&&!--t.depth){let c=Vg(this.ranges,t.ranges);c.length&&(Wg(c),this.inner.splice(t.index,0,new aa(t.parser,t.parser.startParse(this.input,Ag(t.mounts,c),c),t.ranges.map(O=>new Ge(O.from-t.start,O.to-t.start)),t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}};function bv(i,e,t){for(let n of i){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function Zg(i,e,t,n,r,s){if(e<t){let o=i.buffer[e+1];n.push(i.slice(e,t,o)),r.push(o-s)}}function xv(i){let{node:e}=i,t=[],n=e.context.buffer;do t.push(i.index),i.parent();while(!i.tree);let r=i.tree,s=r.children.indexOf(n),o=r.children[s],a=o.buffer,l=[s];function c(O,h,f,u,d,p){let m=t[p],g=[],y=[];Zg(o,O,m,g,y,u);let S=a[m+1],v=a[m+2];l.push(g.length);let b=p?c(m+4,a[m+3],o.set.types[a[m]],S,v-S,p-1):e.toTree();return g.push(b),y.push(S-u),Zg(o,a[m+3],h,g,y,u),new pe(f,g,y,d)}r.children[s]=c(0,a.length,_e.none,0,o.length,t.length-1);for(let O of l){let h=i.tree.children[O],f=i.tree.positions[O];i.yield(new Ie(h,f+i.from,O,i._tree))}}var la=class{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(H.IncludeAnonymous|H.IgnoreMounts)}moveTo(e){let{cursor:t}=this,n=e-this.offset;for(;!this.done&&t.from<n;)t.to>=e&&t.enter(n,1,H.IgnoreOverlays|H.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof pe)t=t.children[0];else break}return!1}},Hc=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(Nc))!==null&&t!==void 0?t:n.to,this.inner=new la(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Nc))!==null&&e!==void 0?e:t.to,this.inner=new la(t.tree,-t.offset)}}findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(n=s.tree)===null||n===void 0?void 0:n.prop(j.mounted);if(o&&o.parser==t)for(let a=this.fragI;a<this.fragments.length;a++){let l=this.fragments[a];if(l.from>=s.to)break;l.tree==this.curFrag.tree&&r.push({frag:l,pos:s.from-l.offset,mount:o})}}}return r}};function Vg(i,e){let t=null,n=e;for(let r=1,s=0;r<i.length;r++){let o=i[r-1].to,a=i[r].from;for(;s<n.length;s++){let l=n[s];if(l.from>=a)break;l.to<=o||(t||(n=t=e.slice()),l.from<o?(t[s]=new Ge(l.from,o),l.to>a&&t.splice(s+1,0,new Ge(a,l.to))):l.to>a?t[s--]=new Ge(a,l.to):t.splice(s--,1))}}return n}function vv(i,e,t,n){let r=0,s=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let O=r==i.length?1e9:o?i[r].to:i[r].from,h=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let f=Math.max(l,t),u=Math.min(O,h,n);f<u&&c.push(new Ge(f,u))}if(l=Math.min(O,h),l==1e9)break;O==l&&(o?(o=!1,r++):o=!0),h==l&&(a?(a=!1,s++):a=!0)}return c}function Ag(i,e){let t=[];for(let{pos:n,mount:r,frag:s}of i){let o=n+(r.overlay?r.overlay[0].from:0),a=o+r.tree.length,l=Math.max(s.from,o),c=Math.min(s.to,a);if(r.overlay){let O=r.overlay.map(f=>new Ge(f.from+n,f.to+n)),h=vv(e,O,l,c);for(let f=0,u=l;;f++){let d=f==h.length,p=d?c:h[f].from;if(p>u&&t.push(new Nt(u,p,r.tree,-o,s.from>=u||s.openStart,s.to<=p||s.openEnd)),d)break;u=h[f].to}}else t.push(new Nt(l,c,r.tree,-o,s.from>=o||s.openStart,s.to<=a||s.openEnd))}return t}var wv=0,$t=class i{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=wv++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let r=new i(n,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new ua(e);return n=>n.modified.indexOf(t)>-1?n:ua.get(n.base||n,n.modified.concat(t).sort((r,s)=>r.id-s.id))}},Pv=0,ua=class i{constructor(e){this.name=e,this.instances=[],this.id=Pv++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(a=>a.base==e&&kv(t,a.modified));if(n)return n;let r=[],s=new $t(e.name,r,e,t);for(let a of t)a.instances.push(s);let o=Tv(t);for(let a of e.set)if(!a.modified.length)for(let l of o)r.push(i.get(a,l));return s}};function kv(i,e){return i.length==e.length&&i.every((t,n)=>t==e[n])}function Tv(i){let e=[[]];for(let t=0;t<i.length;t++)for(let n=0,r=e.length;n<r;n++)e.push(e[n].concat(i[t]));return e.sort((t,n)=>n.length-t.length)}function _t(i){let e=Object.create(null);for(let t in i){let n=i[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],o=2,a=r;for(let h=0;;){if(a=="..."&&h>0&&h+3==r.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+r);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),h+=f[0].length,h==r.length)break;let u=r[h++];if(h==r.length&&u=="!"){o=0;break}if(u!="/")throw new RangeError("Invalid path: "+r);a=r.slice(h)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+r);let O=new Vn(n,o,l>0?s.slice(0,l):null);e[c]=O.sort(e[c])}}return Eg.add(e)}var Eg=new j,Vn=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};Vn.empty=new Vn([],2,null);function nh(i,e){let t=Object.create(null);for(let s of i)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let o of s.tag)t[o.id]=s.class;let{scope:n,all:r=null}=e||{};return{style:s=>{let o=r;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function zv(i,e){let t=null;for(let n of i){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function Dg(i,e,t,n=0,r=i.length){let s=new th(n,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),n,r,"",s.highlighters),s.flush(r)}var th=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(s=this.highlighters.filter(u=>!u.scope||u.scope(o)));let c=r,O=Xv(e)||Vn.empty,h=zv(s,O.tags);if(h&&(c&&(c+=" "),c+=h,O.mode==1&&(r+=(r?" ":"")+h)),this.startSpan(Math.max(t,a),c),O.opaque)return;let f=e.tree&&e.tree.prop(j.mounted);if(f&&f.overlay){let u=e.node.enter(f.overlay[0].from+a,1),d=this.highlighters.filter(m=>!m.scope||m.scope(f.tree.type)),p=e.firstChild();for(let m=0,g=a;;m++){let y=m<f.overlay.length?f.overlay[m]:null,S=y?y.from+a:l,v=Math.max(t,g),b=Math.min(n,S);if(v<b&&p)for(;e.from<b&&(this.highlightRange(e,v,b,r,s),this.startSpan(Math.min(b,e.to),c),!(e.to>=S||!e.nextSibling())););if(!y||S>n)break;g=y.to+a,g>t&&(this.highlightRange(u.cursor(),Math.max(t,y.from+a),Math.min(n,g),"",d),this.startSpan(Math.min(n,g),c))}p&&e.parent()}else if(e.firstChild()){f&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function Xv(i){let e=i.type.prop(Eg);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var z=$t.define,ca=z(),$i=z(),Ug=z($i),Mg=z($i),yi=z(),ha=z(yi),eh=z(yi),qt=z(),Gi=z(qt),Xt=z(),Rt=z(),ih=z(),is=z(ih),fa=z(),$={comment:ca,lineComment:z(ca),blockComment:z(ca),docComment:z(ca),name:$i,variableName:z($i),typeName:Ug,tagName:z(Ug),propertyName:Mg,attributeName:z(Mg),className:z($i),labelName:z($i),namespace:z($i),macroName:z($i),literal:yi,string:ha,docString:z(ha),character:z(ha),attributeValue:z(ha),number:eh,integer:z(eh),float:z(eh),bool:z(yi),regexp:z(yi),escape:z(yi),color:z(yi),url:z(yi),keyword:Xt,self:z(Xt),null:z(Xt),atom:z(Xt),unit:z(Xt),modifier:z(Xt),operatorKeyword:z(Xt),controlKeyword:z(Xt),definitionKeyword:z(Xt),moduleKeyword:z(Xt),operator:Rt,derefOperator:z(Rt),arithmeticOperator:z(Rt),logicOperator:z(Rt),bitwiseOperator:z(Rt),compareOperator:z(Rt),updateOperator:z(Rt),definitionOperator:z(Rt),typeOperator:z(Rt),controlOperator:z(Rt),punctuation:ih,separator:z(ih),bracket:is,angleBracket:z(is),squareBracket:z(is),paren:z(is),brace:z(is),content:qt,heading:Gi,heading1:z(Gi),heading2:z(Gi),heading3:z(Gi),heading4:z(Gi),heading5:z(Gi),heading6:z(Gi),contentSeparator:z(qt),list:z(qt),quote:z(qt),emphasis:z(qt),strong:z(qt),link:z(qt),monospace:z(qt),strikethrough:z(qt),inserted:z(),deleted:z(),changed:z(),invalid:z(),meta:fa,documentMeta:z(fa),annotation:z(fa),processingInstruction:z(fa),definition:$t.defineModifier("definition"),constant:$t.defineModifier("constant"),function:$t.defineModifier("function"),standard:$t.defineModifier("standard"),local:$t.defineModifier("local"),special:$t.defineModifier("special")};for(let i in $){let e=$[i];e instanceof $t&&(e.name=i)}var M6=nh([{tag:$.link,class:"tok-link"},{tag:$.heading,class:"tok-heading"},{tag:$.emphasis,class:"tok-emphasis"},{tag:$.strong,class:"tok-strong"},{tag:$.keyword,class:"tok-keyword"},{tag:$.atom,class:"tok-atom"},{tag:$.bool,class:"tok-bool"},{tag:$.url,class:"tok-url"},{tag:$.labelName,class:"tok-labelName"},{tag:$.inserted,class:"tok-inserted"},{tag:$.deleted,class:"tok-deleted"},{tag:$.literal,class:"tok-literal"},{tag:$.string,class:"tok-string"},{tag:$.number,class:"tok-number"},{tag:[$.regexp,$.escape,$.special($.string)],class:"tok-string2"},{tag:$.variableName,class:"tok-variableName"},{tag:$.local($.variableName),class:"tok-variableName tok-local"},{tag:$.definition($.variableName),class:"tok-variableName tok-definition"},{tag:$.special($.variableName),class:"tok-variableName2"},{tag:$.definition($.propertyName),class:"tok-propertyName tok-definition"},{tag:$.typeName,class:"tok-typeName"},{tag:$.namespace,class:"tok-namespace"},{tag:$.className,class:"tok-className"},{tag:$.macroName,class:"tok-macroName"},{tag:$.propertyName,class:"tok-propertyName"},{tag:$.operator,class:"tok-operator"},{tag:$.comment,class:"tok-comment"},{tag:$.meta,class:"tok-meta"},{tag:$.invalid,class:"tok-invalid"},{tag:$.punctuation,class:"tok-punctuation"}]);var rh,An=new j;function mh(i){return X.define({combine:i?e=>e.concat(i):void 0})}var ga=new j,tt=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,ee.prototype.hasOwnProperty("tree")||Object.defineProperty(ee.prototype,"tree",{get(){return ae(this)}}),this.parser=t,this.extension=[Qi.of(this),ee.languageData.of((s,o,a)=>{let l=Bg(s,o,a),c=l.type.prop(An);if(!c)return[];let O=s.facet(c),h=l.type.prop(ga);if(h){let f=l.resolve(o-l.from,a);for(let u of h)if(u.test(f,s)){let d=s.facet(u.facet);return u.type=="replace"?d:d.concat(O)}}return O})].concat(n)}isActiveAt(e,t,n=-1){return Bg(e,t,n).type.prop(An)==this.data}findRegions(e){let t=e.facet(Qi);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,o)=>{if(s.prop(An)==this.data){n.push({from:o,to:o+s.length});return}let a=s.prop(j.mounted);if(a){if(a.tree.prop(An)==this.data){if(a.overlay)for(let l of a.overlay)n.push({from:l.from+o,to:l.to+o});else n.push({from:o,to:o+s.length});return}else if(a.overlay){let l=n.length;if(r(a.tree,a.overlay[0].from+o),n.length>l)return}}for(let l=0;l<s.children.length;l++){let c=s.children[l];c instanceof pe&&r(c,s.positions[l]+o)}};return r(ae(e),0),n}get allowsNesting(){return!0}};tt.setState=Z.define();function Bg(i,e,t){let n=i.facet(Qi),r=ae(i).topNode;if(!n||n.allowsNesting)for(let s=r;s;s=s.enter(e,t,H.ExcludeBuffers))s.type.isTop&&(r=s);return r}var Ct=class i extends tt{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=mh(e.languageData);return new i(t,e.parser.configure({props:[An.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ae(i){let e=i.field(tt.state,!1);return e?e.tree:pe.empty}var lh=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},ns=null,Oh=class i{constructor(e,t,n=[],r,s,o,a,l){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new i(e,t,[],pe.empty,0,n,[],null)}startParse(){return this.parser.startParse(new lh(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=pe.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let r=this.parse.advance();if(r)if(this.fragments=this.withoutTempSkipped(Nt.addTree(r,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=r,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Nt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=ns;ns=this;try{return e()}finally{ns=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Lg(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,O,h,f)=>l.push({fromA:c,toA:O,fromB:h,toB:f})),n=Nt.applyChanges(n,l),r=pe.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let O=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);O<h&&a.push({from:O,to:h})}}}return new i(this.parser,t,n,r,s,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:r,to:s}=this.skipped[n];r<e.to&&s>e.from&&(this.fragments=Lg(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Zn{createParse(t,n,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let l=ns;if(l){for(let c of r)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new pe(_e.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return ns}};function Lg(i,e,t){return Nt.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var ss=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Oh.create(e.facet(Qi).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new i(n)}};tt.state=de.define({create:ss.init,update(i,e){for(let t of e.effects)if(t.is(tt.setState))return t.value;return e.startState.facet(Qi)!=e.state.facet(Qi)?ss.init(e.state):i.apply(e)}});var Kg=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Kg=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var sh=typeof navigator<"u"&&(!((rh=navigator.scheduling)===null||rh===void 0)&&rh.isInputPending)?()=>navigator.scheduling.isInputPending():null,Rv=ge.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(tt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(tt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Kg(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:r}}=this.view,s=n.field(tt.state);if(s.tree==s.context.tree&&s.context.isDone(r+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!sh?Math.max(25,e.timeRemaining()-5):1e9),a=s.context.treeLen<r&&n.doc.length>r+1e3,l=s.context.work(()=>sh&&sh()||Date.now()>o,r+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:tt.setState.of(new ss(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>qe(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Qi=X.define({combine(i){return i.length?i[0]:null},enables:i=>[tt.state,Rv,T.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),Wt=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}};var qv=X.define(),jn=X.define({combine:i=>{if(!i.length)return"  ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function os(i){let e=i.facet(jn);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function Yn(i,e){let t="",n=i.tabSize,r=i.facet(jn)[0];if(r=="    "){for(;e>=n;)t+="  ",e-=n;r=" "}for(let s=0;s<e;s++)t+=r;return t}function $a(i,e){i instanceof ee&&(i=new Ii(i));for(let n of i.state.facet(qv)){let r=n(i,e);if(r!==void 0)return r}let t=ae(i.state);return t.length>=e?_v(i,t,e):null}var Ii=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=os(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==e?{text:"",from:e}:(t<0?r<e:r<=e)?{text:n.text.slice(r-n.from),from:r}:{text:n.text.slice(0,r-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:r}=this.lineAt(e,t);return n.slice(e-r,Math.min(n.length,e+100-r))}column(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.countColumn(n,e-r),o=this.options.overrideIndentation?this.options.overrideIndentation(r):-1;return o>-1&&(s+=o-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return Lt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(r);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Ft=new j;function _v(i,e,t){let n=e.resolveStack(t),r=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(r!=n.node){let s=[];for(let o=r;o&&!(o.from<n.node.from||o.to>n.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)n={node:s[o],next:n}}return Jg(n,i,t)}function Jg(i,e,t){for(let n=i;n;n=n.next){let r=Wv(n.node);if(r)return r(ch.create(e,t,n))}return 0}function Cv(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function Wv(i){let e=i.type.prop(Ft);if(e)return e;let t=i.firstChild,n;if(t&&(n=t.type.prop(j.closedBy))){let r=i.lastChild,s=r&&n.indexOf(r.name)>-1;return o=>e$(o,!0,1,void 0,s&&!Cv(o)?r.from:void 0)}return i.parent==null?Zv:null}function Zv(){return 0}var ch=class i extends Ii{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new i(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(Vv(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return Jg(this.context.next,this.base,this.pos)}};function Vv(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function Av(i){let e=i.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let r=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function ya({closing:i,align:e=!0,units:t=1}){return n=>e$(n,e,t,i)}function e$(i,e,t,n,r){let s=i.textAfter,o=s.match(/^\s*/)[0].length,a=n&&s.slice(o,o+n.length)==n||r==i.pos+o,l=e?Av(i):null;return l?a?i.column(l.from):i.column(l.to):i.baseIndent+(a?0:i.unit*t)}var t$=i=>i.baseIndent;function Zt({except:i,units:e=1}={}){return t=>{let n=i&&i.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}var jv=200;function i$(){return ee.transactionFilter.of(i=>{if(!i.docChanged||!i.isUserEvent("input.type")&&!i.isUserEvent("input.complete"))return i;let e=i.startState.languageDataAt("indentOnInput",i.startState.selection.main.head);if(!e.length)return i;let t=i.newDoc,{head:n}=i.newSelection.main,r=t.lineAt(n);if(n>r.from+jv)return i;let s=t.sliceString(r.from,n);if(!e.some(c=>c.test(s)))return i;let{state:o}=i,a=-1,l=[];for(let{head:c}of o.selection.ranges){let O=o.doc.lineAt(c);if(O.from==a)continue;a=O.from;let h=$a(o,O.from);if(h==null)continue;let f=/^\s*/.exec(O.text)[0],u=Yn(o,h);f!=u&&l.push({from:O.from,to:O.from+f.length,insert:u})}return l.length?[i,{changes:l,sequential:!0}]:i})}var Yv=X.define(),Ht=new j;function Un(i){let e=i.firstChild,t=i.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?i.to:t.from}:null}function Uv(i,e,t){let n=ae(i);if(n.length<t)return null;let r=n.resolveStack(t,1),s=null;for(let o=r;o;o=o.next){let a=o.node;if(a.to<=t||a.from>t)continue;if(s&&a.from<e)break;let l=a.type.prop(Ht);if(l&&(a.to<n.length-50||n.length==i.doc.length||!Mv(a))){let c=l(a,i);c&&c.from<=t&&c.from>=e&&c.to>t&&(s=c)}}return s}function Mv(i){let e=i.lastChild;return e&&e.to==i.to&&e.type.isError}function da(i,e,t){for(let n of i.facet(Yv)){let r=n(i,e,t);if(r)return r}return Uv(i,e,t)}function n$(i,e){let t=e.mapPos(i.from,1),n=e.mapPos(i.to,-1);return t>=n?void 0:{from:t,to:n}}var Qa=Z.define({map:n$}),as=Z.define({map:n$});function r$(i){let e=[];for(let{head:t}of i.state.selection.ranges)e.some(n=>n.from<=t&&n.to>=t)||e.push(i.lineBlockAt(t));return e}var Ni=de.define({create(){return q.none},update(i,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,n)=>i=Gg(i,t,n)),i=i.map(e.changes);for(let t of e.effects)if(t.is(Qa)&&!Ev(i,t.value.from,t.value.to)){let{preparePlaceholder:n}=e.state.facet(gh),r=n?q.replace({widget:new hh(n(e.state,t.value))}):Ig;i=i.update({add:[r.range(t.value.from,t.value.to)]})}else t.is(as)&&(i=i.update({filter:(n,r)=>t.value.from!=n||t.value.to!=r,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(i=Gg(i,e.selection.main.head)),i},provide:i=>T.decorations.from(i),toJSON(i,e){let t=[];return i.between(0,e.doc.length,(n,r)=>{t.push(n,r)}),t},fromJSON(i){if(!Array.isArray(i)||i.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<i.length;){let n=i[t++],r=i[t++];if(typeof n!="number"||typeof r!="number")throw new RangeError("Invalid JSON for fold state");e.push(Ig.range(n,r))}return q.set(e,!0)}});function Gg(i,e,t=e){let n=!1;return i.between(e,t,(r,s)=>{r<t&&s>e&&(n=!0)}),n?i.update({filterFrom:e,filterTo:t,filter:(r,s)=>r>=t||s<=e}):i}function pa(i,e,t){var n;let r=null;return(n=i.field(Ni,!1))===null||n===void 0||n.between(e,t,(s,o)=>{(!r||r.from>s)&&(r={from:s,to:o})}),r}function Ev(i,e,t){let n=!1;return i.between(e,e,(r,s)=>{r==e&&s==t&&(n=!0)}),n}function s$(i,e){return i.field(Ni,!1)?e:e.concat(Z.appendConfig.of(l$()))}var Dv=i=>{for(let e of r$(i)){let t=da(i.state,e.from,e.to);if(t)return i.dispatch({effects:s$(i.state,[Qa.of(t),o$(i,t)])}),!0}return!1},Bv=i=>{if(!i.state.field(Ni,!1))return!1;let e=[];for(let t of r$(i)){let n=pa(i.state,t.from,t.to);n&&e.push(as.of(n),o$(i,n,!1))}return e.length&&i.dispatch({effects:e}),e.length>0};function o$(i,e,t=!0){let n=i.state.doc.lineAt(e.from).number,r=i.state.doc.lineAt(e.to).number;return T.announce.of(`${i.state.phrase(t?"Folded lines":"Unfolded lines")} ${n} ${i.state.phrase("to")} ${r}.`)}var Lv=i=>{let{state:e}=i,t=[];for(let n=0;n<e.doc.length;){let r=i.lineBlockAt(n),s=da(e,r.from,r.to);s&&t.push(Qa.of(s)),n=(s?i.lineBlockAt(s.to):r).to+1}return t.length&&i.dispatch({effects:s$(i.state,t)}),!!t.length},Gv=i=>{let e=i.state.field(Ni,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,i.state.doc.length,(n,r)=>{t.push(as.of({from:n,to:r}))}),i.dispatch({effects:t}),!0};var a$=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:Dv},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:Bv},{key:"Ctrl-Alt-[",run:Lv},{key:"Ctrl-Alt-]",run:Gv}],Iv={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},gh=X.define({combine(i){return Ze(i,Iv)}});function l$(i){let e=[Ni,Fv];return i&&e.push(gh.of(i)),e}function O$(i,e){let{state:t}=i,n=t.facet(gh),r=o=>{let a=i.lineBlockAt(i.posAtDOM(o.target)),l=pa(i.state,a.from,a.to);l&&i.dispatch({effects:as.of(l)}),o.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(i,r,e);let s=document.createElement("span");return s.textContent=n.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=r,s}var Ig=q.replace({widget:new class extends Le{toDOM(i){return O$(i,null)}}}),hh=class extends Le{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return O$(e,this.value)}},Nv={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},rs=class extends et{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function c$(i={}){let e={...Nv,...i},t=new rs(e,!0),n=new rs(e,!1),r=ge.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Qi)!=o.state.facet(Qi)||o.startState.field(Ni,!1)!=o.state.field(Ni,!1)||ae(o.startState)!=ae(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new He;for(let l of o.viewportLineBlocks){let c=pa(o.state,l.from,l.to)?n:da(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[r,Mc({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(r))===null||a===void 0?void 0:a.markers)||F.empty},initialSpacer(){return new rs(e,!1)},domEventHandlers:{...s,click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=pa(o.state,a.from,a.to);if(c)return o.dispatch({effects:as.of(c)}),!0;let O=da(o.state,a.from,a.to);return O?(o.dispatch({effects:Qa.of(O)}),!0):!1}}}),l$()]}var Fv=T.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),ma=class i{constructor(e,t){this.specs=e;let n;function r(a){let l=ct.newName();return(n||(n=Object.create(null)))["."+l]=a,l}let s=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof tt?a=>a.prop(An)==o.data:o?a=>a==o:void 0,this.style=nh(e.map(a=>({tag:a.tag,class:a.class||r(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=n?new ct(n):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},fh=X.define(),h$=X.define({combine(i){return i.length?[i[0]]:null}});function oh(i){let e=i.facet(fh);return e.length?e:i.facet(h$)}function f$(i,e){let t=[Hv],n;return i instanceof ma&&(i.module&&t.push(T.styleModule.of(i.module)),n=i.themeType),e?.fallback?t.push(h$.of(i)):n?t.push(fh.computeN([T.darkTheme],r=>r.facet(T.darkTheme)==(n=="dark")?[i]:[])):t.push(fh.of(i)),t}var uh=class{constructor(e){this.markCache=Object.create(null),this.tree=ae(e.state),this.decorations=this.buildDeco(e,oh(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ae(e.state),n=oh(e.state),r=n!=oh(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<s.to&&!r&&t.type==this.tree.type&&o>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return q.none;let n=new He;for(let{from:r,to:s}of e.visibleRanges)Dg(this.tree,t,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=q.mark({class:l})))},r,s);return n.finish()}},Hv=Ot.high(ge.fromClass(uh,{decorations:i=>i.decorations})),u$=ma.define([{tag:$.meta,color:"#404740"},{tag:$.link,textDecoration:"underline"},{tag:$.heading,textDecoration:"underline",fontWeight:"bold"},{tag:$.emphasis,fontStyle:"italic"},{tag:$.strong,fontWeight:"bold"},{tag:$.strikethrough,textDecoration:"line-through"},{tag:$.keyword,color:"#708"},{tag:[$.atom,$.bool,$.url,$.contentSeparator,$.labelName],color:"#219"},{tag:[$.literal,$.inserted],color:"#164"},{tag:[$.string,$.deleted],color:"#a11"},{tag:[$.regexp,$.escape,$.special($.string)],color:"#e40"},{tag:$.definition($.variableName),color:"#00f"},{tag:$.local($.variableName),color:"#30a"},{tag:[$.typeName,$.namespace],color:"#085"},{tag:$.className,color:"#167"},{tag:[$.special($.variableName),$.macroName],color:"#256"},{tag:$.definition($.propertyName),color:"#00c"},{tag:$.comment,color:"#940"},{tag:$.invalid,color:"#f00"}]),Kv=T.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),d$=1e4,p$="()[]{}",m$=X.define({combine(i){return Ze(i,{afterCursor:!0,brackets:p$,maxScanDistance:d$,renderMatch:tw})}}),Jv=q.mark({class:"cm-matchingBracket"}),ew=q.mark({class:"cm-nonmatchingBracket"});function tw(i){let e=[],t=i.matched?Jv:ew;return e.push(t.range(i.start.from,i.start.to)),i.end&&e.push(t.range(i.end.from,i.end.to)),e}var iw=de.define({create(){return q.none},update(i,e){if(!e.docChanged&&!e.selection)return i;let t=[],n=e.state.facet(m$);for(let r of e.state.selection.ranges){if(!r.empty)continue;let s=yt(e.state,r.head,-1,n)||r.head>0&&yt(e.state,r.head-1,1,n)||n.afterCursor&&(yt(e.state,r.head,1,n)||r.head<e.state.doc.length&&yt(e.state,r.head+1,-1,n));s&&(t=t.concat(n.renderMatch(s,e.state)))}return q.set(t,!0)},provide:i=>T.decorations.from(i)}),nw=[iw,Kv];function g$(i={}){return[m$.of(i),nw]}var $h=new j;function dh(i,e,t){let n=i.prop(e<0?j.openedBy:j.closedBy);if(n)return n;if(i.name.length==1){let r=t.indexOf(i.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function ph(i){let e=i.type.prop($h);return e?e(i.node):i}function yt(i,e,t,n={}){let r=n.maxScanDistance||d$,s=n.brackets||p$,o=ae(i),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=dh(l.type,t,s);if(c&&l.from<l.to){let O=ph(l);if(O&&(t>0?e>=O.from&&e<O.to:e>O.from&&e<=O.to))return rw(i,e,t,l,O,c,s)}}return sw(i,e,t,o,a.type,r,s)}function rw(i,e,t,n,r,s,o){let a=n.parent,l={from:r.from,to:r.to},c=0,O=a?.cursor();if(O&&(t<0?O.childBefore(n.from):O.childAfter(n.to)))do if(t<0?O.to<=n.from:O.from>=n.to){if(c==0&&s.indexOf(O.type.name)>-1&&O.from<O.to){let h=ph(O);return{start:l,end:h?{from:h.from,to:h.to}:void 0,matched:!0}}else if(dh(O.type,t,o))c++;else if(dh(O.type,-t,o)){if(c==0){let h=ph(O);return{start:l,end:h&&h.from<h.to?{from:h.from,to:h.to}:void 0,matched:!1}}c--}}while(t<0?O.prevSibling():O.nextSibling());return{start:l,matched:!1}}function sw(i,e,t,n,r,s,o){let a=t<0?i.sliceDoc(e-1,e):i.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},O=i.doc.iterRange(e,t>0?i.doc.length:0),h=0;for(let f=0;!O.next().done&&f<=s;){let u=O.value;t<0&&(f+=u.length);let d=e+f*t;for(let p=t>0?0:u.length-1,m=t>0?u.length:-1;p!=m;p+=t){let g=o.indexOf(u[p]);if(!(g<0||n.resolveInner(d+p,1).type!=r))if(g%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:d+p,to:d+p+1},matched:g>>1==l>>1};h--}}t>0&&(f+=u.length)}return O.done?{start:c,matched:!1}:null}var ow=Object.create(null),Ng=[_e.none];var Fg=[],Hg=Object.create(null),aw=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])aw[i]=lw(ow,e);function ah(i,e){Fg.indexOf(i)>-1||(Fg.push(i),console.warn(e))}function lw(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let O=i[c]||$[c];O?typeof O=="function"?l.length?l=l.map(O):ah(c,`Modifier ${c} used at start of tag`):l.length?ah(c,`Tag ${c} used as modifier`):l=Array.isArray(O)?O:[O]:ah(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+t.map(a=>a.id),s=Hg[r];if(s)return s.id;let o=Hg[r]=_e.define({id:Ng.length,name:n,props:[_t({[n]:t})]});return Ng.push(o),o.id}var F6={rtl:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:ne.RTL}),ltr:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:ne.LTR}),auto:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var Ow=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),n=wh(i.state,t.from);return n.line?cw(i):n.block?fw(i):!1};function vh(i,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=i(e,t);return r?(n(t.update(r)),!0):!1}}var cw=vh(pw,0);var hw=vh(P$,0);var fw=vh((i,e)=>P$(i,e,dw(e)),0);function wh(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var ls=50;function uw(i,{open:e,close:t},n,r){let s=i.sliceDoc(n-ls,n),o=i.sliceDoc(r,r+ls),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:r+l,margin:l&&1}};let O,h;r-n<=2*ls?O=h=i.sliceDoc(n,r):(O=i.sliceDoc(n,n+ls),h=i.sliceDoc(r-ls,r));let f=/^\s*/.exec(O)[0].length,u=/\s*$/.exec(h)[0].length,d=h.length-u-t.length;return O.slice(f,f+e.length)==e&&h.slice(d,d+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(O.charAt(f+e.length))?1:0},close:{pos:r-u-t.length,margin:/\s/.test(h.charAt(d-1))?1:0}}:null}function dw(i){let e=[];for(let t of i.selection.ranges){let n=i.doc.lineAt(t.from),r=t.to<=n.to?n:i.doc.lineAt(t.to);r.from>n.from&&r.from==t.to&&(r=t.to==n.to+1?n:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}function P$(i,e,t=e.selection.ranges){let n=t.map(s=>wh(e,s.from).block);if(!n.every(s=>s))return null;let r=t.map((s,o)=>uw(e,n[o],s.from,s.to));if(i!=2&&!r.every(s=>s))return{changes:e.changes(t.map((s,o)=>r[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(i!=1&&r.some(s=>s)){let s=[];for(let o=0,a;o<r.length;o++)if(a=r[o]){let l=n[o],{open:c,close:O}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:O.pos-O.margin,to:O.pos+l.close.length})}return{changes:s}}return null}function pw(i,e,t=e.selection.ranges){let n=[],r=-1;for(let{from:s,to:o}of t){let a=n.length,l=1e9,c=wh(e,s).line;if(c){for(let O=s;O<=o;){let h=e.doc.lineAt(O);if(h.from>r&&(s==o||o>h.from)){r=h.from;let f=/^\s*/.exec(h.text)[0].length,u=f==h.length,d=h.text.slice(f,f+c.length)==c?f:-1;f<h.text.length&&f<l&&(l=f),n.push({line:h,comment:d,token:c,indent:f,empty:u,single:!1})}O=h.to+1}if(l<1e9)for(let O=a;O<n.length;O++)n[O].indent<n[O].line.text.length&&(n[O].indent=l);n.length==a+1&&(n[a].single=!0)}}if(i!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:O,single:h}of n)(h||!O)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,O=c+l.length;o.text[O-o.from]==" "&&O++,s.push({from:c,to:O})}return{changes:s}}return null}var Qh=De.define(),mw=De.define(),gw=X.define(),k$=X.define({combine(i){return Ze(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),T$=de.define({create(){return Fi.empty},update(i,e){let t=e.state.facet(k$),n=e.annotation(Qh);if(n){let l=Qt.fromTransaction(e,n.selection),c=n.side,O=c==0?i.undone:i.done;return l?O=ba(O,O.length,t.minDepth,l):O=q$(O,e.startState.selection),new Fi(c==0?n.rest:O,c==0?O:n.rest)}let r=e.annotation(mw);if((r=="full"||r=="before")&&(i=i.isolate()),e.annotation(xe.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=Qt.fromTransaction(e),o=e.annotation(xe.time),a=e.annotation(xe.userEvent);return s?i=i.addChanges(s,o,a,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(r=="full"||r=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Fi(i.done.map(Qt.fromJSON),i.undone.map(Qt.fromJSON))}});function z$(i={}){return[T$,k$.of(i),T.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?X$:e.inputType=="historyRedo"?Sh:null;return n?(e.preventDefault(),n(t)):!1}})]}function xa(i,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let r=t.field(T$,!1);if(!r)return!1;let s=r.pop(i,t,e);return s?(n(s),!0):!1}}var X$=xa(0,!1),Sh=xa(1,!1),$w=xa(0,!0),yw=xa(1,!0);var Qt=class i{constructor(e,t,n,r,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new i(e.changes&&Ae.fromJSON(e.changes),[],e.mapped&&Bt.fromJSON(e.mapped),e.startSelection&&P.fromJSON(e.startSelection),e.selectionsAfter.map(P.fromJSON))}static fromTransaction(e,t){let n=ut;for(let r of e.startState.facet(gw)){let s=r(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new i(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,ut)}static selection(e){return new i(void 0,ut,void 0,void 0,e)}};function ba(i,e,t,n){let r=e+1>t+20?e-t-1:0,s=i.slice(r,e);return s.push(n),s}function Qw(i,e){let t=[],n=!1;return i.iterChangedRanges((r,s)=>t.push(r,s)),e.iterChangedRanges((r,s,o,a)=>{for(let l=0;l<t.length;){let c=t[l++],O=t[l++];a>=c&&o<=O&&(n=!0)}}),n}function Sw(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function R$(i,e){return i.length?e.length?i.concat(e):i:e}var ut=[],bw=200;function q$(i,e){if(i.length){let t=i[i.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-bw));return n.length&&n[n.length-1].eq(e)?i:(n.push(e),ba(i,i.length-1,1e9,t.setSelAfter(n)))}else return[Qt.selection([e])]}function xw(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function yh(i,e){if(!i.length)return i;let t=i.length,n=ut;for(;t;){let r=vw(i[t-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let s=i.slice(0,t);return s[t-1]=r,s}else e=r.mapped,t--,n=r.selectionsAfter}return n.length?[Qt.selection(n)]:ut}function vw(i,e,t){let n=R$(i.selectionsAfter.length?i.selectionsAfter.map(a=>a.map(e)):ut,t);if(!i.changes)return Qt.selection(n);let r=i.changes.map(e),s=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(s):s;return new Qt(r,Z.mapEffects(i.effects,e),o,i.startSelection.map(s),n)}var ww=/^(input\.type|delete)($|\.)/,Fi=class i{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new i(this.done,this.undone):this}addChanges(e,t,n,r,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||ww.test(n))&&(!a.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(s,Qw(a.changes,e.changes))||n=="input.type.compose")?o=ba(o,o.length-1,r.minDepth,new Qt(e.changes.compose(a.changes),R$(Z.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,ut)):o=ba(o,o.length,r.minDepth,e),new i(o,ut,t,n)}addSelection(e,t,n,r){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:ut;return s.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&Sw(s[s.length-1],e)?this:new i(q$(this.done,e),this.undone,t,n)}addMapping(e){return new i(yh(this.done,e),yh(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let s=r[r.length-1],o=s.selectionsAfter[0]||t.selection;if(n&&s.selectionsAfter.length)return t.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:Qh.of({side:e,rest:xw(r),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let a=r.length==1?ut:r.slice(0,r.length-1);return s.mapped&&(a=yh(a,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:Qh.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}};Fi.empty=new Fi(ut,ut);var _$=[{key:"Mod-z",run:X$,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Sh,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Sh,preventDefault:!0},{key:"Mod-u",run:$w,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:yw,preventDefault:!0}];function Mn(i,e){return P.create(i.ranges.map(e),i.mainIndex)}function Vt(i,e){return i.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function St({state:i,dispatch:e},t){let n=Mn(i.selection,t);return n.eq(i.selection,!0)?!1:(e(Vt(i,n)),!0)}function va(i,e){return P.cursor(e?i.to:i.from)}function C$(i,e){return St(i,t=>t.empty?i.moveByChar(t,e):va(t,e))}function Ve(i){return i.textDirectionAt(i.state.selection.main.head)==ne.LTR}var W$=i=>C$(i,!Ve(i)),Z$=i=>C$(i,Ve(i));function V$(i,e){return St(i,t=>t.empty?i.moveByGroup(t,e):va(t,e))}var Pw=i=>V$(i,!Ve(i)),kw=i=>V$(i,Ve(i));var s_=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function Tw(i,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function wa(i,e,t){let n=ae(i).resolveInner(e.head),r=t?j.closedBy:j.openedBy;for(let l=e.head;;){let c=t?n.childAfter(l):n.childBefore(l);if(!c)break;Tw(i,c,r)?n=c:l=t?c.to:c.from}let s=n.type.prop(r),o,a;return s&&(o=t?yt(i,n.from,1):yt(i,n.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?n.to:n.from,P.cursor(a,t?-1:1)}var zw=i=>St(i,e=>wa(i.state,e,!Ve(i))),Xw=i=>St(i,e=>wa(i.state,e,Ve(i)));function A$(i,e){return St(i,t=>{if(!t.empty)return va(t,e);let n=i.moveVertically(t,e);return n.head!=t.head?n:i.moveToLineBoundary(t,e)})}var j$=i=>A$(i,!1),Y$=i=>A$(i,!0);function U$(i){let e=i.scrollDOM.clientHeight<i.scrollDOM.scrollHeight-2,t=0,n=0,r;if(e){for(let s of i.state.facet(T.scrollMargins)){let o=s(i);o?.top&&(t=Math.max(o?.top,t)),o?.bottom&&(n=Math.max(o?.bottom,n))}r=i.scrollDOM.clientHeight-t-n}else r=(i.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(i.defaultLineHeight,r-5)}}function M$(i,e){let t=U$(i),{state:n}=i,r=Mn(n.selection,o=>o.empty?i.moveVertically(o,e,t.height):va(o,e));if(r.eq(n.selection))return!1;let s;if(t.selfScroll){let o=i.coordsAtPos(n.selection.main.head),a=i.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottom<c&&(s=T.scrollIntoView(r.main.head,{y:"start",yMargin:o.top-l}))}return i.dispatch(Vt(n,r),{effects:s}),!0}var $$=i=>M$(i,!1),bh=i=>M$(i,!0);function Si(i,e,t){let n=i.lineBlockAt(e.head),r=i.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?n.to:n.from)&&(r=i.moveToLineBoundary(e,t,!1)),!t&&r.head==n.from&&n.length){let s=/^\s*/.exec(i.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;s&&e.head!=n.from+s&&(r=P.cursor(n.from+s))}return r}var Rw=i=>St(i,e=>Si(i,e,!0)),qw=i=>St(i,e=>Si(i,e,!1)),_w=i=>St(i,e=>Si(i,e,!Ve(i))),Cw=i=>St(i,e=>Si(i,e,Ve(i))),Ww=i=>St(i,e=>P.cursor(i.lineBlockAt(e.head).from,1)),Zw=i=>St(i,e=>P.cursor(i.lineBlockAt(e.head).to,-1));function Vw(i,e,t){let n=!1,r=Mn(i.selection,s=>{let o=yt(i,s.head,-1)||yt(i,s.head,1)||s.head>0&&yt(i,s.head-1,1)||s.head<i.doc.length&&yt(i,s.head+1,-1);if(!o||!o.end)return s;n=!0;let a=o.start.from==s.head?o.end.to:o.end.from;return t?P.range(s.anchor,a):P.cursor(a)});return n?(e(Vt(i,r)),!0):!1}var Aw=({state:i,dispatch:e})=>Vw(i,e,!1);function dt(i,e){let t=Mn(i.state.selection,n=>{let r=e(n);return P.range(n.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(i.state.selection)?!1:(i.dispatch(Vt(i.state,t)),!0)}function E$(i,e){return dt(i,t=>i.moveByChar(t,e))}var D$=i=>E$(i,!Ve(i)),B$=i=>E$(i,Ve(i));function L$(i,e){return dt(i,t=>i.moveByGroup(t,e))}var jw=i=>L$(i,!Ve(i)),Yw=i=>L$(i,Ve(i));var Uw=i=>dt(i,e=>wa(i.state,e,!Ve(i))),Mw=i=>dt(i,e=>wa(i.state,e,Ve(i)));function G$(i,e){return dt(i,t=>i.moveVertically(t,e))}var I$=i=>G$(i,!1),N$=i=>G$(i,!0);function F$(i,e){return dt(i,t=>i.moveVertically(t,e,U$(i).height))}var y$=i=>F$(i,!1),Q$=i=>F$(i,!0),Ew=i=>dt(i,e=>Si(i,e,!0)),Dw=i=>dt(i,e=>Si(i,e,!1)),Bw=i=>dt(i,e=>Si(i,e,!Ve(i))),Lw=i=>dt(i,e=>Si(i,e,Ve(i))),Gw=i=>dt(i,e=>P.cursor(i.lineBlockAt(e.head).from)),Iw=i=>dt(i,e=>P.cursor(i.lineBlockAt(e.head).to)),S$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:0})),!0),b$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:i.doc.length})),!0),x$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:i.selection.main.anchor,head:0})),!0),v$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),Nw=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),Fw=({state:i,dispatch:e})=>{let t=Pa(i).map(({from:n,to:r})=>P.range(n,Math.min(r+1,i.doc.length)));return e(i.update({selection:P.create(t),userEvent:"select"})),!0},Hw=({state:i,dispatch:e})=>{let t=Mn(i.selection,n=>{let r=ae(i),s=r.resolveStack(n.from,1);if(n.empty){let o=r.resolveStack(n.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from<n.from&&a.to>=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return P.range(a.to,a.from)}return n});return t.eq(i.selection)?!1:(e(Vt(i,t)),!0)},Kw=({state:i,dispatch:e})=>{let t=i.selection,n=null;return t.ranges.length>1?n=P.create([t.main]):t.main.empty||(n=P.create([P.cursor(t.main.head)])),n?(e(Vt(i,n)),!0):!1};function Os(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:n}=i,r=n.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);l<o?(t="delete.backward",l=Sa(i,l,!1)):l>o&&(t="delete.forward",l=Sa(i,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Sa(i,o,!1),a=Sa(i,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:P.cursor(o,o<s.head?-1:1)}});return r.changes.empty?!1:(i.dispatch(n.update(r,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?T.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function Sa(i,e,t){if(i instanceof T)for(let n of i.state.facet(T.atomicRanges).map(r=>r(i)))n.between(e,e,(r,s)=>{r<e&&s>e&&(e=t?s:r)});return e}var H$=(i,e,t)=>Os(i,n=>{let r=n.from,{state:s}=i,o=s.doc.lineAt(r),a,l;if(t&&!e&&r>o.from&&r<o.from+200&&!/[^ \t]/.test(a=o.text.slice(0,r-o.from))){if(a[a.length-1]=="  ")return r-1;let c=Lt(a,s.tabSize),O=c%os(s)||os(s);for(let h=0;h<O&&a[a.length-1-h]==" ";h++)r--;l=r}else l=ve(o.text,r-o.from,e,e)+o.from,l==r&&o.number!=(e?s.doc.lines:1)?l+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(l-o.from,r-o.from))&&(l=ve(o.text,l-o.from,!1,!1)+o.from);return l}),xh=i=>H$(i,!1,!0);var K$=i=>H$(i,!0,!1),J$=(i,e)=>Os(i,t=>{let n=t.head,{state:r}=i,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let a=null;;){if(n==(e?s.to:s.from)){n==t.head&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let l=ve(s.text,n-s.from,e)+s.from,c=s.text.slice(Math.min(n,l)-s.from,Math.max(n,l)-s.from),O=o(c);if(a!=null&&O!=a)break;(c!=" "||n!=t.head)&&(a=O),n=l}return n}),ey=i=>J$(i,!1),Jw=i=>J$(i,!0),eP=i=>Os(i,e=>{let t=i.lineBlockAt(e.head).to;return e.head<t?t:Math.min(i.state.doc.length,e.head+1)});var tP=i=>Os(i,e=>{let t=i.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),iP=i=>Os(i,e=>{let t=i.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(i.state.doc.length,e.head+1)});var nP=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:M.of(["",""])},range:P.cursor(n.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},rP=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>{if(!n.empty||n.from==0||n.from==i.doc.length)return{range:n};let r=n.from,s=i.doc.lineAt(r),o=r==s.from?r-1:ve(s.text,r-s.from,!1)+s.from,a=r==s.to?r+1:ve(s.text,r-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:i.doc.slice(r,a).append(i.doc.slice(o,r))},range:P.cursor(a)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Pa(i){let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.from),s=i.doc.lineAt(n.to);if(!n.empty&&n.to==s.from&&(s=i.doc.lineAt(n.to-1)),t>=r.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});t=s.number+1}return e}function ty(i,e,t){if(i.readOnly)return!1;let n=[],r=[];for(let s of Pa(i)){if(t?s.to==i.doc.length:s.from==0)continue;let o=i.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){n.push({from:s.to,to:o.to},{from:s.from,insert:o.text+i.lineBreak});for(let l of s.ranges)r.push(P.range(Math.min(i.doc.length,l.anchor+a),Math.min(i.doc.length,l.head+a)))}else{n.push({from:o.from,to:s.from},{from:s.to,insert:i.lineBreak+o.text});for(let l of s.ranges)r.push(P.range(l.anchor-a,l.head-a))}}return n.length?(e(i.update({changes:n,scrollIntoView:!0,selection:P.create(r,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}var sP=({state:i,dispatch:e})=>ty(i,e,!1),oP=({state:i,dispatch:e})=>ty(i,e,!0);function iy(i,e,t){if(i.readOnly)return!1;let n=[];for(let r of Pa(i))t?n.push({from:r.from,insert:i.doc.slice(r.from,r.to)+i.lineBreak}):n.push({from:r.to,insert:i.lineBreak+i.doc.slice(r.from,r.to)});return e(i.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var aP=({state:i,dispatch:e})=>iy(i,e,!1),lP=({state:i,dispatch:e})=>iy(i,e,!0),OP=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Pa(e).map(({from:r,to:s})=>(r>0?r--:s<e.doc.length&&s++,{from:r,to:s}))),n=Mn(e.selection,r=>{let s;if(i.lineWrapping){let o=i.lineBlockAt(r.head),a=i.coordsAtPos(r.head,r.assoc||1);a&&(s=o.bottom+i.documentTop-a.bottom+i.defaultLineHeight/2)}return i.moveVertically(r,!0,s)}).map(t);return i.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function cP(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ae(i).resolveInner(e),n=t.childBefore(e),r=t.childAfter(e),s;return n&&r&&n.to<=e&&r.from>=e&&(s=n.type.prop(j.closedBy))&&s.indexOf(r.name)>-1&&i.doc.lineAt(n.to).from==i.doc.lineAt(r.from).from&&!/\S/.test(i.sliceDoc(n.to,r.from))?{from:n.to,to:r.from}:null}var w$=ny(!1),hP=ny(!0);function ny(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{let{from:s,to:o}=r,a=e.doc.lineAt(s),l=!i&&s==o&&cP(e,s);i&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new Ii(e,{simulateBreak:s,simulateDoubleBreak:!!l}),O=$a(c,s);for(O==null&&(O=Lt(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));o<a.to&&/\s/.test(a.text[o-a.from]);)o++;l?{from:s,to:o}=l:s>a.from&&s<a.from+100&&!/\S/.test(a.text.slice(0,s))&&(s=a.from);let h=["",Yn(e,O)];return l&&h.push(Yn(e,c.lineIndent(a.from,-1))),{changes:{from:s,to:o,insert:M.of(h)},range:P.cursor(s+1+h[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function Ph(i,e){let t=-1;return i.changeByRange(n=>{let r=[];for(let o=n.from;o<=n.to;){let a=i.doc.lineAt(o);a.number>t&&(n.empty||n.to>a.from)&&(e(a,r,n),t=a.number),o=a.to+1}let s=i.changes(r);return{changes:r,range:P.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var fP=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),n=new Ii(i,{overrideIndentation:s=>{let o=t[s];return o??-1}}),r=Ph(i,(s,o,a)=>{let l=$a(n,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],O=Yn(i,l);(c!=O||a.from<s.from+c.length)&&(t[s.from]=l,o.push({from:s.from,to:s.from+c.length,insert:O}))});return r.changes.empty||e(i.update(r,{userEvent:"indent"})),!0},uP=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Ph(i,(t,n)=>{n.push({from:t.from,insert:i.facet(jn)})}),{userEvent:"input.indent"})),!0),dP=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Ph(i,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=Lt(r,i.tabSize),o=0,a=Yn(i,Math.max(0,s-os(i)));for(;o<r.length&&o<a.length&&r.charCodeAt(o)==a.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+r.length,insert:a.slice(o)})}),{userEvent:"delete.dedent"})),!0),pP=i=>(i.setTabFocusMode(),!0);var mP=[{key:"Ctrl-b",run:W$,shift:D$,preventDefault:!0},{key:"Ctrl-f",run:Z$,shift:B$},{key:"Ctrl-p",run:j$,shift:I$},{key:"Ctrl-n",run:Y$,shift:N$},{key:"Ctrl-a",run:Ww,shift:Gw},{key:"Ctrl-e",run:Zw,shift:Iw},{key:"Ctrl-d",run:K$},{key:"Ctrl-h",run:xh},{key:"Ctrl-k",run:eP},{key:"Ctrl-Alt-h",run:ey},{key:"Ctrl-o",run:nP},{key:"Ctrl-t",run:rP},{key:"Ctrl-v",run:bh}],gP=[{key:"ArrowLeft",run:W$,shift:D$,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Pw,shift:jw,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:_w,shift:Bw,preventDefault:!0},{key:"ArrowRight",run:Z$,shift:B$,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:kw,shift:Yw,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Cw,shift:Lw,preventDefault:!0},{key:"ArrowUp",run:j$,shift:I$,preventDefault:!0},{mac:"Cmd-ArrowUp",run:S$,shift:x$},{mac:"Ctrl-ArrowUp",run:$$,shift:y$},{key:"ArrowDown",run:Y$,shift:N$,preventDefault:!0},{mac:"Cmd-ArrowDown",run:b$,shift:v$},{mac:"Ctrl-ArrowDown",run:bh,shift:Q$},{key:"PageUp",run:$$,shift:y$},{key:"PageDown",run:bh,shift:Q$},{key:"Home",run:qw,shift:Dw,preventDefault:!0},{key:"Mod-Home",run:S$,shift:x$},{key:"End",run:Rw,shift:Ew,preventDefault:!0},{key:"Mod-End",run:b$,shift:v$},{key:"Enter",run:w$,shift:w$},{key:"Mod-a",run:Nw},{key:"Backspace",run:xh,shift:xh},{key:"Delete",run:K$},{key:"Mod-Backspace",mac:"Alt-Backspace",run:ey},{key:"Mod-Delete",mac:"Alt-Delete",run:Jw},{mac:"Mod-Backspace",run:tP},{mac:"Mod-Delete",run:iP}].concat(mP.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),ry=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:zw,shift:Uw},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Xw,shift:Mw},{key:"Alt-ArrowUp",run:sP},{key:"Shift-Alt-ArrowUp",run:aP},{key:"Alt-ArrowDown",run:oP},{key:"Shift-Alt-ArrowDown",run:lP},{key:"Escape",run:Kw},{key:"Mod-Enter",run:hP},{key:"Alt-l",mac:"Ctrl-l",run:Fw},{key:"Mod-i",run:Hw,preventDefault:!0},{key:"Mod-[",run:dP},{key:"Mod-]",run:uP},{key:"Mod-Alt-\\",run:fP},{key:"Shift-Mod-k",run:OP},{key:"Shift-Mod-\\",run:Aw},{key:"Mod-/",run:Ow},{key:"Alt-A",run:hw},{key:"Ctrl-m",mac:"Shift-Alt-m",run:pP}].concat(gP);var sy=typeof String.prototype.normalize=="function"?i=>i.normalize("NFKD"):i=>i,xi=class{constructor(e,t,n=0,r=e.length,s,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=s?a=>s(sy(a)):sy,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Xe(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Xr(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Ke(e);let r=this.normalize(t);if(r.length)for(let s=0,o=n;;s++){let a=r.charCodeAt(s),l=this.match(a,o,this.bufferPos+this.bufferStart);if(s==r.length-1){if(l)return this.value=l,this;break}o==n&&s<t.length&&t.charCodeAt(s)==a&&o++}}}match(e,t,n){let r=null;for(let s=0;s<this.matches.length;s+=2){let o=this.matches[s],a=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?r={from:this.matches[s+1],to:n}:(this.matches[s]++,a=!0)),a||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?r={from:t,to:n}:this.matches.push(1,t)),r&&this.test&&!this.test(r.from,r.to,this.buffer,this.bufferStart)&&(r=null),r}};typeof Symbol<"u"&&(xi.prototype[Symbol.iterator]=function(){return this});var Oy={from:-1,to:-1,match:/.*/.exec("")},_h="gm"+(/x/.unicode==null?"":"u"),za=class{constructor(e,t,n,r=0,s=e.length){if(this.text=e,this.to=s,this.curLine="",this.done=!1,this.value=Oy,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Ra(e,t,n,r,s);this.re=new RegExp(t,_h+(n?.ignoreCase?"i":"")),this.test=n?.test,this.iter=e.iter();let o=e.lineAt(r);this.curLineStart=o.from,this.matchPos=qa(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=qa(this.text,r+(n==r?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},kh=new WeakMap,Xa=class i{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let r=kh.get(e);if(!r||r.from>=n||r.to<=t){let a=new i(t,e.sliceString(t,n));return kh.set(e,a),a}if(r.from==t&&r.to==n)return r;let{text:s,from:o}=r;return o>t&&(s=e.sliceString(t,o)+s,o=t),r.to<n&&(s+=e.sliceString(r.to,n)),kh.set(e,new i(o,s)),new i(t,s.slice(t-o,n-o))}},Ra=class{constructor(e,t,n,r,s){this.text=e,this.to=s,this.done=!1,this.value=Oy,this.matchPos=qa(e,r),this.re=new RegExp(t,_h+(n?.ignoreCase?"i":"")),this.test=n?.test,this.flat=Xa.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,r=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this.matchPos=qa(this.text,r+(n==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Xa.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(za.prototype[Symbol.iterator]=Ra.prototype[Symbol.iterator]=function(){return this});function $P(i){try{return new RegExp(i,_h),!0}catch{return!1}}function qa(i,e){if(e>=i.length)return e;let t=i.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}function Th(i){let e=String(i.state.doc.lineAt(i.state.selection.main.head).number),t=I("input",{class:"cm-textfield",name:"line",value:e}),n=I("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),i.dispatch({effects:cs.of(!1)}),i.focus()):s.keyCode==13&&(s.preventDefault(),r())},onsubmit:s=>{s.preventDefault(),r()}},I("label",i.state.phrase("Go to line"),": ",t)," ",I("button",{class:"cm-button",type:"submit"},i.state.phrase("go")),I("button",{name:"close",onclick:()=>{i.dispatch({effects:cs.of(!1)}),i.focus()},"aria-label":i.state.phrase("close"),type:"button"},["\xD7"]));function r(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!s)return;let{state:o}=i,a=o.doc.lineAt(o.selection.main.head),[,l,c,O,h]=s,f=O?+O.slice(1):0,u=c?+c:a.number;if(c&&h){let m=u/100;l&&(m=m*(l=="-"?-1:1)+a.number/o.doc.lines),u=Math.round(o.doc.lines*m)}else c&&l&&(u=u*(l=="-"?-1:1)+a.number);let d=o.doc.line(Math.max(1,Math.min(o.doc.lines,u))),p=P.cursor(d.from+Math.max(0,Math.min(f,d.length)));i.dispatch({effects:[cs.of(!1),T.scrollIntoView(p.from,{y:"center"})],selection:p}),i.focus()}return{dom:n}}var cs=Z.define(),oy=de.define({create(){return!0},update(i,e){for(let t of e.effects)t.is(cs)&&(i=t.value);return i},provide:i=>Ei.from(i,e=>e?Th:null)}),yP=i=>{let e=Di(i,Th);if(!e){let t=[cs.of(!0)];i.state.field(oy,!1)==null&&t.push(Z.appendConfig.of([oy,QP])),i.dispatch({effects:t}),e=Di(i,Th)}return e&&e.dom.querySelector("input").select(),!0},QP=T.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),SP={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},cy=X.define({combine(i){return Ze(i,SP,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function hy(i){let e=[PP,wP];return i&&e.push(cy.of(i)),e}var bP=q.mark({class:"cm-selectionMatch"}),xP=q.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function ay(i,e,t,n){return(t==0||i(e.sliceDoc(t-1,t))!=ie.Word)&&(n==e.doc.length||i(e.sliceDoc(n,n+1))!=ie.Word)}function vP(i,e,t,n){return i(e.sliceDoc(t,t+1))==ie.Word&&i(e.sliceDoc(n-1,n))==ie.Word}var wP=ge.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.selectionSet||i.docChanged||i.viewportChanged)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=i.state.facet(cy),{state:t}=i,n=t.selection;if(n.ranges.length>1)return q.none;let r=n.main,s,o=null;if(r.empty){if(!e.highlightWordAroundCursor)return q.none;let l=t.wordAt(r.head);if(!l)return q.none;o=t.charCategorizer(r.head),s=t.sliceDoc(l.from,l.to)}else{let l=r.to-r.from;if(l<e.minSelectionLength||l>200)return q.none;if(e.wholeWords){if(s=t.sliceDoc(r.from,r.to),o=t.charCategorizer(r.head),!(ay(o,t,r.from,r.to)&&vP(o,t,r.from,r.to)))return q.none}else if(s=t.sliceDoc(r.from,r.to),!s)return q.none}let a=[];for(let l of i.visibleRanges){let c=new xi(t.doc,s,l.from,l.to);for(;!c.next().done;){let{from:O,to:h}=c.value;if((!o||ay(o,t,O,h))&&(r.empty&&O<=r.from&&h>=r.to?a.push(xP.range(O,h)):(O>=r.to||h<=r.from)&&a.push(bP.range(O,h)),a.length>e.maxMatches))return q.none}}return q.set(a)}},{decorations:i=>i.decorations}),PP=T.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),kP=({state:i,dispatch:e})=>{let{selection:t}=i,n=P.create(t.ranges.map(r=>i.wordAt(r.head)||P.cursor(r.head)),t.mainIndex);return n.eq(t)?!1:(e(i.update({selection:n})),!0)};function TP(i,e){let{main:t,ranges:n}=i.selection,r=i.wordAt(t.head),s=r&&r.from==t.from&&r.to==t.to;for(let o=!1,a=new xi(i.doc,e,n[n.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new xi(i.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(l=>l.from==a.value.from))continue;if(s){let l=i.wordAt(a.value.from);if(!l||l.from!=a.value.from||l.to!=a.value.to)continue}return a.value}}var zP=({state:i,dispatch:e})=>{let{ranges:t}=i.selection;if(t.some(s=>s.from===s.to))return kP({state:i,dispatch:e});let n=i.sliceDoc(t[0].from,t[0].to);if(i.selection.ranges.some(s=>i.sliceDoc(s.from,s.to)!=n))return!1;let r=TP(i,n);return r?(e(i.update({selection:i.selection.addRange(P.range(r.from,r.to),!1),effects:T.scrollIntoView(r.to)})),!0):!1},Bn=X.define({combine(i){return Ze(i,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new qh(e),scrollToMatch:e=>T.scrollIntoView(e)})}});var _a=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||$P(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
    56 `:n=="r"?"\r":n=="t"?"  ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new Xh(this):new zh(this)}getCursor(e,t=0,n){let r=e.doc?e:ee.create({doc:e});return n==null&&(n=r.doc.length),this.regexp?Dn(this,r,t,n):En(this,r,t,n)}},Ca=class{constructor(e){this.spec=e}};function En(i,e,t,n){return new xi(e.doc,i.unquoted,t,n,i.caseSensitive?void 0:r=>r.toLowerCase(),i.wholeWord?XP(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function XP(i,e){return(t,n,r,s)=>((s>t||s+r.length<n)&&(s=Math.max(0,t-2),r=i.sliceString(s,Math.min(i.length,n+2))),(e(Wa(r,t-s))!=ie.Word||e(Za(r,t-s))!=ie.Word)&&(e(Za(r,n-s))!=ie.Word||e(Wa(r,n-s))!=ie.Word))}var zh=class extends Ca{constructor(e){super(e)}nextMatch(e,t,n){let r=En(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);r=En(this.spec,e,0,s).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let s=Math.max(t,r-1e4-this.spec.unquoted.length),o=En(this.spec,e,s,r),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);return r||(r=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=En(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let s=En(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}};function Dn(i,e,t,n){return new za(e.doc,i.search,{ignoreCase:!i.caseSensitive,test:i.wholeWord?RP(e.charCategorizer(e.selection.main.head)):void 0},t,n)}function Wa(i,e){return i.slice(ve(i,e,!1),e)}function Za(i,e){return i.slice(e,ve(i,e))}function RP(i){return(e,t,n)=>!n[0].length||(i(Wa(n.input,n.index))!=ie.Word||i(Za(n.input,n.index))!=ie.Word)&&(i(Za(n.input,n.index+n[0].length))!=ie.Word||i(Wa(n.input,n.index+n[0].length))!=ie.Word)}var Xh=class extends Ca{nextMatch(e,t,n){let r=Dn(this.spec,e,n,e.doc.length).next();return r.done&&(r=Dn(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let s=Math.max(t,n-r*1e4),o=Dn(this.spec,e,s,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let r=n.length;r>0;r--){let s=+n.slice(0,r);if(s>0&&s<e.match.length)return e.match[s]+n.slice(r)}return t})}matchAll(e,t){let n=Dn(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let s=Dn(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}},fs=Z.define(),Ch=Z.define(),bi=de.define({create(i){return new hs(Rh(i).create(),null)},update(i,e){for(let t of e.effects)t.is(fs)?i=new hs(t.value.create(),i.panel):t.is(Ch)&&(i=new hs(i.query,t.value?Wh:null));return i},provide:i=>Ei.from(i,e=>e.panel)});var hs=class{constructor(e,t){this.query=e,this.panel=t}},qP=q.mark({class:"cm-searchMatch"}),_P=q.mark({class:"cm-searchMatch cm-searchMatch-selected"}),CP=ge.fromClass(class{constructor(i){this.view=i,this.decorations=this.highlight(i.state.field(bi))}update(i){let e=i.state.field(bi);(e!=i.startState.field(bi)||i.docChanged||i.selectionSet||i.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:i,panel:e}){if(!e||!i.spec.valid)return q.none;let{view:t}=this,n=new He;for(let r=0,s=t.visibleRanges,o=s.length;r<o;r++){let{from:a,to:l}=s[r];for(;r<o-1&&l>s[r+1].from-2*250;)l=s[++r].to;i.highlight(t.state,a,l,(c,O)=>{let h=t.state.selection.ranges.some(f=>f.from==c&&f.to==O);n.add(c,O,h?_P:qP)})}return n.finish()}},{decorations:i=>i.decorations});function us(i){return e=>{let t=e.state.field(bi,!1);return t&&t.query.spec.valid?i(e,t):dy(e)}}var Va=us((i,{query:e})=>{let{to:t}=i.state.selection.main,n=e.nextMatch(i.state,t,t);if(!n)return!1;let r=P.single(n.from,n.to),s=i.state.facet(Bn);return i.dispatch({selection:r,effects:[Zh(i,n),s.scrollToMatch(r.main,i)],userEvent:"select.search"}),uy(i),!0}),Aa=us((i,{query:e})=>{let{state:t}=i,{from:n}=t.selection.main,r=e.prevMatch(t,n,n);if(!r)return!1;let s=P.single(r.from,r.to),o=i.state.facet(Bn);return i.dispatch({selection:s,effects:[Zh(i,r),o.scrollToMatch(s.main,i)],userEvent:"select.search"}),uy(i),!0}),WP=us((i,{query:e})=>{let t=e.matchAll(i.state,1e3);return!t||!t.length?!1:(i.dispatch({selection:P.create(t.map(n=>P.range(n.from,n.to))),userEvent:"select.search.matches"}),!0)}),ZP=({state:i,dispatch:e})=>{let t=i.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:n,to:r}=t.main,s=[],o=0;for(let a=new xi(i.doc,i.sliceDoc(n,r));!a.next().done;){if(s.length>1e3)return!1;a.value.from==n&&(o=s.length),s.push(P.range(a.value.from,a.value.to))}return e(i.update({selection:P.create(s,o),userEvent:"select.search.matches"})),!0},ly=us((i,{query:e})=>{let{state:t}=i,{from:n,to:r}=t.selection.main;if(t.readOnly)return!1;let s=e.nextMatch(t,n,n);if(!s)return!1;let o=s,a=[],l,c,O=[];o.from==n&&o.to==r&&(c=t.toText(e.getReplacement(o)),a.push({from:o.from,to:o.to,insert:c}),o=e.nextMatch(t,o.from,o.to),O.push(T.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(n).number)+".")));let h=i.state.changes(a);return o&&(l=P.single(o.from,o.to).map(h),O.push(Zh(i,o)),O.push(t.facet(Bn).scrollToMatch(l.main,i))),i.dispatch({changes:h,selection:l,effects:O,userEvent:"input.replace"}),!0}),VP=us((i,{query:e})=>{if(i.state.readOnly)return!1;let t=e.matchAll(i.state,1e9).map(r=>{let{from:s,to:o}=r;return{from:s,to:o,insert:e.getReplacement(r)}});if(!t.length)return!1;let n=i.state.phrase("replaced $ matches",t.length)+".";return i.dispatch({changes:t,effects:T.announce.of(n),userEvent:"input.replace.all"}),!0});function Wh(i){return i.state.facet(Bn).createPanel(i)}function Rh(i,e){var t,n,r,s,o;let a=i.selection.main,l=a.empty||a.to>a.from+100?"":i.sliceDoc(a.from,a.to);if(e&&!l)return e;let c=i.facet(Bn);return new _a({search:((t=e?.literal)!==null&&t!==void 0?t:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(n=e?.caseSensitive)!==null&&n!==void 0?n:c.caseSensitive,literal:(r=e?.literal)!==null&&r!==void 0?r:c.literal,regexp:(s=e?.regexp)!==null&&s!==void 0?s:c.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function fy(i){let e=Di(i,Wh);return e&&e.dom.querySelector("[main-field]")}function uy(i){let e=fy(i);e&&e==i.root.activeElement&&e.select()}var dy=i=>{let e=i.state.field(bi,!1);if(e&&e.panel){let t=fy(i);if(t&&t!=i.root.activeElement){let n=Rh(i.state,e.query.spec);n.valid&&i.dispatch({effects:fs.of(n)}),t.focus(),t.select()}}else i.dispatch({effects:[Ch.of(!0),e?fs.of(Rh(i.state,e.query.spec)):Z.appendConfig.of(jP)]});return!0},py=i=>{let e=i.state.field(bi,!1);if(!e||!e.panel)return!1;let t=Di(i,Wh);return t&&t.dom.contains(i.root.activeElement)&&i.focus(),i.dispatch({effects:Ch.of(!1)}),!0},my=[{key:"Mod-f",run:dy,scope:"editor search-panel"},{key:"F3",run:Va,shift:Aa,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Va,shift:Aa,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:py,scope:"editor search-panel"},{key:"Mod-Shift-l",run:ZP},{key:"Mod-Alt-g",run:yP},{key:"Mod-d",run:zP,preventDefault:!0}],qh=class{constructor(e){this.view=e;let t=this.query=e.state.field(bi).query.spec;this.commit=this.commit.bind(this),this.searchField=I("input",{value:t.search,placeholder:it(e,"Find"),"aria-label":it(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=I("input",{value:t.replace,placeholder:it(e,"Replace"),"aria-label":it(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=I("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=I("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=I("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(r,s,o){return I("button",{class:"cm-button",name:r,onclick:s,type:"button"},o)}this.dom=I("div",{onkeydown:r=>this.keydown(r),class:"cm-search"},[this.searchField,n("next",()=>Va(e),[it(e,"next")]),n("prev",()=>Aa(e),[it(e,"previous")]),n("select",()=>WP(e),[it(e,"all")]),I("label",null,[this.caseField,it(e,"match case")]),I("label",null,[this.reField,it(e,"regexp")]),I("label",null,[this.wordField,it(e,"by word")]),...e.state.readOnly?[]:[I("br"),this.replaceField,n("replace",()=>ly(e),[it(e,"replace")]),n("replaceAll",()=>VP(e),[it(e,"replace all")])],I("button",{name:"close",onclick:()=>py(e),"aria-label":it(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new _a({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:fs.of(e)}))}keydown(e){pg(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Aa:Va)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),ly(this.view))}update(e){for(let t of e.transactions)for(let n of t.effects)n.is(fs)&&!n.value.eq(this.query)&&this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Bn).top}};function it(i,e){return i.state.phrase(e)}var ka=30,Ta=/[\s\.,:;?!]/;function Zh(i,{from:e,to:t}){let n=i.state.doc.lineAt(e),r=i.state.doc.lineAt(t).to,s=Math.max(n.from,e-ka),o=Math.min(r,t+ka),a=i.state.sliceDoc(s,o);if(s!=n.from){for(let l=0;l<ka;l++)if(!Ta.test(a[l+1])&&Ta.test(a[l])){a=a.slice(l);break}}if(o!=r){for(let l=a.length-1;l>a.length-ka;l--)if(!Ta.test(a[l-1])&&Ta.test(a[l])){a=a.slice(0,l);break}}return T.announce.of(`${i.state.phrase("current match")}. ${a} ${i.state.phrase("on line")} ${n.number}.`)}var AP=T.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),jP=[bi,Ot.low(CP),AP];var Ya=class{constructor(e,t,n,r){this.state=e,this.pos=t,this.explicit=n,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ae(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),s=r.search(ky(e,!1));return s<0?null:{from:n+s,to:this.pos,text:r.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function gy(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function YP(i){let e=Object.create(null),t=Object.create(null);for(let{label:r}of i){e[r[0]]=!0;for(let s=1;s<r.length;s++)t[r[s]]=!0}let n=gy(e)+gy(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function Ih(i){let e=i.map(r=>typeof r=="string"?{label:r}:r),[t,n]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:YP(e);return r=>{let s=r.matchBefore(n);return s||r.explicit?{from:s?s.from:r.pos,options:e,validFor:t}:null}}function Py(i,e){return t=>{for(let n=ae(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(i.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}var Ua=class{constructor(e,t,n,r){this.completion=e,this.source=t,this.match=n,this.score=r}};function Ki(i){return i.selection.main.from}function ky(i,e){var t;let{source:n}=i,r=e&&n[0]!="^",s=n[n.length-1]!="$";return!r&&!s?i:new RegExp(`${r?"^":""}(?:${n})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}var Nh=De.define();function UP(i,e,t,n){let{main:r}=i.selection,s=t-r.from,o=n-r.from;return Object.assign(Object.assign({},i.changeByRange(a=>{if(a!=r&&t!=n&&i.sliceDoc(a.from+s,a.from+o)!=i.sliceDoc(t,n))return{range:a};let l=i.toText(e);return{changes:{from:a.from+s,to:n==r.from?a.to:a.from+o,insert:l},range:P.cursor(a.from+s+l.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var $y=new WeakMap;function MP(i){if(!Array.isArray(i))return i;let e=$y.get(i);return e||$y.set(i,e=Ih(i)),e}var Ma=Z.define(),ds=Z.define(),jh=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=Xe(e,t),r=Ke(n);this.chars.push(n);let s=e.slice(t,t+r),o=s.toUpperCase();this.folded.push(Xe(o==s?s.toLowerCase():o,0)),t+=r}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:r,precise:s,byWord:o}=this;if(t.length==1){let y=Xe(e,0),S=Ke(y),v=S==e.length?0:-100;if(y!=t[0])if(y==n[0])v+=-200;else return null;return this.ret(v,[0,S])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=t.length,c=0;if(a<0){for(let y=0,S=Math.min(e.length,200);y<S&&c<l;){let v=Xe(e,y);(v==t[c]||v==n[c])&&(r[c++]=y),y+=Ke(v)}if(c<l)return null}let O=0,h=0,f=!1,u=0,d=-1,p=-1,m=/[a-z]/.test(e),g=!0;for(let y=0,S=Math.min(e.length,200),v=0;y<S&&h<l;){let b=Xe(e,y);a<0&&(O<l&&b==t[O]&&(s[O++]=y),u<l&&(b==t[u]||b==n[u]?(u==0&&(d=y),p=y+1,u++):u=0));let x,Q=b<255?b>=48&&b<=57||b>=97&&b<=122?2:b>=65&&b<=90?1:0:(x=Xr(b))!=x.toLowerCase()?1:x!=x.toUpperCase()?2:0;(!y||Q==1&&m||v==0&&Q!=0)&&(t[h]==b||n[h]==b&&(f=!0)?o[h++]=y:o.length&&(g=!1)),v=Q,y+=Ke(b)}return h==l&&o[0]==0&&g?this.result(-100+(f?-200:0),o,e):u==l&&d==0?this.ret(-200-e.length+(p==e.length?0:-100),[0,p]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):u==l?this.ret(-900-e.length,[d,p]):h==l?this.result(-100+(f?-200:0)+-700+(g?0:-1100),o,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,n){let r=[],s=0;for(let o of t){let a=o+(this.astral?Ke(Xe(n,o)):1);s&&r[s-1]==o?r[s-1]=a:(r[s++]=o,r[s++]=a)}return this.ret(e-n.length,r)}},Yh=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return n==null?null:(this.matched=[0,t.length],this.score=n+(e.length==this.pattern.length?0:-100),this)}},Te=X.define({combine(i){return Ze(i,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:EP,filterStrict:!1,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>yy(e(n),t(n)),optionClass:(e,t)=>n=>yy(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function yy(i,e){return i?e?i+" "+e:i:e}function EP(i,e,t,n,r,s){let o=i.textDirection==ne.RTL,a=o,l=!1,c="top",O,h,f=e.left-r.left,u=r.right-e.right,d=n.right-n.left,p=n.bottom-n.top;if(a&&f<Math.min(d,u)?a=!1:!a&&u<Math.min(d,f)&&(a=!0),d<=(a?f:u))O=Math.max(r.top,Math.min(t.top,r.bottom-p))-e.top,h=Math.min(400,a?f:u);else{l=!0,h=Math.min(400,(o?e.right:r.right-e.left)-30);let y=r.bottom-e.bottom;y>=p||y>e.top?O=t.bottom-e.top:(c="bottom",O=e.bottom-t.top)}let m=(e.bottom-e.top)/s.offsetHeight,g=(e.right-e.left)/s.offsetWidth;return{style:`${c}: ${O/m}px; max-width: ${h/g}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function DP(i){let e=i.addToOptions.slice();return i.icons&&e.push({render(t){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),t.type&&n.classList.add(...t.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(t,n,r,s){let o=document.createElement("span");o.className="cm-completionLabel";let a=t.displayLabel||t.label,l=0;for(let c=0;c<s.length;){let O=s[c++],h=s[c++];O>l&&o.appendChild(document.createTextNode(a.slice(l,O)));let f=o.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(a.slice(O,h))),f.className="cm-completionMatchedText",l=h}return l<a.length&&o.appendChild(document.createTextNode(a.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let n=document.createElement("span");return n.className="cm-completionDetail",n.textContent=t.detail,n},position:80}),e.sort((t,n)=>t.position-n.position).map(t=>t.render)}function Vh(i,e,t){if(i<=t)return{from:0,to:i};if(e<0&&(e=0),e<=i>>1){let r=Math.floor(e/t);return{from:r*t,to:(r+1)*t}}let n=Math.floor((i-e)/t);return{from:i-(n+1)*t,to:i-n*t}}var Uh=class{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:l=>this.placeInfo(l),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:s,selected:o}=r.open,a=e.state.facet(Te);this.optionContent=DP(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=Vh(s.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{let{options:c}=e.state.field(t).open;for(let O=l.target,h;O&&O!=this.dom;O=O.parentNode)if(O.nodeName=="LI"&&(h=/-(\d+)$/.exec(O.id))&&+h[1]<c.length){this.applyCompletion(e,c[+h[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Te).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:ds.of(null)})}),this.showOptions(s,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let n=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=r){let{options:s,selected:o,disabled:a}=n.open;(!r.open||r.open.options!=s)&&(this.range=Vh(s.length,o,e.state.facet(Te).maxRenderedOptions),this.showOptions(s,n.id)),this.updateSel(),a!=((t=r.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of t.split(" "))n&&this.dom.classList.add(n);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Vh(t.options.length,t.selected,this.view.state.facet(Te).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:n}=t.options[t.selected],{info:r}=n;if(!r)return;let s=typeof r=="string"?document.createTextNode(r):r(n);if(!s)return;"then"in s?s.then(o=>{o&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(o,n)}).catch(o=>qe(this.view.state,o,"completion info")):this.addInfoPane(s,n)}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:r,destroy:s}=e;n.appendChild(r),this.infoDestroy=s||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,r=this.range.from;n;n=n.nextSibling,r++)n.nodeName!="LI"||!n.id?r--:r==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");return t&&LP(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return r.top>Math.min(s.bottom,t.bottom)-10||r.bottom<Math.max(s.top,t.top)+10?null:this.view.state.facet(Te).positionInfo(this.view,t,r,n,s,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,t,n){let r=document.createElement("ul");r.id=t,r.setAttribute("role","listbox"),r.setAttribute("aria-expanded","true"),r.setAttribute("aria-label",this.view.state.phrase("Completions")),r.addEventListener("mousedown",o=>{o.target==r&&o.preventDefault()});let s=null;for(let o=n.from;o<n.to;o++){let{completion:a,match:l}=e[o],{section:c}=a;if(c){let f=typeof c=="string"?c:c.name;if(f!=s&&(o>n.from||n.from==0))if(s=f,typeof c!="string"&&c.header)r.appendChild(c.header(c));else{let u=r.appendChild(document.createElement("completion-section"));u.textContent=f}}let O=r.appendChild(document.createElement("li"));O.id=t+"-"+o,O.setAttribute("role","option");let h=this.optionClass(a);h&&(O.className=h);for(let f of this.optionContent){let u=f(a,this.view.state,this.view,l);u&&O.appendChild(u)}}return n.from&&r.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&r.classList.add("cm-completionListIncompleteBottom"),r}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}};function BP(i,e){return t=>new Uh(t,i,e)}function LP(i,e){let t=i.getBoundingClientRect(),n=e.getBoundingClientRect(),r=t.height/i.offsetHeight;n.top<t.top?i.scrollTop-=(t.top-n.top)/r:n.bottom>t.bottom&&(i.scrollTop+=(n.bottom-t.bottom)/r)}function Qy(i){return(i.boost||0)*100+(i.apply?10:0)+(i.info?5:0)+(i.type?1:0)}function GP(i,e){let t=[],n=null,r=c=>{t.push(c);let{section:O}=c.completion;if(O){n||(n=[]);let h=typeof O=="string"?O:O.name;n.some(f=>f.name==h)||n.push(typeof O=="string"?{name:h}:O)}},s=e.facet(Te);for(let c of i)if(c.hasResult()){let O=c.result.getMatch;if(c.result.filter===!1)for(let h of c.result.options)r(new Ua(h,c.source,O?O(h):[],1e9-t.length));else{let h=e.sliceDoc(c.from,c.to),f,u=s.filterStrict?new Yh(h):new jh(h);for(let d of c.result.options)if(f=u.match(d.label)){let p=d.displayLabel?O?O(d,f.matched):[]:f.matched;r(new Ua(d,c.source,p,f.score+(d.boost||0)))}}}if(n){let c=Object.create(null),O=0,h=(f,u)=>{var d,p;return((d=f.rank)!==null&&d!==void 0?d:1e9)-((p=u.rank)!==null&&p!==void 0?p:1e9)||(f.name<u.name?-1:1)};for(let f of n.sort(h))O-=1e5,c[f.name]=O;for(let f of t){let{section:u}=f.completion;u&&(f.score+=c[typeof u=="string"?u:u.name])}}let o=[],a=null,l=s.compareCompletions;for(let c of t.sort((O,h)=>h.score-O.score||l(O.completion,h.completion))){let O=c.completion;!a||a.label!=O.label||a.detail!=O.detail||a.type!=null&&O.type!=null&&a.type!=O.type||a.apply!=O.apply||a.boost!=O.boost?o.push(c):Qy(c.completion)>Qy(a)&&(o[o.length-1]=c),a=c.completion}return o}var Mh=class i{constructor(e,t,n,r,s,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=r,this.selected=s,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new i(this.options,Sy(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,r,s,o){if(r&&!o&&e.some(c=>c.isPending))return r.setDisabled();let a=GP(e,t);if(!a.length)return r&&e.some(c=>c.isPending)?r.setDisabled():null;let l=t.facet(Te).selectOnOpen?0:-1;if(r&&r.selected!=l&&r.selected!=-1){let c=r.options[r.selected].completion;for(let O=0;O<a.length;O++)if(a[O].completion==c){l=O;break}}return new i(a,Sy(n,l),{pos:e.reduce((c,O)=>O.hasResult()?Math.min(c,O.from):c,1e8),create:JP,above:s.aboveCursor},r?r.timestamp:Date.now(),l,!1)}map(e){return new i(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new i(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},Eh=class i{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new i(HP,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Te),s=(n.override||t.languageDataAt("autocomplete",Ki(t)).map(MP)).map(l=>(this.active.find(O=>O.source==l)||new Kt(l,this.active.some(O=>O.state!=0)?1:0)).update(e,n));s.length==this.active.length&&s.every((l,c)=>l==this.active[c])&&(s=this.active);let o=this.open,a=e.effects.some(l=>l.is(Fh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!IP(s,this.active)||a?o=Mh.build(s,t,this.id,o,n,a):o&&o.disabled&&!s.some(l=>l.isPending)&&(o=null),!o&&s.every(l=>!l.isPending)&&s.some(l=>l.hasResult())&&(s=s.map(l=>l.hasResult()?new Kt(l.source,0):l));for(let l of e.effects)l.is(zy)&&(o=o&&o.setSelected(l.value,this.id));return s==this.active&&o==this.open?this:new i(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?NP:FP}};function IP(i,e){if(i==e)return!0;for(let t=0,n=0;;){for(;t<i.length&&!i[t].hasResult();)t++;for(;n<e.length&&!e[n].hasResult();)n++;let r=t==i.length,s=n==e.length;if(r||s)return r==s;if(i[t++].result!=e[n++].result)return!1}}var NP={"aria-autocomplete":"list"},FP={};function Sy(i,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":i};return e>-1&&(t["aria-activedescendant"]=i+"-"+e),t}var HP=[];function Ty(i,e){if(i.isUserEvent("input.complete")){let n=i.annotation(Nh);if(n&&e.activateOnCompletion(n))return 12}let t=i.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:i.isUserEvent("delete.backward")?2:i.selection?8:i.docChanged?16:0}var Kt=class i{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let n=Ty(e,t),r=this;(n&8||n&16&&this.touches(e))&&(r=new i(r.source,0)),n&4&&r.state==0&&(r=new i(this.source,1)),r=r.updateFor(e,n);for(let s of e.effects)if(s.is(Ma))r=new i(r.source,1,s.value);else if(s.is(ds))r=new i(r.source,0);else if(s.is(Fh))for(let o of s.value)o.source==r.source&&(r=o);return r}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Ki(e.state))}},Ea=class i extends Kt{constructor(e,t,n,r,s,o){super(e,3,t),this.limit=n,this.result=r,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,t){var n;if(!(t&3))return this.map(e.changes);let r=this.result;r.map&&!e.changes.empty&&(r=r.map(r,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=Ki(e.state);if(a>o||!r||t&2&&(Ki(e.startState)==this.from||a<this.limit))return new Kt(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return KP(r.validFor,e.state,s,o)?new i(this.source,this.explicit,l,r,s,o):r.update&&(r=r.update(r,s,o,new Ya(e.state,a,!1)))?new i(this.source,this.explicit,l,r,r.from,(n=r.to)!==null&&n!==void 0?n:Ki(e.state)):new Kt(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new i(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new Kt(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}};function KP(i,e,t,n){if(!i)return!1;let r=e.sliceDoc(t,n);return typeof i=="function"?i(r,t,n,e):ky(i,!0).test(r)}var Fh=Z.define({map(i,e){return i.map(t=>t.map(e))}}),zy=Z.define(),Ne=de.define({create(){return Eh.start()},update(i,e){return i.update(e)},provide:i=>[Jr.from(i,e=>e.tooltip),T.contentAttributes.from(i,e=>e.attrs)]});function Hh(i,e){let t=e.completion.apply||e.completion.label,n=i.state.field(Ne).active.find(r=>r.source==e.source);return n instanceof Ea?(typeof t=="string"?i.dispatch(Object.assign(Object.assign({},UP(i.state,t,n.from,n.to)),{annotations:Nh.of(e.completion)})):t(i,e.completion,n.from,n.to),!0):!1}var JP=BP(Ne,Hh);function ja(i,e="option"){return t=>{let n=t.state.field(Ne,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp<t.state.facet(Te).interactionDelay)return!1;let r=1,s;e=="page"&&(s=Uc(t,n.open.tooltip))&&(r=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:o}=n.open.options,a=n.open.selected>-1?n.open.selected+r*(i?1:-1):i?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),t.dispatch({effects:zy.of(a)}),!0}}var ek=i=>{let e=i.state.field(Ne,!1);return i.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<i.state.facet(Te).interactionDelay?!1:Hh(i,e.open.options[e.open.selected])},by=i=>i.state.field(Ne,!1)?(i.dispatch({effects:Ma.of(!0)}),!0):!1,tk=i=>{let e=i.state.field(Ne,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(i.dispatch({effects:ds.of(null)}),!0)},Dh=class{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}},ik=50,nk=1e3,rk=ge.fromClass(class{constructor(i){this.view=i,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of i.state.field(Ne).active)e.isPending&&this.startQuery(e)}update(i){let e=i.state.field(Ne),t=i.state.facet(Te);if(!i.selectionSet&&!i.docChanged&&i.startState.field(Ne)==e)return;let n=i.transactions.some(s=>{let o=Ty(s,t);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;s<this.running.length;s++){let o=this.running[s];if(n||o.context.abortOnDocChange&&i.docChanged||o.updates.length+i.transactions.length>ik&&Date.now()-o.time>nk){for(let a of o.context.abortListeners)try{a()}catch(l){qe(this.view.state,l)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...i.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),i.transactions.some(s=>s.effects.some(o=>o.is(Ma)))&&(this.pendingStart=!0);let r=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),r):-1,this.composing!=0)for(let s of i.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:i}=this.view,e=i.field(Ne);for(let t of e.active)t.isPending&&!this.running.some(n=>n.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Te).updateSyncTime))}startQuery(i){let{state:e}=this.view,t=Ki(e),n=new Ya(e,t,i.explicit,this.view),r=new Dh(i,n);this.running.push(r),Promise.resolve(i.source(n)).then(s=>{r.context.aborted||(r.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:ds.of(null)}),qe(this.view.state,s)})}scheduleAccept(){this.running.every(i=>i.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Te).updateSyncTime))}accept(){var i;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Te),n=this.view.state.field(Ne);for(let r=0;r<this.running.length;r++){let s=this.running[r];if(s.done===void 0)continue;if(this.running.splice(r--,1),s.done){let a=Ki(s.updates.length?s.updates[0].startState:this.view.state),l=Math.min(a,s.done.from+(s.active.explicit?0:1)),c=new Ea(s.active.source,s.active.explicit,l,s.done,s.done.from,(i=s.done.to)!==null&&i!==void 0?i:a);for(let O of s.updates)c=c.update(O,t);if(c.hasResult()){e.push(c);continue}}let o=n.active.find(a=>a.source==s.active.source);if(o&&o.isPending)if(s.done==null){let a=new Kt(s.active.source,0);for(let l of s.updates)a=a.update(l,t);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:Fh.of(e)})}},{eventHandlers:{blur(i){let e=this.view.state.field(Ne,!1);if(e&&e.tooltip&&this.view.state.facet(Te).closeOnBlur){let t=e.open&&Uc(this.view,e.open.tooltip);(!t||!t.dom.contains(i.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:ds.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ma.of(!1)}),20),this.composing=0}}}),sk=typeof navigator=="object"&&/Win/.test(navigator.platform),ok=Ot.highest(T.domEventHandlers({keydown(i,e){let t=e.state.field(Ne,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||i.key.length>1||i.ctrlKey&&!(sk&&i.altKey)||i.metaKey)return!1;let n=t.open.options[t.open.selected],r=t.active.find(o=>o.source==n.source),s=n.completion.commitCharacters||r.result.commitCharacters;return s&&s.indexOf(i.key)>-1&&Hh(e,n),!1}})),Xy=T.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Bh=class{constructor(e,t,n,r){this.field=e,this.line=t,this.from=n,this.to=r}},Lh=class i{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,ke.TrackDel),n=e.mapPos(this.to,1,ke.TrackDel);return t==null||n==null?null:new i(this.field,t,n)}},Gh=class i{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],r=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(n.length){let c=o,O=/^\t*/.exec(l)[0].length;for(let h=0;h<O;h++)c+=e.facet(jn);r.push(t+c.length-O),l=c+l.slice(O)}n.push(l),t+=l.length+1}let a=this.fieldPositions.map(l=>new Lh(l.field,r[l.line]+l.from,r[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let t=[],n=[],r=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(o);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",c=-1,O=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h<t.length;h++)(a!=null?t[h].seq==a:O&&t[h].name==O)&&(c=h);if(c<0){let h=0;for(;h<t.length&&(a==null||t[h].seq!=null&&t[h].seq<a);)h++;t.splice(h,0,{seq:a,name:O}),c=h;for(let f of r)f.field>=c&&f.field++}r.push(new Bh(c,n.length,s.index,s.index+O.length)),o=o.slice(0,s.index)+l+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let O of r)O.line==n.length&&O.from>c&&(O.from--,O.to--);return l}),n.push(o)}return new i(n,r)}},ak=q.widget({widget:new class extends Le{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),lk=q.mark({class:"cm-snippetField"}),Ln=class i{constructor(e,t){this.ranges=e,this.active=t,this.deco=q.set(e.map(n=>(n.from==n.to?ak:lk).range(n.from,n.to)))}map(e){let t=[];for(let n of this.ranges){let r=n.map(e);if(!r)return null;t.push(r)}return new i(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}},gs=Z.define({map(i,e){return i&&i.map(e)}}),Ok=Z.define(),ps=de.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(gs))return t.value;if(t.is(Ok)&&i)return new Ln(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>T.decorations.from(i,e=>e?e.deco:q.none)});function Kh(i,e){return P.create(i.filter(t=>t.field==e).map(t=>P.range(t.from,t.to)))}function ck(i){let e=Gh.parse(i);return(t,n,r,s)=>{let{text:o,ranges:a}=e.instantiate(t.state,r),{main:l}=t.state.selection,c={changes:{from:r,to:s==l.from?l.to:s,insert:M.of(o)},scrollIntoView:!0,annotations:n?[Nh.of(n),xe.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=Kh(a,0)),a.some(O=>O.field>0)){let O=new Ln(a,0),h=c.effects=[gs.of(O)];t.state.field(ps,!1)===void 0&&h.push(Z.appendConfig.of([ps,pk,mk,Xy]))}t.dispatch(t.state.update(c))}}function Ry(i){return({state:e,dispatch:t})=>{let n=e.field(ps,!1);if(!n||i<0&&n.active==0)return!1;let r=n.active+i,s=i>0&&!n.ranges.some(o=>o.field==r+i);return t(e.update({selection:Kh(n.ranges,r),effects:gs.of(s?null:new Ln(n.ranges,r)),scrollIntoView:!0})),!0}}var hk=({state:i,dispatch:e})=>i.field(ps,!1)?(e(i.update({effects:gs.of(null)})),!0):!1,fk=Ry(1),uk=Ry(-1);var dk=[{key:"Tab",run:fk,shift:uk},{key:"Escape",run:hk}],xy=X.define({combine(i){return i.length?i[0]:dk}}),pk=Ot.highest(_n.compute([xy],i=>i.facet(xy)));function Ue(i,e){return Object.assign(Object.assign({},e),{apply:ck(i)})}var mk=T.domEventHandlers({mousedown(i,e){let t=e.state.field(ps,!1),n;if(!t||(n=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let r=t.ranges.find(s=>s.from<=n&&s.to>=n);return!r||r.field==t.active?!1:(e.dispatch({selection:Kh(t.ranges,r.field),effects:gs.of(t.ranges.some(s=>s.field>r.field)?new Ln(t.ranges,r.field):null),scrollIntoView:!0}),!0)}});var ms={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Hi=Z.define({map(i,e){let t=e.mapPos(i,-1,ke.TrackAfter);return t??void 0}}),Jh=new class extends mt{};Jh.startSide=1;Jh.endSide=-1;var qy=de.define({create(){return F.empty},update(i,e){if(i=i.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);i=i.update({filter:n=>n>=t.from&&n<=t.to})}for(let t of e.effects)t.is(Hi)&&(i=i.update({add:[Jh.range(t.value,t.value+1)]}));return i}});function _y(){return[$k,qy]}var Ah="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function Cy(i){for(let e=0;e<Ah.length;e+=2)if(Ah.charCodeAt(e)==i)return Ah.charAt(e+1);return Xr(i<128?i:i+1)}function Wy(i,e){return i.languageDataAt("closeBrackets",e)[0]||ms}var gk=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),$k=T.inputHandler.of((i,e,t,n)=>{if((gk?i.composing:i.compositionStarted)||i.state.readOnly)return!1;let r=i.state.selection.main;if(n.length>2||n.length==2&&Ke(Xe(n,0))==1||e!=r.from||t!=r.to)return!1;let s=Qk(i.state,n);return s?(i.dispatch(s),!0):!1}),yk=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let n=Wy(i,i.selection.main.head).brackets||ms.brackets,r=null,s=i.changeByRange(o=>{if(o.empty){let a=Sk(i.doc,o.head);for(let l of n)if(l==a&&Da(i.doc,o.head)==Cy(Xe(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:P.cursor(o.head-l.length)}}return{range:r=o}});return r||e(i.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},Zy=[{key:"Backspace",run:yk}];function Qk(i,e){let t=Wy(i,i.selection.main.head),n=t.brackets||ms.brackets;for(let r of n){let s=Cy(Xe(r,0));if(e==r)return s==r?vk(i,r,n.indexOf(r+r+r)>-1,t):bk(i,r,s,t.before||ms.before);if(e==s&&Vy(i,i.selection.main.from))return xk(i,r,s)}return null}function Vy(i,e){let t=!1;return i.field(qy).between(0,i.doc.length,n=>{n==e&&(t=!0)}),t}function Da(i,e){let t=i.sliceString(e,e+2);return t.slice(0,Ke(Xe(t,0)))}function Sk(i,e){let t=i.sliceString(e-2,e);return Ke(Xe(t,0))==t.length?t:t.slice(1)}function bk(i,e,t,n){let r=null,s=i.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Hi.of(o.to+e.length),range:P.range(o.anchor+e.length,o.head+e.length)};let a=Da(i.doc,o.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Hi.of(o.head+e.length),range:P.cursor(o.head+e.length)}:{range:r=o}});return r?null:i.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function xk(i,e,t){let n=null,r=i.changeByRange(s=>s.empty&&Da(i.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:P.cursor(s.head+t.length)}:n={range:s});return n?null:i.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function vk(i,e,t,n){let r=n.stringPrefixes||ms.stringPrefixes,s=null,o=i.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Hi.of(a.to+e.length),range:P.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=Da(i.doc,l),O;if(c==e){if(vy(i,l))return{changes:{insert:e+e,from:l},effects:Hi.of(l+e.length),range:P.cursor(l+e.length)};if(Vy(i,l)){let f=t&&i.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:P.cursor(l+f.length)}}}else{if(t&&i.sliceDoc(l-2*e.length,l)==e+e&&(O=wy(i,l-2*e.length,r))>-1&&vy(i,O))return{changes:{insert:e+e+e+e,from:l},effects:Hi.of(l+e.length),range:P.cursor(l+e.length)};if(i.charCategorizer(l)(c)!=ie.Word&&wy(i,l,r)>-1&&!wk(i,l,e,r))return{changes:{insert:e+e,from:l},effects:Hi.of(l+e.length),range:P.cursor(l+e.length)}}return{range:s=a}});return s?null:i.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function vy(i,e){let t=ae(i).resolveInner(e+1);return t.parent&&t.from==e}function wk(i,e,t,n){let r=ae(i).resolveInner(e,-1),s=n.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=i.sliceDoc(r.from,Math.min(r.to,r.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&n.indexOf(a.slice(0,l))>-1){let O=r.firstChild;for(;O&&O.from==r.from&&O.to-O.from>t.length+l;){if(i.sliceDoc(O.to-t.length,O.to)==t)return!1;O=O.firstChild}return!0}let c=r.to==e&&r.parent;if(!c)break;r=c}return!1}function wy(i,e,t){let n=i.charCategorizer(e);if(n(i.sliceDoc(e-1,e))!=ie.Word)return e;for(let r of t){let s=e-r.length;if(i.sliceDoc(s,e)==r&&n(i.sliceDoc(s-1,s))!=ie.Word)return s}return-1}function Ay(i={}){return[ok,Ne,Te.of(i),rk,Pk,Xy]}var ef=[{key:"Ctrl-Space",run:by},{mac:"Alt-`",run:by},{key:"Escape",run:tk},{key:"ArrowDown",run:ja(!0)},{key:"ArrowUp",run:ja(!1)},{key:"PageDown",run:ja(!0,"page")},{key:"PageUp",run:ja(!1,"page")},{key:"Enter",run:ek}],Pk=Ot.highest(_n.computeN([Te],i=>i.facet(Te).defaultKeymap?[ef]:[]));var La=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},Ji=class i{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let r=n.facet($s).markerFilter;r&&(e=r(e,n));let s=e.slice().sort((O,h)=>O.from-h.from||O.to-h.to),o=new He,a=[],l=0;for(let O=0;;){let h=O==s.length?null:s[O];if(!h&&!a.length)break;let f,u;for(a.length?(f=l,u=a.reduce((p,m)=>Math.min(p,m.to),h&&h.from>f?h.from:1e8)):(f=h.from,u=h.to,a.push(h),O++);O<s.length;){let p=s[O];if(p.from==f&&(p.to>p.from||p.to==f))a.push(p),O++,u=Math.min(p.to,u);else{u=Math.min(p.from,u);break}}let d=Vk(a);if(a.some(p=>p.from==p.to||p.from==p.to-1&&n.doc.lineAt(p.from).to==p.from))o.add(f,f,q.widget({widget:new tf(d),diagnostics:a.slice()}));else{let p=a.reduce((m,g)=>g.markClass?m+" "+g.markClass:m,"");o.add(f,u,q.mark({class:"cm-lintRange cm-lintRange-"+d+p,diagnostics:a.slice(),inclusiveEnd:a.some(m=>m.to>u)}))}l=u;for(let p=0;p<a.length;p++)a[p].to<=l&&a.splice(p--,1)}let c=o.finish();return new i(c,t,Gn(c))}};function Gn(i,e=null,t=0){let n=null;return i.between(t,1e9,(r,s,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!n)n=new La(r,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(n.diagnostic)<0)return!1;n=new La(n.from,s,n.diagnostic)}}),n}function kk(i,e){let t=e.pos,n=e.end||t,r=i.state.facet($s).hideOn(i,t,n);if(r!=null)return r;let s=i.startState.doc.lineAt(e.pos);return!!(i.effects.some(o=>o.is(Yy))||i.changes.touchesRange(s.from,Math.max(s.to,n)))}function Tk(i,e){return i.field(nt,!1)?e:e.concat(Z.appendConfig.of(Ak))}var Yy=Z.define(),nf=Z.define(),Uy=Z.define(),nt=de.define({create(){return new Ji(q.none,null,null)},update(i,e){if(e.docChanged&&i.diagnostics.size){let t=i.diagnostics.map(e.changes),n=null,r=i.panel;if(i.selected){let s=e.changes.mapPos(i.selected.from,1);n=Gn(t,i.selected.diagnostic,s)||Gn(t,null,s)}!t.size&&r&&e.state.facet($s).autoPanel&&(r=null),i=new Ji(t,r,n)}for(let t of e.effects)if(t.is(Yy)){let n=e.state.facet($s).autoPanel?t.value.length?ys.open:null:i.panel;i=Ji.init(t.value,n,e.state)}else t.is(nf)?i=new Ji(i.diagnostics,t.value?ys.open:null,i.selected):t.is(Uy)&&(i=new Ji(i.diagnostics,i.panel,t.value));return i},provide:i=>[Ei.from(i,e=>e.panel),T.decorations.from(i,e=>e.diagnostics)]});var zk=q.mark({class:"cm-lintRange cm-lintRange-active"});function Xk(i,e,t){let{diagnostics:n}=i.state.field(nt),r,s=-1,o=-1;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:O})=>{if(e>=l&&e<=c&&(l==c||(e>l||t>0)&&(e<c||t<0)))return r=O.diagnostics,s=l,o=c,!1});let a=i.state.facet($s).tooltipFilter;return r&&a&&(r=a(r,i.state)),r?{pos:s,end:o,above:i.state.doc.lineAt(s).to<o,create(){return{dom:Rk(i,r)}}}:null}function Rk(i,e){return I("ul",{class:"cm-tooltip-lint"},e.map(t=>Dy(i,t,!1)))}var qk=i=>{let e=i.state.field(nt,!1);(!e||!e.panel)&&i.dispatch({effects:Tk(i.state,[nf.of(!0)])});let t=Di(i,ys.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},jy=i=>{let e=i.state.field(nt,!1);return!e||!e.panel?!1:(i.dispatch({effects:nf.of(!1)}),!0)},_k=i=>{let e=i.state.field(nt,!1);if(!e)return!1;let t=i.state.selection.main,n=e.diagnostics.iter(t.to+1);return!n.value&&(n=e.diagnostics.iter(0),!n.value||n.from==t.from&&n.to==t.to)?!1:(i.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)};var My=[{key:"Mod-Shift-m",run:qk,preventDefault:!0},{key:"F8",run:_k}];var $s=X.define({combine(i){return Object.assign({sources:i.map(e=>e.source).filter(e=>e!=null)},Ze(i.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t}))}});function Ey(i){let e=[];if(i)e:for(let{name:t}of i){for(let n=0;n<t.length;n++){let r=t[n];if(/[a-zA-Z]/.test(r)&&!e.some(s=>s.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}function Dy(i,e,t){var n;let r=t?Ey(e.actions):[];return I("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},I("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(i):e.message),(n=e.actions)===null||n===void 0?void 0:n.map((s,o)=>{let a=!1,l=f=>{if(f.preventDefault(),a)return;a=!0;let u=Gn(i.state.field(nt).diagnostics,e);u&&s.apply(i,u.from,u.to)},{name:c}=s,O=r[o]?c.indexOf(r[o]):-1,h=O<0?c:[c.slice(0,O),I("u",c.slice(O,O+1)),c.slice(O+1)];return I("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${c}${O<0?"":` (access key "${r[o]})"`}.`},h)}),e.source&&I("div",{class:"cm-diagnosticSource"},e.source))}var tf=class extends Le{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return I("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},Ga=class{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Dy(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},ys=class i{constructor(e){this.view=e,this.items=[];let t=r=>{if(r.keyCode==27)jy(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=Ey(s.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==r.keyCode){let l=Gn(this.view.state.field(nt).diagnostics,s);l&&s.actions[a].apply(e,l.from,l.to)}}else return;r.preventDefault()},n=r=>{for(let s=0;s<this.items.length;s++)this.items[s].dom.contains(r.target)&&this.moveSelection(s)};this.list=I("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:n}),this.dom=I("div",{class:"cm-panel-lint"},this.list,I("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>jy(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(nt).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(nt),n=0,r=!1,s=null,o=new Set;for(e.between(0,this.view.state.doc.length,(a,l,{spec:c})=>{for(let O of c.diagnostics){if(o.has(O))continue;o.add(O);let h=-1,f;for(let u=n;u<this.items.length;u++)if(this.items[u].diagnostic==O){h=u;break}h<0?(f=new Ga(this.view,O),this.items.splice(n,0,f),r=!0):(f=this.items[h],h>n&&(this.items.splice(n,h-n),r=!0)),t&&f.diagnostic==t.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),s=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new Ga(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),r=!0),s?(this.list.setAttribute("aria-activedescendant",s.id),this.view.requestMeasure({key:this,read:()=>({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let c=l.height/this.list.offsetHeight;a.top<l.top?this.list.scrollTop-=(l.top-a.top)/c:a.bottom>l.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(nt),n=Gn(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:Uy.of(n)})}static open(e){return new i(e)}};function Ck(i,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(i)}</svg>')`}function Ba(i){return Ck(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${i}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}var Wk=T.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Ba("#d11")},".cm-lintRange-warning":{backgroundImage:Ba("orange")},".cm-lintRange-info":{backgroundImage:Ba("#999")},".cm-lintRange-hint":{backgroundImage:Ba("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function Zk(i){return i=="error"?4:i=="warning"?3:i=="info"?2:1}function Vk(i){let e="hint",t=1;for(let n of i){let r=Zk(n.severity);r>t&&(t=r,e=n.severity)}return e}var Ak=[nt,T.decorations.compute([nt],i=>{let{selected:e,panel:t}=i.field(nt);return!e||!t||e.from==e.to?q.none:q.set([zk.range(e.from,e.to)])}),kg(Xk,{hideOn:kk}),Wk];var By=[Xg(),Rg(),xg(),z$(),c$(),yg(),bg(),ee.allowMultipleSelections.of(!0),i$(),f$(u$,{fallback:!0}),g$(),_y(),Ay(),wg(),Pg(),vg(),hy(),_n.of([...Zy,...ry,...my,..._$,...a$,...ef,...My])];var of=class i{constructor(e,t,n,r,s,o,a,l,c,O=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=O,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new i(e,[],t,n,n,0,[],0,r?new Ia(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,o=this.reducePos<this.pos-25;o&&this.setLookAhead(this.pos);let a=s.dynamicPrecedence(r);if(a&&(this.score+=a),n==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r<s.minRepeatTerm&&this.storeNode(r,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(r,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),c=l?this.stack[l-2]:this.p.ranges[0].from,O=this.reducePos-c;O>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=O):this.p.lastBigReductionSize<O&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=c,this.p.lastBigReductionSize=O));let h=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-h;if(r<s.minRepeatTerm||e&131072){let u=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,c,u,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let u=this.stack[l-3];this.state=s.getGoto(u,r,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(r,c)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0){let a=!1;for(let l=o;l>0&&this.buffer[l-2]>n;l-=4)if(this.buffer[l-1]>=0){a=!0;break}if(a)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,r>4&&(r-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4);else{let s=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,n),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,r,4)}}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new i(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new af(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&r.push(t[s],o);if(this.stack.length<120)for(let s=0;r.length<8&&s<t.length;s+=2){let o=t[s+1];r.some((a,l)=>l&1&&a==o)||r.push(t[s],o)}t=r}let n=[];for(let r=0;r<t.length&&n.length<4;r+=2){let s=t[r+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[r],this.pos),o.reducePos=this.pos,o.score-=200,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,r=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,s+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ia(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ia=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},af=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},lf=class i{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new i(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new i(this.stack,this.pos,this.index)}};function Qs(i,e=Uint16Array){if(typeof i!="string")return i;let t=null;for(let n=0,r=0;n<i.length;){let s=0;for(;;){let o=i.charCodeAt(n++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var In=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Ly=new In,Of=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Ly,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!r)return null;let o=this.ranges[--r];s-=n.from-o.to,n=o}for(;t<0?s>n.to:s>=n.to;){if(r==this.ranges.length-1)return null;let o=this.ranges[++r];s+=o.from-n.to,n=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Ly,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},vi=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Hy(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};vi.prototype.contextual=vi.prototype.fallback=vi.prototype.extend=!1;var wi=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Qs(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(Hy(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,o==null)break;e.reset(o,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};wi.prototype.contextual=vi.prototype.fallback=vi.prototype.extend=!1;var $e=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function Hy(i,e,t,n,r,s){let o=0,a=1<<n,{dialect:l}=t.p.parser;e:for(;a&i[o];){let c=i[o+1];for(let u=o+3;u<c;u+=2)if((i[u+1]&a)>0){let d=i[u];if(l.allows(d)&&(e.token.value==-1||e.token.value==d||Yk(d,e.token.value,r,s))){e.acceptToken(d);break}}let O=e.next,h=0,f=i[o+2];if(e.next<0&&f>h&&i[c+f*3-3]==65535){o=i[c+f*3-1];continue e}for(;h<f;){let u=h+f>>1,d=c+u+(u<<1),p=i[d],m=i[d+1]||65536;if(O<p)f=u;else if(O>=m)h=u+1;else{o=i[d+2],e.advance();continue e}}break}}function Gy(i,e,t){for(let n=e,r;(r=i[n])!=65535;n++)if(r==t)return n-e;return-1}function Yk(i,e,t,n){let r=Gy(t,n,e);return r<0||Gy(t,n,i)<r}var rt=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),rf=null;function Iy(i,e,t){let n=i.cursor(H.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(i.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:i.length}}var cf=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Iy(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Iy(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[r],o=this.start[t]+n.positions[r];if(o>e)return this.nextStart=o,null;if(s instanceof pe){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(j.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},hf=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new In)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,o=r.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<s.length;c++){if(!(1<<c&o))continue;let O=s[c],h=this.tokens[c];if(!(n&&!O.fallback)&&((O.contextual||h.start!=e.pos||h.mask!=o||h.context!=a)&&(this.updateCachedToken(h,O,e),h.mask=o,h.context=a),h.lookAhead>h.end+25&&(l=Math.max(h.lookAhead,l)),h.value!=0)){let f=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!O.extend&&(n=h,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new In,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new In,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),n);if(a>=0&&n.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;s<r;s+=3)if(this.actions[s]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let c=o.stateSlot(s,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=Jt(a,c+2);else{r==0&&a[c+1]==2&&(r=this.putAction(Jt(a,c+2),t,n,r));break}a[c]==t&&(r=this.putAction(Jt(a,c+1),t,n,r))}return r}},ff=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Of(t,r),this.tokens=new hf(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[of.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new cf(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)n.push(a);else{if(this.advanceStack(a,n,e))continue;{r||(r=[],s=[]),r.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!n.length){let o=r&&Uk(r);if(o)return rt&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw rt&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let o=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(o)return rt&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,l)=>l.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let l=o+1;l<n.length;l++){let c=n[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(o--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:s}=this,o=rt?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,O=c?e.curContext.hash:0;for(let h=this.fragments.nodeAt(r);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?s.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!c||(h.prop(j.contextHash)||0)==O))return e.useNode(h,f),rt&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(h.type.id)})`),!0;if(!(h instanceof pe)||h.children.length==0||h.positions[0]>0)break;let u=h.children[0];if(u instanceof pe&&h.positions[0]==0)h=u;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),rt&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let O=l[c++],h=l[c++],f=l[c++],u=c==l.length||!n,d=u?e:e.split(),p=this.tokens.mainToken;if(d.apply(O,h,p?p.start:d.pos,f),rt&&console.log(o+this.stackID(d)+` (via ${O&65536?`reduce of ${s.getName(O&65535)}`:"shift"} for ${s.getName(h)} @ ${r}${d==e?"":", split"})`),u)return!0;d.pos>r?t.push(d):n.push(d)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return Ny(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],c=t[(o<<1)+1],O=rt?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),rt&&console.log(O+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let h=a.split(),f=O;for(let u=0;h.forceReduce()&&u<10&&(rt&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));u++)rt&&(f=this.stackID(h)+" -> ");for(let u of a.recoverByInsert(l))rt&&console.log(O+this.stackID(u)+" (via recover-insert)"),this.advanceFully(u,n);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),rt&&console.log(O+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Ny(a,n)):(!r||r.score<a.score)&&(r=a)}return r}stackToTree(e){return e.close(),pe.build({buffer:lf.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(rf||(rf=new WeakMap)).get(e);return t||rf.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Ny(i,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==i.pos&&n.sameState(i)){e[t].score<i.score&&(e[t]=i);return}}e.push(i)}var uf=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}},sf=i=>i,Nn=class{constructor(e){this.start=e.start,this.shift=e.shift||sf,this.reduce=e.reduce||sf,this.reuse=e.reuse||sf,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},At=class i extends Zn{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),r=[];for(let a=0;a<t.length;a++)r.push([]);function s(a,l,c){r[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=j[l]);for(let c=1;c<a.length;){let O=a[c++];if(O>=0)s(O,l,a[c++]);else{let h=a[c+-O];for(let f=-O;f>0;f--)s(a[c++],l,h);c++}}}this.nodeSet=new es(t.map((a,l)=>_e.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:r[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Qs(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(Fy),this.states=Qs(e.states,Uint32Array),this.data=Qs(e.stateData),this.goto=Qs(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new vi(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new ff(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let o=r[s++],a=o&1,l=r[s++];if(a&&n)return l;for(let c=s+(o>>1);s<c;s++)if(r[s]==e)return l;if(a)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let s=this.stateSlot(e,r?2:1),o;;s+=3){if((o=n[s])==65535)if(n[s+1]==1)o=n[s=Jt(n,s+2)];else{if(n[s+1]==2)return Jt(n,s+2);break}if(o==t||o==0)return Jt(n,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Jt(this.data,s+2);else break;r=t(Jt(this.data,s+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Jt(this.data,n+2);else break;if(!(this.data[n+2]&1)){let r=this.data[n+1];t.some((s,o)=>o&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(i.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(a=>a.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=Fy(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let r=null;for(let s=0;s<t.length;s++)if(!n[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[a]=1;return new uf(e,n,r)}static deserialize(e){return new i(e)}};function Jt(i,e){return i[e]|i[e+1]<<16}function Uk(i){let e=null;for(let t of i){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Fy(i){if(i.external){let e=i.extend?1:0;return(t,n)=>i.external(t,n)<<1|e}return i.get}var Mk=1,Ek=2,Dk=263,Bk=3,Lk=264,Ky=265,Gk=266,Ik=4,Nk=5,Fk=6,Hk=7,Jy=8,Kk=9,Jk=10,e2=11,t2=12,i2=13,n2=14,r2=15,s2=16,o2=17,a2=18,l2=19,O2=20,c2=21,h2=22,f2=23,u2=24,d2=25,p2=26,m2=27,g2=28,$2=29,y2=30,Q2=31,S2=32,b2=33,x2=34,v2=35,w2=36,P2=37,k2=38,T2=39,z2=40,X2=41,R2=42,q2=43,_2=44,C2=45,W2=46,Z2=47,V2=48,A2=49,j2=50,Y2=51,U2=52,M2=53,E2=54,D2=55,B2=56,L2=57,G2=58,I2=59,N2=60,F2=61,df=62,H2=63,K2=64,J2=65,eT={abstract:Ik,and:Nk,array:Fk,as:Hk,true:Jy,false:Jy,break:Kk,case:Jk,catch:e2,clone:t2,const:i2,continue:n2,declare:s2,default:r2,do:o2,echo:a2,else:l2,elseif:O2,enddeclare:c2,endfor:h2,endforeach:f2,endif:u2,endswitch:d2,endwhile:p2,enum:m2,extends:g2,final:$2,finally:y2,fn:Q2,for:S2,foreach:b2,from:x2,function:v2,global:w2,goto:P2,if:k2,implements:T2,include:z2,include_once:X2,instanceof:R2,insteadof:q2,interface:_2,list:C2,match:W2,namespace:Z2,new:V2,null:A2,or:j2,print:Y2,require:U2,require_once:M2,return:E2,switch:D2,throw:B2,trait:L2,try:G2,unset:I2,use:N2,var:F2,public:df,private:df,protected:df,while:H2,xor:K2,yield:J2,__proto__:null};function eQ(i){let e=eT[i.toLowerCase()];return e??-1}function tQ(i){return i==9||i==10||i==13||i==32}function iQ(i){return i>=97&&i<=122||i>=65&&i<=90}function Ss(i){return i==95||i>=128||iQ(i)}function pf(i){return i>=48&&i<=55||i>=97&&i<=102||i>=65&&i<=70}var tT={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},iT=new $e(i=>{if(i.next==40){i.advance();let e=0;for(;tQ(i.peek(e));)e++;let t="",n;for(;iQ(n=i.peek(e));)t+=String.fromCharCode(n),e++;for(;tQ(i.peek(e));)e++;i.peek(e)==41&&tT[t.toLowerCase()]&&i.acceptToken(Mk)}else if(i.next==60&&i.peek(1)==60&&i.peek(2)==60){for(let n=0;n<3;n++)i.advance();for(;i.next==32||i.next==9;)i.advance();let e=i.next==39;if(e&&i.advance(),!Ss(i.next))return;let t=String.fromCharCode(i.next);for(;i.advance(),!(!Ss(i.next)&&!(i.next>=48&&i.next<=55));)t+=String.fromCharCode(i.next);if(e){if(i.next!=39)return;i.advance()}if(i.next!=10&&i.next!=13)return;for(;;){let n=i.next==10||i.next==13;if(i.advance(),i.next<0)return;if(n){for(;i.next==32||i.next==9;)i.advance();let r=!0;for(let s=0;s<t.length;s++){if(i.next!=t.charCodeAt(s)){r=!1;break}i.advance()}if(r)return i.acceptToken(Ek)}}}}),nT=new $e(i=>{i.next<0&&i.acceptToken(Gk)}),rT=new $e((i,e)=>{i.next==63&&e.canShift(Ky)&&i.peek(1)==62&&i.acceptToken(Ky)});function sT(i){let e=i.peek(1);if(e==110||e==114||e==116||e==118||e==101||e==102||e==92||e==36||e==34||e==123)return 2;if(e>=48&&e<=55){let t=2,n;for(;t<5&&(n=i.peek(t))>=48&&n<=55;)t++;return t}if(e==120&&pf(i.peek(2)))return pf(i.peek(3))?4:3;if(e==117&&i.peek(2)==123)for(let t=3;;t++){let n=i.peek(t);if(n==125)return t==2?0:t+1;if(!pf(n))break}return 0}var oT=new $e((i,e)=>{let t=!1;for(;!(i.next==34||i.next<0||i.next==36&&(Ss(i.peek(1))||i.peek(1)==123)||i.next==123&&i.peek(1)==36);t=!0){if(i.next==92){let n=sT(i);if(n){if(t)break;return i.acceptToken(Bk,n)}}else if(!t&&(i.next==91||i.next==45&&i.peek(1)==62&&Ss(i.peek(2))||i.next==63&&i.peek(1)==45&&i.peek(2)==62&&Ss(i.peek(3)))&&e.canShift(Lk))break;i.advance()}t&&i.acceptToken(Dk)}),aT=_t({"Visibility abstract final static":$.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":$.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":$.controlKeyword,"and or xor yield unset clone instanceof insteadof":$.operatorKeyword,"function fn class trait implements extends const enum global interface use var":$.definitionKeyword,"include include_once require require_once namespace":$.moduleKeyword,"new from echo print array list as":$.keyword,null:$.null,Boolean:$.bool,VariableName:$.variableName,"NamespaceName/...":$.namespace,"NamedType/...":$.typeName,Name:$.name,"CallExpression/Name":$.function($.variableName),"LabelStatement/Name":$.labelName,"MemberExpression/Name":$.propertyName,"MemberExpression/VariableName":$.special($.propertyName),"ScopedExpression/ClassMemberName/Name":$.propertyName,"ScopedExpression/ClassMemberName/VariableName":$.special($.propertyName),"CallExpression/MemberExpression/Name":$.function($.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":$.function($.propertyName),"MethodDeclaration/Name":$.function($.definition($.variableName)),"FunctionDefinition/Name":$.function($.definition($.variableName)),"ClassDeclaration/Name":$.definition($.className),UpdateOp:$.updateOperator,ArithOp:$.arithmeticOperator,LogicOp:$.logicOperator,BitOp:$.bitwiseOperator,CompareOp:$.compareOperator,ControlOp:$.controlOperator,AssignOp:$.definitionOperator,"$ ConcatOp":$.operator,LineComment:$.lineComment,BlockComment:$.blockComment,Integer:$.integer,Float:$.float,String:$.string,ShellExpression:$.special($.string),"=> ->":$.punctuation,"( )":$.paren,"#[ [ ]":$.squareBracket,"${ { }":$.brace,"-> ?->":$.derefOperator,", ; :: : \\":$.separator,"PhpOpen PhpClose":$.processingInstruction}),lT={__proto__:null,static:311,STATIC:311,class:333,CLASS:333},nQ=At.deserialize({version:14,states:"$FvQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{O<YQ`O'#G|O<_Q`O'#G}O<dQ`O'#G}O9oQ`O'#HOO<iQ`O'#HQO<nQ`O'#HRO<sQ`O'#HSO<xQ`O'#HVO=TQ`O'#HWO9yQaO'#H[OOQ#u'#IV'#IVOOQ#u'#Ha'#HaQhQaOOO=fQ`O'#HPO7pQ`O'#HPO=kO#|O'#DrPOOO)CCw)CCwOOO#t-E;]-E;]OOO#u,5:c,5:cOOO#u'#H`'#H`O&XO$VOOO=vQ$VO'#IUOOOO'#IU'#IUQOOOOOOOQ#y,5:h,5:hO=}QaO,5:hOOQ#u,5:j,5:jO@eQaO,5:mO@lQaO,5;UO*kQaO,5;UO@sQ`O,5;VOCbQaO'#EsOOQS,5;^,5;^OCiQ`O,5;jOOQP'#F]'#F]O*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qOOQ#u'#Im'#ImOOQS,5<q,5<qOOQ#u,5:l,5:lOEbQ`O,5:rOEiQdO'#E}OF]Q`O'#FlOFeQ`O'#FlOFmQ`O,5:oOFrQaO'#E_OOQS,5:x,5:xOHyQ`O'#I]O9yQaO'#EaO9yQaO'#I]OOQS'#I]'#I]OIQQ`O'#I[OIYQ`O,5:xO-UQaO,5:xOI_QaO'#EgOOQS,5;Q,5;QOOQS,5;Z,5;ZOIiQ`O,5;ZOOQO,5>S,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5<POMwQdO,5<QONXQdO,5<RONiQdO,5<SO!!sQdO,5<SO!!zQdO,5<VO!#[Q`O'#FrO!#gQ`O'#IgO!#oQ`O,5<]OOQO-E;g-E;gO!#tQ`O'#IoO<_Q`O,5=iO!#|Q`O,5=iO9oQ`O,5=jO!$RQ`O,5=nO!$WQ`O,5=kO!$]Q`O,5=kO!$bQ`O'#FnO!$xQ`O,5<WO!%TQ`O,5<WO!%WQ`O,5?ZO!%]Q`O,5<WO!%eQ`O,5<bO!%mQdO'#GPO!%{QdO'#InO!&WQdO,5=wO!&`Q`O,5<bO!%WQ`O,5<bO!&hQdO,5<cO!&xQ`O,5<cO!'lQdO,5<qO!)nQdO,5<tO!*OOrO'#HsOOOQ'#It'#ItO*kQaO'#GbOOOQ'#Hs'#HsO!*pOrO,5<wOOQS,5<w,5<wO!*wQaO,5=OO!+OQ`O,5=QO!+WQeO,5=VO!+bQ`O,5=XO!+gQaO'#GoO!+WQeO,5=YO9yQaO'#GrO!+WQeO,5=]O!&WQdO,5=`O(tQdO,5=aOOQ#u,5=a,5=aO(tQdO,5=bOOQ#u,5=b,5=bO(tQdO,5=cOOQ#u,5=c,5=cO!+nQ`O,5=dO!+vQ`O,5=fO!+{QdO'#IvOOQS'#Iv'#IvO!&WQdO,5=gO>UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!<PQdO1G1]O!=lQdO1G1]O!?XQdO1G1]O!@tQdO1G1]O!BaQdO1G1]O!C|QdO1G1]O!EiQdO1G1]O!GUQdO1G1]O!HqQdO1G1]O!J^QdO1G1]O!KyQdO1G1]O!MfQdO1G1]O# RQdO1G1]O#!nQdO1G1]OOQT1G0^1G0^O!%WQ`O,5<WO#$ZQaO'#EXOOQS1G0Z1G0ZO#$bQ`O,5:yOFuQaO,5:yO#$gQaO,5:}O#$nQdO,5:{O#&jQdO,5>wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5<YOOQS1G1r1G1rO0aQ`O1G1rO#6yQ`O1G1rO#7OQ`O1G1rO!%WQ`O1G4uO#7ZQdO1G4uO!%WQ`O1G1rO#7iQ`O1G1|O!%WQ`O1G1|O9yQaO,5<kO#7qQdO'#HqO#8PQdO,5?YOOQ#u1G3c1G3cO*kQaO1G1|O0aQ`O1G1|O#8[QdO1G1}O7RQ`O'#FyO7RQ`O'#FzO#:nQ`O'#F{OOQS1G1}1G1}O!-xQ`O1G1}O!1UQ`O1G1}O!1RQ`O1G1}O#;eO`O,5<xO#;jO`O,5<xO#;uO!bO,5<yO#<TQ`O,5<|OOOQ-E;q-E;qOOQS1G2c1G2cO#<[QaO'#GeO#<uQ$VO1G2jO#AuQ`O1G2jO#BQQ`O'#GgO#B]Q`O'#GjOOQ#u1G2l1G2lO#BhQ`O1G2lOOQ#u'#Gl'#GlOOQ#u'#Iu'#IuOOQ#u1G2q1G2qO#BmQ`O1G2qO,zQ`O1G2sO#BrQaO,5=ZO#ByQ`O,5=ZOOQ#u1G2t1G2tO#COQ`O1G2tO#CTQ`O,5=^OOQ#u1G2w1G2wO#DgQ`O1G2wOOQ#u1G2z1G2zOOQ#u1G2{1G2{OOQ#u1G2|1G2|OOQ#u1G2}1G2}O#DlQ`O'#HxO9oQ`O'#HxO#DqQ$VO1G3OO#IwQ`O1G3QO9yQaO'#HwO#I|QdO,5=[OOQ#u1G3R1G3RO#JXQ`O1G3SO9yQaO,5<iO#J^QdO'#HpO#JlQdO,5?WOOQ#u1G3T1G3TOOQ#u1G3W1G3WO!-xQ`O1G3WOOQ#u1G3X1G3XO#JwQ`O'#HTOOQ#u1G3Y1G3YO#KqQ`O1G3YO0aQ`O1G3YOOQ#u1G3]1G3]O!&WQdO1G3^O#KvQ`O1G3^O#LOQdO'#HzO#LaQdO,5?cO#LlQ`O,5?cO#LqQ`O'#HYO7RQ`O'#HYO#L|Q`O'#IxO#MUQ`O,5=sOOQ#u1G3^1G3^O!.eQ`O1G3^O!.eQ`O1G3^O#MZQeO'#HbO#MkQdO,5>tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MyQdO7+%sOOQS7+&[7+&[O$ fQ`O,5>yO>UQaO,5;`O$ mQ`O,5;aO$#SQaO'#HfO$#^Q`O,5>zOOQS1G0y1G0yO$#fQ`O'#EYO$#kQ`O'#IXO$#sQ`O,5:sOOQS1G0e1G0eO$#xQ`O1G0eO$#}Q`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%dQaO'#HeO$%nQ`O,5>xOOQS1G0m1G0mO$%vQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%{QdO7+&hO$'}QtO1G1RO$([QdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KqQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)wQ`O,5<ZO$*SQ`O,5<ZO$*[Q`O,5<_O$*aQpO,5<ZO>UQaO,5<ZOOQO,5<_,5<_O$*oQpO,5<`O$*wQ`O,5<`O$+SQ`O'#HkO$+mQ`O,5?POOQS1G1t1G1tO$+uQpO7+'^O$+}Q`O'#FuO$,YQ`O7+'^OOQS7+'^7+'^O0aQ`O7+'^O#6yQ`O7+'^O$,bQdO7+*aO0aQ`O7+*aO$,pQ`O7+'^O*kQaO7+'hO0aQ`O7+'hO$,{Q`O7+'hO$-TQdO1G2VOOQS,5>],5>]OOQS-E;o-E;oO$.mQdO7+'hO$.}QpO7+'hO$/VQdO'#IiOOQO,5<e,5<eOOQO,5<f,5<fO$/hQpO'#GOO$/pQ`O'#GOOOQO'#Ik'#IkOOQO'#Ho'#HoO$0aQ`O'#GOO<_Q`O'#F|O!&WQdO'#GOO!.YQdO'#GQO7RQ`O'#GROOQO'#Ij'#IjOOQO'#Hn'#HnO$0}Q`O,5<gOOQ#y,5<g,5<gOOQS7+'i7+'iO!-xQ`O7+'iO!1UQ`O7+'iOOOQ1G2d1G2dO$1tO`O1G2dO$1yO!bO1G2eO$2XO`O'#G`O$2^O`O1G2eOOOQ1G2h1G2hO$2cQaO,5=PO,zQ`O'#HtO$2|Q$VO7+(UOhQaO7+(UO,zQ`O'#HuO$7|Q`O7+(UO!&WQdO7+(UO$8XQ`O7+(UO$8^QaO'#GhO$:mQ`O'#GiOOQO'#Hv'#HvO$:uQ`O,5=ROOQ#u,5=R,5=RO$;QQ`O,5=UO!&WQdO7+(WO!&WQdO7+(]O!&WQdO7+(_O$;]QaO1G2uO$;dQ`O1G2uO$;iQaO1G2uO!&WQdO7+(`O9yQaO1G2xO!&WQdO7+(cO0aQ`O'#GyO9oQ`O,5>dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;pQaO7+(lO$<XQdO,5>cOOQS-E;u-E;uO!&WQdO7+(nO$=qQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?ZQ`O'#GOO$?}Q`O'#HUOOQO'#Hy'#HyO$@SQ`O,5=oOOQ#u,5=o,5=oO$@|QpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$AXQdO,5>fOOQS-E;x-E;xO$AgQdO1G4}O$ArQ`O,5=tO$AwQ`O,5=tO$BSQ`O'#H{O$BhQ`O,5?dOOQS1G3_1G3_O#KvQ`O7+(xO$BpQdO,5=|OOQS-E;`-E;`O$D]QdO<<I_OOQS1G4e1G4eO$ExQ`O1G0zOOQO,5>Q,5>QOOQO-E;d-E;dO$8^QaO,5:tO$G_QaO'#HcO$GlQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$GtQ`O7+&TO$IZQ`O1G0nO$JpQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<<LZ<<LZOOQ#u<<L`<<L`O$@|QpO<<L`OOQ#u<<L]<<L]O!-xQ`O<<L]O!1UQ`O<<L]O>UQaO1G1uO$LYQ`O1G1uO$LeQ`O1G1yOOQO1G1y1G1yO$LjQ`O1G1uO$LrQ`O1G1uO$NXQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<<Jx<<JxO$NdQ`O'#IhO$NlQ`O'#IhO$NqQ`O,5<aO0aQ`O<<JxO$+uQpO<<JxO$NvQ`O<<JxO0aQ`O<<M{O% OQtO<<M{O#6yQ`O<<JxO% ^QdO<<KSO% nQpO<<KSO*kQaO<<KSO0aQ`O<<KSO% vQdO'#HmO%!_QdO,5?TO!&WQdO,5<jO$/hQpO,5<jO%!pQ`O,5<jO<_Q`O,5<hO!.YQdO,5<lOOQO-E;m-E;mO!&WQdO,5<hOOQO,5<j,5<jOOQO,5<l,5<lO%#^QdO,5<mOOQO-E;l-E;lOOQ#y1G2R1G2ROOQS<<KT<<KTO!-xQ`O<<KTOOOQ7+(O7+(OO%#iO`O7+(POOOO,5<z,5<zOOOQ7+(P7+(POhQaO,5>`OOQ#u-E;r-E;rOhQaO<<KpOOQ#u<<Kp<<KpO$8XQ`O,5>aOOQO-E;s-E;sO!&WQdO<<KpO$8XQ`O<<KpO%#nQ`O<<KpO%#sQ`O,5=SO%%YQaO,5=TOOQO-E;t-E;tOOQ#u1G2m1G2mOOQ#u<<Kr<<KrOOQ#u<<Kw<<KwOOQ#u<<Ky<<KyOOQT7+(a7+(aO%%jQ`O7+(aO%%oQaO7+(aO%%vQ`O7+(aOOQ#u<<Kz<<KzO%%{Q`O7+(dO%'bQ`O7+(dOOQ#u<<K}<<K}O%'gQpO,5=eOOQ#u1G4O1G4OO%'rQ`O<<LWOOQ#u<<LY<<LYO%'wQ`O,5=pO%'|QdO,5=pOOQO-E;w-E;wOOQ#u1G3Z1G3ZO#KqQ`O<<L`OOQ#u<<Ld<<LdO%(XQ`O1G4QO%(^QdO7+*iOOQO1G3`1G3`O%(iQ`O1G3`O%(nQ`O'#HZO7RQ`O'#HZOOQO,5>g,5>gOOQO-E;y-E;yO!&WQdO<<LdO%(yQ`O1G0`OOQO,5=},5=}OOQO-E;a-E;aO>UQaO,5;TOOQ#uANAzANAzO#KqQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%*`Q`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+uQ`O7+'aO%,QQ`O7+'eO>UQaO7+'fO%,VQ`O7+'fO%-lQ`O'#HlO%-zQ`O,5?SO%-zQ`O,5?SOOQO1G1{1G1{O$+uQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%.SQtOANCgO%.bQ`OAN@dO*kQaOAN@nO%.jQdOAN@nO%.zQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/hQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%/SQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<<Kk<<KkOOQ#u1G3z1G3zOOQ#uANA[ANA[OOQO1G3{1G3{O%1RQ`OANA[O!&WQdOANA[O%1WQaO1G2nO%1hQaO1G2oOOQT<<K{<<K{O%1xQ`O<<K{O%1}QaO<<K{O*kQaO,5=_OOQT<<LO<<LOOOQO1G3P1G3PO%2UQ`O1G3PO!+WQeOANArO%2ZQdO1G3[OOQO1G3[1G3[O%2fQ`O1G3[OOQS7+)l7+)lOOQO7+(z7+(zO%2nQ`O,5=uO%2sQ`O,5=uOOQ#uANBOANBOO%3OQ`O1G0oOOQ#uG27fG27fOOQ#uG27cG27cO%4eQ`O<<J{O>UQaO<<J{OOQO<<KP<<KPO%5zQ`O<<KQOOQO,5>W,5>WO%7aQ`O,5>WOOQO-E;j-E;jO%7fQ`O1G4nOOQSG26OG26OO$+uQpOG26OO0aQ`OG26OO%7nQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%8OQ`OLD+tO%9_Q`O'#E}O%9iQ`O'#IZO!&WQdO'#HrO%;fQaO,5<nOOQO,5<n,5<nO!&WQdOG26vOOQ#uG26vG26vO%=eQaO7+(YOOQTANAgANAgO%=uQ`OANAgO%=zQ`O1G2yOOQO7+(k7+(kOOQ#uG27^G27^O%>RQ`OG27^OOQO7+(v7+(vO%>WQ`O7+(vO!&WQdO7+(vOOQO1G3a1G3aO%>`Q`O1G3aO%>eQ`OAN@gOOQO1G3r1G3rOOQSLD+jLD+jO$+uQpOLD+jO%?zQdOLD+tOOQO<<K[<<K[OOQO<<KY<<KYO%@[Q`O,5<oO%@aQ`O,5<pOOQP,5>^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<<LbOOQO<<Lb<<LbOOQO7+({7+({OOQS!$( U!$( UOOQS1G2Z1G2ZOOQS1G2[1G2[O%@iQdO1G2[OOQ#u!$(!d!$(!dOOQOANA|ANA|OOQS7+'v7+'vO%@tQ`O'#E{O%@tQ`O'#E{O%@yQ`O,5;gO%AOQdO,5<cO%BzQaO,5:}O*kQaO1G0iO%CRQaO'#FwO#.YQaO'#GVO#.YQaO'#GYO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO%CYQdO'#I]O%DxQdO'#I]O#.YQaO'#EaO#.YQaO'#I]O%FzQaO,5:wO#.YQaO,5;nO#.YQaO,5;pO%GRQdO,5<PO%H}QdO,5<QO%JyQdO,5<RO%LuQdO,5<SO%NqQdO,5<SO& XQdO,5<VO&#TQdO,5<tO#.YQaO1G0XO&%PQdO1G1]O&&{QdO1G1]O&(wQdO1G1]O&*sQdO1G1]O&,oQdO1G1]O&.kQdO1G1]O&0gQdO1G1]O&2cQdO1G1]O&4_QdO1G1]O&6ZQdO1G1]O&8VQdO1G1]O&:RQdO1G1]O&;}QdO1G1]O&=yQdO1G1]O&?uQdO1G1]O&AqQdO,5:{O&CmQdO,5>wO&EiQdO1G0cO#.YQaO1G0cO&GeQdO1G1YO&IaQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&K]QdO7+%sO&MXQdO7+%}O#.YQaO7+'hO' TQdO7+'hO'#PQdO<<I_O'${QdO<<KSO#.YQaO<<KSO#.YQaOAN@nO'&wQdOAN@nO'(sQdOG26YO#.YQaOG26YO'*oQdOLD+tO',kQaO,5:}O'.jQaO1G0iO'0fQdO'#IWO'0yQeO'#FUO'4yQeO'#FUO#.YQaO'#FeO'.jQaO'#FeO#.YQaO'#FfO'.jQaO'#FfO#.YQaO'#FgO'.jQaO'#FgO#.YQaO'#FhO'.jQaO'#FhO#.YQaO'#FhO'.jQaO'#FhO#.YQaO'#FkO'.jQaO'#FkO'9PQaO,5:mO'9WQ`O,5<bO'9`Q`O1G0XO'.jQaO1G0|O':rQ`O1G1|O':zQ`O7+'hO';SQpO7+'hO';[QpO<<KSO';dQpOAN@nO';lQaO'#FwO'.jQaO'#GVO'.jQaO'#GYO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO'#EaO'.jQaO'#I]O'=kQaO,5:wO'.jQaO,5;nO'.jQaO,5;pO'?jQdO,5<PO'AlQdO,5<QO'CnQdO,5<RO'EpQdO,5<SO'GrQdO,5<SO'H`QdO,5<VO'JbQdO,5<tO'.jQaO1G0XO'LdQdO1G1]O'NfQdO1G1]O(!hQdO1G1]O($jQdO1G1]O(&lQdO1G1]O((nQdO1G1]O(*pQdO1G1]O(,rQdO1G1]O(.tQdO1G1]O(0vQdO1G1]O(2xQdO1G1]O(4zQdO1G1]O(6|QdO1G1]O(9OQdO1G1]O(;QQdO1G1]O(=SQdO,5:{O(?UQdO,5>wO(AWQdO1G0cO'.jQaO1G0cO(CYQdO1G1YO(E[QdO1G1[O'.jQaO1G1|O'.jQaO7+%sO(G^QdO7+%sO(I`QdO7+%}O'.jQaO7+'hO(KbQdO7+'hO(MdQdO<<I_O) fQdO<<KSO'.jQaO<<KSO'.jQaOAN@nO)#hQdOAN@nO)%jQdOG26YO'.jQaOG26YO)'lQdOLD+tO))nQaO,5:}O#.YQaO1G0iO))uQ`O'#FvO))}QpO,5;bO)*VQ`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO0aQ`O<<KSO)*_QdO,5<cO),aQdO'#I]O).`QdO'#IWO).yQaO,5:mO)/QQ`O,5<bO)/YQ`O1G0XO)0lQ`O1G1|O)0tQ`O7+'hO)0|QpO7+'hO)1UQpO<<KSO)1^QpOAN@nO0aQ`O'#EvO9yQaO'#FeO9yQaO'#FfO9yQaO'#FgO9yQaO'#FhO9yQaO'#FhO9yQaO'#FkO)1fQaO'#FwO9yQaO'#GVO9yQaO'#GYO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO)1mQ`O'#FlO*kQaO'#EaO*kQaO'#I]O)1uQaO,5:wO9yQaO,5;nO9yQaO,5;pO)1|QdO,5<PO)3xQdO,5<QO)5tQdO,5<RO)7pQdO,5<SO)9lQdO,5<SO):SQdO,5<VO)<OQdO,5<cO)=zQdO,5<tO)?vQ`O'#IvO)A]Q`O'#IYO9yQaO1G0XO)BrQdO1G1]O)DnQdO1G1]O)FjQdO1G1]O)HfQdO1G1]O)JbQdO1G1]O)L^QdO1G1]O)NYQdO1G1]O*!UQdO1G1]O*$QQdO1G1]O*%|QdO1G1]O*'xQdO1G1]O*)tQdO1G1]O*+pQdO1G1]O*-lQdO1G1]O*/hQdO1G1]O*1dQaO,5:}O*1kQdO,5:{O*1{QdO,5>wO*2]QaO'#HdO*2mQ`O,5>vO*2uQdO1G0cO9yQaO1G0cO*4qQdO1G1YO*6mQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8iQ`O,5=[O*8qQaO'#HbO*8{Q`O,5>tO9yQaO7+%sO*9TQdO7+%sO*;PQ`O1G0iO>UQaO1G0iO*<fQdO7+%}O9yQaO7+'hO*>bQdO7+'hO*@^Q`O,5>cO*AsQ`O,5=|O*CYQdO<<I_O*EUQ`O7+&TO*FkQdO<<KSO9yQaO<<KSO9yQaOAN@nO*HgQdOAN@nO*JcQdOG26YO9yQaOG26YO*L_QdOLD+tO*NZQaO,5:}O9yQaO1G0iO*NbQdO'#I]O*N{Q`O'#FvO+ TQ`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO0aQ`O<<KSO+ ]QdO'#IWO+ vQeO'#FUO+!dQaO'#FUO+$]QaO'#FUO+%xQaO'#FUO>UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'qQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'xQaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+(PQ`O'#I]O$8^QaO'#EaO+)iQaOG26YO$8^QaO'#I]O++eQ`O'#I[O++mQaO,5:wO>UQaO,5;nO>UQaO,5;pO++tQ`O,5<PO+-aQ`O,5<QO+.|Q`O,5<RO+0iQ`O,5<SO+2UQ`O,5<SO+3qQ`O,5<VO+5^Q`O,5<bO+5fQ`O,5<cO+7RQ`O,5<tO+8nQ`O1G0XO>UQaO1G0XO+:QQ`O1G1]O+;mQ`O1G1]O+=YQ`O1G1]O+>uQ`O1G1]O+@bQ`O1G1]O+A}Q`O1G1]O+CjQ`O1G1]O+EVQ`O1G1]O+FrQ`O1G1]O+H_Q`O1G1]O+IzQ`O1G1]O+KgQ`O1G1]O+MSQ`O1G1]O+NoQ`O1G1]O,![Q`O1G1]O,#wQ`O1G0cO>UQaO1G0cO,%dQ`O1G1YO,'PQ`O1G1[O,(lQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,(tQ`O7+%sO,*aQ`O7+%}O>UQaO7+'hO,+|Q`O7+'hO,,UQ`O7+'hO,-qQpO7+'hO,-yQ`O<<I_O,/fQ`O<<KSO,1RQpO<<KSO>UQaO<<KSO>UQaOAN@nO,1ZQ`OAN@nO,2vQpOAN@nO,3OQ`OG26YO>UQaOG26YO,4kQ`OLD+tO,6WQaO,5:}O>UQaO1G0iO,6_Q`O'#I]O$8^QaO'#FeO$8^QaO'#FfO$8^QaO'#FgO$8^QaO'#FhO$8^QaO'#FhO+)iQaO'#FhO$8^QaO'#FkO,6lQaO'#FwO,6sQaO'#FwO$8^QaO'#GVO+)iQaO'#GVO$8^QaO'#GYO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO,8rQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8zQaO,5:wO,9RQaO,5:wO$8^QaO,5;nO+)iQaO,5;nO$8^QaO,5;pO,;QQ`O,5<PO,<mQ`O,5<QO,>YQ`O,5<RO,?uQ`O,5<SO,AbQ`O,5<SO,B}Q`O,5<SO,D^Q`O,5<VO,EyQ`O,5<cO%8OQ`O,5<cO,GfQ`O,5<tO$8^QaO1G0XO+)iQaO1G0XO,IRQ`O1G1]O,JnQ`O1G1]O,K}Q`O1G1]O,MjQ`O1G1]O,NyQ`O1G1]O-!fQ`O1G1]O-#uQ`O1G1]O-%bQ`O1G1]O-&qQ`O1G1]O-(^Q`O1G1]O-)mQ`O1G1]O-+YQ`O1G1]O-,iQ`O1G1]O-.UQ`O1G1]O-/eQ`O1G1]O-1QQ`O1G1]O-2aQ`O1G1]O-3|Q`O1G1]O-5]Q`O1G1]O-6xQ`O1G1]O-8XQ`O1G1]O-9tQ`O1G1]O-;TQ`O1G1]O-<pQ`O1G1]O->PQ`O1G1]O-?lQ`O1G1]O-@{Q`O1G1]O-BhQ`O1G1]O-CwQ`O1G1]O-EdQ`O1G1]O-FsQ`O,5:{O-H`Q`O,5>wO-I{Q`O1G0cO-KhQ`O1G0cO$8^QaO1G0cO+)iQaO1G0cO-LwQ`O1G1YO-NdQ`O1G1YO. sQ`O1G1[O$8^QaO1G1|O$8^QaO7+%sO+)iQaO7+%sO.#`Q`O7+%sO.${Q`O7+%sO.&[Q`O7+%}O.'wQ`O7+%}O$8^QaO7+'hO.)WQ`O7+'hO.*sQ`O<<I_O.,`Q`O<<I_O.-oQ`O<<KSO$8^QaO<<KSO$8^QaOAN@nO./[Q`OAN@nO.0wQ`OG26YO$8^QaOG26YO.2dQ`OLD+tO.4PQaO,5:}O.4WQaO,5:}O$8^QaO1G0iO+)iQaO1G0iO.6VQ`O'#I]O.7iQ`O'#I]O.;OQ`O'#IWO.;`Q`O'#FvO.;hQaO,5:mO.;oQ`O,5<bO.;wQ`O,5<bO!%WQ`O,5<bO.<PQ`O1G0XO.=cQ`O,5:{O.?OQ`O,5>wO.@kQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@sQ`O7+'hO.@{QpO7+'hO.ATQpO<<KSO0aQ`O<<KSO.A]QpOAN@nO.AeQ`O'#IWO.AuQ`O'#IWO.ClQaO,5:mO.CsQaO,5:mO.CzQ`O,5<bO.DSQ`O7+'hO.D[Q`O1G0XO.EnQ`O1G0XO.GQQ`O1G1|O.GYQ`O7+'hO.GbQpO7+'hO.GjQpOAN@nO.GrQpO<<KSO.GzQpOAN@nO.HSQ`O'#FvO.H[Q`O'#FlO.HdQ`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO0aQ`O<<KSO.HlQ`O'#FvO.HtQ`O,5<bO.H|Q`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O<<KSO0aQ`O7+'hO0aQ`O<<KSO.IUQ`O'#FlO.I^Q`O'#FlO.IfQ`O'#Fl",stateData:".I{~O!dOS!eOS&vOS!gQQ~O!iTO&wRO~OPgOQ|OS!lOU^OW}OX!XO[mO]!_O^!WO`![Oa!SOb!]Ok!dOm!lOowOp!TOq!UOsuOt!gOu!VOv!POxkOykO|!bO}`O!O]O!P!eO!QxO!R}O!TpO!UlO!VlO!W!YO!X!QO!YzO!Z!cO![!ZO!]!^O!^!fO!`!`O!a!RO!cjO!mWO!oXO!sYO!y[O#W_O#bhO#daO#ebO#peO$ToO$]nO$^oO$aqO$drO$l!kO$zyO${!OO$}}O%O}O%V|O'g{O~O!g!mO~O&wRO!i!hX&p!hX&t!hX~O!i!pO~O!d!qO!e!qO!g!mO&t!tO&v!qO~PhO!n!vO~PhOT'VXz'VX!S'VX!b'VX!m'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX&s'VX~O!q!xO~P&sOT#TOz#RO!S#UO!b#VO!m#cO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO&s#cO~OPgOQ|OU^OW}O[mOowOs#hOxkOykO}`O!O]O!QxO!R}O!TpO!UlO!VlO!YzO!cjO!s#gO!y[O#W_O#bhO#daO#ebO#peO$ToO$]nO$^oO$aqO$zyO${!OO$}}O%O}O%V|O'g{O~O!y[O~O!y#kO~OP6ZOQ|OU^OW}O[6^Oo=WOs#hOx6[Oy6[O}`O!O]O!Q6bO!R}O!T6aO!U6]O!V6]O!Y6dO!c8dO!s#gO!y[O#S#oO#U#nO#W_O#bhO#daO#ebO#peO$T6`O$]6_O$^6`O$aqO$z6cO${!OO$}}O%O}O%V|O'g{O#X'OP~O!}#sO~P-UO!y#tO~O#b#vO#daO#ebO~O#p#xO~O!s#yO~OU$PO!R$PO!s$OO!v#}O#p2VO~OT&zXz&zX!S&zX!b&zX!m&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX&s&zX!x&zX!n&zX~O#u$RO#w$SO~P0rOP6ZOQ|OU^OW}O[6^Oo=WOs#hOx6[Oy6[O}`O!O]O!Q6bO!R}O!T6aO!U6]O!V6]O!Y6dO!c8dO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T6`O$]6_O$^6`O$aqO$z6cO${!OO$}}O%O}O%V|O'g{OT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX~Or$UO#S6wO#U6vO~P2yO!s#gO#peO~OS$gO]$bOk$eOm$gOs$aO!`$cO$drO$l$fO~O!s$kO!y$hO#S$jO~Oo$mOs$lO#b$nO~O!y$hO#S$rO~O$l$tO~P*kOR$zO!o$yO#b$xO#e$yO&q$zO~O'f$|O~P8lO!y%RO~O!y%TO~O!s%VO~O!m#cO&s#cO~P*kO!oXO~O!y%_O~OP6ZOQ|OU^OW}O[6^Oo=WOs#hOx6[Oy6[O}`O!O]O!Q6bO!R}O!T6aO!U6]O!V6]O!Y6dO!c8dO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T6`O$]6_O$^6`O$aqO$z6cO${!OO$}}O%O}O%V|O'g{O~O!y%cO~O!s%dO~O]$bO~O!s%hO~O!s%iO~O!s%jO~O!oXO!s#gO#peO~O]%rOs%rO!o%pO!s#gO#p%nO~O!s%vO~O!i%wO&t%wO&wRO~O&t%zO~PhO!n%{O~PhOPgOQ|OU^OW}O[8jOo=wOs#hOx8hOy8hO}`O!O]O!Q8nO!R}O!T8mO!U8iO!V8iO!Y8pO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T8lO$]8kO$^8lO$aqO$z8oO${!OO$}}O%O}O%V|O'g{O~O!q%}O~P>UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8jOo=wOs#hOx8hOy8hO}`O!O]O!Q8nO!R}O!T8mO!U8iO!V8iO!Y8pO!c8gO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8lO$]8kO$^8lO$aqO$z8oO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;bO#U;aO!x'OP~P9yOT6gOz6eO!S6hO!b6iO!o!{O!v8qO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6gOz6eO!S6hO!b6iO!v8qO!}({O#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6gOz6eO!S6hO!b6iO!v8qO!})iO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8tOz8rO!S8uO!b8vO!q)pO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#X)rO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!n)rO~PCqOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6gOz6eO!S6hO!b6iO!v8qO!}*UO#O*TO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[3|Oo5vOs#hOx3xOy3xO}`O!O]O!Q2[O!R}O!T4SO!U3zO!V3zO!Y2^O!c3vO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4QO$]4OO$^4QO$aqO$z2]O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6gOV,XOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,hO]+aOm+^Os$aO!^+dO!_+^O!`+^O!n,kO#b$nO$aqO$drO~P0aO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,qO~OV,rO!n%|X!}%|X~O!},tO!n'lX~O!n,vO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,{O~PCqOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-PO~O!}-QO!n&{X~O!n-SO~O!x-TO~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-ZO~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-cO!x$ca!}$ca~O#U-eO#b-dO~O#b-fO~O#S-gO#U-eO#b-dO#l'SO~O#b-iO#l'SO~O#u-jO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-oO#b-nO!x'[P~O!oXO!q-qO~O!q-tO!o'cq!m'cq&s'cq~O!^-vO!oXO!q-qO~O!q-zO#O-yO~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-yO#l'SO~O!}-{Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].QOm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].QOm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.YO#b$nO$aqO$drO~P0aO!s.]O~O!s.^O#b.^O$}.^O%T+oO~O$}._O~O#X.`O~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.cOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.hOd+vOh.gO~O!q(`O~OP6ZOQ|OU^OW}O[:dOo>POs#hOx:bOy:bO}`O!O]O!Q:iO!R}O!T:hO!U:cO!V:cO!Y:mO!c8eO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:fO$]:eO$^:fO$aqO$z:kO${!OO$}}O%O}O%V|O'g{O~O!m.kO!q.kO~OY+zO_+{O!n.mO~OY+zO_+{Oi%^a~O!x.qO~P>UO!m.sO~O!m.sO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m&ka!}&ka&s&ka~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^OY.}O].QOm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aO!s/OO~OS+^OY,hO]+aOm+^Os$aO!^+dO!_+^O!`+^O!n/QO#b$nO$aqO$drO~P0aOw(SO!o)WO#l'SO~OV/TO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/VO~OV/WO!n%|a!}%|a~O]/YOs/YO!s#gO#peO!n&oX!}&oX~O!},tO!n'la~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-QO!n&{a~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#Vq#X#Vq~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#[i!}#[i~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#O/aO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!x&Xa!}&Xa~P!'WO#u/gO!x$ci!}$ci~O#b/hO~O#U/jO#b/iO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$ci!}$ci~P!'WO#u/kO!x$hi!}$hi~O!}/mO!x'[X~O#b/oO~O!x/pO~O!oXO!q/sO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/vO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-{Ow']a!o']a!m']a&s']a~OS+^O]0OOm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aO!m#cO!o0TO&s#cO~O#X0WO~Oh0]O~OT:rOz:nO!S:tO!b:vO!m0^O!q0^O!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0`O~O!x0`O~P>UO!m0bO~OT6gOz6eO!S6hO!b6iO!v8qO!x0dO#O0cO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO~P!'WO!x0dO~O!x0eO#b0fO#l'SO~O!x0gO~O!s0hO~O!m#cO#u0jO&s#cO~O!s0kO~O!})_O!m'kq&s'kq~O!s0lO~OV0mO!n%}X!}%}X~OT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!n!|i!}!|i~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$cq!}$cq~P!'WO#u0tO!x$cq!}$cq~O#b0uO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$hq!}$hq~P!'WO#S0xO#b0wO!x&`X!}&`X~O!}/mO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q0}O~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1PO#l'SO~OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!n1[O!s1WO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOh1]O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1`O~O!x1`O~P>UO!x1cO~O!m#cO#u1gO&s#cO~O$}1hO%V1hO~O!s1iO~OV1jO!n%}a!}%}a~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#]i!}#]i~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$cy!}$cy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$hy!}$hy~P!'WO#b1lO~O!}/mO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:sOz:oO!S:uO!b:wO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dO~P!'WOV1sO{1rO~P!5xOV1sO{1rOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!n1vO!s1WO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOY%[q_%[q!n%[qi%[q~PhO!x1xO~O!x%gi~PCqOe1yO~O$}1zO%V1zO~O!s1|O~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2OO~O!`2QO!s2PO~O!s2TO!m$xi&s$xi~O!s'WO~O!s*]O~OT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2ZO~P*kO$l$tO~P#.YOT6gOz6eO!S6hO!b6iO!v8qO#O2YO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#O3sO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3bO~P#.YOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2_O#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2_O#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2aOz2_O!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2aOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$T2lO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$S2kO$T2lO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2_O#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2_O#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S3tO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OO~P$;pOP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OO~P$;pO#u2sO#w2tO!q&zX#X&zX!}&zX~P0rOP6ZOU^O[3}Oo8[Or2uOs#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S2rO#U2qO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;pOP6ZOU^O[3}Oo8[Or4vOs#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S4sO#U4rO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;pO!q2}O~P>UO!q5{O#O3eO~OT8tOz8rO!S8uO!b8vO!q3fO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!q5|O#O3iO~O!q5}O#O3mO~O#O3mO#l'SO~O#O3nO#l'SO~O#O3qO#l'SO~OP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$l$tO$z4`O${!OO~P$;pOP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S5cO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OO~P$;pOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4bO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4bO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4dOz4bO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4dOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$T4oO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$S4nO$T4oO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4bO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4bO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5uO~P#.YO!y$hO#S5yO~O!x4XO#l'SO~O!y$hO#S5zO~OT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#O5tO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4tO#w4uO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5OO~P>UO!q8`O#O5fO~OT8tOz8rO!S8uO!b8vO!q5gO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!q8aO#O5jO~O!q8bO#O5nO~O#O5nO#l'SO~O#O5oO#l'SO~O#O5rO#l'SO~O$l$tO~P9yOo5xOs$lO~O#S7mO~P9yOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6eO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8tOz8rO!S8uO!b8vO!v=XO!}7qO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x'jX~P!'WOT8tOz8rO!S8uO!b8vO!v=XO!}7sO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x&|X~P!'WOz6eO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6gOz6eO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6gOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$T6rO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$S6qO$T6rO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7xO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;bO#U;aO!x&WX!}&WX~P9yO!}7jO!x'Oa~Oz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7qO!x%da~O!x&UX!}&UX~P>UO!}7sO!x&|a~Oz6eO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#Vi!}#Vi~P!'WOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x&ka!}&ka~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x&Ua!}&Ua~P!'WOz6eO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#Vq!}#Vq~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8YO~P9yO#O8XO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8^O~O!y$hO#S8_O~O#u6xO#w6yO!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6zO#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;gO#S9VO#U9TOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9UO#S9UO#U9UOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9ZO#S;bO#U;aOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7VO~P>UOT6gOz6eO!S6hO!b6iO!v8qO#O7gO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!x'PX!}'PX~P!'WOP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pO!}7jO!x'OX~O#S9wO~P>UOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8rO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=bO#O7pO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8tOz8rO!S8uO!b8vO!q7uO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOz8rO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8tOz8rO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8tOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8rO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8rO$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8rO$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8rO$T9PO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8rO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8rO$S9OO$T9PO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8rO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=cO#O7zO~Oz8rO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=gO#O8RO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8RO#l'SO~Oz8rO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8SO#l'SO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8VO#l'SO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:`O~P>UO#O:_O!q'PX!x'PX~PGSO$l$tO~P$8^OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$l$tO$z:lO${!OO~P$;pOo8]Os$lO~O#S<hO~P$8^OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#S<iO#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$Xa!q$Xa!n$Xa!}$Xa~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$Ya!q$Ya!n$Ya!}$Ya~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$Za!q$Za!n$Za!}$Za~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$[a!q$[a!n$[a!}$[a~P!'WOz:nO$z#dOT$[a!S$[a!b$[a!m$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a!n$[a!}$[a~P!'WOz:oO$z#dOT$[a!S$[a!b$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$_a!q$_a!n$_a!}$_a~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$ka!q$ka!n$ka!}$ka~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$|a!q$|a!n$|a!}$|a~P!'WOz:nO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi!n#yi!}#yi~P!'WOz:oO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!n#yi!}#yi~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi~P!'WOT:rOz:nO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!S#yi!m#yi!q#yi!n#yi!}#yi~P!'WOT:sOz:oO!b:wO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dO!S#yi~P!'WOT:rOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!S#yi!b#yi!m#yi!q#yi!n#yi!}#yi~P!'WOT:sOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dO!S#yi!b#yi~P!'WOz:nO#S#QO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi!n#yi!}#yi~P!'WOz:oO#S#QO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi~P!'WOz:nO#S#QO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi#|#yi!n#yi!}#yi~P!'WOz:oO#S#QO#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi#|#yi~P!'WOz:nO#S#QO$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi!n#yi!}#yi~P!'WOz:oO#S#QO$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi#|#yi#}#yi~P!'WOz:nO#S#QO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi!n#yi!}#yi~P!'WOz:oO#S#QO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi~P!'WOz:nO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi!n#yi!}#yi~P!'WOz:oO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi~P!'WOz:nO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!n#yi!}#yi~P!'WOz:oO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi~P!'WOz:nO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!n#yi!}#yi~P!'WOz:oO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi~P!'WOz:nO$T;YO$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!n#yi!}#yi~P!'WOz:oO$T;ZO$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi~P!'WOz:nO$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!n#yi!}#yi~P!'WOz:oO$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi~P!'WOz:nO$S;WO$T;YO$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!n#yi!}#yi~P!'WOz:oO$S;XO$T;ZO$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi~P!'WOz:nO$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!n#yi!}#yi~P!'WOz:oO$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#Ta!}#Ta!q#Ta#X#Ta~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x'Pa!}'Pa!q'Pa#X'Pa~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#Pi!S#Pi!b#Pi!m#Pi!q#Pi!n#Pi!}#Pi~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#Pi!S#Pi!b#Pi~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#vi!S#vi!b#vi!m#vi!q#vi!n#vi!}#vi~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#vi!S#vi!b#vi~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m#xi!q#xi!n#xi!}#xi~P!'WOz:nO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT!uq!S!uq!b!uq!m!uq!q!uq!v!uq!n!uq!}!uq~P!'WOz:oO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT!uq!S!uq!b!uq!v!uq~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#Pq!S#Pq!b#Pq!m#Pq!q#Pq!n#Pq!}#Pq~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#Pq!S#Pq!b#Pq~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$jq!q$jq!n$jq!}$jq~P!'WOz:nO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT!uy!S!uy!b!uy!m!uy!q!uy!v!uy!n!uy!}!uy~P!'WOz:oO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT!uy!S!uy!b!uy!v!uy~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$jy!q$jy!n$jy!}$jy~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$j!R!q$j!R!n$j!R!}$j!R~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$j!Z!q$j!Z!n$j!Z!}$j!Z~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$j!c!q$j!c!n$j!c!}$j!c~P!'WO#S=RO~P$8^OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#S=SO#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOT6gOz6eO!S6hO!b6iO!v8qO#O=QO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#O=PO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9XO#w9YO#X&zX!x&zX~P.9XO!y$hO#S=[O~O!q9fO~P>UO!y$hO#S=aO~O!q=|O#O9{O~OT8tOz8rO!S8uO!b8vO!q9|O!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q=}O#O:PO~O!q>OO#O:WO~O#O:WO#l'SO~O#O:XO#l'SO~O#O:]O#l'SO~O#u;cO#w;eO!m&zX!n&zX~P.9XO#u;dO#w;fOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;rO~P>UO!q;sO~P>UO!q>VO#O<mO~O!q>WO#O9UO~OT8tOz8rO!S8uO!b8vO!q<nO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOT8tOz8rO!S8uO!b8vO!q<oO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!q>XO#O<tO~O!q>YO#O<yO~O#O<yO#l'SO~O#O9UO#l'SO~O#O<zO#l'SO~O#O<}O#l'SO~O!y$hO#S=zO~Oo=YOs$lO~O!y$hO#S={O~O!y$hO#S>SO~O!y$hO#S>TO~O!y$hO#S>UO~Oo=yOs$lO~Oo>ROs$lO~Oo>QOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%'X'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%XP!.c!7yP!?xP*ZP*Z*ZPPPPP!?{PPPPPPP*Z*Z*Z*ZPP*Z*ZP!Ef!G[P!G`!HS!G[!G[!HY*Z*ZP!Hc!Hu!Ik!Ji!Jo!Ji!Jz!Ji!Ji!K]!K`!K`*ZPP*ZPP!Kd#%b#%b#%fP#%lP(O#%p(O#&Y#&]#&]#&c(O#&f(O(O#&l#&o(O#&x#&{(O(O(O(O(O#'O(O(O(O(O(O(O(O(O(O#'R#'e(O(O#'i#'y#'|(O(OP#(P#(W#(^#(y#)T#)Z#)e#)l#)r#*n#4f#5b#5h#5n#5x#6O#6U#6d#6j#6p#6v#6|#7S#7Y#7d#7n#7t#7z#8UPPPPPPPP#8[#8`#9U#NV#NY#Nd$(m$(y$)`$)f$)i$)l$)r$,c$6T$>j$>m$>s$>v$>y$?S$?[$?f$?x$Bx$C`$DZ$LZPP%&X%&]%&i%'O%'UQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_Q%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-m*v*x+OQ.V+cQ.z,[S/r-r-sQ0R.RS0{/q/uQ1T0PQ1m0|R1}1n0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=l0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lQ#j]Q$}!PQ%O!QQ%P!RQ,S(kQ.a+sR.e+vR&q#jQ)z&pR/_-Q0uhPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lR#l^k#p_j#k#s&s&w3v3w7j8d8e8f8gR#u`T&|#t'OR-X*U0thPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lR#va-r#OZ#f#m#w$V$W$X$Y$Z$[$u$v%W%Y%[%`%s%|&O&Q&U&^&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&u&v&{'X'Z'[(](p)q)s)u*O*[*^+S+V,`,c,x,z,|-U-V-W-h-w.j.v/^/f/l/w0p0s0v1O1V1b1k1o2o2p2v2w2x2y2z2{2|3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3^3_3`3a3c3d3g3h3j3k3l3o3p3r4W4w4x4y4z4{4|4}5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`5a5b5d5e5h5i5k5l5m5p5q5s6P6T6{6|6}7O7P7Q7S7T7U7W7X7Y7Z7[7]7^7_7`7a7b7c7d7e7f7h7i7l7n7o7v7w7y7{7|7}8O8P8Q8T8U8W8Z9S9[9]9^9_9`9a9d9e9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9x9y9}:O:R:T:U:Y:[:^:a;h;i;j;k;l;m;n;q;t;u;v;w;x;y;z;{;|;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<[<]<^<_<`<a<b<c<d<e<f<g<j<k<l<p<q<r<s<u<v<w<x<{<|=O=T=U=]=^=_=o=pQ']$]Y(Q$s7R9c;o;pS(U2X6OR(X$tT&X!})v!}$Qg#}$h'S'i'm'r(P(T)W)Z*f*s*z*}+Q+]+`+g,Z,g,j-q-t-z.P/s0}5{5|5}6Z8`8a8b=b=c=g=|=}>O>V>W>X>Y3afPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)W)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,g,j,t-P-Q-c-j-q-t-y-z-{.P.a.c.k.s/Y/a/g/k/s/v0T0^0_0b0c0g0t0}1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u5{5|5}6R6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8`8a8b8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=b=c=g=k=l=|=}>O>V>W>X>Y3ycPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)W)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,g,j,t,w-P-Q-c-j-q-t-y-z-{.P.a.c.k.s/Y/a/g/k/s/v0T0^0_0b0c0g0t0}1P1Z1_2U2V2W2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u5{5|5}6R6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8`8a8b8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=b=c=g=k=l=|=}>O>V>W>X>Y0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0^0_0b0c0g0t1P1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lT1X0T1ZR&]#P!n#[Z#f#w$V$W$X$Y$[$s$v%W%Y%[&Q&_&`&a&b&c&d&e&f'X'Z'[(])q)s*^+V,z-w/w1O1b1o7h7i!Y2h2X2v2w2x2y2{2|3O3P3Q3R3S3T3U3V3_3`3a3c3d3g3h3j3k3l3o3p3r!^4k2p4w4x4y4z4|4}5P5Q5R5S5T5U5V5W5`5a5b5d5e5h5i5k5l5m5p5q5s6O6P#Q6n#m%`%s&u&v&{(p*O+S,`,c,x-U-W.v2o6{6|6}7O7Q7R7S7W7X7Y7Z7[7]7^7_7l7n7o7v7y7{8O8Q8T8U8W8Z9S:a=T=U#^8{%|&O&U)u,|-V-h/f/l0p0s0v1k4W6T7T7U7w7|7}8P9[9]9^9_9a9c9d9e9g9h9i9j9k9l9m9n9v9x9y9}:O:R:T:U:Y:[:^<d<e=]=o=p!^;Q.j/^;h;i;j;k;n;o;q;t;v;x;z;|<O<Q<S<f<j<l<p<r<u<v<x<{<|=O=^=_o;R1V;p;u;w;y;{;}<P<R<T<g<k<q<s<wS$iu#hQ$qwU't$j$l&oQ'v$kS'x$m$rQ*|'uQ+O'wQ+R'yQ4V5vS4Y5x5yQ4Z5zQ6S8[S6U8]8^Q6V8_Q9b=WS9z=Y=[Q:Q=aQ=Z=wS=`=y=zQ=d={Q=m>PS=n>Q>TS=q>R>SR=r>UT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,j.a.c.k0^0_0g1_Q$^rR*`'^Q*x'sQ-s*{R/u-vQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-b*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-a*i*jQ.[+kQ/R,lQ/c-_R/e-bQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-`*h*i*jS.Z+j+kS/d-a-bQ0V.[R0r/eX+e(T)W+g,j[%e!_$b'c+a.Q0OR,d)Qh$ov(T)W+[+]+`+g,g,j.O.P/}R+T'{R0U.WT1Y0T1Z0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lT$x{${Q+p([R.^+nT$z{${Q(b$}Q(j%PQ(o%SQ(r%UQ.i+yQ0Z.eQ0[.hR1e0gR(e%OX+|(c(d+},PR(f%OX(h%P%S%U0gR%S!T_%a!]%R(l,T,V.s0bR%U!UR.w,XR,[(wQ)X%jS*d'e)YS-^*e,lS/b-_/RR0q/cT,i)W,jQ%q!fU)]%m%n%rU,n)^)g)hR/],wR)d%pR/Z,tSSO!mR!oSQ!rVR%y!rQ!jPS!sV!rQ!wX[%u!j!s!w+r0_1_Q+r(`Q0_.kR1_0^Q)j%sS,y)j7tR7t7UQ-R)zR/`-RQ&x#qS*R&x7kR7k9WS*V&{&|R-Y*VQ)w&YR-O)w!l'T#|'h*n*q*v+W+[,l-_-r-u-x.O.y/q/t/x/}0|1n4[4]4^5w6W6X6Y:S:V:Z=e=f=h=s=t=u=vR*Z'T1^dPVX[_bjklmnoprxyz!S!W!X!Y!]!e!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%p%}&S&W&p&s&t&w'O'U'Y'^'z(O(R(S(`(l({)P)_)c)i)p)t)v*P*T*U*o+P+d+r+u+z,T,V,X,t-P-Q-c-j-y-{.a.c.k.s/Y/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=l`#zd#{%m)^)g,w2U2WQ#{eQ%m!fQ)^%nQ)g%rQ,w)h!|2Ug#}$h'S'i'm'r(P(T)W)Z*f*s*z*}+Q+]+`+g,Z,g,j-q-t-z.P/s0}5{5|5}6Z8`8a8b=b=c=g=|=}>O>V>W>X>YR2W2V|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_W$`t'i+],gS'i$h*sS+](T+gT,g)W,jQ'_$^R*a'_Q*t'oR-l*tQ/n-nS0y/n0zR0z/oQ-|+XR/z-|Q+g(TR.X+gW+`(T)W+g,jS.P+],gT.S+`.PQ)R%eR,e)RQ'|$oR+U'|Q1Z0TR1u1ZQ${{R(^${Q+t(aR.b+tQ+w(bR.f+wQ+}(cQ,P(dT.l+},PQ(|%`S,a(|7rR7r7TQ(y%^R,^(yQ,j)WR/P,jQ)`%oS,p)`/UR/U,qQ,u)dR/[,uT!uV!rj!iPVX!j!r!s!w(`+r.k0^0_1_Q%Q!SQ(a$}W(h%P%S%U0gQ.d+uQ0X.aR0Y.c|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_Q#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2]4`6c8o:k:lQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-QQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2_4b6e8r:n:oQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4XQ*^'Y^*_2Y3s5t8X:_=P=QQ+S'zQ+V(OQ,`({Q,c)PQ,x)iQ,z)pQ,|)tQ-U*PQ-V*TQ-W*U^-[2Z3t5u8Y:`=R=SQ-h*oQ-w+PQ.j+zQ.v,XQ/^-PQ/f-cQ/l-jQ/w-yQ0p/aQ0s/gQ0v/kQ1O/vU1V0T1Z9UQ1b0cQ1k0tQ1o1PQ2X2[Q2ojQ2p3wQ2v3xQ2w3zQ2x3|Q2y4OQ2z4QQ2{4SQ2|2^Q3O2`Q3P2aQ3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2qQ3`2rQ3a2sQ3c2tQ3d2uQ3g2}Q3h3bQ3j3eQ3k3fQ3l3iQ3o3mQ3p3nQ3r3qQ4W4UQ4w3yQ4x3{Q4y3}Q4z4PQ4{4RQ4|4TQ4}4aQ5P4cQ5Q4dQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5d4uQ5e4vQ5h5OQ5i5cQ5k5fQ5l5gQ5m5jQ5p5nQ5q5oQ5s5rQ6O4_Q6P3vQ6T6RQ6{6[Q6|6]Q6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6dU7T,T.s0bQ7U%cQ7W6fQ7X6gQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7h6vQ7i6wQ7l6xQ7n6yQ7o6zQ7v7VQ7w7gQ7y7mQ7{7pQ7|7qQ7}7sQ8O7uQ8P7xQ8Q7zQ8T8RQ8U8SQ8W8VQ8Z8dU9S#k&s7jQ9[8hQ9]8iQ9^8jQ9_8kQ9`8lQ9a8mQ9c8nQ9d8pQ9e8qQ9g8sQ9h8tQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9XQ9x9YQ9y9ZQ9}9fQ:O9wQ:R9{Q:T9|Q:U:PQ:Y:WQ:[:XQ:^:]Q:a8gQ;h:bQ;i:cQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:mQ;t:pQ;u:qQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQ<O:zQ<P:{Q<Q:|Q<R:}Q<S;OQ<T;PQ<U;QQ<V;RQ<W;SQ<X;TQ<Y;UQ<Z;VQ<[;WQ<];XQ<^;YQ<_;ZQ<`;[Q<a;]Q<b;^Q<c;_Q<d;aQ<e;bQ<f;cQ<g;dQ<j;eQ<k;fQ<l;gQ<p;rQ<q;sQ<r<hQ<s<iQ<u<mQ<v<nQ<w<oQ<x<tQ<{<yQ<|<zQ=O<}Q=T8fQ=U8eQ=]=XQ=^9TQ=_9VQ=o=kR=p=lR){&pQ%t!gQ)O%cT)y&p-Q$SiPVX[bklmnopxyz!S!W!X!Y!j!r!s!w!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y$}%P%S%U%}&S'Y(O(`)p+P+r+u-y.a.c.k/v0^0_0c0g1P1_2Y2Z6v6w!t3u'U2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3x3z3|4O4Q4S5t5u!x6Q3s3t3v3w3y3{3}4P4R4T4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r$O8c_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-Q6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6x6y6z7V7j7m7p7u7z8R8S8V8X8Y8d8e8f8g#|=V!y!z!}%c&W)t)v*T*o,T-c-j.s/a/g/k0b0t4U6R7g7q7s7x8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9X9Y9Z9f9w9{9|:P:W:X:]:_:`;a;b=X=k=l!v=i+z-P9T9V:b:c:d:e:f:h:i:k:m:n:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;c;e;g;r<h<m<n<t<y<z<}=P=R!]=j0T1Z9U:g:j:l:o:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;d;f;s<i<o=Q=SQ#r_Q&r#kQ&z#sR)}&sS#q_#s^$Tj3v3w8d8e8f8gS*Q&w7jT9W#k&sQ&}#tR*X'OR&T!|R&Z!}Q&Y!}R,})vQ#|gQ'V#}S'h$h*sQ*Y'SQ*n'iQ*q'mQ*v'rQ+W(PW+[(T)W+g,jQ,l)ZQ-_*fQ-r*zQ-u*}Q-x+QU.O+]+`,gQ.y,ZQ/q-qQ/t-tQ/x-zQ/}.PQ0|/sQ1n0}Q4[5{Q4]5|Q4^5}Q5w6ZQ6W8`Q6X8aQ6Y8bQ:S=bQ:V=cQ:Z=gQ=e=|Q=f=}Q=h>OQ=s>VQ=t>WQ=u>XR=v>Y0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=l!|$Pg#}$h'S'i'm'r(P(T)W)Z*f*s*z*}+Q+]+`+g,Z,g,j-q-t-z.P/s0}5{5|5}6Z8`8a8b=b=c=g=|=}>O>V>W>X>YS$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,o)_Q,s)cQ/X,tQ/y-{R0n/Y|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-y/v0c1P2Y2Z6v6w`+^(T)W+]+`+g,g,j.P!t6u'U2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3x3z3|4O4Q4S5t5u!x;`3s3t3v3w3y3{3}4P4R4T4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r$O=x_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-Q6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6x6y6z7V7j7m7p7u7z8R8S8V8X8Y8d8e8f8g#|>Z!y!z!}%c&W)t)v*T*o,T-c-j.s/a/g/k0b0t4U6R7g7q7s7x8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9X9Y9Z9f9w9{9|:P:W:X:]:_:`;a;b=X=k=l!v>[+z-P9T9V:b:c:d:e:f:h:i:k:m:n:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;c;e;g;r<h<m<n<t<y<z<}=P=R!]>]0T1Z9U:g:j:l:o:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;d;f;s<i<o=Q=SR'p$hQ'o$hR-k*sR$_rR-p*wQ+Y(RQ+Z(SR.W+dS+f(T+gT,i)W,ja+_(T)W+]+`+g,g,j.PQ%f!_Q'b$bQ*c'cQ.T+aQ0Q.QR1S0OQ#eZQ%X!WQ%Z!XQ%]!YQ'}$pQ(s%VQ(t%WQ(u%YQ(v%[Q(}%bQ)S%fQ)[%kQ)f%qQ)k%tQ*b'bQ,m)]Q-]*cQ.U+bQ.V+cQ.d+xQ.n,QQ.o,RQ.p,SQ.u,WQ.x,YQ.|,bQ/S,nQ/{-}Q0R.RQ0S.TQ0U.WQ0Y.gQ0i/OQ0o/]Q1Q/|Q1T0PQ1U0QQ1^0]Q1f0hQ1p1RQ1q1SQ1t1YQ1w1]Q1{1hQ2R1yR2S1zQ$pvW+b(T)W+g,jW-}+[+]+`,gS/|.O.PR1R/}|!aPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_Q$dtW+c(T)W+g,jU.R+]+`,gR0P.P0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lR.{,_0w}PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lT$w{${Q(i%PQ(n%SQ(q%UR1d0gQ%b!]Q(m%RQ,U(lQ.r,TQ.t,VQ0a.sR1a0bQ%q!fR)]%rR)e%p",nodeNames:"\u26A0 ( HeredocString EscapeSequence abstract LogicOp array as Boolean break case catch clone const continue default declare do echo else elseif enddeclare endfor endforeach endif endswitch endwhile enum extends final finally fn for foreach from function global goto if implements include include_once LogicOp insteadof interface list match namespace new null LogicOp print require require_once return switch throw trait try unset use var Visibility while LogicOp yield LineComment BlockComment TextInterpolation PhpClose Text PhpOpen Template TextInterpolation EmptyStatement ; } { Block : LabelStatement Name ExpressionStatement ConditionalExpression LogicOp MatchExpression ) ( ParenthesizedExpression MatchBlock MatchArm , => AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["isolate",-4,66,67,70,191,""],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[aT],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!<h#Q#R!=U#R#S!7z#S#T!=u#T#U!7z#U#V!9W#V#o!7z#o#p!Co#p#q!D]#q#r!Er#r#s!F`#s$f$z$f$g&^$g&j!7z&j$I_$z$I_$I`&^$I`$KW$z$KW$KX&^$KX;'S$z;'S;=`&W<%l?HT$z?HT?HU&^?HUO$zP%PV&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zP%kO&wPP%nWOY$zYZ%fZ!a$z!b;'S$z;'S;=`&W<%l~$z~O$z~~%fP&ZP;=`<%l$zV&ed&wP&vUOX$zXY&^YZ'sZ]$z]^&^^p$zpq&^q!^$z!^!_%k!_$f$z$f$g&^$g$I_$z$I_$I`&^$I`$KW$z$KW$KX&^$KX;'S$z;'S;=`&W<%l?HT$z?HT?HU&^?HUO$zV'zW&wP&vUXY(dYZ(d]^(dpq(d$f$g(d$I_$I`(d$KW$KX(d?HT?HU(dU(iW&vUXY(dYZ(d]^(dpq(d$f$g(d$I_$I`(d$KW$KX(d?HT?HU(dR)YW$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`;'S$z;'S;=`&W<%lO$zR)yW$QQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`*c!`;'S$z;'S;=`&W<%lO$zR*jV$QQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV+YV'fS&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV+v]&wP!dUOY,oYZ%fZ],o]^$z^!^,o!^!_-i!_!a,o!a!b/y!b!},o!}#O1f#O;'S,o;'S;=`/s<%lO,oV,vZ&wP!dUOY,oYZ%fZ],o]^$z^!^,o!^!_-i!_!a,o!a!b/y!b;'S,o;'S;=`/s<%lO,oV-nZ!dUOY,oYZ%fZ],o]^$z^!a,o!a!b.a!b;'S,o;'S;=`/s<%l~,o~O,o~~%fU.dWOY.|YZ/nZ].|]^/n^!`.|!a;'S.|;'S;=`/h<%lO.|U/RV!dUOY.|Z].|^!a.|!a!b.a!b;'S.|;'S;=`/h<%lO.|U/kP;=`<%l.|U/sO!dUV/vP;=`<%l,oV0OZ&wPOY,oYZ0qZ],o]^0x^!^,o!^!_-i!_!`,o!`!a$z!a;'S,o;'S;=`/s<%lO,oV0xO&wP!dUV1PV&wP!dUOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV1oZ&wP$dQ!dUOY,oYZ%fZ],o]^$z^!^,o!^!_-i!_!a,o!a!b/y!b;'S,o;'S;=`/s<%lO,o_2i`&wP#dQOY$zYZ%fZ!^$z!^!_%k!_!c$z!c!}3k!}#R$z#R#S3k#S#T$z#T#o3k#o#p4w#p$g$z$g&j3k&j;'S$z;'S;=`&W<%lO$z_3ra&wP#b^OY$zYZ%fZ!Q$z!Q![3k![!^$z!^!_%k!_!c$z!c!}3k!}#R$z#R#S3k#S#T$z#T#o3k#o$g$z$g&j3k&j;'S$z;'S;=`&W<%lO$zV5OV&wP#eUOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR5lW&wP$VQOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR6]V#wQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV6yY#SU&wPOY$zYZ%fZv$zvw7iw!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR7pV#|Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR8^Z&wP%VQOY8VYZ9PZw8Vwx;_x!^8V!^!_;{!_#O8V#O#P<y#P;'S8V;'S;=`>V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR<Q]%VQOY8VYZ9PZw8Vwx;_x!a8V!a!b9m!b#O8V#O#P<y#P;'S8V;'S;=`>V<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!<RV#pU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!<oV#XQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!=]W$OQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!=zZ&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[iT,oT,rT,0,1,2,3,nT],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(i,e)=>eQ(i)<<1,external:eQ},{term:81,get:i=>lT[i]||-1}],tokenPrec:29378});var OT=54,cT=1,hT=55,fT=2,uT=56,dT=3,rQ=4,pT=5,Na=6,fQ=7,uQ=8,dQ=9,pQ=10,mT=11,gT=12,$T=13,mf=57,yT=14,sQ=58,mQ=20,QT=22,gQ=23,ST=24,$f=26,$Q=27,bT=28,xT=31,vT=34,wT=36,PT=37,kT=0,TT=1,zT={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},XT={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},oQ={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function RT(i){return i==45||i==46||i==58||i>=65&&i<=90||i==95||i>=97&&i<=122||i>=161}function yQ(i){return i==9||i==10||i==13||i==32}var aQ=null,lQ=null,OQ=0;function yf(i,e){let t=i.pos+e;if(OQ==t&&lQ==i)return aQ;let n=i.peek(e);for(;yQ(n);)n=i.peek(++e);let r="";for(;RT(n);)r+=String.fromCharCode(n),n=i.peek(++e);return lQ=i,OQ=t,aQ=r?r.toLowerCase():n==qT||n==_T?void 0:null}var QQ=60,Fa=62,Qf=47,qT=63,_T=33,CT=45;function cQ(i,e){this.name=i,this.parent=e}var WT=[Na,pQ,fQ,uQ,dQ],ZT=new Nn({start:null,shift(i,e,t,n){return WT.indexOf(e)>-1?new cQ(yf(n,1)||"",i):i},reduce(i,e){return e==mQ&&i?i.parent:i},reuse(i,e,t,n){let r=e.type.id;return r==Na||r==wT?new cQ(yf(n,1)||"",i):i},strict:!1}),VT=new $e((i,e)=>{if(i.next!=QQ){i.next<0&&e.context&&i.acceptToken(mf);return}i.advance();let t=i.next==Qf;t&&i.advance();let n=yf(i,0);if(n===void 0)return;if(!n)return i.acceptToken(t?yT:Na);let r=e.context?e.context.name:null;if(t){if(n==r)return i.acceptToken(mT);if(r&&XT[r])return i.acceptToken(mf,-2);if(e.dialectEnabled(kT))return i.acceptToken(gT);for(let s=e.context;s;s=s.parent)if(s.name==n)return;i.acceptToken($T)}else{if(n=="script")return i.acceptToken(fQ);if(n=="style")return i.acceptToken(uQ);if(n=="textarea")return i.acceptToken(dQ);if(zT.hasOwnProperty(n))return i.acceptToken(pQ);r&&oQ[r]&&oQ[r][n]?i.acceptToken(mf,-1):i.acceptToken(Na)}},{contextual:!0}),AT=new $e(i=>{for(let e=0,t=0;;t++){if(i.next<0){t&&i.acceptToken(sQ);break}if(i.next==CT)e++;else if(i.next==Fa&&e>=2){t>=3&&i.acceptToken(sQ,-2);break}else e=0;i.advance()}});function jT(i){for(;i;i=i.parent)if(i.name=="svg"||i.name=="math")return!0;return!1}var YT=new $e((i,e)=>{if(i.next==Qf&&i.peek(1)==Fa){let t=e.dialectEnabled(TT)||jT(e.context);i.acceptToken(t?pT:rQ,2)}else i.next==Fa&&i.acceptToken(rQ,1)});function Sf(i,e,t){let n=2+i.length;return new $e(r=>{for(let s=0,o=0,a=0;;a++){if(r.next<0){a&&r.acceptToken(e);break}if(s==0&&r.next==QQ||s==1&&r.next==Qf||s>=2&&s<n&&r.next==i.charCodeAt(s-2))s++,o++;else if((s==2||s==n)&&yQ(r.next))o++;else if(s==n&&r.next==Fa){a>o?r.acceptToken(e,-o):r.acceptToken(t,-(o-2));break}else if((r.next==10||r.next==13)&&a){r.acceptToken(e,1);break}else s=o=0;r.advance()}})}var UT=Sf("script",OT,cT),MT=Sf("style",hT,fT),ET=Sf("textarea",uT,dT),DT=_t({"Text RawText":$.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":$.angleBracket,TagName:$.tagName,"MismatchedCloseTag/TagName":[$.tagName,$.invalid],AttributeName:$.attributeName,"AttributeValue UnquotedAttributeValue":$.attributeValue,Is:$.definitionOperator,"EntityReference CharacterReference":$.character,Comment:$.blockComment,ProcessingInst:$.processingInstruction,DoctypeDecl:$.documentMeta}),SQ=At.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%ZQ&rO,59fO%fQ&rO,59iO%qQ&rO,59lO%|Q&rO,59nOOOa'#D^'#D^O&XOaO'#CxO&dOaO,59[OOOb'#D_'#D_O&lObO'#C{O&wObO,59[OOOd'#D`'#D`O'POdO'#DOO'[OdO,59[OOO`'#Da'#DaO'dO!rO,59[O'kQ#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'pO$fO,59oOOO`,59o,59oO'xQ#|O,59qO'}Q#|O,59rOOO`-E7W-E7WO(SQ&rO'#CsOOQW'#DZ'#DZO(bQ&rO1G.wOOOa1G.w1G.wOOO`1G/Y1G/YO(mQ&rO1G/QOOOb1G/Q1G/QO(xQ&rO1G/TOOOd1G/T1G/TO)TQ&rO1G/WOOO`1G/W1G/WO)`Q&rO1G/YOOOa-E7[-E7[O)kQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)pQ#tO'#C|OOOd-E7^-E7^O)uQ#tO'#DPOOO`-E7_-E7_O)zQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O*PQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOO`7+$t7+$tOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rO*[Q#|O,59eO*aQ#|O,59hO*fQ#|O,59kOOO`1G/X1G/XO*kO7[O'#CvO*|OMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O+_O7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+pOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:",]~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OT}OhyO~OS!POT}OhyO~OS!ROT}OhyO~OS!TOT}OhyO~OS}OT}OhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXTgXhgX~OS!fOT!gOhyO~OS!hOT!gOhyO~OS!iOT!gOhyO~OS!jOT!gOhyO~OS!gOT!gOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:ZT,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"],["isolate",-11,21,29,30,32,33,35,36,37,38,41,42,"ltr",-3,26,27,39,""]],propSources:[DT],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebhSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXhSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vchS`P!a`!cpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WihSkWc!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QchSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[UT,MT,ET,YT,VT,AT,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:509},tokenPrec:511});function bQ(i,e){let t=Object.create(null);for(let n of i.getChildren(gQ)){let r=n.getChild(ST),s=n.getChild($f)||n.getChild($Q);r&&(t[e.read(r.from,r.to)]=s?s.type.id==$f?e.read(s.from+1,s.to-1):e.read(s.from,s.to):"")}return t}function hQ(i,e){let t=i.getChild(QT);return t?e.read(t.from,t.to):" "}function gf(i,e,t){let n;for(let r of t)if(!r.attrs||r.attrs(n||(n=bQ(i.node.parent.firstChild,e))))return{parser:r.parser};return null}function bf(i=[],e=[]){let t=[],n=[],r=[],s=[];for(let a of i)(a.tag=="script"?t:a.tag=="style"?n:a.tag=="textarea"?r:s).push(a);let o=e.length?Object.create(null):null;for(let a of e)(o[a.name]||(o[a.name]=[])).push(a);return Oa((a,l)=>{let c=a.type.id;if(c==bT)return gf(a,l,t);if(c==xT)return gf(a,l,n);if(c==vT)return gf(a,l,r);if(c==mQ&&s.length){let O=a.node,h=O.firstChild,f=h&&hQ(h,l),u;if(f){for(let d of s)if(d.tag==f&&(!d.attrs||d.attrs(u||(u=bQ(h,l))))){let p=O.lastChild,m=p.type.id==PT?p.from:O.to;if(m>h.to)return{parser:d.parser,overlay:[{from:h.to,to:m}]}}}}if(o&&c==gQ){let O=a.node,h;if(h=O.firstChild){let f=o[l.read(h.from,h.to)];if(f)for(let u of f){if(u.tagName&&u.tagName!=hQ(O.parent,l))continue;let d=O.lastChild;if(d.type.id==$f){let p=d.from+1,m=d.lastChild,g=d.to-(m&&m.isError?0:1);if(g>p)return{parser:u.parser,overlay:[{from:p,to:g}]}}else if(d.type.id==$Q)return{parser:u.parser,overlay:[{from:d.from,to:d.to}]}}}}return null})}var BT=122,xQ=1,LT=123,GT=124,wQ=2,IT=125,NT=3,FT=4,PQ=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],HT=58,KT=40,kQ=95,JT=91,Ha=45,ez=46,tz=35,iz=37,nz=38,rz=92,sz=10,oz=42;function bs(i){return i>=65&&i<=90||i>=97&&i<=122||i>=161}function xf(i){return i>=48&&i<=57}function vQ(i){return xf(i)||i>=97&&i<=102||i>=65&&i<=70}var TQ=(i,e,t)=>(n,r)=>{for(let s=!1,o=0,a=0;;a++){let{next:l}=n;if(bs(l)||l==Ha||l==kQ||s&&xf(l))!s&&(l!=Ha||a>0)&&(s=!0),o===a&&l==Ha&&o++,n.advance();else if(l==rz&&n.peek(1)!=sz){if(n.advance(),vQ(n.next)){do n.advance();while(vQ(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();s=!0}else{s&&n.acceptToken(o==2&&r.canShift(wQ)?e:l==KT?t:i);break}}},az=new $e(TQ(LT,wQ,GT)),lz=new $e(TQ(IT,NT,FT)),Oz=new $e(i=>{if(PQ.includes(i.peek(-1))){let{next:e}=i;(bs(e)||e==kQ||e==tz||e==ez||e==oz||e==JT||e==HT&&bs(i.peek(1))||e==Ha||e==nz)&&i.acceptToken(BT)}}),cz=new $e(i=>{if(!PQ.includes(i.peek(-1))){let{next:e}=i;if(e==iz&&(i.advance(),i.acceptToken(xQ)),bs(e)){do i.advance();while(bs(i.next)||xf(i.next));i.acceptToken(xQ)}}}),hz=_t({"AtKeyword import charset namespace keyframes media supports":$.definitionKeyword,"from to selector":$.keyword,NamespaceName:$.namespace,KeyframeName:$.labelName,KeyframeRangeName:$.operatorKeyword,TagName:$.tagName,ClassName:$.className,PseudoClassName:$.constant($.className),IdName:$.labelName,"FeatureName PropertyName":$.propertyName,AttributeName:$.attributeName,NumberLiteral:$.number,KeywordQuery:$.keyword,UnaryQueryOp:$.operatorKeyword,"CallTag ValueName":$.atom,VariableName:$.variableName,Callee:$.operatorKeyword,Unit:$.unit,"UniversalSelector NestingSelector":$.definitionOperator,"MatchOp CompareOp":$.compareOperator,"ChildOp SiblingOp, LogicOp":$.logicOperator,BinOp:$.arithmeticOperator,Important:$.modifier,Comment:$.blockComment,ColorLiteral:$.color,"ParenthesizedContent StringLiteral":$.string,":":$.punctuation,"PseudoOp #":$.derefOperator,"; ,":$.separator,"( )":$.paren,"[ ]":$.squareBracket,"{ }":$.brace}),fz={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},uz={__proto__:null,or:98,and:98,not:106,only:106,layer:170},dz={__proto__:null,selector:112,layer:166},pz={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},mz={__proto__:null,to:207},zQ=At.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"\u26A0 Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[hz],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[Oz,cz,az,lz,1,2,3,4,new wi("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},specialized:[{term:124,get:i=>fz[i]||-1},{term:125,get:i=>uz[i]||-1},{term:4,get:i=>dz[i]||-1},{term:25,get:i=>pz[i]||-1},{term:123,get:i=>mz[i]||-1}],tokenPrec:1963});var vf=null;function wf(){if(!vf&&typeof document=="object"&&document.body){let{style:i}=document.body,e=[],t=new Set;for(let n in i)n!="cssText"&&n!="cssFloat"&&typeof i[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));vf=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return vf||[]}var XQ=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(i=>({type:"class",label:i})),RQ=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(i=>({type:"keyword",label:i})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(i=>({type:"constant",label:i}))),gz=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(i=>({type:"type",label:i})),$z=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(i=>({type:"keyword",label:i})),ei=/^(\w[\w-]*|-\w[\w-]*|)$/,yz=/^-(-[\w-]*)?$/;function Qz(i,e){var t;if((i.name=="("||i.type.isError)&&(i=i.parent||i),i.name!="ArgList")return!1;let n=(t=i.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}var qQ=new Wn,Sz=["Declaration"];function bz(i){for(let e=i;;){if(e.type.isTop)return e;if(!(e=e.parent))return i}}function _Q(i,e,t){if(e.to-e.from>4096){let n=qQ.get(e);if(n)return n;let r=[],s=new Set,o=e.cursor(H.IncludeAnonymous);if(o.firstChild())do for(let a of _Q(i,o.node,t))s.has(a.label)||(s.add(a.label),r.push(a));while(o.nextSibling());return qQ.set(e,r),r}else{let n=[],r=new Set;return e.cursor().iterate(s=>{var o;if(t(s)&&s.matchContext(Sz)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let a=i.sliceString(s.from,s.to);r.has(a)||(r.add(a),n.push({label:a,type:"variable"}))}}),n}}var xz=i=>e=>{let{state:t,pos:n}=e,r=ae(t).resolveInner(n,-1),s=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:wf(),validFor:ei};if(r.name=="ValueName")return{from:r.from,options:RQ,validFor:ei};if(r.name=="PseudoClassName")return{from:r.from,options:XQ,validFor:ei};if(i(r)||(e.explicit||s)&&Qz(r,t.doc))return{from:i(r)||s?r.from:n,options:_Q(t.doc,bz(r),i),validFor:yz};if(r.name=="TagName"){for(let{parent:l}=r;l;l=l.parent)if(l.name=="Block")return{from:r.from,options:wf(),validFor:ei};return{from:r.from,options:gz,validFor:ei}}if(r.name=="AtKeyword")return{from:r.from,options:$z,validFor:ei};if(!e.explicit)return null;let o=r.resolve(n),a=o.childBefore(n);return a&&a.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:XQ,validFor:ei}:a&&a.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:RQ,validFor:ei}:o.name=="Block"||o.name=="Styles"?{from:n,options:wf(),validFor:ei}:null},vz=xz(i=>i.name=="VariableName"),xs=Ct.define({name:"css",parser:zQ.configure({props:[Ft.add({Declaration:Zt()}),Ht.add({"Block KeyframeList":Un})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function CQ(){return new Wt(xs,xs.data.of({autocomplete:vz}))}var wz=315,Pz=316,WQ=1,kz=2,Tz=3,zz=4,Xz=317,Rz=319,qz=320,_z=5,Cz=6,Wz=0,kf=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],ZQ=125,Zz=59,Tf=47,Vz=42,Az=43,jz=45,Yz=60,Uz=44,Mz=63,Ez=46,Dz=91,Bz=new Nn({start:!1,shift(i,e){return e==_z||e==Cz||e==Rz?i:e==qz},strict:!1}),Lz=new $e((i,e)=>{let{next:t}=i;(t==ZQ||t==-1||e.context)&&i.acceptToken(Xz)},{contextual:!0,fallback:!0}),Gz=new $e((i,e)=>{let{next:t}=i,n;kf.indexOf(t)>-1||t==Tf&&((n=i.peek(1))==Tf||n==Vz)||t!=ZQ&&t!=Zz&&t!=-1&&!e.context&&i.acceptToken(wz)},{contextual:!0}),Iz=new $e((i,e)=>{i.next==Dz&&!e.context&&i.acceptToken(Pz)},{contextual:!0}),Nz=new $e((i,e)=>{let{next:t}=i;if(t==Az||t==jz){if(i.advance(),t==i.next){i.advance();let n=!e.context&&e.canShift(WQ);i.acceptToken(n?WQ:kz)}}else t==Mz&&i.peek(1)==Ez&&(i.advance(),i.advance(),(i.next<48||i.next>57)&&i.acceptToken(Tz))},{contextual:!0});function Pf(i,e){return i>=65&&i<=90||i>=97&&i<=122||i==95||i>=192||!e&&i>=48&&i<=57}var Fz=new $e((i,e)=>{if(i.next!=Yz||!e.dialectEnabled(Wz)||(i.advance(),i.next==Tf))return;let t=0;for(;kf.indexOf(i.next)>-1;)i.advance(),t++;if(Pf(i.next,!0)){for(i.advance(),t++;Pf(i.next,!1);)i.advance(),t++;for(;kf.indexOf(i.next)>-1;)i.advance(),t++;if(i.next==Uz)return;for(let n=0;;n++){if(n==7){if(!Pf(i.next,!0))return;break}if(i.next!="extends".charCodeAt(n))break;i.advance(),t++}}i.acceptToken(zz,-t)}),Hz=_t({"get set async static":$.modifier,"for while do if else switch try catch finally return throw break continue default case":$.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":$.operatorKeyword,"let var const using function class extends":$.definitionKeyword,"import export from":$.moduleKeyword,"with debugger new":$.keyword,TemplateString:$.special($.string),super:$.atom,BooleanLiteral:$.bool,this:$.self,null:$.null,Star:$.modifier,VariableName:$.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":$.function($.variableName),VariableDefinition:$.definition($.variableName),Label:$.labelName,PropertyName:$.propertyName,PrivatePropertyName:$.special($.propertyName),"CallExpression/MemberExpression/PropertyName":$.function($.propertyName),"FunctionDeclaration/VariableDefinition":$.function($.definition($.variableName)),"ClassDeclaration/VariableDefinition":$.definition($.className),"NewExpression/VariableName":$.className,PropertyDefinition:$.definition($.propertyName),PrivatePropertyDefinition:$.definition($.special($.propertyName)),UpdateOp:$.updateOperator,"LineComment Hashbang":$.lineComment,BlockComment:$.blockComment,Number:$.number,String:$.string,Escape:$.escape,ArithOp:$.arithmeticOperator,LogicOp:$.logicOperator,BitOp:$.bitwiseOperator,CompareOp:$.compareOperator,RegExp:$.regexp,Equals:$.definitionOperator,Arrow:$.function($.punctuation),": Spread":$.punctuation,"( )":$.paren,"[ ]":$.squareBracket,"{ }":$.brace,"InterpolationStart InterpolationEnd":$.special($.brace),".":$.derefOperator,", ;":$.separator,"@":$.meta,TypeName:$.typeName,TypeDefinition:$.definition($.typeName),"type enum interface implements namespace module declare":$.definitionKeyword,"abstract global Privacy readonly override":$.modifier,"is keyof unique infer asserts":$.operatorKeyword,JSXAttributeValue:$.attributeValue,JSXText:$.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":$.angleBracket,"JSXIdentifier JSXNameSpacedName":$.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":$.attributeName,"JSXBuiltin/JSXIdentifier":$.standard($.tagName)}),Kz={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,for:474,of:483,while:486,with:490,do:494,if:498,else:500,switch:504,case:510,try:516,catch:520,finally:524,return:528,throw:532,break:536,continue:540,debugger:544},Jz={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},e5={__proto__:null,"<":193},VQ=At.deserialize({version:14,states:"$EOQ%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Ik'#IkO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JqO6[Q!0MxO'#JrO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO7eQMhO'#F|O9[Q`O'#F{OOQ!0Lf'#Jr'#JrOOQ!0Lb'#Jq'#JqO9aQ`O'#GwOOQ['#K^'#K^O9lQ`O'#IXO9qQ!0LrO'#IYOOQ['#J_'#J_OOQ['#I^'#I^Q`QlOOQ`QlOOO9yQ!L^O'#DvO:QQlO'#EOO:XQlO'#EQO9gQ`O'#GsO:`QMhO'#CoO:nQ`O'#EnO:yQ`O'#EyO;OQMhO'#FeO;mQ`O'#GsOOQO'#K_'#K_O;rQ`O'#K_O<QQ`O'#G{O<QQ`O'#G|O<QQ`O'#HOO9gQ`O'#HRO<wQ`O'#HUO>`Q`O'#CeO>pQ`O'#HbO>xQ`O'#HhO>xQ`O'#HjO`QlO'#HlO>xQ`O'#HnO>xQ`O'#HqO>}Q`O'#HwO?SQ!0LsO'#H}O%[QlO'#IPO?_Q!0LsO'#IRO?jQ!0LsO'#ITO9qQ!0LrO'#IVO?uQ!0MxO'#CiO@wQpO'#DlQOQ`OOO%[QlO'#EQOA_Q`O'#ETO:`QMhO'#EnOAjQ`O'#EnOAuQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Ju'#JuO%[QlO'#JuOOQO'#Jx'#JxOOQO'#Ig'#IgOBuQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J|'#J|OCqQ!0MSO'#EgOC{QpO'#EWOOQO'#Jw'#JwODaQpO'#JxOEnQpO'#EWOC{QpO'#EgPE{O&2DjO'#CbPOOO)CD|)CD|OOOO'#I_'#I_OFWO#tO,59UOOQ!0Lh,59U,59UOOOO'#I`'#I`OFfO&jO,59UOFtQ!L^O'#DcOOOO'#Ib'#IbOF{O#@ItO,59{OOQ!0Lf,59{,59{OGZQlO'#IcOGnQ`O'#JsOImQ!fO'#JsO+}QlO'#JsOItQ`O,5:ROJ[Q`O'#EpOJiQ`O'#KSOJtQ`O'#KROJtQ`O'#KROJ|Q`O,5;^OKRQ`O'#KQOOQ!0Ln,5:^,5:^OKYQlO,5:^OMWQ!0MxO,5:fOMwQ`O,5:nONbQ!0LrO'#KPONiQ`O'#KOO9aQ`O'#KOON}Q`O'#KOO! VQ`O,5;]O! [Q`O'#KOO!#aQ!fO'#JrOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$PQ!fO,5:sOOQS'#Jy'#JyOOQO-E<i-E<iO9gQ`O,5=_O!$gQ`O,5=_O!$lQlO,5;ZO!&oQMhO'#EkO!(YQ`O,5;ZO!(_QlO'#DyO!(iQpO,5;dO!(qQpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)PQlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IoO!+SQ!0LrO,5<iO%[QlO,5;eO!&oQMhO,5;eO!+qQMhO,5;eO!-cQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-jQ,UO'#FjO!.gQ,UO'#KWO!.RQ,UO'#KWO!.nQ,UO'#KWOOQO'#KW'#KWO!/SQ,UO,5<SOOOW,5<`,5<`O!/eQlO'#FvOOOW'#In'#InO7VO7dO,5<QO!/lQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0]Q$IUO'#CyOOQ!0Lh'#C}'#C}O!0pO#@ItO'#DRO!1^QMjO,5<eO!1eQ`O,5<hO!3QQ(CWO'#GXO!3_Q`O'#GYO!3dQ`O'#GYO!5SQ(CWO'#G^O!6XQpO'#GbOOQO'#Gn'#GnO!+xQMhO'#GmOOQO'#Gp'#GpO!+xQMhO'#GoO!6zQ$IUO'#JkOOQ!0Lh'#Jk'#JkO!7UQ`O'#JjO!7dQ`O'#JiO!7lQ`O'#CuOOQ!0Lh'#C{'#C{O!7}Q`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO1SQ`O'#DZO!+xQMhO'#GPO!+xQMhO'#GRO!8SQ`O'#GTO!8XQ`O'#GUO!3dQ`O'#G[O!+xQMhO'#GaO<QQ`O'#JjO!8^Q`O'#EqO!8{Q`O,5<gOOQ!0Lb'#Cr'#CrO!9TQ`O'#ErO!9}QpO'#EsOOQ!0Lb'#KQ'#KQO!:UQ!0LrO'#K`O9qQ!0LrO,5=cO`QlO,5>sOOQ['#Jg'#JgOOQ[,5>t,5>tOOQ[-E<[-E<[O!<TQ!0MxO,5:bO!9xQpO,5:`O!>nQ!0MxO,5:jO%[QlO,5:jO!AUQ!0MxO,5:lOOQO,5@y,5@yO!AuQMhO,5=_O!BTQ!0LrO'#JhO9[Q`O'#JhO!BfQ!0LrO,59ZO!BqQpO,59ZO!ByQMhO,59ZO:`QMhO,59ZO!CUQ`O,5;ZO!C^Q`O'#HaO!CrQ`O'#KcO%[QlO,5;}O!9xQpO,5<PO!CzQ`O,5=zO!DPQ`O,5=zO!DUQ`O,5=zO9qQ!0LrO,5=zO<QQ`O,5=jOOQO'#Cy'#CyO!DdQpO,5=gO!DlQMhO,5=hO!DwQ`O,5=jO!D|Q!bO,5=mO!EUQ`O'#K_O>}Q`O'#HWO9gQ`O'#HYO!EZQ`O'#HYO:`QMhO'#H[O!E`Q`O'#H[OOQ[,5=p,5=pO!EeQ`O'#H]O!EvQ`O'#CoO!E{Q`O,59PO!FVQ`O,59PO!H[QlO,59POOQ[,59P,59PO!HlQ!0LrO,59PO%[QlO,59PO!JwQlO'#HdOOQ['#He'#HeOOQ['#Hf'#HfO`QlO,5=|O!K_Q`O,5=|O`QlO,5>SO`QlO,5>UO!KdQ`O,5>WO`QlO,5>YO!KiQ`O,5>]O!KnQlO,5>cOOQ[,5>i,5>iO%[QlO,5>iO9qQ!0LrO,5>kOOQ[,5>m,5>mO# xQ`O,5>mOOQ[,5>o,5>oO# xQ`O,5>oOOQ[,5>q,5>qO#!fQpO'#D_O%[QlO'#JuO##XQpO'#JuO##cQpO'#DmO##tQpO'#DmO#&VQlO'#DmO#&^Q`O'#JtO#&fQ`O,5:WO#&kQ`O'#EtO#&yQ`O'#KTO#'RQ`O,5;_O#'WQpO'#DmO#'eQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#'lQ`O,5:oO>}Q`O,5;YO!BqQpO,5;YO!ByQMhO,5;YO:`QMhO,5;YO#'tQ`O,5@aO#'yQ07dO,5:sOOQO-E<e-E<eO#)PQ!0MSO,5;ROC{QpO,5:rO#)ZQpO,5:rOC{QpO,5;RO!BfQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#)hQ!0LrO,5;RO#)sQ!0LrO,5;RO!BqQpO,5:rOOQO,5;X,5;XO#*RQ!0LrO,5;RPOOO'#I]'#I]P#*gO&2DjO,58|POOO,58|,58|OOOO-E<]-E<]OOQ!0Lh1G.p1G.pOOOO-E<^-E<^OOOO,59},59}O#*rQ!bO,59}OOOO-E<`-E<`OOQ!0Lf1G/g1G/gO#*wQ!fO,5>}O+}QlO,5>}OOQO,5?T,5?TO#+RQlO'#IcOOQO-E<a-E<aO#+`Q`O,5@_O#+hQ!fO,5@_O#+oQ`O,5@mOOQ!0Lf1G/m1G/mO%[QlO,5@nO#+wQ`O'#IiOOQO-E<g-E<gO#+oQ`O,5@mOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@kO#,]Q!0LrO,5@kO#,nQ!0LrO,5@kO#,uQ`O,5@jO9aQ`O,5@jO#,}Q`O,5@jO#-]Q`O'#IlO#,uQ`O,5@jOOQ!0Lb1G0w1G0wO!(iQpO,5:uO!(tQpO,5:uOOQS,5:w,5:wO#-}QdO,5:wO#.VQMhO1G2yO9gQ`O1G2yOOQ!0Lf1G0u1G0uO#.eQ!0MxO1G0uO#/jQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0WQ!0MzO'#JkO!$lQlO1G0uO#2cQ!fO'#JvO%[QlO'#JvO#2mQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#2rQ`O1G1OO#5WQ!0MxO1G1PO#5_Q!0MxO1G1PO#7uQ!0MxO1G1PO#7|Q!0MxO1G1PO#:dQ!0MxO1G1PO#<zQ!0MxO1G1PO#=RQ!0MxO1G1PO#=YQ!0MxO1G1PO#?pQ!0MxO1G1PO#?wQ!0MxO1G1PO#BUQ?MtO'#CiO#DPQ?MtO1G1`O#DWQ?MtO'#JrO#DkQ!0MxO,5?ZOOQ!0Lb-E<m-E<mO#FxQ!0MxO1G1PO#GuQ!0MzO1G1POOQ!0Lf1G1P1G1PO#HxQMjO'#J{O#ISQ`O,5:xO#IXQ!0MxO1G1cO#I{Q,UO,5<WO#JTQ,UO,5<XO#J]Q,UO'#FoO#JtQ`O'#FnOOQO'#KX'#KXOOQO'#Im'#ImO#JyQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#K[Q?MtO'#JqO#KfQ`O,5<bO!)PQlO,5<bOOOW-E<l-E<lOOQ!0Lf1G1l1G1lO#KkQpO'#KWOOQ!0Lf,5<d,5<dO#KsQpO,5<dO#KxQMhO'#DTOOOO'#Ia'#IaO#LPO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8XQ`O'#IqO#L[Q`O,5<zOOQ!0Lh,5<w,5<wO!+xQMhO'#ItO#LxQMjO,5=XO!+xQMhO'#IvO#MkQMjO,5=ZO!&oQMhO,5=]OOQO1G2S1G2SO#MuQ!dO'#CrO#NYQ(CWO'#ErO$ _QpO'#GbO$ uQ!dO,5<sO$ |Q`O'#KZO9aQ`O'#KZO$![Q`O,5<uO!+xQMhO,5<tO$!aQ`O'#GZO$!rQ`O,5<tO$!wQ!dO'#GWO$#UQ!dO'#K[O$#`Q`O'#K[O!&oQMhO'#K[O$#eQ`O,5<xO$#jQlO'#JuO$#tQpO'#GcO##tQpO'#GcO$$VQ`O'#GgO!3dQ`O'#GkO$$[Q!0LrO'#IsO$$gQpO,5<|OOQ!0Lp,5<|,5<|O$$nQpO'#GcO$${QpO'#GdO$%^QpO'#GdO$%cQMjO,5=XO$%sQMjO,5=ZOOQ!0Lh,5=^,5=^O!+xQMhO,5@UO!+xQMhO,5@UO$&TQ`O'#IxO$&iQ`O,5@TO$&qQ`O,59aOOQ!0Lh,59i,59iO$'hQ$IYO,59uOOQ!0Lh'#Jo'#JoO$(ZQMjO,5<kO$(|QMjO,5<mO@oQ`O,5<oOOQ!0Lh,5<p,5<pO$)WQ`O,5<vO$)]QMjO,5<{O$)mQ`O,5@UO$){Q`O'#KOO!$lQlO1G2RO$*QQ`O1G2RO9aQ`O'#KRO9aQ`O'#EtO%[QlO'#EtO9aQ`O'#IzO$*VQ!0LrO,5@zOOQ[1G2}1G2}OOQ[1G4_1G4_OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$,XQ!0MxO1G0UOOQ[1G2y1G2yO!&oQMhO1G2yO%[QlO1G2yO#.YQ`O1G2yO$.]QMhO'#EkOOQ!0Lb,5@S,5@SO$.jQ!0LrO,5@SOOQ[1G.u1G.uO!BfQ!0LrO1G.uO!BqQpO1G.uO!ByQMhO1G.uO$.{Q`O1G0uO$/QQ`O'#CiO$/]Q`O'#KdO$/eQ`O,5={O$/jQ`O'#KdO$/oQ`O'#KdO$/}Q`O'#JQO$0]Q`O,5@}O$0eQ!fO1G1iOOQ!0Lf1G1k1G1kO9gQ`O1G3fO@oQ`O1G3fO$0lQ`O1G3fO$0qQ`O1G3fOOQ[1G3f1G3fO!DwQ`O1G3UO!&oQMhO1G3RO$0vQ`O1G3ROOQ[1G3S1G3SO!&oQMhO1G3SO$0{Q`O1G3SO$1TQpO'#HQOOQ[1G3U1G3UO!6SQpO'#I|O!D|Q!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$1]QMhO,5=tO9gQ`O,5=tO$$VQ`O,5=vO9[Q`O,5=vO!BqQpO,5=vO!ByQMhO,5=vO:`QMhO,5=vO$1kQ`O'#KbO$1vQ`O,5=wOOQ[1G.k1G.kO$1{Q!0LrO1G.kO@oQ`O1G.kO$2WQ`O1G.kO9qQ!0LrO1G.kO$4`Q!fO,5APO$4mQ`O,5APO9aQ`O,5APO$4xQlO,5>OO$5PQ`O,5>OOOQ[1G3h1G3hO`QlO1G3hOOQ[1G3n1G3nOOQ[1G3p1G3pO>xQ`O1G3rO$5UQlO1G3tO$9YQlO'#HsOOQ[1G3w1G3wO$9gQ`O'#HyO>}Q`O'#H{OOQ[1G3}1G3}O$9oQlO1G3}O9qQ!0LrO1G4TOOQ[1G4V1G4VOOQ!0Lb'#G_'#G_O9qQ!0LrO1G4XO9qQ!0LrO1G4ZO$=vQ`O,5@aO!)PQlO,5;`O9aQ`O,5;`O>}Q`O,5:XO!)PQlO,5:XO!BqQpO,5:XO$={Q?MtO,5:XOOQO,5;`,5;`O$>VQpO'#IdO$>mQ`O,5@`OOQ!0Lf1G/r1G/rO$>uQpO'#IjO$?PQ`O,5@oOOQ!0Lb1G0y1G0yO##tQpO,5:XOOQO'#If'#IfO$?XQpO,5:qOOQ!0Ln,5:q,5:qO#'oQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO>}Q`O1G0tO!BqQpO1G0tO!ByQMhO1G0tOOQ!0Lb1G5{1G5{O!BfQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$?`Q!0LrO1G0mO$?kQ!0LrO1G0mO!BqQpO1G0^OC{QpO1G0^O$?yQ!0LrO1G0mOOQO1G0^1G0^O$@_Q!0MxO1G0mPOOO-E<Z-E<ZPOOO1G.h1G.hOOOO1G/i1G/iO$@iQ!bO,5<iO$@qQ!fO1G4iOOQO1G4o1G4oO%[QlO,5>}O$@{Q`O1G5yO$ATQ`O1G6XO$A]Q!fO1G6YO9aQ`O,5?TO$AgQ!0MxO1G6VO%[QlO1G6VO$AwQ!0LrO1G6VO$BYQ`O1G6UO$BYQ`O1G6UO9aQ`O1G6UO$BbQ`O,5?WO9aQ`O,5?WOOQO,5?W,5?WO$BvQ`O,5?WO$){Q`O,5?WOOQO-E<j-E<jOOQS1G0a1G0aOOQS1G0c1G0cO#.QQ`O1G0cOOQ[7+(e7+(eO!&oQMhO7+(eO%[QlO7+(eO$CUQ`O7+(eO$CaQMhO7+(eO$CoQ!0MzO,5=XO$EzQ!0MzO,5=ZO$HVQ!0MzO,5=XO$JhQ!0MzO,5=ZO$LyQ!0MzO,59uO% OQ!0MzO,5<kO%#ZQ!0MzO,5<mO%%fQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%'wQ!0MxO7+&aO%(kQlO'#IeO%(xQ`O,5@bO%)QQ!fO,5@bOOQ!0Lf1G0P1G0PO%)[Q`O7+&jOOQ!0Lf7+&j7+&jO%)aQ?MtO,5:fO%[QlO7+&zO%)kQ?MtO,5:bO%)xQ?MtO,5:jO%*SQ?MtO,5:lO%*^QMhO'#IhO%*hQ`O,5@gOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%*pQ!jO,5<ZO!)PQlO,5<YOOQO-E<k-E<kOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%*{Q`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%+QQ!dO,59oOOOO-E<_-E<_OOQ!0Lh1G/X1G/XO%+XQ!0MxO7+'kOOQ!0Lh,5?],5?]O%+{QMhO1G2fP%,SQ`O'#IqPOQ!0Lh-E<o-E<oO%,pQMjO,5?`OOQ!0Lh-E<r-E<rO%-cQMjO,5?bOOQ!0Lh-E<t-E<tO%-mQ!dO1G2wO%-tQ!dO'#CrO%.[QMhO'#KRO$#jQlO'#JuOOQ!0Lh1G2_1G2_O%.cQ`O'#IpO%.wQ`O,5@uO%.wQ`O,5@uO%/PQ`O,5@uO%/[Q`O,5@uOOQO1G2a1G2aO%/jQMjO1G2`O!+xQMhO1G2`O%/zQ(CWO'#IrO%0XQ`O,5@vO!&oQMhO,5@vO%0aQ!dO,5@vOOQ!0Lh1G2d1G2dO%2qQ!fO'#CiO%2{Q`O,5=POOQ!0Lb,5<},5<}O%3TQpO,5<}OOQ!0Lb,5=O,5=OOClQ`O,5<}O%3`QpO,5<}OOQ!0Lb,5=R,5=RO$){Q`O,5=VOOQO,5?_,5?_OOQO-E<q-E<qOOQ!0Lp1G2h1G2hO##tQpO,5<}O$#jQlO,5=PO%3nQ`O,5=OO%3yQpO,5=OO!+xQMhO'#ItO%4sQMjO1G2sO!+xQMhO'#IvO%5fQMjO1G2uO%5pQMjO1G5pO%5zQMjO1G5pOOQO,5?d,5?dOOQO-E<v-E<vOOQO1G.{1G.{O!9xQpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%6XQ`O1G2ZO!+xQMhO1G2bO!+xQMhO1G5pO!+xQMhO1G5pO%6^Q!0MxO7+'mOOQ!0Lf7+'m7+'mO!$lQlO7+'mO%7QQ`O,5;`OOQ!0Lb,5?f,5?fOOQ!0Lb-E<x-E<xO%7VQ!dO'#K]O#'oQ`O7+(eO4UQ!fO7+(eO$CXQ`O7+(eO%7aQ!0MvO'#CiO%7tQ!0MvO,5=SO%8fQ`O,5=SO%8nQ`O,5=SOOQ!0Lb1G5n1G5nOOQ[7+$a7+$aO!BfQ!0LrO7+$aO!BqQpO7+$aO!$lQlO7+&aO%8sQ`O'#JPO%9[Q`O,5AOOOQO1G3g1G3gO9gQ`O,5AOO%9[Q`O,5AOO%9dQ`O,5AOOOQO,5?l,5?lOOQO-E=O-E=OOOQ!0Lf7+'T7+'TO%9iQ`O7+)QO9qQ!0LrO7+)QO9gQ`O7+)QO@oQ`O7+)QOOQ[7+(p7+(pO%9nQ!0MvO7+(mO!&oQMhO7+(mO!DrQ`O7+(nOOQ[7+(n7+(nO!&oQMhO7+(nO%9xQ`O'#KaO%:TQ`O,5=lOOQO,5?h,5?hOOQO-E<z-E<zOOQ[7+(s7+(sO%;gQpO'#HZOOQ[1G3`1G3`O!&oQMhO1G3`O%[QlO1G3`O%;nQ`O1G3`O%;yQMhO1G3`O9qQ!0LrO1G3bO$$VQ`O1G3bO9[Q`O1G3bO!BqQpO1G3bO!ByQMhO1G3bO%<XQ`O'#JOO%<mQ`O,5@|O%<uQpO,5@|OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@oQ`O7+$VO9qQ!0LrO7+$VO%=QQ`O7+$VO%[QlO1G6kO%[QlO1G6lO%=VQ!0LrO1G6kO%=aQlO1G3jO%=hQ`O1G3jO%=mQlO1G3jOOQ[7+)S7+)SO9qQ!0LrO7+)^O`QlO7+)`OOQ['#Kg'#KgOOQ['#JR'#JRO%=tQlO,5>_OOQ[,5>_,5>_O%[QlO'#HtO%>RQ`O'#HvOOQ[,5>e,5>eO9aQ`O,5>eOOQ[,5>g,5>gOOQ[7+)i7+)iOOQ[7+)o7+)oOOQ[7+)s7+)sOOQ[7+)u7+)uO%>WQpO1G5{O%>rQ?MtO1G0zO%>|Q`O1G0zOOQO1G/s1G/sO%?XQ?MtO1G/sO>}Q`O1G/sO!)PQlO'#DmOOQO,5?O,5?OOOQO-E<b-E<bOOQO,5?U,5?UOOQO-E<h-E<hO!BqQpO1G/sOOQO-E<d-E<dOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#'oQ`O7+%uOOQ!0Lf7+&`7+&`O>}Q`O7+&`O!BqQpO7+&`OOQO7+%x7+%xO$@_Q!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%?cQ!0LrO7+&XO!BfQ!0LrO7+%xO!BqQpO7+%xO%?nQ!0LrO7+&XO%?|Q!0MxO7++qO%[QlO7++qO%@^Q`O7++pO%@^Q`O7++pOOQO1G4r1G4rO9aQ`O1G4rO%@fQ`O1G4rOOQS7+%}7+%}O#'oQ`O<<LPO4UQ!fO<<LPO%@tQ`O<<LPOOQ[<<LP<<LPO!&oQMhO<<LPO%[QlO<<LPO%@|Q`O<<LPO%AXQ!0MzO,5?`O%CdQ!0MzO,5?bO%EoQ!0MzO1G2`O%HQQ!0MzO1G2sO%J]Q!0MzO1G2uO%LhQ!fO,5?PO%[QlO,5?POOQO-E<c-E<cO%LrQ`O1G5|OOQ!0Lf<<JU<<JUO%LzQ?MtO1G0uO& RQ?MtO1G1PO& YQ?MtO1G1PO&#ZQ?MtO1G1PO&#bQ?MtO1G1PO&%cQ?MtO1G1PO&'dQ?MtO1G1PO&'kQ?MtO1G1PO&'rQ?MtO1G1PO&)sQ?MtO1G1PO&)zQ?MtO1G1PO&*RQ!0MxO<<JfO&+yQ?MtO1G1PO&,vQ?MvO1G1PO&-yQ?MvO'#JkO&0PQ?MtO1G1cO&0^Q?MtO1G0UO&0hQMjO,5?SOOQO-E<f-E<fO!)PQlO'#FqOOQO'#KY'#KYOOQO1G1u1G1uO&0rQ`O1G1tO&0wQ?MtO,5?ZOOOW7+'h7+'hOOOO1G/Z1G/ZO&1RQ!dO1G4wOOQ!0Lh7+(Q7+(QP!&oQMhO,5?]O!+xQMhO7+(cO&1YQ`O,5?[O9aQ`O,5?[OOQO-E<n-E<nO&1hQ`O1G6aO&1hQ`O1G6aO&1pQ`O1G6aO&1{QMjO7+'zO&2]Q!dO,5?^O&2gQ`O,5?^O!&oQMhO,5?^OOQO-E<p-E<pO&2lQ!dO1G6bO&2vQ`O1G6bO&3OQ`O1G2kO!&oQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%3TQpO1G2iO!BqQpO1G2iOClQ`O1G2iOOQ!0Lb1G2q1G2qO&3TQpO1G2iO&3cQ`O1G2kO$){Q`O1G2jOClQ`O1G2jO$#jQlO1G2kO&3kQ`O1G2jO&4_QMjO,5?`OOQ!0Lh-E<s-E<sO&5QQMjO,5?bOOQ!0Lh-E<u-E<uO!+xQMhO7++[OOQ!0Lh1G/c1G/cO&5[Q`O1G/cOOQ!0Lh7+'u7+'uO&5aQMjO7+'|O&5qQMjO7++[O&5{QMjO7++[O&6YQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&6|Q`O1G0zO!&oQMhO'#IyO&7RQ`O,5@wO&9TQ!fO<<LPO!&oQMhO1G2nO&9[Q!0LrO1G2nOOQ[<<G{<<G{O!BfQ!0LrO<<G{O&9mQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?k,5?kO&:aQ`O,5?kO&:fQ`O,5?kOOQO-E<}-E<}O&:tQ`O1G6jO&:tQ`O1G6jO9gQ`O1G6jO@oQ`O<<LlOOQ[<<Ll<<LlO&:|Q`O<<LlO9qQ!0LrO<<LlOOQ[<<LX<<LXO%9nQ!0MvO<<LXOOQ[<<LY<<LYO!DrQ`O<<LYO&;RQpO'#I{O&;^Q`O,5@{O!)PQlO,5@{OOQ[1G3W1G3WOOQO'#I}'#I}O9qQ!0LrO'#I}O&;fQpO,5=uOOQ[,5=u,5=uO&;mQpO'#EgO&;tQpO'#GeO&;yQ`O7+(zO&<OQ`O7+(zOOQ[7+(z7+(zO!&oQMhO7+(zO%[QlO7+(zO&<WQ`O7+(zOOQ[7+(|7+(|O9qQ!0LrO7+(|O$$VQ`O7+(|O9[Q`O7+(|O!BqQpO7+(|O&<cQ`O,5?jOOQO-E<|-E<|OOQO'#H^'#H^O&<nQ`O1G6hO9qQ!0LrO<<GqOOQ[<<Gq<<GqO@oQ`O<<GqO&<vQ`O7+,VO&<{Q`O7+,WO%[QlO7+,VO%[QlO7+,WOOQ[7+)U7+)UO&=QQ`O7+)UO&=VQlO7+)UO&=^Q`O7+)UOOQ[<<Lx<<LxOOQ[<<Lz<<LzOOQ[-E=P-E=POOQ[1G3y1G3yO&=cQ`O,5>`OOQ[,5>b,5>bO&=hQ`O1G4PO9aQ`O7+&fO!)PQlO7+&fOOQO7+%_7+%_O&=mQ?MtO1G6YO>}Q`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO>}Q`O<<IzOOQO<<Is<<IsO$@_Q!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!BfQ!0LrO<<IdO&=wQ!0LrO<<IsO&>SQ!0MxO<= ]O&>dQ`O<= [OOQO7+*^7+*^O9aQ`O7+*^OOQ[ANAkANAkO&>lQ!fOANAkO!&oQMhOANAkO#'oQ`OANAkO4UQ!fOANAkO&>sQ`OANAkO%[QlOANAkO&>{Q!0MzO7+'zO&A^Q!0MzO,5?`O&CiQ!0MzO,5?bO&EtQ!0MzO7+'|O&HVQ!fO1G4kO&HaQ?MtO7+&aO&JeQ?MvO,5=XO&LlQ?MvO,5=ZO&L|Q?MvO,5=XO&M^Q?MvO,5=ZO&MnQ?MvO,59uO' tQ?MvO,5<kO'#wQ?MvO,5<mO'&]Q?MvO,5<{O'(RQ?MtO7+'kO'(`Q?MtO7+'mO'(mQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*c7+*cO'(rQMjO<<K}OOQO1G4v1G4vO'(yQ`O1G4vO')UQ`O1G4vO')dQ`O7++{O')dQ`O7++{O!&oQMhO1G4xO')lQ!dO1G4xO')vQ`O7++|O'*OQ`O7+(VO'*ZQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!BqQpO7+(TOClQ`O7+(TO'*eQ`O7+(VO!&oQMhO7+(VO$){Q`O7+(UO'*jQ`O7+(VOClQ`O7+(UO'*rQMjO<<NvOOQ!0Lh7+$}7+$}O!+xQMhO<<NvO'*|Q!dO,5?eOOQO-E<w-E<wO'+WQ!0MvO7+(YO!&oQMhO7+(YOOQ[AN=gAN=gO9gQ`O1G5VOOQO1G5V1G5VO'+hQ`O1G5VO'+mQ`O7+,UO'+mQ`O7+,UO9qQ!0LrOANBWO@oQ`OANBWOOQ[ANBWANBWOOQ[ANAsANAsOOQ[ANAtANAtO'+uQ`O,5?gOOQO-E<y-E<yO',QQ?MtO1G6gOOQO,5?i,5?iOOQO-E<{-E<{OOQ[1G3a1G3aO',[Q`O,5=POOQ[<<Lf<<LfO!&oQMhO<<LfO&;yQ`O<<LfO',aQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9qQ!0LrO<<LhO$$VQ`O<<LhO9[Q`O<<LhO',iQpO1G5UO',tQ`O7+,SOOQ[AN=]AN=]O9qQ!0LrOAN=]OOQ[<= q<= qOOQ[<= r<= rO',|Q`O<= qO'-RQ`O<= rOOQ[<<Lp<<LpO'-WQ`O<<LpO'-]QlO<<LpOOQ[1G3z1G3zO>}Q`O7+)kO'-dQ`O<<JQO'-oQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$@_Q!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<Mx<<MxOOQ[G27VG27VO!&oQMhOG27VO#'oQ`OG27VO'-yQ!fOG27VO4UQ!fOG27VO'.QQ`OG27VO'.YQ?MtO<<JfO'.gQ?MvO1G2`O'0]Q?MvO,5?`O'2`Q?MvO,5?bO'4cQ?MvO1G2sO'6fQ?MvO1G2uO'8iQ?MtO<<KXO'8vQ?MtO<<I{OOQO1G1w1G1wO!+xQMhOANAiOOQO7+*b7+*bO'9TQ`O7+*bO'9`Q`O<= gO'9hQ!dO7+*dOOQ!0Lb<<Kq<<KqO$){Q`O<<KqOClQ`O<<KqO'9rQ`O<<KqO!&oQMhO<<KqOOQ!0Lb<<Ko<<KoO!BqQpO<<KoO'9}Q!dO<<KqOOQ!0Lb<<Kp<<KpO':XQ`O<<KqO!&oQMhO<<KqO$){Q`O<<KpO':^QMjOANDbO':hQ!0MvO<<KtOOQO7+*q7+*qO9gQ`O7+*qO':xQ`O<= pOOQ[G27rG27rO9qQ!0LrOG27rO!)PQlO1G5RO';QQ`O7+,RO';YQ`O1G2kO&;yQ`OANBQOOQ[ANBQANBQO!&oQMhOANBQO';_Q`OANBQOOQ[ANBSANBSO9qQ!0LrOANBSO$$VQ`OANBSOOQO'#H_'#H_OOQO7+*p7+*pOOQ[G22wG22wOOQ[ANE]ANE]OOQ[ANE^ANE^OOQ[ANB[ANB[O';gQ`OANB[OOQ[<<MV<<MVO!)PQlOAN?lOOQOG24yG24yO$@_Q!0MxOG24yO#'oQ`OLD,qOOQ[LD,qLD,qO!&oQMhOLD,qO';lQ!fOLD,qO';sQ?MvO7+'zO'=iQ?MvO,5?`O'?lQ?MvO,5?bO'AoQ?MvO7+'|O'CeQMjOG27TOOQO<<M|<<M|OOQ!0LbANA]ANA]O$){Q`OANA]OClQ`OANA]O'CuQ!dOANA]OOQ!0LbANAZANAZO'C|Q`OANA]O!&oQMhOANA]O'DXQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N]<<N]OOQ[LD-^LD-^O'DcQ?MtO7+*mOOQO'#Gf'#GfOOQ[G27lG27lO&;yQ`OG27lO!&oQMhOG27lOOQ[G27nG27nO9qQ!0LrOG27nOOQ[G27vG27vO'DmQ?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#'oQ`O!$(!]O!&oQMhO!$(!]O'DwQ!0MzOG27TOOQ!0LbG26wG26wO$){Q`OG26wO'GYQ`OG26wOClQ`OG26wO'GeQ!dOG26wO!&oQMhOG26wOOQ[LD-WLD-WO&;yQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#'oQ`O!)9EwOOQ!0LbLD,cLD,cO$){Q`OLD,cOClQ`OLD,cO'GlQ`OLD,cO'GwQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'HOQ?MvOG27TOOQ!0Lb!$( }!$( }O$){Q`O!$( }OClQ`O!$( }O'ItQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$){Q`O!)9EiOClQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$){Q`O!.K;TOOQ!0Lb!4/0o!4/0oO!)PQlO'#DzO1PQ`O'#EXO'JPQ!fO'#JqO'JWQ!L^O'#DvO'J_QlO'#EOO'JfQ!fO'#CiO'L|Q!fO'#CiO!)PQlO'#EQO'M^QlO,5;ZO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO'#IoO( aQ`O,5<iO!)PQlO,5;eO( iQMhO,5;eO(#SQMhO,5;eO!)PQlO,5;wO!&oQMhO'#GmO( iQMhO'#GmO!&oQMhO'#GoO( iQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&oQMhO'#GPO( iQMhO'#GPO!&oQMhO'#GRO( iQMhO'#GRO!&oQMhO'#GaO( iQMhO'#GaO!)PQlO,5:jO(#ZQpO'#D_O(#eQpO'#JuO!)PQlO,5@nO'M^QlO1G0uO(#oQ?MtO'#CiO!)PQlO1G2PO!&oQMhO'#ItO( iQMhO'#ItO!&oQMhO'#IvO( iQMhO'#IvO(#yQ!dO'#CrO!&oQMhO,5<tO( iQMhO,5<tO'M^QlO1G2RO!)PQlO7+&zO!&oQMhO1G2`O( iQMhO1G2`O!&oQMhO'#ItO( iQMhO'#ItO!&oQMhO'#IvO( iQMhO'#IvO!&oQMhO1G2bO( iQMhO1G2bO'M^QlO7+'mO'M^QlO7+&aO!&oQMhOANAiO( iQMhOANAiO($^Q`O'#EoO($cQ`O'#EoO($kQ`O'#F]O($pQ`O'#EyO($uQ`O'#KSO(%QQ`O'#KQO(%]Q`O,5;ZO(%bQMjO,5<eO(%iQ`O'#GYO(%nQ`O'#GYO(%sQ`O,5<gO(%{Q`O,5;ZO(&TQ?MtO1G1`O(&[Q`O,5<tO(&aQ`O,5<tO(&fQ`O,5<vO(&kQ`O,5<vO(&pQ`O1G2RO(&uQ`O1G0uO(&zQMjO<<K}O('RQMjO<<K}O7eQMhO'#F|O9[Q`O'#F{OAjQ`O'#EnO!)PQlO,5;tO!3dQ`O'#GYO!3dQ`O'#GYO!3dQ`O'#G[O!3dQ`O'#G[O!+xQMhO7+(cO!+xQMhO7+(cO%-mQ!dO1G2wO%-mQ!dO1G2wO!&oQMhO,5=]O!&oQMhO,5=]",stateData:"((X~O'{OS'|OSTOS'}RQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&V!WO&]!XO&_!YO&a!ZO&c![O&f!]O&l!^O&r!_O&t!`O&v!aO&x!bO&z!cO(SSO(UTO(XUO(`VO(n[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(S!dO(UTO(XUO(`VO(n[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|;wO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(T!lO(UTO(XUO(d!mO(n!sO~O'}!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'y]X(`]X(q]X(x]X(y]X~O!g%RX~P(qO_!}O(U#PO(V!}O(W#PO~O_#QO(W#PO(X#PO(Y#QO~Ox#SO!U#TO(a#TO(b#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(S;{O(UTO(XUO(`VO(n[O~O![#ZO!]#WO!Y(gP!Y(uP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(UTO(XUO(`VO(n[O~Op#mO![#iO!|]O#i#lO#j#iO(S;|O!k(rP~P.iO!l#oO(S#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(`VO(q$YO(x#|O(y#}O~Oa(eX'y(eX'v(eX!k(eX!Y(eX!_(eX%i(eX!g(eX~P1qO#S$dO#`$eO$Q$eOP(fXR(fX[(fXj(fXr(fX!Q(fX!S(fX!](fX!l(fX!p(fX#R(fX#n(fX#o(fX#p(fX#q(fX#r(fX#s(fX#t(fX#u(fX#v(fX#x(fX#z(fX#{(fX(`(fX(q(fX(x(fX(y(fX!_(fX%i(fX~Oa(fX'y(fX'v(fX!Y(fX!k(fXv(fX!g(fX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%cOk%cOl%cOp%WOr%XOs$tOt$tOz%YO|%ZO!O%[O!S${O!_$|O!i%aO!l$xO#j%bO$W%_O$t%]O$v%^O$y%`O(S$sO(UTO(XUO(`$uO(x$}O(y%POg(]P~O!l%dO~O!S%gO!_%hO(S%fO~O!g%lO~Oa%mO'y%mO~O!Q%qO~P%[O(T!lO~P%[O%n%uO~P%[Oh%VO!l%dO(S%fO(T!lO~Oe%|O!l%dO(S%fO~Oj$RO~O!Q&RO!_&OO!l&QO%j&UO(S%fO(T!lO(UTO(XUO`)VP~O!x#sO~O%s&WO!S)RX!_)RX(S)RX~O(S&XO~Ol!PO!u&^O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&cOe&bO!x&`O%h&aO%{&_O~P<VOd&fOeyOl!PO!_&eO!u&^O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&iO#`&lO%j&gO(T!lO~P=[O!l&mO!u&qO~O!l#oO~O!_XO~Oa%mO'w&yO'y%mO~Oa%mO'w&|O'y%mO~Oa%mO'w'OO'y%mO~O'v]X!Y]Xv]X!k]X&Z]X!_]X%i]X!g]X~P(qO!b']O!c'UO!d'UO(T!lO(UTO(XUO~Os'SO!S'RO!['VO(d'QO!^(hP!^(wP~P@cOn'`O!_'^O(S%fO~Oe'eO!l%dO(S%fO~O!Q&RO!l&QO~Os!nO!S!oO!|;wO#T!pO#U!pO#W!pO#X!pO(T!lO(UTO(XUO(d!mO(n!sO~O!b'kO!c'jO!d'jO#V!pO#['lO#]'lO~PA}Oa%mOh%VO!g#vO!l%dO'y%mO(q'nO~O!p'rO#`'pO~PC]Os!nO!S!oO(UTO(XUO(d!mO(n!sO~O!_XOs(lX!S(lX!b(lX!c(lX!d(lX!|(lX#T(lX#U(lX#V(lX#W(lX#X(lX#[(lX#](lX(T(lX(U(lX(X(lX(d(lX(n(lX~O!c'jO!d'jO(T!lO~PC{O(O'vO(P'vO(Q'xO~O_!}O(U'zO(V!}O(W'zO~O_#QO(W'zO(X'zO(Y#QO~Ov'|O~P%[Ox#SO!U#TO(a#TO(b(PO~O![(RO!Y'VX!Y']X!]'VX!]']X~P+}O!](TO!Y(gX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](TO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(`VO(q$YO(x#|O(y#}O~O!Y(gX~PGvO!Y(YO~O!Y(tX!](tX!g(tX!k(tX(q(tX~O#`(tX#k#dX!^(tX~PIyO#`(ZO!Y(vX!](vX~O!]([O!Y(uX~O!Y(_O~O#`$eO~PIyO!^(`O~P`OR#zO!Q#yO!S#{O!l#xO(`VOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(q!na(x!na(y!na~Oa!na'y!na'v!na!Y!na!k!nav!na!_!na%i!na!g!na~PKaO!k(aO~O!g#vO#`(bO(q'nO!](sXa(sX'y(sX~O!k(sX~PM|O!S%gO!_%hO!|]O#i(gO#j(fO(S%fO~O!](hO!k(rX~O!k(jO~O!S%gO!_%hO#j(fO(S%fO~OP(fXR(fX[(fXj(fXr(fX!Q(fX!S(fX!](fX!l(fX!p(fX#R(fX#n(fX#o(fX#p(fX#q(fX#r(fX#s(fX#t(fX#u(fX#v(fX#x(fX#z(fX#{(fX(`(fX(q(fX(x(fX(y(fX~O!g#vO!k(fX~P! jOR(lO!Q(kO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(S!{a~P!#kO!x(pO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(S!dO(UTO(XUO(`VO(n[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<eO!S${O!_$|O!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(S(tO(UTO(XUO(`$uO(x$}O(y%PO~O#k(vO~O![(xO!k(jP~P%[O(d(zO(n[O~O!S(|O!l#xO(d(zO(n[O~OP;vOQ;vOSfOd=rOe!iOpkOr;vOskOtkOzkO|;vO!O;vO!SWO!WkO!XkO!_!eO!i;yO!lZO!o;vO!p;vO!q;vO!s;zO!u;}O!x!hO$W!kO$n=pO(S)ZO(UTO(XUO(`VO(n[O~O!]$_Oa$qa'y$qa'v$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)bO~P!&oOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%[O!S${O!_$|O!i%aO!l$xO#j%bO$W%_O$t%]O$v%^O$y%`O(S(tO(UTO(XUO(`$uO(x$}O(y%PO~Og(oP~P!+xO!Q)gO!g)fO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)fO!_(zX$Z(zX$](zX$_(zX$f(zX~O!Q)gO~P!.RO!Q)gO!_(zX$Z(zX$](zX$_(zX$f(zX~O!_)iO$Z)mO$])hO$_)hO$f)nO~O![)qO~P!)PO$]$hO$_$gO$f)uO~On$zX!Q$zX#S$zX'x$zX(x$zX(y$zX~OgmXg$zXnmX!]mX#`mX~P!/wOx)wO(a)xO(b)zO~On*TO!Q)|O'x)}O(x$}O(y%PO~Og){O~P!0{Og*UO~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<eO!S*WO!_*XO!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(UTO(XUO(`$uO(x$}O(y%PO~O![*[O(S*VO!k(}P~P!1jO#k*^O~O!l*_O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<eO!S${O!_$|O!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(S*aO(UTO(XUO(`$uO(x$}O(y%PO~O![*dO!Y)OP~P!3iOr*pOs!nO!S*fO!b*nO!c*hO!d*hO!l*_O#[*oO%`*jO(T!lO(UTO(XUO(d!mO~O!^*mO~P!5^O#S$dOn(_X!Q(_X'x(_X(x(_X(y(_X!](_X#`(_X~Og(_X$O(_X~P!6`On*uO#`*tOg(^X!](^X~O!]*vOg(]X~Oj%cOk%cOl%cO(S&XOg(]P~Os*yO~O!l+OO~O(S(tO~Op+TO!S%gO![#iO!_%hO!|]O#i#lO#j#iO(S%fO!k(rP~O!g#vO#k+UO~O!S%gO![+WO!]([O!_%hO(S%fO!Y(uP~Os'YO!S+YO![+XO(UTO(XUO(d(zO~O!^(wP~P!9iO!]+ZOa)SX'y)SX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(`VO(q$YO(x#|O(y#}O~Oa!ja!]!ja'y!ja'v!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:aOR#zO!Q#yO!S#{O!l#xO(`VOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(q!ra(x!ra(y!ra~Oa!ra'y!ra'v!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!<wOR#zO!Q#yO!S#{O!l#xO(`VOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(q!ta(x!ta(y!ta~Oa!ta'y!ta'v!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?_Oh%VOn+dO!_'^O%i+cO~O!g+fOa([X!_([X'y([X!]([X~Oa%mO!_XO'y%mO~Oh%VO!l%dO~Oh%VO!l%dO(S%fO~O!g#vO#k(vO~Ob+qO%j+rO(S+nO(UTO(XUO!^)WP~O!]+sO`)VX~O[+wO~O`+xO~O!_&OO(S%fO(T!lO`)VP~Oh%VO#`+}O~Oh%VOn,QO!_$|O~O!_,SO~O!Q,UO!_XO~O%n%uO~O!x,ZO~Oe,`O~Ob,aO(S#nO(UTO(XUO!^)UP~Oe%|O~O%j!QO(S&XO~P=[O[,fO`,eO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(UTO(XUO(`VO(n[O~O!_!eO!u!gO$W!kO(S!dO~P!F_O`,eOa%mO'y%mO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(S!dO(UTO(XUO(`VO(n[O~Oa,kOl!OO!uwO%l!OO%m!OO%n!OO~P!HwO!l&mO~O&],qO~O!_,sO~O&n,uO&p,vOP&kaQ&kaS&kaY&kaa&kad&kae&kal&kap&kar&kas&kat&kaz&ka|&ka!O&ka!S&ka!W&ka!X&ka!_&ka!i&ka!l&ka!o&ka!p&ka!q&ka!s&ka!u&ka!x&ka!|&ka$W&ka$n&ka%h&ka%j&ka%l&ka%m&ka%n&ka%q&ka%s&ka%v&ka%w&ka%y&ka&V&ka&]&ka&_&ka&a&ka&c&ka&f&ka&l&ka&r&ka&t&ka&v&ka&x&ka&z&ka'v&ka(S&ka(U&ka(X&ka(`&ka(n&ka!^&ka&d&kab&ka&i&ka~O(S,{O~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P# }O!g-QO#`-POh(iX!]#hX!^#hX!g(iX!l(iX~O!](iX!^(iX~P#!pOh%VO!g-SO!l%dO!]!aX!^!aX~Os!nO!S!oO(UTO(XUO(d!mO~OP;vOQ;vOSfOd=rOe!iOpkOr;vOskOtkOzkO|;vO!O;vO!SWO!WkO!XkO!_!eO!i;yO!lZO!o;vO!p;vO!q;vO!s;zO!u;}O!x!hO$W!kO$n=pO(UTO(XUO(`VO(n[O~O(S<rO~P#$VO!]-WO!^(hX~O!^-YO~O!g-QO#`-PO!]#hX!^#hX~O!]-ZO!^(wX~O!^-]O~O!c-^O!d-^O(T!lO~P##tO!^-aO~P'_On-dO!_'^O~O!Y-iO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(T!{a(U!{a(X!{a(d!{a(n!{a~P!#kO!p-nO#`-lO~PC]O!c-pO!d-pO(T!lO~PC{Oa%mO#`-lO'y%mO~Oa%mO!g#vO#`-lO'y%mO~Oa%mO!g#vO!p-nO#`-lO'y%mO(q'nO~O(O'vO(P'vO(Q-uO~Ov-vO~O!Y'Va!]'Va~P!:aO![-zO!Y'VX!]'VX~P%[O!](TO!Y(ga~O!Y(ga~PGvO!]([O!Y(ua~O!S%gO![.OO!_%hO(S%fO!Y']X!]']X~O#`.QO!](sa!k(saa(sa'y(sa~O!g#vO~P#,]O!](hO!k(ra~O!S%gO!_%hO#j.UO(S%fO~Op.ZO!S%gO![.WO!_%hO!|]O#i.YO#j.WO(S%fO!]'`X!k'`X~OR._O!l#xO~Oh%VOn.bO!_'^O%i.aO~Oa#ci!]#ci'y#ci'v#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:aOn=|O!Q)|O'x)}O(x$}O(y%PO~O#k#_aa#_a#`#_a'y#_a!]#_a!k#_a!_#_a!Y#_a~P#/XO#k(_XP(_XR(_X[(_Xa(_Xj(_Xr(_X!S(_X!l(_X!p(_X#R(_X#n(_X#o(_X#p(_X#q(_X#r(_X#s(_X#t(_X#u(_X#v(_X#x(_X#z(_X#{(_X'y(_X(`(_X(q(_X!k(_X!Y(_X'v(_Xv(_X!_(_X%i(_X!g(_X~P!6`O!].oO!k(jX~P!:aO!k.rO~O!Y.tO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(`VO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'y#mi(q#mi(x#mi(y#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#2wO#n$OO~P#2wOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(`VO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'y#mi(q#mi(x#mi(y#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#5fO#r$QO~P#5fOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(`VOa#mi!]#mi#x#mi#z#mi#{#mi'y#mi(q#mi(x#mi(y#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8TOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(`VO(y#}Oa#mi!]#mi#z#mi#{#mi'y#mi(q#mi(x#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#:kO#x#mi~P#:kO#v$SO~P#8TOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(`VO(x#|O(y#}Oa#mi!]#mi#{#mi'y#mi(q#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#=aO#z$WO~P#=aOP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(`]X(q]X(x]X(y]X!]]X!^]X~O$O]X~P#@OOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O#v<TO#x<VO#z<XO#{<YO(`VO(q$YO(x#|O(y#}O~O$O.vO~P#B]O#S$dO#`<`O$Q<`O$O(fX!^(fX~P! jOa'ca!]'ca'y'ca'v'ca!k'ca!Y'cav'ca!_'ca%i'ca!g'ca~P!:aO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'y#mi(q#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(`VO(x#mi(y#mi~P#E_On=|O!Q)|O'x)}O(x$}O(y%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(`#mi~P#E_O!].zOg(oX~P!0{Og.|O~Oa$Pi!]$Pi'y$Pi'v$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:aO$].}O$_.}O~O$]/OO$_/OO~O!g)fO#`/PO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/QO~O!_)iO$Z/SO$])hO$_)hO$f/TO~O!]<ZO!^(eX~P#B]O!^/UO~O!g)fO$f(zX~O$f/WO~Ov/XO~P!&oOx)wO(a)xO(b/[O~O!S/_O~O(x$}On%aa!Q%aa'x%aa(y%aa!]%aa#`%aa~Og%aa$O%aa~P#LaO(y%POn%ca!Q%ca'x%ca(x%ca!]%ca#`%ca~Og%ca$O%ca~P#MSO!]fX!gfX!kfX!k$zX(qfX~P!/wO![/hO!]([O(S/gO!Y(uP!Y)OP~P!1jOr*pO!b*nO!c*hO!d*hO!l*_O#[*oO%`*jO(T!lO(UTO(XUO~Os<oO!S/iO![+XO!^*mO(d<nO!^(wP~P#NmO!k/jO~P#/XO!]/kO!g#vO(q'nO!k(}X~O!k/pO~O!S%gO![*[O!_%hO(S%fO!k(}P~O#k/rO~O!Y$zX!]$zX!g%RX~P!/wO!]/sO!Y)OX~P#/XO!g/uO~O!Y/wO~OpkO(S/xO~P.iOh%VOr/}O!g#vO!l%dO(q'nO~O!g+fO~Oa%mO!]0RO'y%mO~O!^0TO~P!5^O!c0UO!d0UO(T!lO~P##tOs!nO!S0VO(UTO(XUO(d!mO~O#[0XO~Og%aa!]%aa#`%aa$O%aa~P!0{Og%ca!]%ca#`%ca$O%ca~P!0{Oj%cOk%cOl%cO(S&XOg'lX!]'lX~O!]*vOg(]a~Og0bO~OR0cO!Q0cO!S0dO#S$dOn}a'x}a(x}a(y}a!]}a#`}a~Og}a$O}a~P$&vO!Q)|O'x)}On$sa(x$sa(y$sa!]$sa#`$sa~Og$sa$O$sa~P$'rO!Q)|O'x)}On$ua(x$ua(y$ua!]$ua#`$ua~Og$ua$O$ua~P$(eO#k0gO~Og%Ta!]%Ta#`%Ta$O%Ta~P!0{On0iO#`0hOg(^a!](^a~O!g#vO~O#k0lO~O!]+ZOa)Sa'y)Sa~OR#zO!Q#yO!S#{O!l#xO(`VOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(q!ri(x!ri(y!ri~Oa!ri'y!ri'v!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$*bOh%VOr%XOs$tOt$tOz%YO|%ZO!O<eO!S${O!_$|O!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(UTO(XUO(`$uO(x$}O(y%PO~Op0uO%]0vO(S0tO~P$,xO!g+fOa([a!_([a'y([a!]([a~O#k0|O~O[]X!]fX!^fX~O!]0}O!^)WX~O!^1PO~O[1QO~Ob1SO(S+nO(UTO(XUO~O!_&OO(S%fO`'tX!]'tX~O!]+sO`)Va~O!k1VO~P!:aO[1YO~O`1ZO~O#`1^O~On1aO!_$|O~O(d(zO!^)TP~Oh%VOn1jO!_1gO%i1iO~O[1tO!]1rO!^)UX~O!^1uO~O`1wOa%mO'y%mO~O(S#nO(UTO(XUO~O#S$dO#`$eO$Q$eOP(fXR(fX[(fXr(fX!Q(fX!S(fX!](fX!l(fX!p(fX#R(fX#n(fX#o(fX#p(fX#q(fX#r(fX#s(fX#t(fX#u(fX#v(fX#x(fX#z(fX#{(fX(`(fX(q(fX(x(fX(y(fX~Oj1zO&Z1{Oa(fX~P$2cOj1zO#`$eO&Z1{O~Oa1}O~P%[Oa2PO~O&d2SOP&biQ&biS&biY&bia&bid&bie&bil&bip&bir&bis&bit&biz&bi|&bi!O&bi!S&bi!W&bi!X&bi!_&bi!i&bi!l&bi!o&bi!p&bi!q&bi!s&bi!u&bi!x&bi!|&bi$W&bi$n&bi%h&bi%j&bi%l&bi%m&bi%n&bi%q&bi%s&bi%v&bi%w&bi%y&bi&V&bi&]&bi&_&bi&a&bi&c&bi&f&bi&l&bi&r&bi&t&bi&v&bi&x&bi&z&bi'v&bi(S&bi(U&bi(X&bi(`&bi(n&bi!^&bib&bi&i&bi~Ob2YO!^2WO&i2XO~P`O!_XO!l2[O~O&p,vOP&kiQ&kiS&kiY&kia&kid&kie&kil&kip&kir&kis&kit&kiz&ki|&ki!O&ki!S&ki!W&ki!X&ki!_&ki!i&ki!l&ki!o&ki!p&ki!q&ki!s&ki!u&ki!x&ki!|&ki$W&ki$n&ki%h&ki%j&ki%l&ki%m&ki%n&ki%q&ki%s&ki%v&ki%w&ki%y&ki&V&ki&]&ki&_&ki&a&ki&c&ki&f&ki&l&ki&r&ki&t&ki&v&ki&x&ki&z&ki'v&ki(S&ki(U&ki(X&ki(`&ki(n&ki!^&ki&d&kib&ki&i&ki~O!Y2bO~O!]!aa!^!aa~P#B]Os!nO!S!oO![2hO(d!mO!]'WX!^'WX~P@cO!]-WO!^(ha~O!]'^X!^'^X~P!9iO!]-ZO!^(wa~O!^2oO~P'_Oa%mO#`2xO'y%mO~Oa%mO!g#vO#`2xO'y%mO~Oa%mO!g#vO!p2|O#`2xO'y%mO(q'nO~Oa%mO'y%mO~P!:aO!]$_Ov$qa~O!Y'Vi!]'Vi~P!:aO!](TO!Y(gi~O!]([O!Y(ui~O!Y(vi!](vi~P!:aO!](si!k(sia(si'y(si~P!:aO#`3OO!](si!k(sia(si'y(si~O!](hO!k(ri~O!S%gO!_%hO!|]O#i3TO#j3SO(S%fO~O!S%gO!_%hO#j3SO(S%fO~On3[O!_'^O%i3ZO~Oh%VOn3[O!_'^O%i3ZO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'y%aa(`%aa(q%aa!k%aa!Y%aa'v%aav%aa!_%aa%i%aa!g%aa~P#LaO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'y%ca(`%ca(q%ca!k%ca!Y%ca'v%cav%ca!_%ca%i%ca!g%ca~P#MSO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'y%aa(`%aa(q%aa!k%aa!Y%aa'v%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/XO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'y%ca(`%ca(q%ca!k%ca!Y%ca'v%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/XO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'y}a(`}a(q}a!k}a!Y}a'v}av}a!_}a%i}a!g}a~P$&vO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'y$sa(`$sa(q$sa!k$sa!Y$sa'v$sav$sa!_$sa%i$sa!g$sa~P$'rO#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'y$ua(`$ua(q$ua!k$ua!Y$ua'v$uav$ua!_$ua%i$ua!g$ua~P$(eO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'y%Ta(`%Ta(q%Ta!k%Ta!Y%Ta'v%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/XOa#cq!]#cq'y#cq'v#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:aO![3dO!]'XX!k'XX~P%[O!].oO!k(ja~O!].oO!k(ja~P!:aO!Y3gO~O$O!na!^!na~PKaO$O!ja!]!ja!^!ja~P#B]O$O!ra!^!ra~P!<wO$O!ta!^!ta~P!?_Og'[X!]'[X~P!+xO!].zOg(oa~OSfO!_3{O$d3|O~O!^4QO~Ov4RO~P#/XOa$mq!]$mq'y$mq'v$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:aO!Y4TO~P!&oO!S4UO~O!Q)|O'x)}O(y%POn'ha(x'ha!]'ha#`'ha~Og'ha$O'ha~P%,XO!Q)|O'x)}On'ja(x'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P%,zO(q$YO~P#/XO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!/wO(S<xO~P!1jO!S%gO![4XO!_%hO(S%fO!]'dX!k'dX~O!]/kO!k(}a~O!]/kO!g#vO!k(}a~O!]/kO!g#vO(q'nO!k(}a~Og$|i!]$|i#`$|i$O$|i~P!0{O![4aO!Y'fX!]'fX~P!3iO!]/sO!Y)Oa~O!]/sO!Y)Oa~P#/XOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(`]X(q]X(x]X(y]X~Oj%YX!g%YX~P%0kOj4fO!g#vO~Oh%VO!g#vO!l%dO~Oh%VOr4kO!l%dO(q'nO~Or4pO!g#vO(q'nO~Os!nO!S4qO(UTO(XUO(d!mO~O(x$}On%ai!Q%ai'x%ai(y%ai!]%ai#`%ai~Og%ai$O%ai~P%4[O(y%POn%ci!Q%ci'x%ci(x%ci!]%ci#`%ci~Og%ci$O%ci~P%4}Og(^i!](^i~P!0{O#`4wOg(^i!](^i~P!0{O!k4zO~Oa$oq!]$oq'y$oq'v$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:aO!Y5QO~O!]5RO!_)PX~P#/XOa$zX!_$zX%^]X'y$zX!]$zX~P!/wO%^5UOaoXnoX!QoX!_oX'xoX'yoX(xoX(yoX!]oX~Op5VO(S#nO~O%^5UO~Ob5]O%j5^O(S+nO(UTO(XUO!]'sX!^'sX~O!]0}O!^)Wa~O[5bO~O`5cO~Oa%mO'y%mO~P#/XO!]5kO#`5mO!^)TX~O!^5nO~Or5tOs!nO!S*fO!b!yO!c!vO!d!vO!|;wO#T!pO#U!pO#V!pO#W!pO#X!pO#[5sO#]!zO(T!lO(UTO(XUO(d!mO(n!sO~O!^5rO~P%:YOn5yO!_1gO%i5xO~Oh%VOn5yO!_1gO%i5xO~Ob6QO(S#nO(UTO(XUO!]'rX!^'rX~O!]1rO!^)Ua~O(UTO(XUO(d6SO~O`6WO~Oj6ZO&Z6[O~PM|O!k6]O~P%[Oa6_O~Oa6_O~P%[Ob2YO!^6dO&i2XO~P`O!g6fO~O!g6hOh(ii!](ii!^(ii!g(ii!l(iir(ii(q(ii~O!]#hi!^#hi~P#B]O#`6iO!]#hi!^#hi~O!]!ai!^!ai~P#B]Oa%mO#`6rO'y%mO~Oa%mO!g#vO#`6rO'y%mO~O!](sq!k(sqa(sq'y(sq~P!:aO!](hO!k(rq~O!S%gO!_%hO#j6yO(S%fO~O!_'^O%i6|O~On7QO!_'^O%i6|O~O#k'haP'haR'ha['haa'haj'har'ha!S'ha!l'ha!p'ha#R'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#t'ha#u'ha#v'ha#x'ha#z'ha#{'ha'y'ha(`'ha(q'ha!k'ha!Y'ha'v'hav'ha!_'ha%i'ha!g'ha~P%,XO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'y'ja(`'ja(q'ja!k'ja!Y'ja'v'jav'ja!_'ja%i'ja!g'ja~P%,zO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'y$|i(`$|i(q$|i!k$|i!Y$|i'v$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/XO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'y%ai(`%ai(q%ai!k%ai!Y%ai'v%aiv%ai!_%ai%i%ai!g%ai~P%4[O#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'y%ci(`%ci(q%ci!k%ci!Y%ci'v%civ%ci!_%ci%i%ci!g%ci~P%4}O!]'Xa!k'Xa~P!:aO!].oO!k(ji~O$O#ci!]#ci!^#ci~P#B]OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(`VO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(q#mi(x#mi(y#mi!]#mi!^#mi~O#n#mi~P%MXO#n<PO~P%MXOP$[OR#zOr<]O!Q#yO!S#{O!l#xO!p$[O#n<PO#o<QO#p<QO#q<QO(`VO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(q#mi(x#mi(y#mi!]#mi!^#mi~O#r#mi~P& aO#r<RO~P& aOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O(`VO#x#mi#z#mi#{#mi$O#mi(q#mi(x#mi(y#mi!]#mi!^#mi~O#v#mi~P&#iOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O#v<TO(`VO(y#}O#z#mi#{#mi$O#mi(q#mi(x#mi!]#mi!^#mi~O#x<VO~P&%jO#x#mi~P&%jO#v<TO~P&#iOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O#v<TO#x<VO(`VO(x#|O(y#}O#{#mi$O#mi(q#mi!]#mi!^#mi~O#z#mi~P&'yO#z<XO~P&'yOa#|y!]#|y'y#|y'v#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:aO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(q#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<PO#o<QO#p<QO#q<QO(`VO(x#mi(y#mi~P&*uOn=}O!Q)|O'x)}O(x$}O(y%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(`#mi~P&*uO#S$dOP(_XR(_X[(_Xj(_Xn(_Xr(_X!Q(_X!S(_X!l(_X!p(_X#R(_X#n(_X#o(_X#p(_X#q(_X#r(_X#s(_X#t(_X#u(_X#v(_X#x(_X#z(_X#{(_X$O(_X'x(_X(`(_X(q(_X(x(_X(y(_X!](_X!^(_X~O$O$Pi!]$Pi!^$Pi~P#B]O$O!ri!^!ri~P$*bOg'[a!]'[a~P!0{O!^7dO~O!]'ca!^'ca~P#B]O!Y7eO~P#/XO!g#vO(q'nO!]'da!k'da~O!]/kO!k(}i~O!]/kO!g#vO!k(}i~Og$|q!]$|q#`$|q$O$|q~P!0{O!Y'fa!]'fa~P#/XO!g7lO~O!]/sO!Y)Oi~P#/XO!]/sO!Y)Oi~O!Y7oO~Oh%VOr7tO!l%dO(q'nO~Oj7vO!g#vO~Or7yO!g#vO(q'nO~O!Q)|O'x)}O(y%POn'ia(x'ia!]'ia#`'ia~Og'ia$O'ia~P&3vO!Q)|O'x)}On'ka(x'ka(y'ka!]'ka#`'ka~Og'ka$O'ka~P&4iO!Y7{O~Og%Oq!]%Oq#`%Oq$O%Oq~P!0{Og(^q!](^q~P!0{O#`7|Og(^q!](^q~P!0{Oa$oy!]$oy'y$oy'v$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:aO!g6hO~O!]5RO!_)Pa~O!_'^OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(`$Ta(q$Ta(x$Ta(y$Ta~O%i6|O~P&7ZO%^8QOa%[i!_%[i'y%[i!]%[i~Oa#cy!]#cy'y#cy'v#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:aO[8SO~Ob8UO(S+nO(UTO(XUO~O!]0}O!^)Wi~O`8YO~O(d(zO!]'oX!^'oX~O!]5kO!^)Ta~O!^8cO~P%:YO(n!sO~P$${O#[8dO~O!_1gO~O!_1gO%i8fO~On8iO!_1gO%i8fO~O[8nO!]'ra!^'ra~O!]1rO!^)Ui~O!k8rO~O!k8sO~O!k8vO~O!k8vO~P%[Oa8xO~O!g8yO~O!k8zO~O!](vi!^(vi~P#B]Oa%mO#`9SO'y%mO~O!](sy!k(sya(sy'y(sy~P!:aO!](hO!k(ry~O%i9VO~P&7ZO!_'^O%i9VO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'y$|q(`$|q(q$|q!k$|q!Y$|q'v$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/XO#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'y'ia(`'ia(q'ia!k'ia!Y'ia'v'iav'ia!_'ia%i'ia!g'ia~P&3vO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'y'ka(`'ka(q'ka!k'ka!Y'ka'v'kav'ka!_'ka%i'ka!g'ka~P&4iO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'y%Oq(`%Oq(q%Oq!k%Oq!Y%Oq'v%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/XO!]'Xi!k'Xi~P!:aO$O#cq!]#cq!^#cq~P#B]O(x$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(`%aa(q%aa!]%aa!^%aa~On%aa!Q%aa'x%aa(y%aa~P&HnO(y%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(`%ca(q%ca!]%ca!^%ca~On%ca!Q%ca'x%ca(x%ca~P&JuOn=}O!Q)|O'x)}O(y%PO~P&HnOn=}O!Q)|O'x)}O(x$}O~P&JuOR0cO!Q0cO!S0dO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'x}a(`}a(q}a(x}a(y}a!]}a!^}a~O!Q)|O'x)}OP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(`$sa(q$sa(x$sa(y$sa!]$sa!^$sa~O!Q)|O'x)}OP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(`$ua(q$ua(x$ua(y$ua!]$ua!^$ua~On=}O!Q)|O'x)}O(x$}O(y%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(`%Ta(q%Ta!]%Ta!^%Ta~P'%zO$O$mq!]$mq!^$mq~P#B]O$O$oq!]$oq!^$oq~P#B]O!^9dO~O$O9eO~P!0{O!g#vO!]'di!k'di~O!g#vO(q'nO!]'di!k'di~O!]/kO!k(}q~O!Y'fi!]'fi~P#/XO!]/sO!Y)Oq~Or9lO!g#vO(q'nO~O[9nO!Y9mO~P#/XO!Y9mO~Oj9tO!g#vO~Og(^y!](^y~P!0{O!]'ma!_'ma~P#/XOa%[q!_%[q'y%[q!]%[q~P#/XO[9yO~O!]0}O!^)Wq~O#`9}O!]'oa!^'oa~O!]5kO!^)Ti~P#B]O!S:PO~O!_1gO%i:SO~O(UTO(XUO(d:XO~O!]1rO!^)Uq~O!k:[O~O!k:]O~O!k:^O~O!k:^O~P%[O#`:aO!]#hy!^#hy~O!]#hy!^#hy~P#B]O%i:fO~P&7ZO!_'^O%i:fO~O$O#|y!]#|y!^#|y~P#B]OP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(`$|i(q$|i!]$|i!^$|i~P'%zO!Q)|O'x)}O(y%POP'haR'ha['haj'han'har'ha!S'ha!l'ha!p'ha#R'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#t'ha#u'ha#v'ha#x'ha#z'ha#{'ha$O'ha(`'ha(q'ha(x'ha!]'ha!^'ha~O!Q)|O'x)}OP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(`'ja(q'ja(x'ja(y'ja!]'ja!^'ja~O(x$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'x%ai(`%ai(q%ai(y%ai!]%ai!^%ai~O(y%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'x%ci(`%ci(q%ci(x%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#B]O$O#cy!]#cy!^#cy~P#B]O!g#vO!]'dq!k'dq~O!]/kO!k(}y~O!Y'fq!]'fq~P#/XOr:pO!g#vO(q'nO~O[:tO!Y:sO~P#/XO!Y:sO~Og(^!R!](^!R~P!0{Oa%[y!_%[y'y%[y!]%[y~P#/XO!]0}O!^)Wy~O!]5kO!^)Tq~O(S:zO~O!_1gO%i:}O~O!k;QO~O%i;VO~P&7ZOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(`$|q(q$|q!]$|q!^$|q~P'%zO!Q)|O'x)}O(y%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(`'ia(q'ia(x'ia!]'ia!^'ia~O!Q)|O'x)}OP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(`'ka(q'ka(x'ka(y'ka!]'ka!^'ka~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(`%Oq(q%Oq!]%Oq!^%Oq~P'%zOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!0{O!Y;ZO~P#/XOr;[O!g#vO(q'nO~O[;^O!Y;ZO~P#/XO!]'oq!^'oq~P#B]O!]#h!Z!^#h!Z~P#B]O#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'y%e!Z(`%e!Z(q%e!Z!k%e!Z!Y%e!Z'v%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/XOr;fO!g#vO(q'nO~O!Y;gO~P#/XOr;nO!g#vO(q'nO~O!Y;oO~P#/XOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(`%e!Z(q%e!Z!]%e!Z!^%e!Z~P'%zOr;rO!g#vO(q'nO~Ov(eX~P1qO!Q%qO~P!)PO(T!lO~P!)PO!YfX!]fX#`fX~P%0kOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(`]X(q]X(x]X(y]X~O!gfX!k]X!kfX(qfX~P'JsOP;vOQ;vOSfOd=rOe!iOpkOr;vOskOtkOzkO|;vO!O;vO!SWO!WkO!XkO!_XO!i;yO!lZO!o;vO!p;vO!q;vO!s;zO!u;}O!x!hO$W!kO$n=pO(S)ZO(UTO(XUO(`VO(n[O~O!]<ZO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<fO!S${O!_$|O!i=wO!l$xO#j<lO$W%_O$t<hO$v<jO$y%`O(S(tO(UTO(XUO(`$uO(x$}O(y%PO~Ol)bO~P( iOr!eX(q!eX~P# }Or(iX(q(iX~P#!pO!^]X!^fX~P'JsO!YfX!Y$zX!]fX!]$zX#`fX~P!/wO#k<OO~O!g#vO#k<OO~O#`<`O~Oj<SO~O#`<pO!](vX!^(vX~O#`<`O!](tX!^(tX~O#k<qO~Og<sO~P!0{O#k<yO~O#k<zO~O!g#vO#k<{O~O!g#vO#k<qO~O$O<|O~P#B]O#k<}O~O#k=OO~O#k=TO~O#k=UO~O#k=VO~O#k=WO~O$O=XO~P!0{O$O=YO~P!0{Ok#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~'}T#o!X'{(T#ps#n#qr!Q'|$]'|(S$_(d~",goto:"$8g)[PPPPPP)]PP)`P)qP+R/WPPPP6bPP6xPP<pPPP@dP@zP@zPPP@zPCSP@zP@zP@zPCWPC]PCzPHtPPPHxPPPPHxK{PPPLRLsPHxPHxPP! RHxPPPHxPHxP!#YHxP!&p!'u!(OP!(r!(v!(r!,TPPPPPPP!,t!'uPP!-U!.vP!2SHxHx!2X!5e!:R!:R!>QPPP!>YHxPPPPPPPPP!AiP!BvPPHx!DXPHxPHxHxHxHxHxPHx!EkP!HuP!K{P!LP!LZ!L_!L_P!HrP!Lc!LcP# iP# mHxPHx# s#$xCW@zP@zP@z@zP#&V@z@z#(i@z#+a@z#-m@z@z#.]#0q#0q#0v#1P#0q#1[PP#0qP@z#1t@z#5s@z@z6bPPP#9xPPP#:c#:cP#:cP#:y#:cPP#;PP#:vP#:v#;d#:v#<O#<U#<X)`#<[)`P#<c#<c#<cP)`P)`P)`P)`PP)`P#<i#<lP#<l)`P#<pP#<sP)`P)`P)`P)`P)`P)`)`PP#<y#=P#=[#=b#=h#=n#=t#>S#>Y#>d#>j#>t#>z#?[#?b#@S#@f#@l#@r#AQ#Ag#C[#Cj#Cq#E]#Ek#G]#Gk#Gq#Gw#G}#HX#H_#He#Ho#IR#IXPPPPPPPPPPP#I_PPPPPPP#JS#MZ#Ns#Nz$ SPPP$&nP$&w$)p$0Z$0^$0a$1`$1c$1j$1rP$1x$1{P$2i$2m$3e$4s$4x$5`PP$5e$5k$5o$5r$5v$5z$6v$7_$7v$7z$7}$8Q$8W$8Z$8_$8cR!|RoqOXst!Z#d%l&p&r&s&u,n,s2S2VY!vQ'^-`1g5qQ%svQ%{yQ&S|Q&h!VS'U!e-WQ'd!iS'j!r!yU*h$|*X*lQ+l%|Q+y&UQ,_&bQ-^']Q-h'eQ-p'kQ0U*nQ1q,`R<m;z%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y,k,n,s-d-l-z.Q.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3d4q5y6Z6[6_6r8i8x9SS#q];w!r)]$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sU*{%[<e<fQ+q&OQ,a&eQ,h&mQ0r+dQ0w+fQ1S+rQ1y,fQ3W.bQ5V0vQ5]0}Q6Q1rQ7O3[Q8U5^R9Y7Q'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=s!S!nQ!r!v!y!z$|'U']'^'j'k'l*h*l*n*o-W-^-`-p0U0X1g5q5s%[$ti#v$b$c$d$x${%O%Q%]%^%b)w*P*R*T*W*^*d*t*u+c+f+},Q.a.z/_/h/r/s/u0Y0[0g0h0i1^1a1i3Z4U4V4a4f4w5R5U5x6|7l7v7|8Q8f9V9e9n9t:S:f:t:};V;^<^<_<a<b<c<d<g<h<i<j<k<l<t<u<v<w<y<z<}=O=P=Q=R=S=T=U=X=Y=p=x=y=|=}Q&V|Q'S!eS'Y%h-ZQ+q&OQ,a&eQ0f+OQ1S+rQ1X+xQ1x,eQ1y,fQ5]0}Q5f1ZQ6Q1rQ6T1tQ6U1wQ8U5^Q8X5cQ8q6WQ9|8YQ:Y8nR<o*XrnOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VR,c&i&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=r=s[#]WZ#W#Z'V(R!b%im#h#i#l$x%d%g([(f(g(h*W*[*_+W+X+Z,j-Q.O.U.V.W.Y/h/k2[3S3T4X6h6yQ%vxQ%zyS&P|&UQ&]!TQ'a!hQ'c!iQ(o#sS+k%{%|Q+o&OQ,Y&`Q,^&bS-g'd'eQ.d(pQ0{+lQ1R+rQ1T+sQ1W+wQ1l,ZS1p,_,`Q2t-hQ5[0}Q5`1QQ5e1YQ6P1qQ8T5^Q8W5bQ9x8SR:w9y!U$zi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y!^%xy!i!u%z%{%|'T'c'd'e'i's*g+k+l-T-g-h-o/{0O0{2m2t2{4i4j4m7s9pQ+e%vQ,O&YQ,R&ZQ,]&bQ.c(oQ1k,YU1o,^,_,`Q3].dQ5z1lS6O1p1qQ8m6P#f=t#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}o=u<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=YW%Ti%V*v=pS&Y!Q&gQ&Z!RQ&[!SQ+S%cR+|&W%]%Si#v$b$c$d$x${%O%Q%]%^%b)w*P*R*T*W*^*d*t*u+c+f+},Q.a.z/_/h/r/s/u0Y0[0g0h0i1^1a1i3Z4U4V4a4f4w5R5U5x6|7l7v7|8Q8f9V9e9n9t:S:f:t:};V;^<^<_<a<b<c<d<g<h<i<j<k<l<t<u<v<w<y<z<}=O=P=Q=R=S=T=U=X=Y=p=x=y=|=}T)x$u)yV*{%[<e<fW'Y!e%h*X-ZS({#y#zQ+`%qQ+v&RS.](k(lQ1b,SQ4x0cR8^5k'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=s$i$^c#Y#e%p%r%t(Q(W(r(w)P)Q)R)S)T)U)V)W)X)Y)[)^)`)e)o+a+u-U-s-x-}.P.n.q.u.w.x.y/]0j2c2f2v2}3c3h3i3j3k3l3m3n3o3p3q3r3s3t3w3x4P5O5Y6k6q6v7V7W7a7b8`8|9Q9[9b9c:c:y;R;x=gT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sQ'W!eR2i-W!W!nQ!e!r!v!y!z$|'U']'^'j'k'l*X*h*l*n*o-W-^-`-p0U0X1g5q5sR1d,UnqOXst!Z#d%l&p&r&s&u,n,s2S2VQ&w!^Q't!xS(q#u<OQ+i%yQ,W&]Q,X&_Q-e'bQ-r'mS.m(v<qS0k+U<{Q0y+jQ1f,VQ2Z,uQ2],vQ2e-RQ2r-fQ2u-jS5P0l=VQ5W0zS5Z0|=WQ6j2gQ6n2sQ6s2zQ8R5XQ8}6lQ9O6oQ9R6tR:`8z$d$]c#Y#e%r%t(Q(W(r(w)P)Q)R)S)T)U)V)W)X)Y)[)^)`)e)o+a+u-U-s-x-}.P.n.q.u.x.y/]0j2c2f2v2}3c3h3i3j3k3l3m3n3o3p3q3r3s3t3w3x4P5O5Y6k6q6v7V7W7a7b8`8|9Q9[9b9c:c:y;R;x=gS(m#p'gQ(}#zS+_%p.wS.^(l(nR3U._'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sS#q];wQ&r!XQ&s!YQ&u![Q&v!]R2R,qQ'_!hQ+b%vQ-c'aS.`(o+eQ2p-bW3Y.c.d0q0sQ6m2qW6z3V3X3]5TU9U6{6}7PU:e9W9X9ZS;T:d:gQ;b;UR;j;cU!wQ'^-`T5o1g5q!Q_OXZ`st!V!Z#d#h%d%l&g&i&p&r&s&u(h,n,s.V2S2V]!pQ!r'^-`1g5qT#q];w%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SS({#y#zS.](k(l!s=^$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sU$fd)],hS(n#p'gU*s%R(u3vU0e*z.i7]Q5T0rQ6{3WQ9X7OR:g9Ym!tQ!r!v!y!z'^'j'k'l-`-p1g5q5sQ'r!uS(d#g1|S-n'i'uQ/n*ZQ/{*gQ2|-qQ4]/oQ4i/}Q4j0OQ4o0WQ7h4WS7s4k4mS7w4p4rQ9g7iQ9k7oQ9p7tQ9u7yS:o9l9mS;Y:p:sS;e;Z;[S;m;f;gS;q;n;oR;t;rQ#wbQ'q!uS(c#g1|S(e#m+TQ+V%eQ+g%wQ+m%}U-m'i'r'uQ.R(dQ/m*ZQ/|*gQ0P*iQ0x+hQ1m,[S2y-n-qQ3R.ZS4[/n/oQ4e/yS4h/{0WQ4l0QQ5|1nQ6u2|Q7g4WQ7k4]U7r4i4o4rQ7u4nQ8k5}S9f7h7iQ9j7oQ9r7wQ9s7xQ:V8lQ:m9gS:n9k9mQ:v9uQ;P:WS;X:o:sS;d;Y;ZS;l;e;gS;p;m;oQ;s;qQ;u;tQ=a=[Q=l=eR=m=fV!wQ'^-`%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SS#wz!j!r=Z$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sR=a=r%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SQ%ej!^%wy!i!u%z%{%|'T'c'd'e'i's*g+k+l-T-g-h-o/{0O0{2m2t2{4i4j4m7s9pS%}z!jQ+h%xQ,[&bW1n,],^,_,`U5}1o1p1qS8l6O6PQ:W8m!r=[$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sQ=e=qR=f=r%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&p&r&s&u&y'R'`'p(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SY#bWZ#W#Z(R!b%im#h#i#l$x%d%g([(f(g(h*W*[*_+W+X+Z,j-Q.O.U.V.W.Y/h/k2[3S3T4X6h6yQ,i&m!p=]$Z$n)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sR=`'VU'Z!e%h*XR2k-Z%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y,k,n,s-d-l-z.Q.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3d4q5y6Z6[6_6r8i8x9S!r)]$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sQ,h&mQ0r+dQ3W.bQ7O3[R9Y7Q!b$Tc#Y%p(Q(W(r(w)X)Y)^)e+u-s-x-}.P.n.q/]0j2v2}3c3s5O5Y6q6v7V9Q:c;x!P<U)[)o-U.w2c2f3h3q3r3w4P6k7W7a7b8`8|9[9b9c:y;R=g!f$Vc#Y%p(Q(W(r(w)U)V)X)Y)^)e+u-s-x-}.P.n.q/]0j2v2}3c3s5O5Y6q6v7V9Q:c;x!T<W)[)o-U.w2c2f3h3n3o3q3r3w4P6k7W7a7b8`8|9[9b9c:y;R=g!^$Zc#Y%p(Q(W(r(w)^)e+u-s-x-}.P.n.q/]0j2v2}3c3s5O5Y6q6v7V9Q:c;xQ4V/fz=s)[)o-U.w2c2f3h3w4P6k7W7a7b8`8|9[9b9c:y;R=gQ=x=zR=y={'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sS$oh$pR3|/P'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/P/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sT$kf$qQ$ifS)h$l)lR)t$qT$jf$qT)j$l)l'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/P/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sT$oh$pQ$rhR)s$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9S!s=q$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=s#glOPXZst!Z!`!o#S#d#o#{$n%l&i&l&m&p&r&s&u&y'R'`(|)q*f+Y+d,k,n,s-d.b/Q/i0V0d1j1z1{1}2P2S2V2X3[3{4q5y6Z6[6_7Q8i8x!U%Ri$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y#f(u#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}Q+P%`Q/^)|o3v<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=Y!U$yi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=yQ*`$zU*i$|*X*lQ+Q%aQ0Q*j#f=c#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}n=d<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=YQ=h=tQ=i=uQ=j=vR=k=w!U%Ri$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y#f(u#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}o3v<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=YnoOXst!Z#d%l&p&r&s&u,n,s2S2VS*c${*WQ,|&|Q,}'OR4`/s%[%Si#v$b$c$d$x${%O%Q%]%^%b)w*P*R*T*W*^*d*t*u+c+f+},Q.a.z/_/h/r/s/u0Y0[0g0h0i1^1a1i3Z4U4V4a4f4w5R5U5x6|7l7v7|8Q8f9V9e9n9t:S:f:t:};V;^<^<_<a<b<c<d<g<h<i<j<k<l<t<u<v<w<y<z<}=O=P=Q=R=S=T=U=X=Y=p=x=y=|=}Q,P&ZQ1`,RQ5i1_R8]5jV*k$|*X*lU*k$|*X*lT5p1g5qS/y*f/iQ4n0VT7x4q:PQ+g%wQ0P*iQ0x+hQ1m,[Q5|1nQ8k5}Q:V8lR;P:W!U%Oi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=yx*P$v)c*Q*r+R/q0^0_3y4^4{4|4}7f7z9v:l=b=n=oS0Y*q0Z#f<a#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}n<b<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=Y!d<t(s)a*Y*b.e.h.l/Y/f/v0p1]3`4S4_4c5h7R7U7m7p7}8P9i9q9w:q:u;W;];h=z={`<u3u7X7[7`9]:h:k;kS=P.g3aT=Q7Z9`!U%Qi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y|*R$v)c*S*q+R/b/q0^0_3y4^4s4{4|4}7f7z9v:l=b=n=oS0[*r0]#f<c#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}n<d<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=Y!h<v(s)a*Y*b.f.g.l/Y/f/v0p1]3^3`4S4_4c5h7R7S7U7m7p7}8P9i9q9w:q:u;W;];h=z={d<w3u7Y7Z7`9]9^:h:i:k;kS=R.h3bT=S7[9arnOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VQ&d!UR,k&mrnOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VR&d!UQ,T&[R1[+|snOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VQ1h,YS5w1k1lU8e5u5v5zS:R8g8hS:{:Q:TQ;_:|R;i;`Q&k!VR,d&gR6T1tR:Y8nS&P|&UR1T+sQ&p!WR,n&qR,t&vT2T,s2VR,x&wQ,w&wR2^,xQ'w!{R-t'wSsOtQ#dXT%os#dQ#OTR'y#OQ#RUR'{#RQ)y$uR/Z)yQ#UVR(O#UQ#XWU(U#X(V-{Q(V#YR-{(WQ-X'WR2j-XQ.p(wS3e.p3fR3f.qQ-`'^R2n-`Y!rQ'^-`1g5qR'h!rQ.{)cR3z.{U#_W%g*WU(]#_(^-|Q(^#`R-|(XQ-['ZR2l-[t`OXst!V!Z#d%l&g&i&p&r&s&u,n,s2S2VS#hZ%dU#r`#h.VR.V(hQ(i#jQ.S(eW.[(i.S3P6wQ3P.TR6w3QQ)l$lR/R)lQ$phR)r$pQ$`cU)_$`-w<[Q-w;xR<[)oQ/l*ZW4Y/l4Z7j9hU4Z/m/n/oS7j4[4]R9h7k$e*O$v(s)a)c*Y*b*q*r*|*}+R.g.h.j.k.l/Y/b/d/f/q/v0^0_0p1]3^3_3`3u3y4S4^4_4c4s4u4{4|4}5h7R7S7T7U7Z7[7^7_7`7f7m7p7z7}8P9]9^9_9i9q9v9w:h:i:j:k:l:q:u;W;];h;k=b=n=o=z={Q/t*bU4b/t4d7nQ4d/vR7n4cS*l$|*XR0S*lx*Q$v)c*q*r+R/q0^0_3y4^4{4|4}7f7z9v:l=b=n=o!d.e(s)a*Y*b.g.h.l/Y/f/v0p1]3`4S4_4c5h7R7U7m7p7}8P9i9q9w:q:u;W;];h=z={U/c*Q.e7Xa7X3u7Z7[7`9]:h:k;kQ0Z*qQ3a.gU4t0Z3a9`R9`7Z|*S$v)c*q*r+R/b/q0^0_3y4^4s4{4|4}7f7z9v:l=b=n=o!h.f(s)a*Y*b.g.h.l/Y/f/v0p1]3^3`4S4_4c5h7R7S7U7m7p7}8P9i9q9w:q:u;W;];h=z={U/e*S.f7Ye7Y3u7Z7[7`9]9^:h:i:k;kQ0]*rQ3b.hU4v0]3b9aR9a7[Q*w%UR0a*wQ5S0pR8O5SQ+[%jR0o+[Q5l1bS8_5l:OR:O8`Q,V&]R1e,VQ5q1gR8b5qQ1s,aS6R1s8oR8o6TQ1O+oW5_1O5a8V9zQ5a1RQ8V5`R9z8WQ+t&PR1U+tQ2V,sR6c2VYrOXst#dQ&t!ZQ+^%lQ,m&pQ,o&rQ,p&sQ,r&uQ2Q,nS2T,s2VR6b2SQ%npQ&x!_Q&{!aQ&}!bQ'P!cQ'o!uQ+]%kQ+i%yQ+{&VQ,c&kQ,z&zW-k'i'q'r'uQ-r'mQ0R*kQ0y+jS1v,d,gQ2_,yQ2`,|Q2a,}Q2u-jW2w-m-n-q-sQ5W0zQ5d1XQ5g1]Q5{1mQ6V1xQ6a2RU6p2v2y2|Q6s2zQ8R5XQ8Z5fQ8[5hQ8a5pQ8j5|Q8p6US9P6q6uQ9R6tQ9{8XQ:U8kQ:Z8qQ:b9QQ:x9|Q;O:VQ;S:cR;a;PQ%yyQ'b!iQ'm!uU+j%z%{%|Q-R'TU-f'c'd'eS-j'i'sQ/z*gS0z+k+lQ2g-TS2s-g-hQ2z-oS4g/{0OQ5X0{Q6l2mQ6o2tQ6t2{U7q4i4j4mQ9o7sR:r9pS$wi=pR*x%VU%Ui%V=pR0`*vQ$viS(s#v+fS)a$b$cQ)c$dQ*Y$xS*b${*WQ*q%OQ*r%QQ*|%]Q*}%^Q+R%bQ.g<aQ.h<cQ.j<gQ.k<iQ.l<kQ/Y)wQ/b*PQ/d*RQ/f*TQ/q*^S/v*d/hQ0^*tQ0_*ul0p+c,Q.a1a1i3Z5x6|8f9V:S:f:};VQ1]+}Q3^<tQ3_<vQ3`<yS3u<^<_Q3y.zS4S/_4UQ4^/rQ4_/sQ4c/uQ4s0YQ4u0[Q4{0gQ4|0hQ4}0iQ5h1^Q7R<}Q7S=PQ7T=RQ7U=TQ7Z<bQ7[<dQ7^<hQ7_<jQ7`<lQ7f4VQ7m4aQ7p4fQ7z4wQ7}5RQ8P5UQ9]<zQ9^<uQ9_<wQ9i7lQ9q7vQ9v7|Q9w8QQ:h=OQ:i=QQ:j=SQ:k=UQ:l9eQ:q9nQ:u9tQ;W=XQ;]:tQ;h;^Q;k=YQ=b=pQ=n=xQ=o=yQ=z=|R={=}Q*z%[Q.i<eR7]<fnpOXst!Z#d%l&p&r&s&u,n,s2S2VQ!fPS#fZ#oQ&z!`W'f!o*f0V4qQ'}#SQ)O#{Q)p$nS,g&i&lQ,l&mQ,y&yS-O'R/iQ-b'`Q.s(|Q/V)qQ0m+YQ0s+dQ2O,kQ2q-dQ3X.bQ4O/QQ4y0dQ5v1jQ6X1zQ6Y1{Q6^1}Q6`2PQ6e2XQ7P3[Q7c3{Q8h5yQ8t6ZQ8u6[Q8w6_Q9Z7QQ:T8iR:_8x#[cOPXZst!Z!`!o#d#o#{%l&i&l&m&p&r&s&u&y'R'`(|*f+Y+d,k,n,s-d.b/i0V0d1j1z1{1}2P2S2V2X3[4q5y6Z6[6_7Q8i8xQ#YWQ#eYQ%puQ%rvS%tw!gS(Q#W(TQ(W#ZQ(r#uQ(w#xQ)P$OQ)Q$PQ)R$QQ)S$RQ)T$SQ)U$TQ)V$UQ)W$VQ)X$WQ)Y$XQ)[$ZQ)^$_Q)`$aQ)e$eW)o$n)q/Q3{Q+a%sQ+u&QS-U'V2hQ-s'pS-x(R-zQ-}(ZQ.P(bQ.n(vQ.q(xQ.u;vQ.w;yQ.x;zQ.y;}Q/]){Q0j+UQ2c-PQ2f-SQ2v-lQ2}.QQ3c.oQ3h<OQ3i<PQ3j<QQ3k<RQ3l<SQ3m<TQ3n<UQ3o<VQ3p<WQ3q<XQ3r<YQ3s.vQ3t<]Q3w<`Q3x<mQ4P<ZQ5O0lQ5Y0|Q6k<pQ6q2xQ6v3OQ7V3dQ7W<qQ7a<sQ7b<{Q8`5mQ8|6iQ9Q6rQ9[<|Q9b=VQ9c=WQ:c9SQ:y9}Q;R:aQ;x#SR=g=sR#[WR'X!el!tQ!r!v!y!z'^'j'k'l-`-p1g5q5sS'T!e-WU*g$|*X*lS-T'U']S0O*h*nQ0W*oQ2m-^Q4m0UR4r0XR(y#xQ!fQT-_'^-`]!qQ!r'^-`1g5qQ#p]R'g;wR)d$dY!uQ'^-`1g5qQ'i!rS's!v!yS'u!z5sS-o'j'kQ-q'lR2{-pT#kZ%dS#jZ%dS%jm,jU(e#h#i#lS.T(f(gQ.X(hQ0n+ZQ3Q.UU3R.V.W.YS6x3S3TR9T6yd#^W#W#Z%g(R([*W+W.O/hr#gZm#h#i#l%d(f(g(h+Z.U.V.W.Y3S3T6yS*Z$x*_Q/o*[Q1|,jQ2d-QQ4W/kQ6g2[Q7i4XQ8{6hT=_'V+XV#aW%g*WU#`W%g*WS(S#W([U(X#Z+W/hS-V'V+XT-y(R.OV'[!e%h*XQ$lfR)v$qT)k$l)lR3}/PT*]$x*_T*e${*WQ0q+cQ1_,QQ3V.aQ5j1aQ5u1iQ6}3ZQ8g5xQ9W6|Q:Q8fQ:d9VQ:|:SQ;U:fQ;`:}R;c;VnqOXst!Z#d%l&p&r&s&u,n,s2S2VQ&j!VR,c&gtmOXst!U!V!Z#d%l&g&p&r&s&u,n,s2S2VR,j&mT%km,jR1c,SR,b&eQ&T|R+z&UR+p&OT&n!W&qT&o!W&qT2U,s2V",nodeNames:"\u26A0 ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:379,context:Bz,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,236,242,244,246,248,251,257,263,265,267,269,271,273,274,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[Hz],skippedNodes:[0,5,6,277],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(VpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(VpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Vp(Y!b'{0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(W#S$i&j'|0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Vp(Y!b'|0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(U':f$i&j(Y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Y!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Vp(Y!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Vp(Y!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Y!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Y!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(VpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(VpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Vp(Y!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(n%1l(Vp(Y!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Vp(Y!b$]#t(S,2j(d$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Vp(Y!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Vp(Y!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(y+JY$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(X';W$i&j(VpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(VpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(VpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(VpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(VpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Vp(Y!b(T%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Vp(Y!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Vp(Y!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Vp(Y!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Vp(Y!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Vp(Y!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Y!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Y!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Y!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Y!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Y!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Y!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Vp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Vp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Vp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Vp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(VpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(VpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Vp(Y!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Vp(Y!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Vp(Y!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Vp(Y!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Vp(Y!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Vp(Y!b'}0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Vp(Y!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Y!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Y!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(VpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(VpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Vp(Y!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Vp(Y!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Vp(Y!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Vp(Y!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Vp(Y!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(q(Ct$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Vp(Y!b(`+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Vp(Y!b(S,2j$_#t(d$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Vp(Y!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(x+JY$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Vp(Y!b'{0/l$]#t(S,2j(d$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Vp(Y!b'|0/l$]#t(S,2j(d$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[Gz,Iz,Nz,Fz,2,3,4,5,6,7,8,9,10,11,12,13,14,Lz,new wi("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(b~~",141,339),new wi("j~RQYZXz{^~^O(P~~aP!P!Qd~iO(Q~~",25,322)],topRules:{Script:[0,7],SingleExpression:[1,275],SingleClassItem:[2,276]},dialects:{jsx:0,ts:15098},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:326,get:i=>Kz[i]||-1},{term:342,get:i=>Jz[i]||-1},{term:95,get:i=>e5[i]||-1}],tokenPrec:15124});var UQ=[Ue("function ${name}(${params}) {\n  ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Ue("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n  ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Ue("for (let ${name} of ${collection}) {\n  ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Ue("do {\n   ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Ue("while (${}) {\n  ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Ue(`try {
     47`){[e,t]=vn(this,e,t);let r="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(r+=n),e<l&&t>o&&(r+=a.sliceString(e-o,t-o,n)),o=l+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let n=0,[r,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==a)return n;let l=this.children[r],c=e.children[s];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,r)=>n+r.length+1,-1)){let n=0;for(let u of e)n+=u.lines;if(n<32){let u=[];for(let d of e)d.flatten(u);return new Fe(u,t)}let r=Math.max(32,n>>5),s=r<<1,o=r>>1,a=[],l=0,c=-1,O=[];function h(u){let d;if(u.lines>s&&u instanceof i)for(let p of u.children)h(p);else u.lines>o&&(l>o||!l)?(f(),a.push(u)):u instanceof Fe&&l&&(d=O[O.length-1])instanceof Fe&&u.lines+d.lines<=32?(l+=u.lines,c+=u.length+1,O[O.length-1]=new Fe(d.text.concat(u.text),d.length+1+u.length)):(l+u.lines>r&&f(),l+=u.lines,c+=u.length+1,O.push(u))}function f(){l!=0&&(a.push(O.length==1?O[0]:i.from(O,c)),c=-1,l=O.length=0)}for(let u of e)h(u);return f(),a.length==1?a[0]:new i(a,t)}};M.empty=new Fe([""],0);function ax(i){let e=-1;for(let t of i)e+=t.length+1;return e}function uo(i,e,t=0,n=1e9){for(let r=0,s=0,o=!0;s<i.length&&r<=n;s++){let a=i[s],l=r+a.length;l>=t&&(l>n&&(a=a.slice(0,n-r)),r<t&&(a=a.slice(t-r)),o?(e[e.length-1]+=a,o=!1):e.push(a)),r=l+1}return e}function dp(i,e,t){return uo(i,[""],e,t)}var Vi=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Fe?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,a=r instanceof Fe?r.text.length:r.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
     48`,this;e--}else if(r instanceof Fe){let l=r.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=r.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fe?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},po=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Vi(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},mo=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(M.prototype[Symbol.iterator]=function(){return this.iter()},Vi.prototype[Symbol.iterator]=po.prototype[Symbol.iterator]=mo.prototype[Symbol.iterator]=function(){return this});var QO=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function vn(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function ve(i,e,t=!0,n=!0){return cp(i,e,t,n)}function lx(i){return i>=56320&&i<57344}function Ox(i){return i>=55296&&i<56320}function Xe(i,e){let t=i.charCodeAt(e);if(!Ox(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return lx(n)?(t-55296<<10)+(n-56320)+65536:t}function Xr(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function Ke(i){return i<65536?1:2}var SO=/\r\n?|\n/,ke=function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i}(ke||(ke={})),Lt=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,r=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(n,r,s),r+=s):r+=o,n+=s}}iterChangedRanges(e,t=!1){bO(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];r<0?e.push(n,r):e.push(r,n)}return new i(e)}composeDesc(e){return this.empty?e:e.empty?this:yp(this,e)}mapDesc(e,t=!1){return e.empty?this:xO(this,e,t)}mapPos(e,t=-1,n=ke.Simple){let r=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=r+a;if(l<0){if(c>e)return s+(e-r);s+=a}else{if(n!=ke.Simple&&c>=e&&(n==ke.TrackDel&&r<e&&c>e||n==ke.TrackBefore&&r<e||n==ke.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==r||t<0?s:s+l;s+=l}r=c}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let n=0,r=0;n<this.sections.length&&r<=t;){let s=this.sections[n++],o=this.sections[n++],a=r+s;if(o>=0&&r<=t&&a>=e)return r<e&&a>t?"cover":!0;r=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];e+=(e?" ":"")+n+(r>=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},Ae=class i extends Lt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return bO(this,(t,n,r,s,o)=>e=e.replace(r,r+(n-t),o),!1),e}mapDesc(e,t=!1){return xO(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,s=0;r<t.length;r+=2){let o=t[r],a=t[r+1];if(a>=0){t[r]=a,t[r+1]=o;let l=r>>1;for(;n.length<l;)n.push(M.empty);n.push(o?e.slice(s,s+o):M.empty)}s+=o}return new i(t,n)}compose(e){return this.empty?e:e.empty?this:yp(this,e,!0)}map(e,t=!1){return e.empty?this:xO(this,e,t,!0)}iterChanges(e,t=!1){bO(this,e,t)}get desc(){return Lt.create(this.sections)}filter(e){let t=[],n=[],r=[],s=new Ai(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&s.len==0;){if(s.done)break e;let O=Math.min(s.len,l-a);We(r,O,-1);let h=s.ins==-1?-1:s.off==0?s.ins:0;We(t,O,h),h>0&&hi(n,t,s.text),s.forward(O),a+=O}let c=e[o++];for(;a<c;){if(s.done)break e;let O=Math.min(s.len,c-a);We(t,O,-1),We(r,O,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(O),a+=O}}return{changes:new i(t,n),filtered:Lt.create(r)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],r=this.sections[t+1];r<0?e.push(n):r==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let r=[],s=[],o=0,a=null;function l(O=!1){if(!O&&!r.length)return;o<t&&We(r,t-o,-1);let h=new i(r,s);a=a?a.compose(h.map(a)):h,r=[],s=[],o=0}function c(O){if(Array.isArray(O))for(let h of O)c(h);else if(O instanceof i){if(O.length!=t)throw new RangeError(`Mismatched change set length (got ${O.length}, expected ${t})`);l(),a=a?a.compose(O.map(a)):O}else{let{from:h,to:f=h,insert:u}=O;if(h>f||h<0||f>t)throw new RangeError(`Invalid change range ${h} to ${f} (in doc of length ${t})`);let d=u?typeof u=="string"?M.of(u.split(n||SO)):u:M.empty,p=d.length;if(h==f&&p==0)return;h<o&&l(),h>o&&We(r,h-o,-1),We(r,f-h,p),hi(s,r,d),o=f}}return c(e),l(!a),a}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;r<e.length;r++){let s=e[r];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length<r;)n.push(M.empty);n[r]=M.of(s.slice(1)),t.push(s[0],n[r].length)}}}return new i(t,n)}static createSet(e,t){return new i(e,t)}};function We(i,e,t,n=!1){if(e==0&&t<=0)return;let r=i.length-2;r>=0&&t<=0&&t==i[r+1]?i[r]+=e:r>=0&&e==0&&i[r]==0?i[r+1]+=t:n?(i[r]+=e,i[r+1]+=t):i.push(e,t)}function hi(i,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<i.length)i[i.length-1]=i[i.length-1].append(t);else{for(;i.length<n;)i.push(M.empty);i.push(t)}}function bO(i,e,t){let n=i.inserted;for(let r=0,s=0,o=0;o<i.sections.length;){let a=i.sections[o++],l=i.sections[o++];if(l<0)r+=a,s+=a;else{let c=r,O=s,h=M.empty;for(;c+=a,O+=l,l&&n&&(h=h.append(n[o-2>>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)a=i.sections[o++],l=i.sections[o++];e(r,c,s,O,h),r=c,s=O}}}function xO(i,e,t,n=!1){let r=[],s=n?[]:null,o=new Ai(i),a=new Ai(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);We(r,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let c=a.len;for(We(r,a.ins,-1);c;){let O=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=O&&(We(r,0,o.ins),s&&hi(s,r,o.text),l=o.i),o.forward(O),c-=O}a.next()}else if(o.ins>=0){let c=0,O=o.len;for(;O;)if(a.ins==-1){let h=Math.min(O,a.len);c+=h,O-=h,a.forward(h)}else if(a.ins==0&&a.len<O)O-=a.len,a.next();else break;We(r,c,l<o.i?o.ins:0),s&&l<o.i&&hi(s,r,o.text),l=o.i,o.forward(o.len-O)}else{if(o.done&&a.done)return s?Ae.createSet(r,s):Lt.create(r);throw new Error("Mismatched change set lengths")}}}function yp(i,e,t=!1){let n=[],r=t?[]:null,s=new Ai(i),o=new Ai(e);for(let a=!1;;){if(s.done&&o.done)return r?Ae.createSet(n,r):Lt.create(n);if(s.ins==0)We(n,s.len,0,a),s.next();else if(o.len==0&&!o.done)We(n,0,o.ins,a),r&&hi(r,n,o.text),o.next();else{if(s.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(s.len2,o.len),c=n.length;if(s.ins==-1){let O=o.ins==-1?-1:o.off?0:o.ins;We(n,l,O,a),r&&O&&hi(r,n,o.text)}else o.ins==-1?(We(n,s.off?0:s.len,l,a),r&&hi(r,n,s.textBit(l))):(We(n,s.off?0:s.len,o.off?0:o.ins,a),r&&!o.off&&hi(r,n,o.text));a=(s.ins>l||o.ins>=0&&o.len>l)&&(a||n.length>c),s.forward2(l),o.forward(l)}}}}var Ai=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?M.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?M.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Qn=class i{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let n,r;return this.empty?n=r=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new i(n,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return P.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return P.range(this.anchor,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return P.range(e.anchor,e.head)}static create(e,t,n){return new i(e,t,n)}},P=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new i([this.main],0)}addRange(e,t=!0){return i.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,i.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>Qn.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;r<e.length;r++){let s=e[r];if(s.empty?s.from<=n:s.from<n)return i.normalized(e.slice(),t);n=s.to}return new i(e,t)}static cursor(e,t=0,n,r){return Qn.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(r??16777215)<<6)}static range(e,t,n,r){let s=(n??16777215)<<6|(r==null?7:Math.min(6,r));return t<e?Qn.create(t,e,48|s):Qn.create(e,t,(t>e?8:0)|s)}static normalized(e,t=0){let n=e[t];e.sort((r,s)=>r.from-s.from),t=e.indexOf(n);for(let r=1;r<e.length;r++){let s=e[r],o=e[r-1];if(s.empty?s.from<=o.to:s.from<o.to){let a=o.from,l=Math.max(s.to,o.to);r<=t&&t--,e.splice(--r,2,s.anchor>s.head?i.range(l,a):i.range(a,l))}}return new i(e,t)}};function Qp(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var _O=0,X=class i{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=_O++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:CO),!!e.static,e.enables)}of(e){return new bn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new bn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new bn(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function CO(i,e){return i==e||i.length==e.length&&i.every((t,n)=>t===e[n])}var bn=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=_O++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,O=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:((t=e[h.id])!==null&&t!==void 0?t:1)&1||O.push(e[h.id]);return{create(h){return h.values[o]=n(h),1},update(h,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||vO(h,O)){let u=n(h);if(a?!pp(u,h.values[o],r):!r(u,h.values[o]))return h.values[o]=u,1}return 0},reconfigure:(h,f)=>{let u,d=f.config.address[s];if(d!=null){let p=Qo(f,d);if(this.dependencies.every(m=>m instanceof X?f.facet(m)===h.facet(m):m instanceof de?f.field(m,!1)==h.field(m,!1):!0)||(a?pp(u=n(h),p,r):r(u=n(h),p)))return h.values[o]=p,0}else u=n(h);return h.values[o]=u,1}}}};function pp(i,e,t){if(i.length!=e.length)return!1;for(let n=0;n<i.length;n++)if(!t(i[n],e[n]))return!1;return!0}function vO(i,e){let t=!1;for(let n of e)Pr(i,n)&1&&(t=!0);return t}function cx(i,e,t){let n=t.map(l=>i[l.id]),r=t.map(l=>l.type),s=n.filter(l=>!(l&1)),o=i[e.id]>>1;function a(l){let c=[];for(let O=0;O<n.length;O++){let h=Qo(l,n[O]);if(r[O]==2)for(let f of h)c.push(f);else c.push(h)}return e.combine(c)}return{create(l){for(let c of n)Pr(l,c);return l.values[o]=a(l),1},update(l,c){if(!vO(l,s))return 0;let O=a(l);return e.compare(O,l.values[o])?0:(l.values[o]=O,1)},reconfigure(l,c){let O=vO(l,n),h=c.config.facets[e.id],f=c.facet(e);if(h&&!O&&CO(t,h))return l.values[o]=f,0;let u=a(l);return e.compare(u,f)?(l.values[o]=f,0):(l.values[o]=u,1)}}}var co=X.define({static:!0}),de=class i{constructor(e,t,n,r,s){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=s,this.provides=void 0}static define(e){let t=new i(_O++,e.create,e.update,e.compare||((n,r)=>n===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(co).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,r)=>{let s=n.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(n.values[t]=o,1)},reconfigure:(n,r)=>{let s=n.facet(co),o=r.facet(co),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[t]=a.create(n),1):r.config.address[this.id]!=null?(n.values[t]=r.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,co.of({field:this,create:e})]}get extension(){return this}},Wi={lowest:4,low:3,default:2,high:1,highest:0};function wr(i){return e=>new go(e,i)}var Ot={highest:wr(Wi.highest),high:wr(Wi.high),default:wr(Wi.default),low:wr(Wi.low),lowest:wr(Wi.lowest)},go=class{constructor(e,t){this.inner=e,this.prec=t}},$o=class i{of(e){return new kr(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},kr=class{constructor(e,t){this.compartment=e,this.inner=t}},yo=class i{constructor(e,t,n,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let r=[],s=Object.create(null),o=new Map;for(let f of hx(e,t,o))f instanceof de?r.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of r)a[f.id]=c.length<<1,c.push(u=>f.slot(u));let O=n?.config.facets;for(let f in s){let u=s[f],d=u[0].facet,p=O&&O[f]||[];if(u.every(m=>m.type==0))if(a[d.id]=l.length<<1|1,CO(p,u))l.push(n.facet(d));else{let m=d.combine(u.map(g=>g.value));l.push(n&&d.compare(m,n.facet(d))?n.facet(d):m)}else{for(let m of u)m.type==0?(a[m.id]=l.length<<1|1,l.push(m.value)):(a[m.id]=c.length<<1,c.push(g=>m.dynamicSlot(g)));a[d.id]=c.length<<1,c.push(m=>cx(m,d,u))}}let h=c.map(f=>f(a));return new i(e,o,h,a,l,s)}};function hx(i,e,t){let n=[[],[],[],[],[]],r=new Map;function s(o,a){let l=r.get(o);if(l!=null){if(l<=a)return;let c=n[l].indexOf(o);c>-1&&n[l].splice(c,1),o instanceof kr&&t.delete(o.compartment)}if(r.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof kr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof go)s(o.inner,o.prec);else if(o instanceof de)n[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof bn)n[a].push(o),o.facet.extensions&&s(o.facet.extensions,Wi.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(i,Wi.default),n.reduce((o,a)=>o.concat(a))}function Pr(i,e){if(e&1)return 2;let t=e>>1,n=i.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;i.status[t]=4;let r=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|r}function Qo(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var Sp=X.define(),wO=X.define({combine:i=>i.some(e=>e),static:!0}),bp=X.define({combine:i=>i.length?i[0]:void 0,static:!0}),xp=X.define(),vp=X.define(),Pp=X.define(),kp=X.define({combine:i=>i.length?i[0]:!1}),De=class{constructor(e,t){this.type=e,this.value=t}static define(){return new PO}},PO=class{of(e){return new De(this,e)}},kO=class{constructor(e){this.map=e}of(e){return new Z(this,e)}},Z=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new kO(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let s=r.map(t);s&&n.push(s)}return n}};Z.reconfigure=Z.define();Z.appendConfig=Z.define();var xe=class i{constructor(e,t,n,r,s,o){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,n&&Qp(n,t.newLength),s.some(a=>a.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,n,r,s,o){return new i(e,t,n,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};xe.time=De.define();xe.userEvent=De.define();xe.addToHistory=De.define();xe.remote=De.define();function fx(i,e){let t=[];for(let n=0,r=0;;){let s,o;if(n<i.length&&(r==e.length||e[r]>=i[n]))s=i[n++],o=i[n++];else if(r<e.length)s=e[r++],o=e[r++];else return t;!t.length||t[t.length-1]<s?t.push(s,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function Tp(i,e,t){var n;let r,s,o;return t?(r=e.changes,s=Ae.empty(e.changes.length),o=i.changes.compose(e.changes)):(r=e.changes.map(i.changes),s=i.changes.mapDesc(e.changes,!0),o=i.changes.compose(r)),{changes:o,selection:e.selection?e.selection.map(s):(n=i.selection)===null||n===void 0?void 0:n.map(r),effects:Z.mapEffects(i.effects,r).concat(Z.mapEffects(e.effects,s)),annotations:i.annotations.length?i.annotations.concat(e.annotations):e.annotations,scrollIntoView:i.scrollIntoView||e.scrollIntoView}}function TO(i,e,t){let n=e.selection,r=xn(e.annotations);return e.userEvent&&(r=r.concat(xe.userEvent.of(e.userEvent))),{changes:e.changes instanceof Ae?e.changes:Ae.of(e.changes||[],t,i.facet(bp)),selection:n&&(n instanceof P?n:P.single(n.anchor,n.head)),effects:xn(e.effects),annotations:r,scrollIntoView:!!e.scrollIntoView}}function zp(i,e,t){let n=TO(i,e.length?e[0]:{},i.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let o=!!e[s].sequential;n=Tp(n,TO(i,e[s],o?n.changes.newLength:i.doc.length),o)}let r=xe.create(i,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return dx(t?ux(r):r)}function ux(i){let e=i.startState,t=!0;for(let r of e.facet(xp)){let s=r(i);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:fx(t,s))}if(t!==!0){let r,s;if(t===!1)s=i.changes.invertedDesc,r=Ae.empty(e.doc.length);else{let o=i.changes.filter(t);r=o.changes,s=o.filtered.mapDesc(o.changes).invertedDesc}i=xe.create(e,r,i.selection&&i.selection.map(s),Z.mapEffects(i.effects,s),i.annotations,i.scrollIntoView)}let n=e.facet(vp);for(let r=n.length-1;r>=0;r--){let s=n[r](i);s instanceof xe?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof xe?i=s[0]:i=zp(e,xn(s),!1)}return i}function dx(i){let e=i.startState,t=e.facet(Pp),n=i;for(let r=t.length-1;r>=0;r--){let s=t[r](i);s&&Object.keys(s).length&&(n=Tp(n,TO(e,s,i.changes.newLength),!0))}return n==i?i:xe.create(e,i.changes,i.selection,n.effects,n.annotations,n.scrollIntoView)}var px=[];function xn(i){return i==null?px:Array.isArray(i)?i:[i]}var ie=function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i}(ie||(ie={})),mx=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,zO;try{zO=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function gx(i){if(zO)return zO.test(i);for(let e=0;e<i.length;e++){let t=i[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||mx.test(t)))return!0}return!1}function $x(i){return e=>{if(!/\S/.test(e))return ie.Space;if(gx(e))return ie.Word;for(let t=0;t<i.length;t++)if(e.indexOf(i[t])>-1)return ie.Word;return ie.Other}}var ee=class i{constructor(e,t,n,r,s,o){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)Pr(this,a<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return Pr(this,n),Qo(this,n)}update(...e){return zp(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:r}=t;for(let a of e.effects)a.is($o.reconfigure)?(t&&(r=new Map,t.compartments.forEach((l,c)=>r.set(c,l)),t=null),r.set(a.value.compartment,a.value.extension)):a.is(Z.reconfigure)?(t=null,n=a.value):a.is(Z.appendConfig)&&(t=null,n=xn(n).concat(a.value));let s;t?s=e.startState.values.slice():(t=yo.resolve(n,r,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(wO)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:P.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),s=[n.range],o=xn(n.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),c=this.changes(l.changes),O=c.map(r);for(let f=0;f<a;f++)s[f]=s[f].map(O);let h=r.mapDesc(c,!0);s.push(l.range.map(h)),r=r.compose(O),o=Z.mapEffects(o,O).concat(Z.mapEffects(xn(l.effects),h))}return{changes:r,selection:P.create(s,t.mainIndex),effects:o}}changes(e=[]){return e instanceof Ae?e:Ae.of(e,this.doc.length,this.facet(i.lineSeparator))}toText(e){return M.of(e.split(this.facet(i.lineSeparator)||SO))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Pr(this,t),Qo(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof de&&this.config.address[r.id]!=null&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let r=[];if(n){for(let s in n)if(Object.prototype.hasOwnProperty.call(e,s)){let o=n[s],a=e[s];r.push(o.init(l=>o.spec.fromJSON(a,l)))}}return i.create({doc:e.doc,selection:P.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=yo.resolve(e.extensions||[],new Map),n=e.doc instanceof M?e.doc:M.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||SO)),r=e.selection?e.selection instanceof P?e.selection:P.single(e.selection.anchor,e.selection.head):P.single(0);return Qp(r,n.length),t.staticFacet(wO)||(r=r.asSingle()),new i(t,n,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||`
     49`}get readOnly(){return this.facet(kp)}phrase(e,...t){for(let n of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let r=[];for(let s of this.facet(Sp))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){return $x(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=ve(t,o,!1);if(s(t.slice(l,o))!=ie.Word)break;o=l}for(;a<r;){let l=ve(t,a);if(s(t.slice(a,l))!=ie.Word)break;a=l}return o==a?null:P.range(o+n,a+n)}};ee.allowMultipleSelections=wO;ee.tabSize=X.define({combine:i=>i.length?i[0]:4});ee.lineSeparator=bp;ee.readOnly=kp;ee.phrases=X.define({compare(i,e){let t=Object.keys(i),n=Object.keys(e);return t.length==n.length&&t.every(r=>i[r]==e[r])}});ee.languageData=Sp;ee.changeFilter=xp;ee.transactionFilter=vp;ee.transactionExtender=Pp;$o.reconfigure=Z.define();function Ze(i,e,t={}){let n={};for(let r of i)for(let s of Object.keys(r)){let o=r[s],a=n[s];if(a===void 0)n[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)n[r]===void 0&&(n[r]=e[r]);return n}var mt=class{eq(e){return this==e}range(e,t=e){return Tr.create(e,t,this)}};mt.prototype.startSide=mt.prototype.endSide=0;mt.prototype.point=!1;mt.prototype.mapMode=ke.TrackDel;var Tr=class i{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new i(e,t,n)}};function XO(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var RO=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,r=0){let s=n?this.to:this.from;for(let o=r,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);s<o;s++)if(r(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],r=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],O=this.from[l]+e,h=this.to[l]+e,f,u;if(O==h){let d=t.mapPos(O,c.startSide,c.mapMode);if(d==null||(f=u=d,c.startSide!=c.endSide&&(u=t.mapPos(O,c.endSide),u<f)))continue}else if(f=t.mapPos(O,c.startSide),u=t.mapPos(h,c.endSide),f>u||f==u&&c.startSide>0&&c.endSide<=0)continue;(u-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,u-f)),n.push(c),r.push(f-o),s.push(u-o))}return{mapped:n.length?new i(r,s,n,a):null,pos:o}}},H=class i{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new i(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(XO)),this.isEmpty)return t.length?i.of(t):this;let a=new So(this,null,-1).goto(0),l=0,c=[],O=new He;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];O.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||r>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&O.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||r>a.to||s<a.from||o(a.from,a.to,a.value))&&(O.addInner(a.from,a.to,a.value)||c.push(Tr.create(a.from,a.to,a.value))),a.next());return O.finishInner(this.nextLayer.isEmpty&&!c.length?i.empty:this.nextLayer.update({add:c,filter:o,filterFrom:r,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],r=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)r=Math.max(r,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:O,pos:h}=l.map(a,e);O&&(r=Math.max(r,O.maxPoint),t.push(O),n.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new i(n,t,s||i.empty,r)}between(e,t,n){if(!this.isEmpty){for(let r=0;r<this.chunk.length;r++){let s=this.chunkPos[r],o=this.chunk[r];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return zr.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return zr.from(e).goto(t)}static compare(e,t,n,r,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),l=mp(o,a,n),c=new Zi(o,l,s),O=new Zi(a,l,s);n.iterGaps((h,f,u)=>gp(c,h,O,f,u,r)),n.empty&&n.length==0&&gp(c,0,O,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=999999999);let s=e.filter(O=>!O.isEmpty&&t.indexOf(O)<0),o=t.filter(O=>!O.isEmpty&&e.indexOf(O)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=mp(s,o),l=new Zi(s,a,0).goto(n),c=new Zi(o,a,0).goto(n);for(;;){if(l.to!=c.to||!qO(l.active,c.active)||l.point&&(!c.point||!l.point.eq(c.point)))return!1;if(l.to>r)return!0;l.next(),c.next()}}static spans(e,t,n,r,s=-1){let o=new Zi(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let O=o.activeForPoint(o.to),h=o.pointFrom<t?O.length+1:o.point.startSide<0?O.length:Math.min(O.length,l);r.point(a,c,o.point,O,h,o.pointRank),l=Math.min(o.openEnd(c),O.length)}else c>a&&(r.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,t=!1){let n=new He;for(let r of e instanceof Tr?[e]:t?yx(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let r=e[n];r!=i.empty;r=r.nextLayer)t=new i(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}};H.empty=new H([],[],null,-1);function yx(i){if(i.length>1)for(let e=i[0],t=1;t<i.length;t++){let n=i[t];if(XO(e,n)>0)return i.slice().sort(XO);e=n}return i}H.empty.nextLayer=H.empty;var He=class i{finishChunk(e){this.chunks.push(new RO(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,n)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(H.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=H.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function mp(i,e,t){let n=new Map;for(let s of i)for(let o=0;o<s.chunk.length;o++)s.chunk[o].maxPoint<=0&&n.set(s.chunk[o],s.chunkPos[o]);let r=new Set;for(let s of e)for(let o=0;o<s.chunk.length;o++){let a=n.get(s.chunk[o]);a!=null&&(t?t.mapPos(a):a)==s.chunkPos[o]&&!t?.touchesRange(a,a+s.chunk[o].length)&&r.add(s.chunk[o])}return r}var So=class{constructor(e,t,n,r=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=r}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let r=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(r)||this.layer.chunkEnd(this.chunkIndex)<e||r.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let r=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<r)&&this.setRangeIndex(r)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},zr=class i{constructor(e){this.heap=e}static from(e,t=null,n=-1){let r=[];for(let s=0;s<e.length;s++)for(let o=e[s];!o.isEmpty;o=o.nextLayer)o.maxPoint>=n&&r.push(new So(o,t,n,s));return r.length==1?r[0]:new i(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)yO(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)yO(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),yO(this.heap,0)}}};function yO(i,e){for(let t=i[e];;){let n=(e<<1)+1;if(n>=i.length)break;let r=i[n];if(n+1<i.length&&r.compare(i[n+1])>=0&&(r=i[n+1],n++),t.compare(r)<0)break;i[n]=t,i[e]=r,e=n}}var Zi=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=zr.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){ho(this.active,e),ho(this.activeTo,e),ho(this.activeRank,e),this.minActive=$p(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:s}=this.cursor;for(;t<this.activeRank.length&&(s-this.activeRank[t]||r-this.activeTo[t])>0;)t++;fo(this.active,t,n),fo(this.activeTo,t,r),fo(this.activeRank,t,s),e&&fo(e,t,this.cursor.from),this.minActive=$p(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&ho(n,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let r=n.length-1;r>=0&&n[r]<e;r--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function gp(i,e,t,n,r,s){i.goto(e),t.goto(n);let o=n+r,a=n,l=n-e;for(;;){let c=i.to+l-t.to,O=c||i.endSide-t.endSide,h=O<0?i.to+l:t.to,f=Math.min(h,o);if(i.point||t.point?i.point&&t.point&&(i.point==t.point||i.point.eq(t.point))&&qO(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(a,f,i.point,t.point):f>a&&!qO(i.active,t.active)&&s.compareRange(a,f,i.active,t.active),h>o)break;(c||i.openEnd!=t.openEnd)&&s.boundChange&&s.boundChange(h),a=h,O<=0&&i.next(),O>=0&&t.next()}}function qO(i,e){if(i.length!=e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!=e[t]&&!i[t].eq(e[t]))return!1;return!0}function ho(i,e){for(let t=e,n=i.length-1;t<n;t++)i[t]=i[t+1];i.pop()}function fo(i,e,t){for(let n=i.length-1;n>=e;n--)i[n+1]=i[n];i[e]=t}function $p(i,e){let t=-1,n=1e9;for(let r=0;r<e.length;r++)(e[r]-n||i[r].endSide-i[t].endSide)<0&&(t=r,n=e[r]);return t}function Bt(i,e,t=i.length){let n=0;for(let r=0;r<t&&r<i.length;)i.charCodeAt(r)==9?(n+=e-n%e,r++):(n++,r=ve(i,r));return n}function bo(i,e,t,n){for(let r=0,s=0;;){if(s>=e)return r;if(r==i.length)break;s+=i.charCodeAt(r)==9?t-s%t:1,r=ve(i,r)}return n===!0?-1:i.length}var WO="\u037C",Xp=typeof Symbol>"u"?"__"+WO:Symbol.for(WO),ZO=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Rp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},ct=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let O=[],h=/^@(\w+)\b/.exec(o[0]),f=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let u in a){let d=a[u];if(/&/.test(u))s(u.split(/,\s*/).map(p=>o.map(m=>p.replace(/&/,m))).reduce((p,m)=>p.concat(m)),d,l);else if(d&&typeof d=="object"){if(!h)throw new RangeError("The value of a property ("+u+") should be a primitive value.");s(r(u),d,O,f)}else d!=null&&O.push(u.replace(/_.*/,"").replace(/[A-Z]/g,p=>"-"+p.toLowerCase())+": "+d+";")}(O.length||f)&&l.push((n&&!h&&!c?o.map(n):o).join(", ")+" {"+O.join(" ")+"}")}for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(`
     50`)}static newName(){let e=Rp[Xp]||1;return Rp[Xp]=e+1,WO+e.toString(36)}static mount(e,t,n){let r=e[ZO],s=n&&n.nonce;r?s&&r.setNonce(s):r=new VO(e,s),r.mount(Array.isArray(t)?t:[t],e)}},qp=new Map,VO=class{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=qp.get(n);if(s)return e[ZO]=s;this.sheet=new r.CSSStyleSheet,qp.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[ZO]=this}mount(e,t){let n=this.sheet,r=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],r++)}else{for(;s<l;)r+=this.modules[s++].rules.length;r+=a.rules.length,s++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
     51`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var Gt={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},wn={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Qx=typeof navigator<"u"&&/Mac/.test(navigator.platform),Sx=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(we=0;we<10;we++)Gt[48+we]=Gt[96+we]=String(we);var we;for(we=1;we<=24;we++)Gt[we+111]="F"+we;var we;for(we=65;we<=90;we++)Gt[we]=String.fromCharCode(we+32),wn[we]=String.fromCharCode(we);var we;for(xo in Gt)wn.hasOwnProperty(xo)||(wn[xo]=Gt[xo]);var xo;function _p(i){var e=Qx&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||Sx&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?wn:Gt)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function N(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r=t[n];typeof r=="string"?i.setAttribute(n,r):r!=null&&(i[n]=r)}e++}for(;e<arguments.length;e++)Cp(i,arguments[e]);return i}function Cp(i,e){if(typeof e=="string")i.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)i.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)Cp(i,e[t]);else throw new RangeError("Unsupported child node: "+e)}function Er(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function LO(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function _o(i,e){if(!e.anchorNode)return!1;try{return LO(i,e.anchorNode)}catch{return!1}}function Dr(i){return i.nodeType==3?Ui(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function Zr(i,e,t,n){return t?Wp(i,e,t,n,-1)||Wp(i,e,t,n,1):!1}function Yi(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function Yo(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function Wp(i,e,t,n,r){for(;;){if(i==t&&e==n)return!0;if(e==(r<0?0:Tt(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Yi(i)+(r<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(r<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=r<0?Tt(i):0}else return!1}}function Tt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function ta(i,e){let t=e?i.left:i.right;return{left:t,right:t,top:i.top,bottom:i.bottom}}function bx(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function xm(i,e){let t=e.width/i.offsetWidth,n=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-i.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function xx(i,e,t,n,r,s,o,a){let l=i.ownerDocument,c=l.defaultView||window;for(let O=i,h=!1;O&&!h;)if(O.nodeType==1){let f,u=O==l.body,d=1,p=1;if(u)f=bx(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(O).position)&&(h=!0),O.scrollHeight<=O.clientHeight&&O.scrollWidth<=O.clientWidth){O=O.assignedSlot||O.parentNode;continue}let Q=O.getBoundingClientRect();({scaleX:d,scaleY:p}=xm(O,Q)),f={left:Q.left,right:Q.left+O.clientWidth*d,top:Q.top,bottom:Q.top+O.clientHeight*p}}let m=0,g=0;if(r=="nearest")e.top<f.top?(g=e.top-(f.top+o),t>0&&e.bottom>f.bottom+g&&(g=e.bottom-f.bottom+o)):e.bottom>f.bottom&&(g=e.bottom-f.bottom+o,t<0&&e.top-g<f.top&&(g=e.top-(f.top+o)));else{let Q=e.bottom-e.top,x=f.bottom-f.top;g=(r=="center"&&Q<=x?e.top+Q/2-x/2:r=="start"||r=="center"&&t<0?e.top-o:e.bottom-x+o)-f.top}if(n=="nearest"?e.left<f.left?(m=e.left-(f.left+s),t>0&&e.right>f.right+m&&(m=e.right-f.right+s)):e.right>f.right&&(m=e.right-f.right+s,t<0&&e.left<f.left+m&&(m=e.left-(f.left+s))):m=(n=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:n=="start"==a?e.left-s:e.right-(f.right-f.left)+s)-f.left,m||g)if(u)c.scrollBy(m,g);else{let Q=0,x=0;if(g){let v=O.scrollTop;O.scrollTop+=g/p,x=(O.scrollTop-v)*p}if(m){let v=O.scrollLeft;O.scrollLeft+=m/d,Q=(O.scrollLeft-v)*d}e={left:e.left-Q,top:e.top-x,right:e.right-Q,bottom:e.bottom-x},Q&&Math.abs(Q-m)<1&&(n="nearest"),x&&Math.abs(x-g)<1&&(r="nearest")}if(u)break;(e.top<f.top||e.bottom>f.bottom||e.left<f.left||e.right>f.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),O=O.assignedSlot||O.parentNode}else if(O.nodeType==11)O=O.host;else break}function vx(i){let e=i.ownerDocument,t,n;for(let r=i.parentNode;r&&!(r==e.body||t&&n);)if(r.nodeType==1)!n&&r.scrollHeight>r.clientHeight&&(n=r),!t&&r.scrollWidth>r.clientWidth&&(t=r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;return{x:t,y:n}}var BO=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?Tt(t):0),n,Math.min(e.focusOffset,n?Tt(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},Pn=null;function vm(i){if(i.setActive)return i.setActive();if(Pn)return i.focus(Pn);let e=[];for(let t=i;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(i.focus(Pn==null?{get preventScroll(){return Pn={preventScroll:!0},!0}}:void 0),!Pn){Pn=!1;for(let t=0;t<e.length;){let n=e[t++],r=e[t++],s=e[t++];n.scrollTop!=r&&(n.scrollTop=r),n.scrollLeft!=s&&(n.scrollLeft=s)}}}var Zp;function Ui(i,e,t=e){let n=Zp||(Zp=document.createRange());return n.setEnd(i,t),n.setStart(i,e),n}function Rn(i,e,t,n){let r={key:e,code:e,keyCode:t,which:t,cancelable:!0};n&&({altKey:r.altKey,ctrlKey:r.ctrlKey,shiftKey:r.shiftKey,metaKey:r.metaKey}=n);let s=new KeyboardEvent("keydown",r);s.synthetic=!0,i.dispatchEvent(s);let o=new KeyboardEvent("keyup",r);return o.synthetic=!0,i.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function wx(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function wm(i){for(;i.attributes.length;)i.removeAttributeNode(i.attributes[0])}function Px(i,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,Tt(t));;)if(n){if(t.nodeType!=1)return!1;let r=t.childNodes[n-1];r.contentEditable=="false"?n--:(t=r,n=Tt(t))}else{if(t==i)return!0;n=Yi(t),t=t.parentNode}}function Pm(i){return i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function km(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=Tt(t)}else if(t.parentNode&&!Yo(t))n=Yi(t),t=t.parentNode;else return null}}function Tm(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n<t.nodeValue.length)return{node:t,offset:n};if(t.nodeType==1&&n<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[n],n=0}else if(t.parentNode&&!Yo(t))n=Yi(t)+1,t=t.parentNode;else return null}}var je=class i{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new i(e.parentNode,Yi(e),t)}static after(e,t){return new i(e.parentNode,Yi(e)+1,t)}},qc=[],Oe=class i{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(this.flags&2){let n=this.dom,r=null,s;for(let o of this.children){if(o.flags&7){if(!o.dom&&(s=r?r.nextSibling:n.firstChild)){let a=i.get(s);(!a||!a.parent&&a.canReuseDOM(o))&&o.reuseDOM(s)}o.sync(e,t),o.flags&=-8}if(s=r?r.nextSibling:n.firstChild,t&&!t.written&&t.node==n&&s!=o.dom&&(t.written=!0),o.dom.parentNode==n)for(;s&&s!=o.dom;)s=Vp(s);else n.insertBefore(o.dom,s);r=o.dom}for(s=r?r.nextSibling:n.firstChild,s&&t&&t.node==n&&(t.written=!0);s;)s=Vp(s)}else if(this.flags&1)for(let n of this.children)n.flags&7&&(n.sync(e,t),n.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];else{let r=Tt(e)==0?0:t==0?-1:1;for(;;){let s=e.parentNode;if(s==this.dom)break;r==0&&s.firstChild!=s.lastChild&&(e==s.firstChild?r=-1:r=1),e=s}r<0?n=e:n=e.nextSibling}if(n==this.dom.firstChild)return 0;for(;n&&!i.get(n);)n=n.nextSibling;if(!n)return this.length;for(let r=0,s=0;;r++){let o=this.children[r];if(o.dom==n)return s;s+=o.length+o.breakAfter}}domBoundsAround(e,t,n=0){let r=-1,s=-1,o=-1,a=-1;for(let l=0,c=n,O=n;l<this.children.length;l++){let h=this.children[l],f=c+h.length;if(c<e&&f>t)return h.domBoundsAround(e,t,c);if(f>=e&&r==-1&&(r=l,s=c),c>t&&h.dom.parentNode==this.dom){o=l,a=O;break}O=f,c=f+h.breakAfter}return{from:s,to:a<0?n+this.length:a,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o<this.children.length&&o>=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=qc){this.markDirty();for(let r=e;r<t;r++){let s=this.children[r];s.parent==this&&n.indexOf(s)<0&&s.destroy()}n.length<250?this.children.splice(e,t-e,...n):this.children=[].concat(this.children.slice(0,e),n,this.children.slice(t));for(let r=0;r<n.length;r++)n[r].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new Uo(this.children,e,this.children.length)}childPos(e,t=1){return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,t,n,r,s,o){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){for(let e of this.children)e.parent==this&&e.destroy();this.parent=null}};Oe.prototype.breakAfter=0;function Vp(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var Uo=class{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}};function zm(i,e,t,n,r,s,o,a,l){let{children:c}=i,O=c.length?c[e]:null,h=s.length?s[s.length-1]:null,f=h?h.breakAfter:o;if(!(e==n&&O&&!o&&!f&&s.length<2&&O.merge(t,r,s.length?h:null,t==0,a,l))){if(n<c.length){let u=c[n];u&&(r<u.length||u.breakAfter&&h?.breakAfter)?(e==n&&(u=u.split(r),r=0),!f&&h&&u.merge(0,r,h,!0,0,l)?s[s.length-1]=u:((r||u.children.length&&!u.children[0].length)&&u.merge(0,r,null,!1,0,l),s.push(u))):u?.breakAfter&&(h?h.breakAfter=1:o=1),n++}for(O&&(O.breakAfter=o,t>0&&(!o&&s.length&&O.merge(t,O.length,s[0],!1,a,0)?O.breakAfter=s.shift().breakAfter:(t<O.length||O.children.length&&O.children[O.children.length-1].length==0)&&O.merge(t,O.length,null,!1,a,0),e++));e<n&&s.length;)if(c[n-1].become(s[s.length-1]))n--,s.pop(),l=s.length?0:a;else if(c[e].become(s[0]))e++,s.shift(),a=s.length?0:l;else break;!s.length&&e&&n<c.length&&!c[e-1].breakAfter&&c[n].merge(0,0,c[e-1],!1,a,l)&&e--,(e<n||s.length)&&i.replaceChildren(e,n,s)}}function Xm(i,e,t,n,r,s){let o=i.childCursor(),{i:a,off:l}=o.findPos(t,1),{i:c,off:O}=o.findPos(e,-1),h=e-t;for(let f of n)h+=f.length;i.length+=h,zm(i,c,O,a,l,n,0,r,s)}var Le=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},GO=typeof document<"u"?document:{documentElement:{style:{}}},IO=/Edge\/(\d+)/.exec(Le.userAgent),Rm=/MSIE \d/.test(Le.userAgent),NO=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Le.userAgent),ia=!!(Rm||NO||IO),Ap=!ia&&/gecko\/(\d+)/i.test(Le.userAgent),AO=!ia&&/Chrome\/(\d+)/.exec(Le.userAgent),jp="webkitFontSmoothing"in GO.documentElement.style,qm=!ia&&/Apple Computer/.test(Le.vendor),Yp=qm&&(/Mobile\/\w+/.test(Le.userAgent)||Le.maxTouchPoints>2),R={mac:Yp||/Mac/.test(Le.platform),windows:/Win/.test(Le.platform),linux:/Linux|X11/.test(Le.platform),ie:ia,ie_version:Rm?GO.documentMode||6:NO?+NO[1]:IO?+IO[1]:0,gecko:Ap,gecko_version:Ap?+(/Firefox\/(\d+)/.exec(Le.userAgent)||[0,0])[1]:0,chrome:!!AO,chrome_version:AO?+AO[1]:0,ios:Yp,android:/Android\b/.test(Le.userAgent),webkit:jp,safari:qm,webkit_version:jp?+(/\bAppleWebKit\/(\d+)/.exec(Le.userAgent)||[0,0])[1]:0,tabSize:GO.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},kx=256,zt=class i extends Oe{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,n){return this.flags&8||n&&(!(n instanceof i)||this.length-(t-e)+n.length>kx||n.flags&8)?!1:(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new i(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new je(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return Tx(this.dom,e,t)}},di=class i extends Oe{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let r of t)r.setParent(this)}setAttrs(e){if(wm(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,r,s,o){return n&&(!(n instanceof i&&n.mark.eq(this.mark))||e&&s<=0||t<this.length&&o<=0)?!1:(Xm(this,e,t,n?n.children.slice():[],s-1,o-1),this.markDirty(),!0)}split(e){let t=[],n=0,r=-1,s=0;for(let a of this.children){let l=n+a.length;l>e&&t.push(n<e?a.split(e-n):a),r<0&&n>=e&&(r=s),n=l,s++}let o=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new i(this.mark,t,o)}domAtPos(e){return _m(this,e)}coordsAt(e,t){return Wm(this,e,t)}};function Tx(i,e,t){let n=i.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;e==0&&t<0||e==n&&t>=0?R.chrome||R.gecko||(e?(r--,o=1):s<n&&(s++,o=-1)):t<0?r--:s<n&&s++;let a=Ui(i,r,s).getClientRects();if(!a.length)return null;let l=a[(o?o<0:t>=0)?0:a.length-1];return R.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?ta(l,o<0):l||null}var Lr=class i extends Oe{static create(e,t,n){return new i(e,t,n)}constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}split(e){let t=i.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,n,r,s,o){return n&&(!(n instanceof i)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&o<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}become(e){return e instanceof i&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.compare(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return M.empty;let e=this;for(;e.parent;)e=e.parent;let{view:t}=e,n=t&&t.state.doc,r=this.posAtStart;return n?n.slice(r,r+this.length):M.empty}domAtPos(e){return(this.length?e==0:this.side>0)?je.before(this.dom):je.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let r=this.dom.getClientRects(),s=null;if(!r.length)return null;let o=this.side?this.side<0:e>0;for(let a=o?r.length-1:0;s=r[a],!(e>0?a==0:a==r.length-1||s.top<s.bottom);a+=o?-1:1);return ta(s,!o)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},Br=class i extends Oe{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof i&&e.side==this.side}split(){return new i(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?je.before(this.dom):je.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return M.empty}get isHidden(){return!0}};zt.prototype.children=Lr.prototype.children=Br.prototype.children=qc;function _m(i,e){let t=i.dom,{children:n}=i,r=0;for(let s=0;r<n.length;r++){let o=n[r],a=s+o.length;if(!(a==s&&o.getSide()<=0)){if(e>s&&e<a&&o.dom.parentNode==t)return o.domAtPos(e-s);if(e<=s)break;s=a}}for(let s=r;s>0;s--){let o=n[s-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let s=r;s<n.length;s++){let o=n[s];if(o.dom.parentNode==t)return o.domAtPos(0)}return new je(t,0)}function Cm(i,e,t){let n,{children:r}=i;t>0&&e instanceof di&&r.length&&(n=r[r.length-1])instanceof di&&n.mark.eq(e.mark)?Cm(n,e.children[0],t-1):(r.push(e),e.setParent(i)),i.length+=e.length}function Wm(i,e,t){let n=null,r=-1,s=null,o=-1;function a(c,O){for(let h=0,f=0;h<c.children.length&&f<=O;h++){let u=c.children[h],d=f+u.length;d>=O&&(u.children.length?a(u,O-f):(!s||s.isHidden&&(t>0||Xx(s,u)))&&(d>O||f==d&&u.getSide()>0)?(s=u,o=O-f):(f<O||f==d&&u.getSide()<0&&!u.isHidden)&&(n=u,r=O-f)),f=d}}a(i,e);let l=(t<0?n:s)||n||s;return l?l.coordsAt(Math.max(0,l==n?r:o),t):zx(i)}function zx(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let t=Dr(e);return t[t.length-1]||null}function Xx(i,e){let t=i.coordsAt(0,1),n=e.coordsAt(0,1);return t&&n&&n.top<t.bottom}function FO(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var Up=Object.create(null);function Mo(i,e,t){if(i==e)return!0;i||(i=Up),e||(e=Up);let n=Object.keys(i),r=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(r.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function HO(i,e,t){let n=!1;if(e)for(let r in e)t&&r in t||(n=!0,r=="style"?i.style.cssText="":i.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(n=!0,r=="style"?i.style.cssText=t[r]:i.setAttribute(r,t[r]));return n}function Rx(i){let e=Object.create(null);for(let t=0;t<i.attributes.length;t++){let n=i.attributes[t];e[n.name]=n.value}return e}var Be=class{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Ye=function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i}(Ye||(Ye={})),q=class extends mt{constructor(e,t,n,r){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=r}get heightRelevant(){return!1}static mark(e){return new Gr(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new pi(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:s,end:o}=Zm(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(o?t?2e8:1:-6e8)+1}return new pi(e,n,r,t,e.widget||null,!0)}static line(e){return new Ir(e)}static set(e,t=!1){return H.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};q.none=H.empty;var Gr=class i extends q{constructor(e){let{start:t,end:n}=Zm(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof i&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((n=e.attrs)===null||n===void 0?void 0:n.class))&&Mo(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};Gr.prototype.point=!1;var Ir=class i extends q{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&Mo(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};Ir.prototype.mapMode=ke.TrackBefore;Ir.prototype.point=!0;var pi=class i extends q{constructor(e,t,n,r,s,o){super(t,n,s,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?ke.TrackBefore:ke.TrackAfter:ke.TrackDel}get type(){return this.startSide!=this.endSide?Ye.WidgetRange:this.startSide<=0?Ye.WidgetBefore:Ye.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&qx(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};pi.prototype.point=!0;function Zm(i,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=i;return t==null&&(t=i.inclusive),n==null&&(n=i.inclusive),{start:t??e,end:n??e}}function qx(i,e){return i==e||!!(i&&e&&i.compare(e))}function Co(i,e,t,n=0){let r=t.length-1;r>=0&&t[r]+n>=i?t[r]=Math.max(t[r],e):t.push(i,e)}var Re=class i extends Oe{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,r,s,o){if(n){if(!(n instanceof i))return!1;this.dom||n.transferDOM(this)}return r&&this.setDeco(n?n.attrs:null),Xm(this,e,t,n?n.children.slice():[],s,o),!0}split(e){let t=new i;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i:n,off:r}=this.childPos(e);r&&(t.append(this.children[n].split(r),0),this.children[n].merge(r,this.children[n].length,null,!1,0,0),n++);for(let s=n;s<this.children.length;s++)t.append(this.children[s],0);for(;n>0&&this.children[n-1].length==0;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Mo(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Cm(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=FO(t,this.attrs||{})),n&&(this.attrs=FO({class:n},this.attrs||{}))}domAtPos(e){return _m(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?this.flags&4&&(wm(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(HO(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&Oe.get(r)instanceof di;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((n=Oe.get(r))===null||n===void 0?void 0:n.isEditable)==!1&&(!R.ios||!this.children.some(s=>s instanceof zt))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let n of this.children){if(!(n instanceof zt)||/[^ -~]/.test(n.text))return null;let r=Dr(n.dom);if(r.length!=1)return null;e+=r[0].width,t=r[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let n=Wm(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:r}=this.parent.view.viewState,s=n.bottom-n.top;if(Math.abs(s-r.lineHeight)<2&&r.textHeight<s){let o=(s-r.textHeight)/2;return{top:n.top+o,bottom:n.bottom-o,left:n.left,right:n.left}}}return n}become(e){return e instanceof i&&this.children.length==0&&e.children.length==0&&Mo(this.attrs,e.attrs)&&this.breakAfter==e.breakAfter}covers(){return!0}static find(e,t){for(let n=0,r=0;n<e.children.length;n++){let s=e.children[n],o=r+s.length;if(o>=t){if(s instanceof i)return s;if(o>t)break}r=o+s.breakAfter}return null}},ji=class i extends Oe{constructor(e,t,n){super(),this.widget=e,this.length=t,this.deco=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,r,s,o){return n&&(!(n instanceof i)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&o<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}domAtPos(e){return e==0?je.before(this.dom):je.after(this.dom,e==this.length)}split(e){let t=this.length-e;this.length=e;let n=new i(this.widget,t,this.deco);return n.breakAfter=this.breakAfter,n}get children(){return qc}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):M.empty}domBoundsAround(){return null}become(e){return e instanceof i&&e.widget.constructor==this.widget.constructor?(e.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.deco=e.deco,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);return n||(this.widget instanceof Nr?null:ta(this.dom.getBoundingClientRect(),this.length?e==0:t<=0))}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(e){let{startSide:t,endSide:n}=this.deco;return t==n?!1:e<0?t<0:n>0}},Nr=class extends Be{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Vr=class i{constructor(e,t,n,r){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof ji&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Re),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(vo(new Br(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof ji)&&this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:s,lineBreak:o,done:a}=this.cursor.next(this.skip);if(this.skip=0,a)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=s,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(vo(new zt(this.text.slice(this.textOff,this.textOff+r)),t),n),this.atCursorPos=!0,this.textOff+=r,e-=r,n=0}}span(e,t,n,r){this.buildText(t-e,n,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,n,r,s,o){if(this.disallowBlockEffectsFor[o]&&n instanceof pi){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let a=t-e;if(n instanceof pi)if(n.block)n.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new ji(n.widget||mi.block,a,n));else{let l=Lr.create(n.widget||mi.inline,a,a?0:n.startSide),c=this.atCursorPos&&!l.isEditable&&s<=r.length&&(e<t||n.startSide>0),O=!l.isEditable&&(e<t||s>r.length||n.startSide<=0),h=this.getLine();this.pendingBuffer==2&&!c&&!l.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),c&&(h.append(vo(new Br(1),r),s),s=r.length+Math.max(0,s-r.length)),h.append(vo(l,r),s),this.atCursorPos=O,this.pendingBuffer=O?e<t||s>r.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);a&&(this.textOff+a<=this.text.length?this.textOff+=a:(this.skip+=a-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=s)}static build(e,t,n,r,s){let o=new i(e,t,n,s);return o.openEnd=H.spans(r,t,n,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}};function vo(i,e){for(let t of e)i=new di(t,[i],i.length);return i}var mi=class extends Be{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};mi.inline=new mi("span");mi.block=new mi("div");var ne=function(i){return i[i.LTR=0]="LTR",i[i.RTL=1]="RTL",i}(ne||(ne={})),Mi=ne.LTR,_c=ne.RTL;function Vm(i){let e=[];for(let t=0;t<i.length;t++)e.push(1<<+i[t]);return e}var _x=Vm("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Cx=Vm("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),KO=Object.create(null),vt=[];for(let i of["()","[]","{}"]){let e=i.charCodeAt(0),t=i.charCodeAt(1);KO[e]=t,KO[t]=-e}function Am(i){return i<=247?_x[i]:1424<=i&&i<=1524?2:1536<=i&&i<=1785?Cx[i-1536]:1774<=i&&i<=2220?4:8192<=i&&i<=8204?256:64336<=i&&i<=65023?4:1}var Wx=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,Pt=class{get dir(){return this.level%2?_c:Mi}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,r){let s=-1;for(let o=0;o<e.length;o++){let a=e[o];if(a.from<=t&&a.to>=t){if(a.level==n)return o;(s<0||(r!=0?r<0?a.from<t:a.to>t:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function jm(i,e){if(i.length!=e.length)return!1;for(let t=0;t<i.length;t++){let n=i[t],r=e[t];if(n.from!=r.from||n.to!=r.to||n.direction!=r.direction||!jm(n.inner,r.inner))return!1}return!0}var oe=[];function Zx(i,e,t,n,r){for(let s=0;s<=n.length;s++){let o=s?n[s-1].to:e,a=s<n.length?n[s].from:t,l=s?256:r;for(let c=o,O=l,h=l;c<a;c++){let f=Am(i.charCodeAt(c));f==512?f=O:f==8&&h==4&&(f=16),oe[c]=f==4?2:f,f&7&&(h=f),O=f}for(let c=o,O=l,h=l;c<a;c++){let f=oe[c];if(f==128)c<a-1&&O==oe[c+1]&&O&24?f=oe[c]=O:oe[c]=256;else if(f==64){let u=c+1;for(;u<a&&oe[u]==64;)u++;let d=c&&O==8||u<t&&oe[u]==8?h==1?1:8:256;for(let p=c;p<u;p++)oe[p]=d;c=u-1}else f==8&&h==1&&(oe[c]=1);O=f,f&7&&(h=f)}}}function Vx(i,e,t,n,r){let s=r==1?2:1;for(let o=0,a=0,l=0;o<=n.length;o++){let c=o?n[o-1].to:e,O=o<n.length?n[o].from:t;for(let h=c,f,u,d;h<O;h++)if(u=KO[f=i.charCodeAt(h)])if(u<0){for(let p=a-3;p>=0;p-=3)if(vt[p+1]==-u){let m=vt[p+2],g=m&2?r:m&4?m&1?s:r:0;g&&(oe[h]=oe[vt[p]]=g),a=p;break}}else{if(vt.length==189)break;vt[a++]=h,vt[a++]=f,vt[a++]=l}else if((d=oe[h])==2||d==1){let p=d==r;l=p?0:1;for(let m=a-3;m>=0;m-=3){let g=vt[m+2];if(g&2)break;if(p)vt[m+2]|=2;else{if(g&4)break;vt[m+2]|=4}}}}}function Ax(i,e,t,n){for(let r=0,s=n;r<=t.length;r++){let o=r?t[r-1].to:i,a=r<t.length?t[r].from:e;for(let l=o;l<a;){let c=oe[l];if(c==256){let O=l+1;for(;;)if(O==a){if(r==t.length)break;O=t[r++].to,a=r<t.length?t[r].from:e}else if(oe[O]==256)O++;else break;let h=s==1,f=(O<e?oe[O]:n)==1,u=h==f?h?1:2:n;for(let d=O,p=r,m=p?t[p-1].to:i;d>l;)d==m&&(d=t[--p].from,m=p?t[p-1].to:i),oe[--d]=u;l=O}else s=c,l++}}}function JO(i,e,t,n,r,s,o){let a=n%2?2:1;if(n%2==r%2)for(let l=e,c=0;l<t;){let O=!0,h=!1;if(c==s.length||l<s[c].from){let p=oe[l];p!=a&&(O=!1,h=p==16)}let f=!O&&a==1?[]:null,u=O?n:n+1,d=l;e:for(;;)if(c<s.length&&d==s[c].from){if(h)break e;let p=s[c];if(!O)for(let m=p.to,g=c+1;;){if(m==t)break e;if(g<s.length&&s[g].from==m)m=s[g++].to;else{if(oe[m]==a)break e;break}}if(c++,f)f.push(p);else{p.from>l&&o.push(new Pt(l,p.from,u));let m=p.direction==Mi!=!(u%2);ec(i,m?n+1:n,r,p.inner,p.from,p.to,o),l=p.to}d=p.to}else{if(d==t||(O?oe[d]!=a:oe[d]==a))break;d++}f?JO(i,l,d,n+1,r,f,o):l<d&&o.push(new Pt(l,d,u)),l=d}else for(let l=t,c=s.length;l>e;){let O=!0,h=!1;if(!c||l>s[c-1].to){let p=oe[l-1];p!=a&&(O=!1,h=p==16)}let f=!O&&a==1?[]:null,u=O?n:n+1,d=l;e:for(;;)if(c&&d==s[c-1].to){if(h)break e;let p=s[--c];if(!O)for(let m=p.from,g=c;;){if(m==e)break e;if(g&&s[g-1].to==m)m=s[--g].from;else{if(oe[m-1]==a)break e;break}}if(f)f.push(p);else{p.to<l&&o.push(new Pt(p.to,l,u));let m=p.direction==Mi!=!(u%2);ec(i,m?n+1:n,r,p.inner,p.from,p.to,o),l=p.from}d=p.from}else{if(d==e||(O?oe[d-1]!=a:oe[d-1]==a))break;d--}f?JO(i,d,l,n+1,r,f,o):d<l&&o.push(new Pt(d,l,u)),l=d}}function ec(i,e,t,n,r,s,o){let a=e%2?2:1;Zx(i,r,s,n,a),Vx(i,r,s,n,a),Ax(r,s,n,a),JO(i,r,s,e,t,n,o)}function jx(i,e,t){if(!i)return[new Pt(0,0,e==_c?1:0)];if(e==Mi&&!t.length&&!Wx.test(i))return Ym(i.length);if(t.length)for(;i.length>oe.length;)oe[oe.length]=256;let n=[],r=e==Mi?0:1;return ec(i,r,r,t,0,i.length,n),n}function Ym(i){return[new Pt(0,i,0)]}var Um="";function Yx(i,e,t,n,r){var s;let o=n.head-i.from,a=Pt.find(e,o,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc),l=e[a],c=l.side(r,t);if(o==c){let f=a+=r?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!r,t),c=l.side(r,t)}let O=ve(i.text,o,l.forward(r,t));(O<l.from||O>l.to)&&(O=c),Um=i.text.slice(Math.min(o,O),Math.max(o,O));let h=a==(r?e.length-1:0)?null:e[a+(r?1:-1)];return h&&O==c&&h.level+(r?0:1)<l.level?P.cursor(h.side(!r,t)+i.from,h.forward(r,t)?1:-1,h.level):P.cursor(O+i.from,l.forward(r,t)?-1:1,l.level)}function Ux(i,e,t){for(let n=e;n<t;n++){let r=Am(i.charCodeAt(n));if(r==1)return Mi;if(r==2||r==4)return _c}return Mi}var Mm=X.define(),Em=X.define(),Dm=X.define(),Lm=X.define(),tc=X.define(),Bm=X.define(),Gm=X.define(),Cc=X.define(),Wc=X.define(),Im=X.define({combine:i=>i.some(e=>e)}),Nm=X.define({combine:i=>i.some(e=>e)}),Fm=X.define(),Ar=class i{constructor(e,t="nearest",n="nearest",r=5,s=5,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(P.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},wo=Z.define({map:(i,e)=>i.map(e)}),Hm=Z.define();function qe(i,e,t){let n=i.facet(Lm);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var It=X.define({combine:i=>i.length?i[0]:!0}),Mx=0,kn=X.define({combine(i){return i.filter((e,t)=>{for(let n=0;n<t;n++)if(i[n].plugin==e.plugin)return!1;return!0})}}),ge=class i{constructor(e,t,n,r,s){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=r,this.baseExtensions=s(this),this.extension=this.baseExtensions.concat(kn.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(kn.of({plugin:this,arg:e}))}static define(e,t){let{eventHandlers:n,eventObservers:r,provide:s,decorations:o}=t||{};return new i(Mx++,e,n,r,a=>{let l=[];return o&&l.push(Fr.of(c=>{let O=c.plugin(a);return O?o(O):q.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return i.define((n,r)=>new e(n,r),t)}},jr=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(qe(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){qe(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){qe(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Km=X.define(),Zc=X.define(),Fr=X.define(),Jm=X.define(),Vc=X.define(),eg=X.define();function Mp(i,e){let t=i.state.facet(eg);if(!t.length)return t;let n=t.map(s=>s instanceof Function?s(i):s),r=[];return H.spans(n,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,O=o-e.from,h=r;for(let f=a.length-1;f>=0;f--,l--){let u=a[f].spec.bidiIsolate,d;if(u==null&&(u=Ux(e.text,c,O)),l>0&&h.length&&(d=h[h.length-1]).to==c&&d.direction==u)d.to=O,h=d.inner;else{let p={from:c,to:O,direction:u,inner:[]};h.push(p),h=p.inner}}}}),r}var tg=X.define();function Ac(i){let e=0,t=0,n=0,r=0;for(let s of i.state.facet(tg)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(r=Math.max(r,o.bottom)))}return{left:e,right:t,top:n,bottom:r}}var qr=X.define(),kt=class i{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toA<n.fromA)break;n=n.join(r),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let r=0,s=0,o=0,a=0;;r++){let l=r==e.length?null:e[r],c=o-a,O=l?l.fromB:1e9;for(;s<t.length&&t[s]<O;){let h=t[s],f=t[s+1],u=Math.max(a,h),d=Math.min(O,f);if(u<=d&&new i(u+c,d+c,u,d).addToSet(n),f>O)break;s+=2}if(!l)return n;new i(l.fromA,l.toA,l.fromB,l.toB).addToSet(n),o=l.toA,a=l.toB}}},Eo=class i{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=Ae.empty(this.startState.doc.length);for(let s of n)this.changes=this.changes.compose(s.changes);let r=[];this.changes.iterChangedRanges((s,o,a,l)=>r.push(new kt(s,o,a,l))),this.changedRanges=r}static create(e,t,n){return new i(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Do=class extends Oe{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=q.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new Re],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new kt(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:c,toA:O})=>O<this.minWidthFrom||c>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let r=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!Nx(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let s=r>-1?Dx(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:O}=this.hasComposition;n=new kt(c,O,e.changes.mapPos(c,-1),e.changes.mapPos(O,1)).addToSet(n.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(R.ie||R.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.updateDeco(),l=Gx(o,a,e.changes);return n=kt.extendWithRanges(n,l),!(this.flags&7)&&n.length==0?!1:(this.updateInner(n,e.startState.doc.length,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:r}=this.view;r.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=R.chrome||R.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||r.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let o of this.children)o instanceof ji&&o.widget instanceof Nr&&s.push(o.dom);r.updateGaps(s)}updateChildren(e,t,n){let r=n?n.range.addToSet(e.slice()):e,s=this.childCursor(t);for(let o=r.length-1;;o--){let a=o>=0?r[o]:null;if(!a)break;let{fromA:l,toA:c,fromB:O,toB:h}=a,f,u,d,p;if(n&&n.range.fromB<h&&n.range.toB>O){let v=Vr.build(this.view.state.doc,O,n.range.fromB,this.decorations,this.dynamicDecorationMap),S=Vr.build(this.view.state.doc,n.range.toB,h,this.decorations,this.dynamicDecorationMap);u=v.breakAtStart,d=v.openStart,p=S.openEnd;let b=this.compositionView(n);S.breakAtStart?b.breakAfter=1:S.content.length&&b.merge(b.length,b.length,S.content[0],!1,S.openStart,0)&&(b.breakAfter=S.content[0].breakAfter,S.content.shift()),v.content.length&&b.merge(0,0,v.content[v.content.length-1],!0,0,v.openEnd)&&v.content.pop(),f=v.content.concat(b).concat(S.content)}else({content:f,breakAtStart:u,openStart:d,openEnd:p}=Vr.build(this.view.state.doc,O,h,this.decorations,this.dynamicDecorationMap));let{i:m,off:g}=s.findPos(c,1),{i:Q,off:x}=s.findPos(l,-1);zm(this,Q,x,m,g,f,u,d,p)}n&&this.fixCompositionDOM(n)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let n of t.effects)n.is(Hm)&&(this.editContextFormatting=n.value)}compositionView(e){let t=new zt(e.text.nodeValue);t.flags|=8;for(let{deco:r}of e.marks)t=new di(r,[t],t.length);let n=new Re;return n.append(t,0),n}fixCompositionDOM(e){let t=(s,o)=>{o.flags|=8|(o.children.some(l=>l.flags&7)?1:0),this.markedForComposition.add(o);let a=Oe.get(s);a&&a!=o&&(a.dom=null),o.setDOM(s)},n=this.childPos(e.range.fromB,1),r=this.children[n.i];t(e.line,r);for(let s=e.marks.length-1;s>=-1;s--)n=r.childPos(n.off,1),r=r.children[n.i],t(s>=0?e.marks[s].node:e.text,r)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let n=this.view.root.activeElement,r=n==this.dom,s=!r&&!(this.view.state.facet(It)||this.dom.tabIndex>-1)&&_o(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(r||t||s))return;let o=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,l=this.moveToLine(this.domAtPos(a.anchor)),c=a.empty?l:this.moveToLine(this.domAtPos(a.head));if(R.gecko&&a.empty&&!this.hasComposition&&Ex(l)){let h=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(h,l.node.childNodes[l.offset]||null)),l=c=new je(h,0),o=!0}let O=this.view.observer.selectionRange;(o||!O.focusNode||(!Zr(l.node,l.offset,O.anchorNode,O.anchorOffset)||!Zr(c.node,c.offset,O.focusNode,O.focusOffset))&&!this.suppressWidgetCursorChange(O,a))&&(this.view.observer.ignore(()=>{R.android&&R.chrome&&this.dom.contains(O.focusNode)&&Ix(O.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let h=Er(this.view.root);if(h)if(a.empty){if(R.gecko){let f=Lx(l.node,l.offset);if(f&&f!=3){let u=(f==1?km:Tm)(l.node,l.offset);u&&(l=new je(u.node,u.offset))}}h.collapse(l.node,l.offset),a.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=a.bidiLevel)}else if(h.extend){h.collapse(l.node,l.offset);try{h.extend(c.node,c.offset)}catch{}}else{let f=document.createRange();a.anchor>a.head&&([l,c]=[c,l]),f.setEnd(c.node,c.offset),f.setStart(l.node,l.offset),h.removeAllRanges(),h.addRange(f)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(l,c)),this.impreciseAnchor=l.precise?null:new je(O.anchorNode,O.anchorOffset),this.impreciseHead=c.precise?null:new je(O.focusNode,O.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Zr(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=Er(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=Re.find(this,t.head);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let O=this.domAtPos(t.head+t.assoc);n.collapse(O.node,O.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&n.collapse(r,s)}moveToLine(e){let t=this.dom,n;if(e.node!=t)return e;for(let r=e.offset;!n&&r<t.childNodes.length;r++){let s=Oe.get(t.childNodes[r]);s instanceof Re&&(n=s.domAtPos(0))}for(let r=e.offset-1;!n&&r>=0;r--){let s=Oe.get(t.childNodes[r]);s instanceof Re&&(n=s.domAtPos(s.length))}return n?new je(n.node,n.offset,!0):e}nearest(e){for(let t=e;t;){let n=Oe.get(t);if(n&&n.rootView==this)return n;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t<this.children.length-1;){let r=this.children[t];if(n<r.length||r instanceof Re)break;t++,n=0}return this.children[t].domAtPos(n)}coordsAt(e,t){let n=null,r=0;for(let s=this.length,o=this.children.length-1;o>=0;o--){let a=this.children[o],l=s-a.breakAfter,c=l-a.length;if(l<e)break;if(c<=e&&(c<e||a.covers(-1))&&(l>e||a.covers(1))&&(!n||a instanceof Re&&!(n instanceof Re&&t>=0)))n=a,r=c;else if(n&&c==e&&l==e&&a instanceof ji&&Math.abs(t)<2){if(a.deco.startSide<0)break;o&&(n=null)}s=c}return n?n.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),r=this.children[t];if(!(r instanceof Re))return null;for(;r.children.length;){let{i:a,off:l}=r.childPos(n,1);for(;;a++){if(a==r.children.length)return null;if((r=r.children[a]).length)break}n=l}if(!(r instanceof zt))return null;let s=ve(r.text,n);if(s==n)return null;let o=Ui(r.dom,n,s).getClientRects();for(let a=0;a<o.length;a++){let l=o[a];if(a==o.length-1||l.top<l.bottom&&l.left<l.right)return l}return null}measureVisibleLineHeights(e){let t=[],{from:n,to:r}=e,s=this.view.contentDOM.clientWidth,o=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==ne.LTR;for(let c=0,O=0;O<this.children.length;O++){let h=this.children[O],f=c+h.length;if(f>r)break;if(c>=n){let u=h.dom.getBoundingClientRect();if(t.push(u.height),o){let d=h.dom.lastChild,p=d?Dr(d):[];if(p.length){let m=p[p.length-1],g=l?m.right-u.left:u.right-m.left;g>a&&(a=g,this.minWidth=s,this.minWidthFrom=c,this.minWidthTo=f)}}}c=f+h.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?ne.RTL:ne.LTR}measureTextSize(){for(let s of this.children)if(s instanceof Re){let o=s.measureTextSize();if(o)return o}let e=document.createElement("div"),t,n,r;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=Dr(e.firstChild)[0];t=e.getBoundingClientRect().height,n=s?s.width/27:7,r=s?s.height:t,e.remove()}),{lineHeight:t,charWidth:n,textHeight:r}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Uo(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],o=s?s.from-1:this.length;if(o>n){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(q.replace({widget:new Nr(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!s)break;n=s.to+1}return q.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Fr).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),n=!1,r=this.view.state.facet(Jm).map((s,o)=>{let a=typeof s=="function";return a&&(n=!0),a?s(this.view):s});for(r.length&&(this.dynamicDecorationMap[e++]=n,t.push(H.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;return this.decorations}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(Fm))try{if(c(this.view,e.range,e))return!0}catch(O){qe(this.view.state,O,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let s=Ac(this.view),o={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;xx(this.view.scrollDOM,o,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,a),-a),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==ne.LTR)}};function Ex(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function ig(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let n=km(t.focusNode,t.focusOffset),r=Tm(t.focusNode,t.focusOffset),s=n||r;if(r&&n&&r.node!=n.node){let a=Oe.get(r.node);if(!a||a instanceof zt&&a.text!=r.node.nodeValue)s=r;else if(i.docView.lastCompositionAfterCursor){let l=Oe.get(n.node);!l||l instanceof zt&&l.text!=n.node.nodeValue||(s=r)}}if(i.docView.lastCompositionAfterCursor=s!=n,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function Dx(i,e,t){let n=ig(i,t);if(!n)return null;let{node:r,from:s,to:o}=n,a=r.nodeValue;if(/[\n\r]/.test(a)||i.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc,c=new kt(l.mapPos(s),l.mapPos(o),s,o),O=[];for(let h=r.parentNode;;h=h.parentNode){let f=Oe.get(h);if(f instanceof di)O.push({node:h,deco:f.mark});else{if(f instanceof Re||h.nodeName=="DIV"&&h.parentNode==i.contentDOM)return{range:c,text:r,marks:O,line:h};if(h!=i.contentDOM)O.push({node:h,deco:new Gr({inclusive:!0,attributes:Rx(h),tagName:h.tagName.toLowerCase()})});else return null}}}function Lx(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e<i.childNodes.length&&i.childNodes[e].contentEditable=="false"?2:0)}var Bx=class{constructor(){this.changes=[]}compareRange(e,t){Co(e,t,this.changes)}comparePoint(e,t){Co(e,t,this.changes)}boundChange(e){Co(e,e,this.changes)}};function Gx(i,e,t){let n=new Bx;return H.compare(i,e,t,n),n.changes}function Ix(i,e){for(let t=i;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function Nx(i,e){let t=!1;return e&&i.iterChangedRanges((n,r)=>{n<e.to&&r>e.from&&(t=!0)}),t}function Fx(i,e,t=1){let n=i.charCategorizer(e),r=i.doc.lineAt(e),s=e-r.from;if(r.length==0)return P.cursor(e);s==0?t=1:s==r.length&&(t=-1);let o=s,a=s;t<0?o=ve(r.text,s,!1):a=ve(r.text,s);let l=n(r.text.slice(o,a));for(;o>0;){let c=ve(r.text,o,!1);if(n(r.text.slice(c,o))!=l)break;o=c}for(;a<r.length;){let c=ve(r.text,a);if(n(r.text.slice(a,c))!=l)break;a=c}return P.range(o+r.from,a+r.from)}function Hx(i,e){return e.left>i?e.left-i:Math.max(0,i-e.right)}function Kx(i,e){return e.top>i?e.top-i:Math.max(0,i-e.bottom)}function jO(i,e){return i.top<e.bottom-1&&i.bottom>e.top+1}function Ep(i,e){return e<i.top?{top:e,left:i.left,right:i.right,bottom:i.bottom}:i}function Dp(i,e){return e>i.bottom?{top:i.top,left:i.left,right:i.right,bottom:e}:i}function ic(i,e,t){let n,r,s,o,a=!1,l,c,O,h;for(let d=i.firstChild;d;d=d.nextSibling){let p=Dr(d);for(let m=0;m<p.length;m++){let g=p[m];r&&jO(r,g)&&(g=Ep(Dp(g,r.bottom),r.top));let Q=Hx(e,g),x=Kx(t,g);if(Q==0&&x==0)return d.nodeType==3?Lp(d,e,t):ic(d,e,t);(!n||o>x||o==x&&s>Q)&&(n=d,r=g,s=Q,o=x,a=Q?e<g.left?m>0:m<p.length-1:!0),Q==0?t>g.bottom&&(!O||O.bottom<g.bottom)?(l=d,O=g):t<g.top&&(!h||h.top>g.top)&&(c=d,h=g):O&&jO(O,g)?O=Dp(O,g.bottom):h&&jO(h,g)&&(h=Ep(h,g.top))}}if(O&&O.bottom>=t?(n=l,r=O):h&&h.top<=t&&(n=c,r=h),!n)return{node:i,offset:0};let f=Math.max(r.left,Math.min(r.right,e));if(n.nodeType==3)return Lp(n,f,t);if(a&&n.contentEditable!="false")return ic(n,f,t);let u=Array.prototype.indexOf.call(i.childNodes,n)+(e>=(r.left+r.right)/2?1:0);return{node:i,offset:u}}function Lp(i,e,t){let n=i.nodeValue.length,r=-1,s=1e9,o=0;for(let a=0;a<n;a++){let l=Ui(i,a,a+1).getClientRects();for(let c=0;c<l.length;c++){let O=l[c];if(O.top==O.bottom)continue;o||(o=e-O.left);let h=(O.top>t?O.top-t:t-O.bottom)-1;if(O.left-1<=e&&O.right+1>=e&&h<s){let f=e>=(O.left+O.right)/2,u=f;if((R.chrome||R.gecko)&&Ui(i,a).getBoundingClientRect().left==O.right&&(u=!f),h<=0)return{node:i,offset:a+(u?1:0)};r=a+(u?1:0),s=h}}}return{node:i,offset:r>-1?r:o>0?i.nodeValue.length:0}}function ng(i,e,t,n=-1){var r,s;let o=i.contentDOM.getBoundingClientRect(),a=o.top+i.viewState.paddingTop,l,{docHeight:c}=i.viewState,{x:O,y:h}=e,f=h-a;if(f<0)return 0;if(f>c)return i.state.doc.length;for(let v=i.viewState.heightOracle.textHeight/2,S=!1;l=i.elementAtHeight(f),l.type!=Ye.Text;)for(;f=n>0?l.bottom+v:l.top-v,!(f>=0&&f<=c);){if(S)return t?null:0;S=!0,n=-n}h=a+f;let u=l.from;if(u<i.viewport.from)return i.viewport.from==0?0:t?null:Bp(i,o,l,O,h);if(u>i.viewport.to)return i.viewport.to==i.state.doc.length?i.state.doc.length:t?null:Bp(i,o,l,O,h);let d=i.dom.ownerDocument,p=i.root.elementFromPoint?i.root:d,m=p.elementFromPoint(O,h);m&&!i.contentDOM.contains(m)&&(m=null),m||(O=Math.max(o.left+1,Math.min(o.right-1,O)),m=p.elementFromPoint(O,h),m&&!i.contentDOM.contains(m)&&(m=null));let g,Q=-1;if(m&&((r=i.docView.nearest(m))===null||r===void 0?void 0:r.isEditable)!=!1){if(d.caretPositionFromPoint){let v=d.caretPositionFromPoint(O,h);v&&({offsetNode:g,offset:Q}=v)}else if(d.caretRangeFromPoint){let v=d.caretRangeFromPoint(O,h);v&&({startContainer:g,startOffset:Q}=v,(!i.contentDOM.contains(g)||R.safari&&Jx(g,Q,O)||R.chrome&&e1(g,Q,O))&&(g=void 0))}g&&(Q=Math.min(Tt(g),Q))}if(!g||!i.docView.dom.contains(g)){let v=Re.find(i.docView,u);if(!v)return f>l.top+l.height/2?l.to:l.from;({node:g,offset:Q}=ic(v.dom,O,h))}let x=i.docView.nearest(g);if(!x)return null;if(x.isWidget&&((s=x.dom)===null||s===void 0?void 0:s.nodeType)==1){let v=x.dom.getBoundingClientRect();return e.y<v.top||e.y<=v.bottom&&e.x<=(v.left+v.right)/2?x.posAtStart:x.posAtEnd}else return x.localPosFromDOM(g,Q)+x.posAtStart}function Bp(i,e,t,n,r){let s=Math.round((n-e.left)*i.defaultCharacterWidth);if(i.lineWrapping&&t.height>i.defaultLineHeight*1.5){let a=i.viewState.heightOracle.textHeight,l=Math.floor((r-t.top-(i.defaultLineHeight-a)*.5)/a);s+=l*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+bo(o,s,i.state.tabSize)}function Jx(i,e,t){let n,r=i;if(i.nodeType!=3||e!=(n=i.nodeValue.length))return!1;for(;;){let s=r.nextSibling;if(s){if(s.nodeName=="BR")break;return!1}else{let o=r.parentNode;if(!o||o.nodeName=="DIV")break;r=o}}return Ui(i,n-1,n).getBoundingClientRect().right>t}function e1(i,e,t){if(e!=0)return!1;for(let r=i;;){let s=r.parentNode;if(!s||s.nodeType!=1||s.firstChild!=r)return!1;if(s.classList.contains("cm-line"))break;r=s}let n=i.nodeType==1?i.getBoundingClientRect():Ui(i,0,Math.max(i.nodeValue.length,1)).getBoundingClientRect();return t-n.left>5}function nc(i,e,t){let n=i.lineBlockAt(e);if(Array.isArray(n.type)){let r;for(let s of n.type){if(s.from>e)break;if(!(s.to<e)){if(s.from<e&&s.to>e)return s;(!r||s.type==Ye.Text&&(r.type!=s.type||(t<0?s.from<e:s.to>e)))&&(r=s)}}return r||n}return n}function t1(i,e,t,n){let r=nc(i,e.head,e.assoc||-1),s=!n||r.type!=Ye.Text||!(i.lineWrapping||r.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),a=i.textDirectionAt(r.from),l=i.posAtCoords({x:t==(a==ne.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return P.cursor(l,t?-1:1)}return P.cursor(t?r.to:r.from,t?-1:1)}function Gp(i,e,t,n){let r=i.state.doc.lineAt(e.head),s=i.bidiSpans(r),o=i.textDirectionAt(r.from);for(let a=e,l=null;;){let c=Yx(r,s,o,a,t),O=Um;if(!c){if(r.number==(t?i.state.doc.lines:1))return a;O=`
     52`,r=i.state.doc.line(r.number+(t?1:-1)),s=i.bidiSpans(r),c=i.visualLineSide(r,!t)}if(l){if(!l(O))return a}else{if(!n)return c;l=n(O)}a=c}}function i1(i,e,t){let n=i.state.charCategorizer(e),r=n(t);return s=>{let o=n(s);return r==ie.Space&&(r=o),r==o}}function n1(i,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return P.cursor(r,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(r,e.assoc||-1),O=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let u=i.viewState.lineBlockAt(r);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(r-u.from))),a=(s<0?u.top:u.bottom)+O}let h=l.left+o,f=n??i.viewState.heightOracle.textHeight>>1;for(let u=0;;u+=10){let d=a+(f+u)*s,p=ng(i,{x:h,y:d},!1,s);if(d<l.top||d>l.bottom||(s<0?p<r:p>r)){let m=i.docView.coordsForChar(p),g=!m||d<m.top?-1:1;return P.cursor(p,g,void 0,o)}}}function Wo(i,e,t){for(;;){let n=0;for(let r of i)r.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=n||t||(e-s<o-e?-1:1);e=l<0?s:o,n=l}});if(!n)return e}}function YO(i,e,t){let n=Wo(i.state.facet(Vc).map(r=>r(i)),t.from,e.head>t.from?-1:1);return n==t.from?t:P.cursor(n,n<t.from?1:-1)}var _r="\uFFFF",rc=class{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(ee.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=_r}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let s=this.text.length;this.readNode(r);let o=r.nextSibling;if(o==t)break;let a=Oe.get(r),l=Oe.get(o);(a&&l?a.breakAfter:(a?a.breakAfter:Yo(r))||Yo(o)&&(r.nodeName!="BR"||r.cmIgnore)&&this.text.length>s)&&this.lineBreak(),r=o}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=r.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);n=s+o}}readNode(e){if(e.cmIgnore)return;let t=Oe.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(r1(e,n.node,n.offset)?t:0))}};function r1(i,e,t){for(;;){if(!e||t<Tt(e))return!1;if(e==i)return!0;t=Yi(e)+1,e=e.parentNode}}var Lo=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},sc=class{constructor(e,t,n,r){this.typeOver=r,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let a=s||o?[]:a1(e),l=new rc(a,e.state);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=l1(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!LO(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!LO(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),O=e.viewport;if((R.ios||R.chrome)&&e.state.selection.main.empty&&l!=c&&(O.from>0||O.to<e.state.doc.length)){let h=Math.min(l,c),f=Math.max(l,c),u=O.from-h,d=O.to-f;(u==0||u==1||h==0)&&(d==0||d==-1||f==e.state.doc.length)&&(l=0,c=e.state.doc.length)}this.newSel=P.single(c,l)}}};function rg(i,e){let t,{newSel:n}=e,r=i.state.selection.main,s=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=r.from,c=null;(s===8||R.android&&e.text.length<a-o)&&(l=r.to,c="end");let O=o1(i.state.doc.sliceString(o,a,_r),e.text,l-o,c);O&&(R.chrome&&s==13&&O.toB==O.from+2&&e.text.slice(O.from,O.toB)==_r+_r&&O.toB--,t={from:o+O.from,to:o+O.toA,insert:M.of(e.text.slice(O.from,O.toB).split(_r))})}else n&&(!i.hasFocus&&i.state.facet(It)||n.main.eq(r))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!r.empty&&n&&n.main.empty?t={from:r.from,to:r.to,insert:i.state.doc.slice(r.from,r.to)}:(R.mac||R.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=P.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:M.of([t.insert.toString().replace("."," ")])}):t&&t.from>=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:i.state.doc.slice(r.from,t.from).append(t.insert).append(i.state.doc.slice(t.to,r.to))}:R.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==`
     53 `&&i.lineWrapping&&(n&&(n=P.single(n.main.anchor-1,n.main.head-1)),t={from:r.from,to:r.to,insert:M.of([" "])}),t)return jc(i,t,n,s);if(n&&!n.main.eq(r)){let o=!1,a="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(o=!0),a=i.inputState.lastSelectionOrigin),i.dispatch({selection:n,scrollIntoView:o,userEvent:a}),!0}else return!1}function jc(i,e,t,n=-1){if(R.ios&&i.inputState.flushIOSKey(e))return!0;let r=i.state.selection.main;if(R.android&&(e.to==r.to&&(e.from==r.from||e.from==r.from-1&&i.state.sliceDoc(e.from,r.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Rn(i.contentDOM,"Enter",13)||(e.from==r.from-1&&e.to==r.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>r.head)&&Rn(i.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&Rn(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=s1(i,e,t));return i.state.facet(Bm).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function s1(i,e,t){let n,r=i.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let a=s.from<e.from?r.sliceDoc(s.from,e.from):"",l=s.to>e.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(i.state.toText(a+e.insert.sliceString(0,void 0,i.state.lineBreak)+l))}else{let a=r.changes(e),l=t&&t.main.to<=a.newLength?t.main:void 0;if(r.selection.ranges.length>1&&i.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let c=i.state.sliceDoc(e.from,e.to),O,h=t&&ig(i,t.main.head);if(h){let d=e.insert.length-(e.to-e.from);O={from:h.from,to:h.to-d}}else O=i.state.doc.lineAt(s.head);let f=s.to-e.to,u=s.to-s.from;n=r.changeByRange(d=>{if(d.from==s.from&&d.to==s.to)return{changes:a,range:l||d.map(a)};let p=d.to-f,m=p-c.length;if(d.to-d.from!=u||i.state.sliceDoc(m,p)!=c||d.to>=O.from&&d.from<=O.to)return{range:d};let g=r.changes({from:m,to:p,insert:e.insert}),Q=d.to-s.to;return{changes:g,range:l?P.range(Math.max(0,l.anchor+Q),Math.max(0,l.head+Q)):d.map(g)}})}else n={changes:a,selection:l&&r.selection.replaceRange(l)}}let o="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,o+=".compose",i.inputState.compositionFirstChange&&(o+=".start",i.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:o,scrollIntoView:!0})}function o1(i,e,t,n){let r=Math.min(i.length,e.length),s=0;for(;s<r&&i.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==r&&i.length==e.length)return null;let o=i.length,a=e.length;for(;o>0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&i.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function a1(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new Lo(t,n)),(r!=t||s!=n)&&e.push(new Lo(r,s))),e}function l1(i,e){if(i.length==0)return null;let t=i[0].pos,n=i.length==2?i[1].pos:t;return t>-1&&n>-1?P.single(t+e,n+e):null}var oc=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,R.safari&&e.contentDOM.addEventListener("input",()=>null),R.gecko&&x1(e.contentDOM.ownerDocument)}handleEvent(e){!p1(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let r of n.observers)r(this.view,t);for(let r of n.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=O1(e),n=this.handlers,r=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=n[s];a&&o!=!a.handlers.length&&(r.removeEventListener(s,this.handleEvent),a=null),a||r.addEventListener(s,this.handleEvent,{passive:o})}for(let s in n)s!="scroll"&&!t[s]&&r.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&og.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),R.android&&R.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return R.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=sg.find(n=>n.keyCode==e.keyCode))&&!e.ctrlKey||c1.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,Rn(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:R.safari&&!R.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function Ip(i,e){return(t,n)=>{try{return e.call(i,n,t)}catch(r){qe(t.state,r)}}}function O1(i){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of i){let r=n.spec,s=r&&r.plugin.domEventHandlers,o=r&&r.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push(Ip(n.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(Ip(n.value,l))}}for(let n in gt)t(n).handlers.push(gt[n]);for(let n in ft)t(n).observers.push(ft[n]);return e}var sg=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],c1="dthko",og=[16,17,18,20,91,92,224,225],Po=6;function ko(i){return Math.max(0,i)*.7+8}function h1(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var ac=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=vx(e.contentDOM),this.atoms=e.state.facet(Vc).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ee.allowMultipleSelections)&&f1(e,t),this.dragging=d1(e,t)&&Og(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&h1(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,r=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Ac(this.view);e.clientX-l.left<=r+Po?t=-ko(r-e.clientX):e.clientX+l.right>=o-Po&&(t=ko(e.clientX-o)),e.clientY-l.top<=s+Po?n=-ko(s-e.clientY):e.clientY+l.bottom>=a-Po&&(n=ko(e.clientY-a)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;n<e.ranges.length;n++){let r=e.ranges[n],s=null;if(r.empty){let o=Wo(this.atoms,r.from,0);o!=r.from&&(s=P.cursor(o,-1))}else{let o=Wo(this.atoms,r.from,-1),a=Wo(this.atoms,r.to,1);(o!=r.from||a!=r.to)&&(s=P.range(r.from==r.anchor?o:a,r.from==r.head?o:a))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?P.create(t,e.mainIndex):e}select(e){let{view:t}=this,n=this.skipAtoms(this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function f1(i,e){let t=i.state.facet(Mm);return t.length?t[0](e):R.mac?e.metaKey:e.ctrlKey}function u1(i,e){let t=i.state.facet(Em);return t.length?t[0](e):R.mac?!e.altKey:!e.ctrlKey}function d1(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let n=Er(i.root);if(!n||n.rangeCount==0)return!0;let r=n.getRangeAt(0).getClientRects();for(let s=0;s<r.length;s++){let o=r[s];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function p1(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=Oe.get(t))&&n.ignoreEvent(e))return!1;return!0}var gt=Object.create(null),ft=Object.create(null),ag=R.ie&&R.ie_version<15||R.ios&&R.webkit_version<604;function m1(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),lg(i,t.value)},50)}function na(i,e,t){for(let n of i.facet(e))t=n(t,i);return t}function lg(i,e){e=na(i.state,Cc,e);let{state:t}=i,n,r=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(lc!=null&&t.selection.ranges.every(l=>l.empty)&&lc==s.toString()){let l=-1;n=t.changeByRange(c=>{let O=t.doc.lineAt(c.from);if(O.from==l)return{range:c};l=O.from;let h=t.toText((o?s.line(r++).text:e)+t.lineBreak);return{changes:{from:O.from,insert:h},range:P.cursor(c.from+h.length)}})}else o?n=t.changeByRange(l=>{let c=s.line(r++);return{changes:{from:l.from,to:l.to,insert:c.text},range:P.cursor(l.from+c.length)}}):n=t.replaceSelection(s);i.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}ft.scroll=i=>{i.inputState.lastScrollTop=i.scrollDOM.scrollTop,i.inputState.lastScrollLeft=i.scrollDOM.scrollLeft};gt.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);ft.touchstart=(i,e)=>{i.inputState.lastTouchTime=Date.now(),i.inputState.setSelectionOrigin("select.pointer")};ft.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};gt.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of i.state.facet(Dm))if(t=n(i,e),t)break;if(!t&&e.button==0&&(t=y1(i,e)),t){let n=!i.hasFocus;i.inputState.startMouseSelection(new ac(i,e,t,n)),n&&i.observer.ignore(()=>{vm(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let r=i.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}return!1};function Np(i,e,t,n){if(n==1)return P.cursor(e,t);if(n==2)return Fx(i.state,e,t);{let r=Re.find(i.docView,e),s=i.state.doc.lineAt(r?r.posAtEnd:e),o=r?r.posAtStart:s.from,a=r?r.posAtEnd:s.to;return a<i.state.doc.length&&a==s.to&&a++,P.range(o,a)}}var Fp=(i,e,t)=>e>=t.top&&e<=t.bottom&&i>=t.left&&i<=t.right;function g1(i,e,t,n){let r=Re.find(i.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(s==0)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Fp(t,n,o))return-1;let a=r.coordsAt(s,1);return a&&Fp(t,n,a)?1:o&&o.bottom>=n?-1:1}function Hp(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:g1(i,t,e.clientX,e.clientY)}}var $1=R.ie&&R.ie_version<=11,Kp=null,Jp=0,em=0;function Og(i){if(!$1)return i.detail;let e=Kp,t=em;return Kp=i,em=Date.now(),Jp=!e||t>Date.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(Jp+1)%3:1}function y1(i,e){let t=Hp(i,e),n=Og(e),r=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,o,a){let l=Hp(i,s),c,O=Np(i,l.pos,l.bias,n);if(t.pos!=l.pos&&!o){let h=Np(i,t.pos,t.bias,n),f=Math.min(h.from,O.from),u=Math.max(h.to,O.to);O=f<O.from?P.range(f,u):P.range(u,f)}return o?r.replaceRange(r.main.extend(O.from,O.to)):a&&n==1&&r.ranges.length>1&&(c=Q1(r,l.pos))?c:a?r.addRange(O):P.create([O])}}}function Q1(i,e){for(let t=0;t<i.ranges.length;t++){let{from:n,to:r}=i.ranges[t];if(n<=e&&r>=e)return P.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}gt.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let r=i.docView.nearest(e.target);if(r&&r.isWidget){let s=r.posAtStart,o=s+r.length;(s>=t.to||o<=t.from)&&(t=P.range(s,o))}}let{inputState:n}=i;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",na(i.state,Wc,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};gt.dragend=i=>(i.inputState.draggedContent=null,!1);function tm(i,e,t,n){if(t=na(i.state,Cc,t),!t)return;let r=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=n&&s&&u1(i,e)?{from:s.from,to:s.to}:null,a={from:r,insert:t},l=i.state.changes(o?[o,a]:a);i.focus(),i.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}gt.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),r=0,s=()=>{++r==t.length&&tm(i,e,n.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let a=new FileReader;a.onerror=s,a.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return tm(i,e,n,!0),!0}return!1};gt.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=ag?null:e.clipboardData;return t?(lg(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(m1(i),!1)};function S1(i,e){let t=i.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),i.focus()},50)}function b1(i){let e=[],t=[],n=!1;for(let r of i.selection.ranges)r.empty||(e.push(i.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>r&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),r=o.number}n=!0}return{text:na(i,Wc,e.join(i.lineBreak)),ranges:t,linewise:n}}var lc=null;gt.copy=gt.cut=(i,e)=>{let{text:t,ranges:n,linewise:r}=b1(i.state);if(!t&&!r)return!1;lc=r?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let s=ag?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(S1(i,t),!1)};var cg=De.define();function hg(i,e){let t=[];for(let n of i.facet(Gm)){let r=n(i,e);r&&t.push(r)}return t.length?i.update({effects:t,annotations:cg.of(!0)}):null}function fg(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=hg(i.state,e);t?i.dispatch(t):i.update([])}},10)}ft.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),fg(i)};ft.blur=i=>{i.observer.clearSelectionRange(),fg(i)};ft.compositionstart=ft.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};ft.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,R.chrome&&R.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};ft.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};gt.beforeinput=(i,e)=>{var t,n;if(e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=i.posAtDOM(a.startContainer,a.startOffset),c=i.posAtDOM(a.endContainer,a.endOffset);return jc(i,{from:l,to:c,insert:i.state.toText(s)},null),!0}}let r;if(R.chrome&&R.android&&(r=sg.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let s=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return R.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),R.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>ft.compositionend(i,e),20),!1};var im=new Set;function x1(i){im.has(i)||(im.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var nm=["pre-wrap","normal","pre-line","break-spaces"],qn=!1;function rm(){qn=!1}var Oc=class{constructor(e){this.lineWrapping=e,this.doc=M.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return nm.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];r<0?n++:this.heightSamples[Math.floor(r*10)]||(t=!0,this.heightSamples[Math.floor(r*10)]=!0)}return t}refresh(e,t,n,r,s,o){let a=nm.indexOf(e)>-1,l=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=s,l){this.heightSamples={};for(let c=0;c<o.length;c++){let O=o[c];O<0?c++:this.heightSamples[Math.floor(O*10)]=!0}}return l}},cc=class{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}},wt=class i{constructor(e,t,n,r,s){this.from=e,this.length=t,this.top=n,this.height=r,this._content=s}get type(){return typeof this._content=="number"?Ye.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof pi?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new i(this.from,this.length+e.length,this.top,this.height+e.height,t)}},fe=function(i){return i[i.ByPos=0]="ByPos",i[i.ByHeight=1]="ByHeight",i[i.ByPosNoHeight=2]="ByPosNoHeight",i}(fe||(fe={})),Zo=.001,Je=class i{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Zo&&(qn=!0),this.height=e)}replace(e,t,n){return i.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let s=this,o=n.doc;for(let a=r.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:O,toB:h}=r[a],f=s.lineAt(l,fe.ByPosNoHeight,n.setDoc(t),0,0),u=f.to>=c?f:s.lineAt(c,fe.ByPosNoHeight,n,0,0);for(h+=u.to-c,c=u.to;a>0&&f.from<=r[a-1].toA;)l=r[a-1].fromA,O=r[a-1].fromB,a--,l<f.from&&(f=s.lineAt(l,fe.ByPosNoHeight,n,0,0));O+=f.from-l,l=f.from;let d=fc.build(n.setDoc(o),e,O,h);s=Bo(s,s.replace(l,c,d))}return s.updateHeight(n,0)}static empty(){return new ht(0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,r=0,s=0;for(;;)if(t==n)if(r>s*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),n+=1+a.break,r-=a.size}else if(s>r*2){let a=e[n];a.break?e.splice(n,1,a.left,null,a.right):e.splice(n,1,a.left,a.right),n+=2+a.break,s-=a.size}else break;else if(r<s){let a=e[t++];a&&(r+=a.size)}else{let a=e[--n];a&&(s+=a.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,n++),new hc(i.of(e.slice(0,t)),o,i.of(e.slice(n)))}};function Bo(i,e){return i==e?i:(i.constructor!=e.constructor&&(qn=!0),e)}Je.prototype.size=1;var Go=class extends Je{constructor(e,t,n){super(e,t),this.deco=n}blockAt(e,t,n,r){return new wt(r,this.length,n,this.height,this.deco||0)}lineAt(e,t,n,r,s){return this.blockAt(0,n,r,s)}forEachLine(e,t,n,r,s,o){e<=s+this.length&&t>=s&&o(this.blockAt(0,n,r,s))}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},ht=class i extends Go{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,r){return new wt(r,this.length,n,this.height,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof i||r instanceof ui&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof ui?r=new i(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):Je.of(n)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setHeight(r.heights[r.index++]):(n||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},ui=class i extends Je{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:n,lastLine:r,perLine:o,perChar:a}}blockAt(e,t,n,r){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,r);if(t.lineWrapping){let c=r+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),O=t.doc.lineAt(c),h=a+O.length*l,f=Math.max(n,e-h/2);return new wt(O.from,O.length,f,h,0)}else{let c=Math.max(0,Math.min(o-s,Math.floor((e-n)/a))),{from:O,length:h}=t.doc.line(s+c);return new wt(O,h,n+a*c,a,0)}}lineAt(e,t,n,r,s){if(t==fe.ByHeight)return this.blockAt(e,n,r,s);if(t==fe.ByPosNoHeight){let{from:u,to:d}=n.doc.lineAt(e);return new wt(u,d-u,0,0,0)}let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(n,s),c=n.doc.lineAt(e),O=a+c.length*l,h=c.number-o,f=r+a*h+l*(c.from-s-h);return new wt(c.from,c.length,Math.max(r,Math.min(f,r+this.height-O)),O,0)}forEachLine(e,t,n,r,s,o){e=Math.max(e,s),t=Math.min(t,s+this.length);let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(n,s);for(let O=e,h=r;O<=t;){let f=n.doc.lineAt(O);if(O==e){let d=f.number-a;h+=l*d+c*(e-s-d)}let u=l+c*f.length;o(new wt(f.from,f.length,h,u,0)),h+=u,O=f.to+1}}replace(e,t,n){let r=this.length-t;if(r>0){let s=n[n.length-1];s instanceof i?n[n.length-1]=new i(s.length+r):n.push(null,new i(r-1))}if(e>0){let s=n[0];s instanceof i?n[0]=new i(e+s.length):n.unshift(new i(e-1),null)}return Je.of(n)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,n=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let o=[],a=Math.max(t,r.from),l=-1;for(r.from>t&&o.push(new i(r.from-t-1).updateHeight(e,t));a<=s&&r.more;){let O=e.doc.lineAt(a).length;o.length&&o.push(null);let h=r.heights[r.index++];l==-1?l=h:Math.abs(h-l)>=Zo&&(l=-2);let f=new ht(O,h);f.outdated=!1,o.push(f),a+=O+1}a<=s&&o.push(null,new i(s-a).updateHeight(e,a));let c=Je.of(o);return(l<0||Math.abs(c.height-this.height)>=Zo||Math.abs(l-this.heightMetrics(e,t).perLine)>=Zo)&&(qn=!0),Bo(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},hc=class extends Je{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let s=n+this.left.height;return e<s?this.left.blockAt(e,t,n,r):this.right.blockAt(e,t,s,r+this.left.length+this.break)}lineAt(e,t,n,r,s){let o=r+this.left.height,a=s+this.left.length+this.break,l=t==fe.ByHeight?e<o:e<a,c=l?this.left.lineAt(e,t,n,r,s):this.right.lineAt(e,t,n,o,a);if(this.break||(l?c.to<a:c.from>a))return c;let O=t==fe.ByPosNoHeight?fe.ByPosNoHeight:fe.ByPos;return l?c.join(this.right.lineAt(a,O,n,o,a)):this.left.lineAt(a,O,n,r,s).join(c)}forEachLine(e,t,n,r,s,o){let a=r+this.left.height,l=s+this.left.length+this.break;if(this.break)e<l&&this.left.forEachLine(e,t,n,r,s,o),t>=l&&this.right.forEachLine(e,t,n,a,l,o);else{let c=this.lineAt(l,fe.ByPos,n,r,s);e<c.from&&this.left.forEachLine(e,c.from-1,n,r,s,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,a,l,o)}}replace(e,t,n){let r=this.left.length+this.break;if(t<r)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of n)s.push(a);if(e>0&&sm(s,o-1),t<this.length){let a=s.length;this.decomposeRight(t,s),sm(s,a)}return Je.of(s)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<r&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Je.of(this.break?[e,null,t]:[e,t]):(this.left=Bo(this.left,e),this.right=Bo(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return r&&r.from<=t+s.length&&r.more?l=s=s.updateHeight(e,t,n,r):s.updateHeight(e,t,n),r&&r.from<=a+o.length&&r.more?l=o=o.updateHeight(e,a,n,r):o.updateHeight(e,a,n),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function sm(i,e){let t,n;i[e]==null&&(t=i[e-1])instanceof ui&&(n=i[e+1])instanceof ui&&i.splice(e-1,3,new ui(t.length+1+n.length))}var v1=5,fc=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof ht?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new ht(n-this.pos,-1)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let r=n.widget?n.widget.estimatedHeight:0,s=n.widget?n.widget.lineBreaks:0;r<0&&(r=this.oracle.lineHeight);let o=t-e;n.block?this.addBlock(new Go(o,r,n)):(o||s||r>=v1)&&this.addLineDeco(r,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new ht(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new ui(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof ht)return e;let t=new ht(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof ht)&&!this.isCovered?this.nodes.push(new ht(0,-1)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let r of this.nodes)r instanceof ht&&r.updateHeight(this.oracle,n),n+=r?r.length:1;return this.nodes}static build(e,t,n,r){let s=new i(n,e);return H.spans(t,n,r,s,0),s.finish(n)}};function w1(i,e,t){let n=new uc;return H.compare(i,e,t,n,0),n.changes}var uc=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,r){(e<t||n&&n.heightRelevant||r&&r.heightRelevant)&&Co(e,t,this.changes,5)}};function P1(i,e){let t=i.getBoundingClientRect(),n=i.ownerDocument,r=n.defaultView||window,s=Math.max(0,t.left),o=Math.min(r.innerWidth,t.right),a=Math.max(0,t.top),l=Math.min(r.innerHeight,t.bottom);for(let c=i.parentNode;c&&c!=n.body;)if(c.nodeType==1){let O=c,h=window.getComputedStyle(O);if((O.scrollHeight>O.clientHeight||O.scrollWidth>O.clientWidth)&&h.overflow!="visible"){let f=O.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==i.parentNode?r.innerHeight:l,f.bottom)}c=h.position=="absolute"||h.position=="fixed"?O.offsetParent:O.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function k1(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left<t.innerWidth&&e.right>0&&e.top<t.innerHeight&&e.bottom>0}function T1(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Yr=class{constructor(e,t,n,r){this.from=e,this.to=t,this.size=n,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],s=t[n];if(r.from!=s.from||r.to!=s.to||r.size!=s.size)return!1}return!0}draw(e,t){return q.replace({widget:new dc(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}},dc=class extends Be{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}},Io=class{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=om,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=ne.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Zc).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new Oc(t),this.stateDeco=e.facet(Fr).filter(n=>typeof n!="function"),this.heightMap=Je.empty().applyChanges(this.stateDeco,M.empty,this.heightOracle.setDoc(e.doc),[new kt(0,0,0,e.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=q.set(this.lineGaps.map(n=>n.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);e.push(new Tn(s,o))}}return this.viewports=e.sort((n,r)=>n.from-r.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?om:new pc(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Cr(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(Fr).filter(O=>typeof O!="function");let r=e.changedRanges,s=kt.extendWithRanges(r,w1(n,this.stateDeco,e?e.changes:Ae.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);rm(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||qn)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Nm)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?ne.RTL:ne.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,O=0;if(a.width&&a.height){let{scaleX:v,scaleY:S}=xm(t,a);(v>.005&&Math.abs(this.scaleX-v)>.005||S>.005&&Math.abs(this.scaleY-S)>.005)&&(this.scaleX=v,this.scaleY=S,c|=16,o=l=!0)}let h=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=f)&&(this.paddingTop=h,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let u=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=u&&(this.scrollAnchorHeight=-1,this.scrollTop=u),this.scrolledToBottom=Pm(e.scrollDOM);let d=(this.printing?T1:P1)(t,this.paddingTop),p=d.top-this.pixelViewport.top,m=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(l=!0)),!this.inView&&!this.scrollTarget&&!k1(e.dom))return 0;let Q=a.width;if((this.contentDOMWidth!=Q||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let v=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(v)&&(o=!0),o||r.lineWrapping&&Math.abs(Q-this.contentDOMWidth)>r.charWidth){let{lineHeight:S,charWidth:b,textHeight:y}=e.docView.measureTextSize();o=S>0&&r.refresh(s,S,b,y,Math.max(5,Q/b),v),o&&(e.docView.minWidth=0,c|=16)}p>0&&m>0?O=Math.max(p,m):p<0&&m<0&&(O=Math.min(p,m)),rm();for(let S of this.viewports){let b=S.from==this.viewport.from?v:e.docView.measureVisibleLineHeights(S);this.heightMap=(o?Je.empty().applyChanges(this.stateDeco,M.empty,this.heightOracle,[new kt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new cc(S.from,b))}qn&&(c|=2)}let x=!this.viewportIsAppropriate(this.viewport,O)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return x&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(O,this.scrollTarget),c|=this.updateForViewport()),(c&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Tn(r.lineAt(o-n*1e3,fe.ByHeight,s,0,0).from,r.lineAt(a+(1-n)*1e3,fe.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(c<l.from||c>l.to){let O=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=r.lineAt(c,fe.ByPos,s,0,0),f;t.y=="center"?f=(h.top+h.bottom)/2-O/2:t.y=="start"||t.y=="nearest"&&c<l.from?f=h.top:f=h.bottom-O,l=new Tn(r.lineAt(f-1e3/2,fe.ByHeight,s,0,0).from,r.lineAt(f+O+1e3/2,fe.ByHeight,s,0,0).to)}}return l}mapViewport(e,t){let n=t.mapPos(e.from,-1),r=t.mapPos(e.to,1);return new Tn(this.heightMap.lineAt(n,fe.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(r,fe.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:r}=this.heightMap.lineAt(e,fe.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,fe.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:a}=this;return(e==0||r<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||s>=a+Math.max(10,Math.min(n,250)))&&r>o-2*1e3&&s<a+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let r of e)t.touchesRange(r.from,r.to)||n.push(new Yr(t.mapPos(r.from),t.mapPos(r.to),r.size,r.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,r=n?1e4:2e3,s=r>>1,o=r<<1;if(this.defaultTextDirection!=ne.LTR&&!n)return[];let a=[],l=(O,h,f,u)=>{if(h-O<s)return;let d=this.state.selection.main,p=[d.from];d.empty||p.push(d.to);for(let g of p)if(g>O&&g<h){l(O,g-10,f,u),l(g+10,h,f,u);return}let m=X1(e,g=>g.from>=f.from&&g.to<=f.to&&Math.abs(g.from-O)<s&&Math.abs(g.to-h)<s&&!p.some(Q=>g.from<Q&&g.to>Q));if(!m){if(h<f.to&&t&&n&&t.visibleRanges.some(x=>x.from<=h&&x.to>=h)){let x=t.moveToLineBoundary(P.cursor(h),!1,!0).head;x>O&&(h=x)}let g=this.gapSize(f,O,h,u),Q=n||g<2e6?g:2e6;m=new Yr(O,h,g,Q)}a.push(m)},c=O=>{if(O.length<o||O.type!=Ye.Text)return;let h=z1(O.from,O.to,this.stateDeco);if(h.total<o)return;let f=this.scrollTarget?this.scrollTarget.range.head:null,u,d;if(n){let p=r/this.heightOracle.lineLength*this.heightOracle.lineHeight,m,g;if(f!=null){let Q=zo(h,f),x=((this.visibleBottom-this.visibleTop)/2+p)/O.height;m=Q-x,g=Q+x}else m=(this.visibleTop-O.top-p)/O.height,g=(this.visibleBottom-O.top+p)/O.height;u=To(h,m),d=To(h,g)}else{let p=h.total*this.heightOracle.charWidth,m=r*this.heightOracle.charWidth,g=0;if(p>2e6)for(let b of e)b.from>=O.from&&b.from<O.to&&b.size!=b.displaySize&&b.from*this.heightOracle.charWidth+g<this.pixelViewport.left&&(g=b.size-b.displaySize);let Q=this.pixelViewport.left+g,x=this.pixelViewport.right+g,v,S;if(f!=null){let b=zo(h,f),y=((x-Q)/2+m)/p;v=b-y,S=b+y}else v=(Q-m)/p,S=(x+m)/p;u=To(h,v),d=To(h,S)}u>O.from&&l(O.from,u,O,h),d<O.to&&l(d,O.to,O,h)};for(let O of this.viewportLines)Array.isArray(O.type)?O.type.forEach(c):c(O);return a}gapSize(e,t,n,r){let s=zo(r,n)-zo(r,t);return this.heightOracle.lineWrapping?e.height*s:r.total*this.heightOracle.charWidth*s}updateLineGaps(e){Yr.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=q.set(e.map(t=>t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];H.spans(t,this.viewport.from,this.viewport.to,{span(s,o){n.push({from:s,to:o})},point(){}},20);let r=0;if(n.length!=this.visibleRanges.length)r=12;else for(let s=0;s<n.length&&!(r&8);s++){let o=this.visibleRanges[s],a=n[s];(o.from!=a.from||o.to!=a.to)&&(r|=4,e&&e.mapPos(o.from,-1)==a.from&&e.mapPos(o.to,1)==a.to||(r|=8))}return this.visibleRanges=n,r}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Cr(this.heightMap.lineAt(e,fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Cr(this.heightMap.lineAt(this.scaler.fromDOM(e),fe.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Cr(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Tn=class{constructor(e,t){this.from=e,this.to=t}};function z1(i,e,t){let n=[],r=i,s=0;return H.spans(t,i,e,{span(){},point(o,a){o>r&&(n.push({from:r,to:o}),s+=o-r),r=a}},20),r<e&&(n.push({from:r,to:e}),s+=e-r),{total:s,ranges:n}}function To({total:i,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(i*t);for(let r=0;;r++){let{from:s,to:o}=e[r],a=o-s;if(n<=a)return s+n;n-=a}}function zo(i,e){let t=0;for(let{from:n,to:r}of i.ranges){if(e<=r){t+=e-n;break}t+=r-n}return t/i.total}function X1(i,e){for(let t of i)if(e(t))return t}var om={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}},pc=class i{constructor(e,t,n){let r=0,s=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let c=t.lineAt(a,fe.ByPos,e,0,0).top,O=t.lineAt(l,fe.ByPos,e,0,0).bottom;return r+=O-c,{from:a,to:l,top:c,bottom:O,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.top)return r+(e-n)*this.scale;if(e<=s.bottom)return s.domTop+(e-s.top);n=s.bottom,r=s.domBottom}}fromDOM(e){for(let t=0,n=0,r=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.domTop)return n+(e-r)/this.scale;if(e<=s.domBottom)return s.top+(e-s.domTop);n=s.bottom,r=s.domBottom}}eq(e){return e instanceof i?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((t,n)=>t.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}};function Cr(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),n=e.toDOM(i.bottom);return new wt(i.from,i.length,t,n-t,Array.isArray(i._content)?i._content.map(r=>Cr(r,e)):i._content)}var Xo=X.define({combine:i=>i.join(" ")}),mc=X.define({combine:i=>i.indexOf(!0)>-1}),gc=ct.newName(),ug=ct.newName(),dg=ct.newName(),pg={"&light":"."+ug,"&dark":"."+dg};function $c(i,e,t){return new ct(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,r=>{if(r=="&")return i;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):i+" "+n}})}var R1=$c("."+gc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},pg),q1={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},UO=R.ie&&R.ie_version<=11,yc=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new BO,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(R.ie&&R.ie_version<=11||R.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&R.android&&e.constructor.EDIT_CONTEXT!==!1&&!(R.chrome&&R.chrome_version<126)&&(this.editContext=new Qc(e),e.state.facet(It)&&(e.contentDOM.editContext=this.editContext.editContext)),UO&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(It)?n.root.activeElement!=this.dom:!_o(this.dom,r))return;let s=r.anchorNode&&n.docView.nearest(r.anchorNode);if(s&&s.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(R.ie&&R.ie_version<=11||R.android&&R.chrome)&&!n.state.selection.main.empty&&r.focusNode&&Zr(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Er(e.root);if(!t)return!1;let n=R.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&_1(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=_o(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&Px(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),r&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,q1),UO&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),UO&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let r=()=>{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Rn(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&_o(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new sc(this.view,e,t,n);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=rg(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.flags|=4),e.type=="childList"){let n=am(t,e.previousSibling||e.target.previousSibling,-1),r=am(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(It)!=e.state.facet(It)&&(e.view.contentDOM.editContext=e.state.facet(It)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function am(i,e,t){for(;e;){let n=Oe.get(e);if(n&&n.parent==i)return n;let r=e.parentNode;e=r!=i.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function lm(i,e){let t=e.startContainer,n=e.startOffset,r=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor);return Zr(o.node,o.offset,r,s)&&([t,n,r,s]=[r,s,t,n]),{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}}function _1(i,e){if(e.getComposedRanges){let r=e.getComposedRanges(i.root)[0];if(r)return lm(i,r)}let t=null;function n(r){r.preventDefault(),r.stopImmediatePropagation(),t=r.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",n,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",n,!0),t?lm(i,t):null}var Qc=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let r=e.state.selection.main,{anchor:s,head:o}=r,a=this.toEditorPos(n.updateRangeStart),l=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:a,drifted:!1});let c={from:a,to:l,insert:M.of(n.text.split(`
     54`))};if(c.from==this.from&&s<this.from?c.from=s:c.to==this.to&&s>this.to&&(c.to=s),c.from==c.to&&!c.insert.length){let O=P.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));O.main.eq(r)||e.dispatch({selection:O,userEvent:"select"});return}if((R.mac||R.android)&&c.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:a,to:l,insert:M.of([n.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let O=this.to-this.from+(c.to-c.from+c.insert.length);jc(e,c,P.single(this.toEditorPos(n.selectionStart,O),this.toEditorPos(n.selectionEnd,O)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=n=>{let r=[],s=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,r.push(s)}t.updateCharacterBounds(n.rangeStart,r)},this.handlers.textformatupdate=n=>{let r=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(o!="None"&&a!="None"){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let O=`text-decoration: underline ${o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${a=="Thin"?1:2}px`;r.push(q.mark({attributes:{style:O}}).range(l,c))}}}e.dispatch({effects:Hm.of(q.set(r))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{this.editContext.updateControlBounds(n.contentDOM.getBoundingClientRect());let r=Er(n.root);r&&r.rangeCount&&this.editContext.updateSelectionBounds(r.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,r=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(n)return;let O=c.length-(o-s);if(r&&o>=r.to)if(r.from==s&&r.to==o&&r.insert.eq(c)){r=this.pendingContextChange=null,t+=O,this.to+=O;return}else r=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=O,this.to+=O;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=O}t+=O}),r&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(r=>!r.isUserEvent("input.type")&&r.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(n,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},T=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(r=>r.forEach(s=>n(s,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||wx(e.parent)||document,this.viewState=new Io(e.state||ee.create(e)),e.scrollTo&&e.scrollTo.is(wo)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(kn).map(r=>new jr(r));for(let r of this.plugins)r.update(this);this.observer=new yc(this),this.inputState=new oc(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Do(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let t=e.length==1&&e[0]instanceof xe?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,r,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(cg))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=hg(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,O=null;if(c?(this.observer.clearDelayedAndroidKey(),O=this.observer.readChange(),(O&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(O=null)):this.observer.clear(),s.facet(ee.phrases)!=this.state.facet(ee.phrases))return this.setState(s);r=Eo.create(this,s,e),r.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(h&&(h=h.map(f.changes)),f.scrollIntoView){let{main:u}=f.state.selection;h=new Ar(u.empty?u:P.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of f.effects)u.is(wo)&&(h=u.value.clip(this.state))}this.viewState.update(r,h),this.bidiCache=No.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(qr)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Xo)!=r.state.facet(Xo)&&(this.viewState.mustMeasureContent=!0),(t||n||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let f of this.state.facet(tc))try{f(r)}catch(u){qe(this.state,u,"update listener")}(l||O)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),O&&!rg(this,O)&&c.force&&Rn(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Io(e),this.plugins=e.facet(kn).map(n=>new jr(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Do(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(kn),n=e.state.facet(kn);if(t!=n){let r=[];for(let s of n){let o=t.indexOf(s);if(o<0)r.push(new jr(s));else{let a=this.plugins[o];a.mustUpdate=e,r.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r<this.plugins.length;r++)this.plugins[r].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(n){qe(this.state,n,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,r=n.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(Pm(n))s=-1,o=this.viewState.heightMap.height;else{let u=this.viewState.scrollAnchorAt(r);s=u.from,o=u.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let O=c.map(u=>{try{return u.read(this)}catch(d){return qe(this.state,d),Om}}),h=Eo.create(this,this.state,[]),f=!1;h.flags|=l,t?t.flags|=l:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),f=this.docView.update(h),f&&this.docViewUpdate());for(let u=0;u<c.length;u++)if(O[u]!=Om)try{let d=c[u];d.write&&d.write(O[u],this)}catch(d){qe(this.state,d)}if(f&&this.docView.updateSelection(!0),!h.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let d=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-o;if(d>1||d<-1){r=r+d,n.scrollTop=r/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(tc))a(t)}get themeClasses(){return gc+" "+(this.state.facet(mc)?dg:ug)+" "+this.state.facet(Xo)}updateAttrs(){let e=cm(this,Km,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(It)?"true":"false",class:"cm-content",style:`${R.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),cm(this,Zc,t);let n=this.observer.ignore(()=>{let r=HO(this.contentDOM,this.contentAttrs,t),s=HO(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let r of n.effects)if(r.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(qr);let e=this.state.facet(i.cspNonce);ct.mount(this.root,this.styleModules.concat(R1).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return YO(this,e,Gp(this,e,t,n))}moveByGroup(e,t){return YO(this,e,Gp(this,e,t,n=>i1(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),r=this.textDirectionAt(e.from),s=n[t?n.length-1:0];return P.cursor(s.side(t,r)+e.from,s.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,n=!0){return t1(this,e,t,n)}moveVertically(e,t,n){return YO(this,e,n1(this,e,t,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),ng(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let r=this.state.doc.lineAt(e),s=this.bidiSpans(r),o=s[Pt.find(s,e-r.from,-1,t)];return ta(n,o.dir==ne.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Im)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>C1)return Ym(e.length);let t=this.textDirectionAt(e.from),n;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||jm(s.isolates,n=Mp(this,e))))return s.order;n||(n=Mp(this,e));let r=jx(e.text,t,n);return this.bidiCache.push(new No(e.from,e.to,t,n,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||R.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{vm(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return wo.of(new Ar(typeof e=="number"?P.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return wo.of(new Ar(P.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ge.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ge.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=ct.newName(),r=[Xo.of(n),qr.of($c(`.${n}`,e))];return t&&t.dark&&r.push(mc.of(!0)),r}static baseTheme(e){return Ot.lowest(qr.of($c("."+gc,e,pg)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&Oe.get(n)||Oe.get(e);return((t=r?.rootView)===null||t===void 0?void 0:t.view)||null}};T.styleModule=qr;T.inputHandler=Bm;T.clipboardInputFilter=Cc;T.clipboardOutputFilter=Wc;T.scrollHandler=Fm;T.focusChangeEffect=Gm;T.perLineTextDirection=Im;T.exceptionSink=Lm;T.updateListener=tc;T.editable=It;T.mouseSelectionStyle=Dm;T.dragMovesSelection=Em;T.clickAddsSelectionRange=Mm;T.decorations=Fr;T.outerDecorations=Jm;T.atomicRanges=Vc;T.bidiIsolatedRanges=eg;T.scrollMargins=tg;T.darkTheme=mc;T.cspNonce=X.define({combine:i=>i.length?i[0]:""});T.contentAttributes=Zc;T.editorAttributes=Km;T.lineWrapping=T.contentAttributes.of({class:"cm-lineWrapping"});T.announce=Z.define();var C1=4096,Om={},No=class i{constructor(e,t,n,r,s,o){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let n=[],r=e.length?e[e.length-1].dir:ne.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let o=e[s];o.dir==r&&!t.touchesRange(o.from,o.to)&&n.push(new i(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return n}};function cm(i,e,t){for(let n=i.state.facet(e),r=n.length-1;r>=0;r--){let s=n[r],o=typeof s=="function"?s(i):s;o&&FO(o,t)}return t}var W1=R.mac?"mac":R.windows?"win":R.linux?"linux":"key";function Z1(i,e){let t=i.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,s,o,a;for(let l=0;l<t.length-1;++l){let c=t[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))r=!0;else if(/^(c|ctrl|control)$/i.test(c))s=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?a=!0:s=!0;else throw new Error("Unrecognized modifier name: "+c)}return r&&(n="Alt-"+n),s&&(n="Ctrl-"+n),a&&(n="Meta-"+n),o&&(n="Shift-"+n),n}function Ro(i,e,t){return e.altKey&&(i="Alt-"+i),e.ctrlKey&&(i="Ctrl-"+i),e.metaKey&&(i="Meta-"+i),t!==!1&&e.shiftKey&&(i="Shift-"+i),i}var V1=Ot.default(T.domEventHandlers({keydown(i,e){return $g(mg(e.state),i,e,"editor")}})),_n=X.define({enables:V1}),hm=new WeakMap;function mg(i){let e=i.facet(_n),t=hm.get(e);return t||hm.set(e,t=j1(e.reduce((n,r)=>n.concat(r),[]))),t}function gg(i,e,t){return $g(mg(i.state),e,i,t)}var fi=null,A1=4e3;function j1(i,e=W1){let t=Object.create(null),n=Object.create(null),r=(o,a)=>{let l=n[o];if(l==null)n[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,O)=>{var h,f;let u=t[o]||(t[o]=Object.create(null)),d=a.split(/ (?!$)/).map(g=>Z1(g,e));for(let g=1;g<d.length;g++){let Q=d.slice(0,g).join(" ");r(Q,!0),u[Q]||(u[Q]={preventDefault:!0,stopPropagation:!1,run:[x=>{let v=fi={view:x,prefix:Q,scope:o};return setTimeout(()=>{fi==v&&(fi=null)},A1),!0}]})}let p=d.join(" ");r(p,!1);let m=u[p]||(u[p]={preventDefault:!1,stopPropagation:!1,run:((f=(h=u._any)===null||h===void 0?void 0:h.run)===null||f===void 0?void 0:f.slice())||[]});l&&m.run.push(l),c&&(m.preventDefault=!0),O&&(m.stopPropagation=!0)};for(let o of i){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let O=t[c]||(t[c]=Object.create(null));O._any||(O._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let f in O)O[f].run.push(u=>h(u,Sc))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var Sc=null;function $g(i,e,t,n){Sc=e;let r=_p(e),s=Xe(r,0),o=Ke(s)==r.length&&r!=" ",a="",l=!1,c=!1,O=!1;fi&&fi.view==t&&fi.scope==n&&(a=fi.prefix+" ",og.indexOf(e.keyCode)<0&&(c=!0,fi=null));let h=new Set,f=m=>{if(m){for(let g of m.run)if(!h.has(g)&&(h.add(g),g(t)))return m.stopPropagation&&(O=!0),!0;m.preventDefault&&(m.stopPropagation&&(O=!0),c=!0)}return!1},u=i[n],d,p;return u&&(f(u[a+Ro(r,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(R.windows&&e.ctrlKey&&e.altKey)&&!(R.mac&&e.altKey&&!e.ctrlKey)&&(d=Gt[e.keyCode])&&d!=r?(f(u[a+Ro(d,e,!0)])||e.shiftKey&&(p=wn[e.keyCode])!=r&&p!=d&&f(u[a+Ro(p,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(u[a+Ro(r,e,!0)])&&(l=!0),!l&&f(u._any)&&(l=!0)),c&&(l=!0),l&&O&&e.stopPropagation(),Sc=null,l}var Hr=class i{constructor(e,t,n,r,s){this.className=e,this.left=t,this.top=n,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let s=yg(e);return[new i(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return Y1(e,t,n)}};function yg(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==ne.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function fm(i,e,t,n){let r=i.coordsAtPos(e,t*2);if(!r)return n;let s=i.dom.getBoundingClientRect(),o=(r.top+r.bottom)/2,a=i.posAtCoords({x:s.left+1,y:o}),l=i.posAtCoords({x:s.right-1,y:o});return a==null||l==null?n:{from:Math.max(n.from,Math.min(a,l)),to:Math.min(n.to,Math.max(a,l))}}function Y1(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let n=Math.max(t.from,i.viewport.from),r=Math.min(t.to,i.viewport.to),s=i.textDirection==ne.LTR,o=i.contentDOM,a=o.getBoundingClientRect(),l=yg(i),c=o.querySelector(".cm-line"),O=c&&window.getComputedStyle(c),h=a.left+(O?parseInt(O.paddingLeft)+Math.min(0,parseInt(O.textIndent)):0),f=a.right-(O?parseInt(O.paddingRight):0),u=nc(i,n,1),d=nc(i,r,-1),p=u.type==Ye.Text?u:null,m=d.type==Ye.Text?d:null;if(p&&(i.lineWrapping||u.widgetLineBreaks)&&(p=fm(i,n,1,p)),m&&(i.lineWrapping||d.widgetLineBreaks)&&(m=fm(i,r,-1,m)),p&&m&&p.from==m.from&&p.to==m.to)return Q(x(t.from,t.to,p));{let S=p?x(t.from,null,p):v(u,!1),b=m?x(null,t.to,m):v(d,!0),y=[];return(p||u).to<(m||d).from-(p&&m?1:0)||u.widgetLineBreaks>1&&S.bottom+i.defaultLineHeight/2<b.top?y.push(g(h,S.bottom,f,b.top)):S.bottom<b.top&&i.elementAtHeight((S.bottom+b.top)/2).type==Ye.Text&&(S.bottom=b.top=(S.bottom+b.top)/2),Q(S).concat(y).concat(Q(b))}function g(S,b,y,w){return new Hr(e,S-l.left,b-l.top,y-S,w-b)}function Q({top:S,bottom:b,horizontal:y}){let w=[];for(let k=0;k<y.length;k+=2)w.push(g(y[k],S,y[k+1],b));return w}function x(S,b,y){let w=1e9,k=-1e9,V=[];function A(L,B,re,me,Me){let Qe=i.coordsAtPos(L,L==y.to?-2:2),U=i.coordsAtPos(re,re==y.from?2:-2);!Qe||!U||(w=Math.min(Qe.top,U.top,w),k=Math.max(Qe.bottom,U.bottom,k),Me==ne.LTR?V.push(s&&B?h:Qe.left,s&&me?f:U.right):V.push(!s&&me?h:U.left,!s&&B?f:Qe.right))}let C=S??y.from,D=b??y.to;for(let L of i.visibleRanges)if(L.to>C&&L.from<D)for(let B=Math.max(L.from,C),re=Math.min(L.to,D);;){let me=i.state.doc.lineAt(B);for(let Me of i.bidiSpans(me)){let Qe=Me.from+me.from,U=Me.to+me.from;if(Qe>=re)break;U>B&&A(Math.max(Qe,B),S==null&&Qe<=C,Math.min(U,re),b==null&&U>=D,Me.dir)}if(B=me.to+1,B>=re)break}return V.length==0&&A(C,S==null,D,b==null,i.textDirection),{top:w,bottom:k,horizontal:V}}function v(S,b){let y=a.top+(b?S.top:S.bottom);return{top:y,bottom:y,horizontal:[]}}}function U1(i,e){return i.constructor==e.constructor&&i.eq(e)}var bc=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Vo)!=e.state.facet(Vo)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(Vo);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!U1(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Vo=X.define();function Qg(i){return[ge.define(e=>new bc(e,i)),Vo.of(i)]}var Kr=X.define({combine(i){return Ze(i,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Sg(i={}){return[Kr.of(i),M1,E1,D1,Nm.of(!0)]}function bg(i){return i.startState.facet(Kr)!=i.state.facet(Kr)}var M1=Qg({above:!0,markers(i){let{state:e}=i,t=e.facet(Kr),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty||t.drawRangeCursor){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=r.empty?r:P.cursor(r.head,r.head>r.anchor?-1:1);for(let l of Hr.forRange(i,o,a))n.push(l)}}return n},update(i,e){i.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=bg(i);return t&&um(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){um(e.state,i)},class:"cm-cursorLayer"});function um(i,e){e.style.animationDuration=i.facet(Kr).cursorBlinkRate+"ms"}var E1=Qg({above:!1,markers(i){return i.state.selection.ranges.map(e=>e.empty?[]:Hr.forRange(i,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||bg(i)},class:"cm-selectionLayer"}),D1=Ot.highest(T.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),xg=Z.define({map(i,e){return i==null?null:e.mapPos(i)}}),Wr=de.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,n)=>n.is(xg)?n.value:t,i)}}),L1=ge.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(Wr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(Wr)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Wr),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let n=i.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-n.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Wr)!=i&&this.view.dispatch({effects:xg.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function vg(){return[Wr,L1]}function dm(i,e,t,n,r){e.lastIndex=0;for(let s=i.iterRange(t,n),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)r(o+a.index,a)}function B1(i,e){let t=i.visibleRanges;if(t.length==1&&t[0].from==i.viewport.from&&t[0].to==i.viewport.to)return t;let n=[];for(let{from:r,to:s}of t)r=Math.max(i.state.doc.lineAt(r).from,r-e),s=Math.min(i.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=r?n[n.length-1].to=s:n.push({from:r,to:s});return n}var xc=class{constructor(e){let{regexp:t,decoration:n,decorate:r,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(a,l,c,O)=>r(O,c,c+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,c,O)=>{let h=n(a,l,c);h&&O(c,c+a[0].length,h)};else if(n)this.addMatch=(a,l,c,O)=>O(c,c+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new He,n=t.add.bind(t);for(let{from:r,to:s}of B1(e,this.maxLength))dm(e.state.doc,this.regexp,r,s,(o,a)=>this.addMatch(a,e,o,n));return t.finish()}updateDeco(e,t){let n=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(n=Math.min(a,n),r=Math.max(l,r))}),e.viewportMoved||r-n>1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),n,r):t}updateRange(e,t,n,r){for(let s of e.visibleRanges){let o=Math.max(s.from,n),a=Math.min(s.to,r);if(a>=o){let l=e.state.doc.lineAt(o),c=l.to<a?e.state.doc.lineAt(a):l,O=Math.max(s.from,l.from),h=Math.min(s.to,c.to);if(this.boundary){for(;o>l.from;o--)if(this.boundary.test(l.text[o-1-l.from])){O=o;break}for(;a<c.to;a++)if(this.boundary.test(c.text[a-c.from])){h=a;break}}let f=[],u,d=(p,m,g)=>f.push(g.range(p,m));if(l==c)for(this.regexp.lastIndex=O-l.from;(u=this.regexp.exec(l.text))&&u.index<h-l.from;)this.addMatch(u,e,u.index+l.from,d);else dm(e.state.doc,this.regexp,O,h,(p,m)=>this.addMatch(m,e,p,d));t=t.update({filterFrom:O,filterTo:h,filter:(p,m)=>p<O||m>h,add:f})}}return t}},vc=/x/.unicode!=null?"gu":"g",G1=new RegExp(`[\0-\b
     55-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,vc),I1={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},MO=null;function N1(){var i;if(MO==null&&typeof document<"u"&&document.body){let e=document.body.style;MO=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return MO||!1}var Ao=X.define({combine(i){let e=Ze(i,{render:null,specialChars:G1,addSpecialChars:null});return(e.replaceTabs=!N1())&&(e.specialChars=new RegExp("   |"+e.specialChars.source,vc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,vc)),e}});function wg(i={}){return[Ao.of(i),F1()]}var pm=null;function F1(){return pm||(pm=ge.fromClass(class{constructor(i){this.view=i,this.decorations=q.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(Ao)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new xc({regexp:i.specialChars,decoration:(e,t,n)=>{let{doc:r}=t.state,s=Xe(e[0],0);if(s==9){let o=r.lineAt(n),a=t.state.tabSize,l=Bt(o.text,a,n-o.from);return q.replace({widget:new Pc((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=q.replace({widget:new wc(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(Ao);i.startState.facet(Ao)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var H1="\u2022";function K1(i){return i>=32?H1:i==10?"\u2424":String.fromCharCode(9216+i)}var wc=class extends Be{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=K1(this.code),n=e.state.phrase("Control character")+" "+(I1[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,n,t);if(r)return r;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},Pc=class extends Be{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Pg(){return ev}var J1=q.line({class:"cm-activeLine"}),ev=ge.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let n of i.state.selection.ranges){let r=i.lineBlockAt(n.head);r.from>e&&(t.push(J1.range(r.from)),e=r.from)}return q.set(t)}},{decorations:i=>i.decorations});var kc=2e3;function tv(i,e,t){let n=Math.min(e.line,t.line),r=Math.max(e.line,t.line),s=[];if(e.off>kc||t.off>kc||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=r;l++){let c=i.doc.line(l);c.length<=a&&s.push(P.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=r;l++){let c=i.doc.line(l),O=bo(c.text,o,i.tabSize,!0);if(O<0)s.push(P.cursor(c.to));else{let h=bo(c.text,a,i.tabSize);s.push(P.range(c.from+O,c.from+h))}}}return s}function iv(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function mm(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),n=i.state.doc.lineAt(t),r=t-n.from,s=r>kc?-1:r==n.length?iv(i,e.clientX):Bt(n.text,i.state.tabSize,t-n.from);return{line:n.number,col:s,off:r}}function nv(i,e){let t=mm(i,e),n=i.state.selection;return t?{update(r){if(r.docChanged){let s=r.changes.mapPos(r.startState.doc.line(t.line).from),o=r.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(r.changes)}},get(r,s,o){let a=mm(i,r);if(!a)return n;let l=tv(i.state,t,a);return l.length?o?P.create(l.concat(n.ranges)):P.create(l):n}}:null}function kg(i){let e=i?.eventFilter||(t=>t.altKey&&t.button==0);return T.mouseSelectionStyle.of((t,n)=>e(n)?nv(t,n):null)}var rv={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},sv={style:"cursor: crosshair"};function Tg(i={}){let[e,t]=rv[i.key||"Alt"],n=ge.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventObservers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[n,T.contentAttributes.of(r=>{var s;return!((s=r.plugin(n))===null||s===void 0)&&s.isDown?sv:null})]}var Rr="-10000px",Fo=class{constructor(e,t,n,r){this.facet=t,this.createTooltipView=n,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=n(o,s))}update(e,t){var n;let r=e.state.facet(this.facet),s=r.filter(l=>l);if(r===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;l<s.length;l++){let c=s[l],O=-1;if(c){for(let h=0;h<this.tooltips.length;h++){let f=this.tooltips[h];f&&f.create==c.create&&(O=h)}if(O<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let h=o[l]=this.tooltipViews[O];a&&(a[l]=t[O]),h.update&&h.update(e)}}}for(let l of this.tooltipViews)o.indexOf(l)<0&&(this.removeTooltipView(l),(n=l.destroy)===null||n===void 0||n.call(l));return t&&(a.forEach((l,c)=>t[c]=l),t.length=a.length),this.input=r,this.tooltips=s,this.tooltipViews=o,!0}};function ov(i){let e=i.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var EO=X.define({combine:i=>{var e,t,n;return{position:R.ios?"absolute":((e=i.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=i.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((n=i.find(r=>r.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||ov}}}),gm=new WeakMap,Yc=ge.fromClass(class{constructor(i){this.view=i,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=i.state.facet(EO);this.position=e.position,this.parent=e.parent,this.classes=i.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Fo(i,Jr,(t,n)=>this.createTooltip(t,n),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),i.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let i of this.manager.tooltipViews)this.intersectionObserver.observe(i.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(i){i.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(i,this.above);e&&this.observeIntersection();let t=e||i.geometryChanged,n=i.state.facet(EO);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(i,e){let t=i.create(this.view),n=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),i.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let r=document.createElement("div");r.className="cm-tooltip-arrow",t.dom.appendChild(r)}return t.dom.style.position=this.position,t.dom.style.top=Rr,t.dom.style.left="0px",this.container.insertBefore(t.dom,n),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var i,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(i=n.destroy)===null||i===void 0||i.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let i=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(R.gecko)t=s.offsetParent!=this.container.ownerDocument.body;else if(s.style.top==Rr&&s.style.left=="0px"){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(i=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:i,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),r=Ac(this.view);return{visible:{left:n.left+r.left,top:n.top+r.top,right:n.right-r.right,bottom:n.bottom-r.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(EO).tooltipSpace(this.view),scaleX:i,scaleY:e,makeAbsolute:t}}writeMeasure(i){var e;if(i.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:n,scaleX:r,scaleY:s}=i,o=[];for(let a=0;a<this.manager.tooltips.length;a++){let l=this.manager.tooltips[a],c=this.manager.tooltipViews[a],{dom:O}=c,h=i.pos[a],f=i.size[a];if(!h||l.clip!==!1&&(h.bottom<=Math.max(t.top,n.top)||h.top>=Math.min(t.bottom,n.bottom)||h.right<Math.max(t.left,n.left)-.1||h.left>Math.min(t.right,n.right)+.1)){O.style.top=Rr;continue}let u=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,d=u?7:0,p=f.right-f.left,m=(e=gm.get(c))!==null&&e!==void 0?e:f.bottom-f.top,g=c.offset||lv,Q=this.view.textDirection==ne.LTR,x=f.width>n.right-n.left?Q?n.left:n.right-f.width:Q?Math.max(n.left,Math.min(h.left-(u?14:0)+g.x,n.right-p)):Math.min(Math.max(n.left,h.left-p+(u?14:0)-g.x),n.right-p),v=this.above[a];!l.strictSide&&(v?h.top-m-d-g.y<n.top:h.bottom+m+d+g.y>n.bottom)&&v==n.bottom-h.bottom>h.top-n.top&&(v=this.above[a]=!v);let S=(v?h.top-n.top:n.bottom-h.bottom)-d;if(S<m&&c.resize!==!1){if(S<this.view.defaultLineHeight){O.style.top=Rr;continue}gm.set(c,m),O.style.height=(m=S)/s+"px"}else O.style.height&&(O.style.height="");let b=v?h.top-m-d-g.y:h.bottom+d+g.y,y=x+p;if(c.overlap!==!0)for(let w of o)w.left<y&&w.right>x&&w.top<b+m&&w.bottom>b&&(b=v?w.top-m-2-d:w.bottom+d+2);if(this.position=="absolute"?(O.style.top=(b-i.parent.top)/s+"px",$m(O,(x-i.parent.left)/r)):(O.style.top=b/s+"px",$m(O,x/r)),u){let w=h.left+(Q?g.x:-g.x)-(x+14-7);u.style.left=w/r+"px"}c.overlap!==!0&&o.push({left:x,top:b,right:y,bottom:b+m}),O.classList.toggle("cm-tooltip-above",v),O.classList.toggle("cm-tooltip-below",!v),c.positioned&&c.positioned(i.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let i of this.manager.tooltipViews)i.dom.style.top=Rr}},{eventObservers:{scroll(){this.maybeMeasure()}}});function $m(i,e){let t=parseInt(i.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(i.style.left=e+"px")}var av=T.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),lv={x:0,y:0},Jr=X.define({enables:[Yc,av]}),Ho=X.define({combine:i=>i.reduce((e,t)=>e.concat(t),[])}),Ko=class i{static create(e){return new i(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Fo(e,Ho,(t,n)=>this.createHostedView(t,n),t=>t.dom.remove())}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let r=n[e];if(r!==void 0){if(t===void 0)t=r;else if(t!==r)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},Ov=Jr.compute([Ho],i=>{let e=i.facet(Ho);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var n;return(n=t.end)!==null&&n!==void 0?n:t.pos})),create:Ko.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),Tc=class{constructor(e,t,n,r,s){this.view=e,this.source=t,this.field=n,this.setHover=r,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,n=e.docView.nearest(t.target);if(!n)return;let r,s=1;if(n instanceof Lr)r=n.posAtStart;else{if(r=e.posAtCoords(t),r==null)return;let a=e.coordsAtPos(r);if(!a||t.y<a.top||t.y>a.bottom||t.x<a.left-e.defaultCharacterWidth||t.x>a.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(r)).find(O=>O.from<=r&&O.to>=r),c=l&&l.dir==ne.RTL?-1:1;s=t.x<a.left?-c:c}let o=this.source(e,r,s);if(o?.then){let a=this.pending={pos:r};o.then(l=>{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>qe(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Yc),t=e?e.manager.tooltips.findIndex(n=>n.create==Ko.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:r,tooltip:s}=this;if(r.length&&s&&!cv(s.dom,e)||this.pending){let{pos:o}=r[0]||this.pending,a=(n=(t=r[0])===null||t===void 0?void 0:t.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!hv(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},qo=4;function cv(i,e){let{left:t,right:n,top:r,bottom:s}=i.getBoundingClientRect(),o;if(o=i.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();r=Math.min(a.top,r),s=Math.max(a.bottom,s)}return e.clientX>=t-qo&&e.clientX<=n+qo&&e.clientY>=r-qo&&e.clientY<=s+qo}function hv(i,e,t,n,r,s){let o=i.scrollDOM.getBoundingClientRect(),a=i.documentTop+i.documentPadding.top+i.contentHeight;if(o.left>n||o.right<n||o.top>r||Math.min(o.bottom,a)<r)return!1;let l=i.posAtCoords({x:n,y:r},!1);return l>=e&&l<=t}function zg(i,e={}){let t=Z.define(),n=de.define({create(){return[]},update(r,s){if(r.length&&(e.hideOnChange&&(s.docChanged||s.selection)?r=[]:e.hideOn&&(r=r.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let a of r){let l=s.changes.mapPos(a.pos,-1,ke.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=s.changes.mapPos(c.end)),o.push(c)}}r=o}for(let o of s.effects)o.is(t)&&(r=o.value),o.is(fv)&&(r=[]);return r},provide:r=>Ho.from(r)});return{active:n,extension:[n,ge.define(r=>new Tc(r,i,n,t,e.hoverTime||300)),Ov]}}function Uc(i,e){let t=i.plugin(Yc);if(!t)return null;let n=t.manager.tooltips.indexOf(e);return n<0?null:t.manager.tooltipViews[n]}var fv=Z.define();var ym=X.define({combine(i){let e,t;for(let n of i)e=e||n.topContainer,t=t||n.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Di(i,e){let t=i.plugin(Xg),n=t?t.specs.indexOf(e):-1;return n>-1?t.panels[n]:null}var Xg=ge.fromClass(class{constructor(i){this.input=i.state.facet(Ei),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(i));let e=i.state.facet(ym);this.top=new zn(i,!0,e.topContainer),this.bottom=new zn(i,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(i){let e=i.state.facet(ym);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new zn(i.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new zn(i.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=i.state.facet(Ei);if(t!=this.input){let n=t.filter(l=>l),r=[],s=[],o=[],a=[];for(let l of n){let c=this.specs.indexOf(l),O;c<0?(O=l(i.view),a.push(O)):(O=this.panels[c],O.update&&O.update(i)),r.push(O),(O.top?s:o).push(O)}this.specs=n,this.panels=r,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let n of this.panels)n.update&&n.update(i)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:i=>T.scrollMargins.of(e=>{let t=e.plugin(i);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),zn=class{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Qm(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Qm(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function Qm(i){let e=i.nextSibling;return i.remove(),e}var Ei=X.define({enables:Xg});var et=class extends mt{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};et.prototype.elementClass="";et.prototype.toDOM=void 0;et.prototype.mapMode=ke.TrackBefore;et.prototype.startSide=et.prototype.endSide=-1;et.prototype.point=!0;var jo=X.define(),uv=X.define(),dv={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>H.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Ur=X.define();function Mc(i){return[Rg(),Ur.of({...dv,...i})]}var zc=X.define({combine:i=>i.some(e=>e)});function Rg(i){let e=[pv];return i&&i.fixed===!1&&e.push(zc.of(!0)),e}var pv=ge.fromClass(class{constructor(i){this.view=i,this.domAfter=null,this.prevViewport=i.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=i.state.facet(Ur).map(e=>new Jo(i,e)),this.fixed=!i.state.facet(zc);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),i.scrollDOM.insertBefore(this.dom,i.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(i){if(this.updateGutters(i)){let e=this.prevViewport,t=i.view.viewport,n=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(n<(t.to-t.from)*.8)}if(i.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(zc)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=i.view.viewport}syncGutters(i){let e=this.dom.nextSibling;i&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=H.iter(this.view.state.facet(jo),this.view.viewport.from),n=[],r=this.gutters.map(s=>new Rc(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==Ye.Text&&o){Xc(t,n,a.from);for(let l of r)l.line(this.view,a,n);o=!1}else if(a.widget)for(let l of r)l.widget(this.view,a)}else if(s.type==Ye.Text){Xc(t,n,s.from);for(let o of r)o.line(this.view,s,n)}else if(s.widget)for(let o of r)o.widget(this.view,s);for(let s of r)s.finish();i&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(i){let e=i.startState.facet(Ur),t=i.state.facet(Ur),n=i.docChanged||i.heightChanged||i.viewportChanged||!H.eq(i.startState.facet(jo),i.state.facet(jo),i.view.viewport.from,i.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(i)&&(n=!0);else{n=!0;let r=[];for(let s of t){let o=e.indexOf(s);o<0?r.push(new Jo(this.view,s)):(this.gutters[o].update(i),r.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),r.indexOf(s)<0&&s.destroy();for(let s of r)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=r}return n}destroy(){for(let i of this.gutters)i.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:i=>T.scrollMargins.of(e=>{let t=e.plugin(i);if(!t||t.gutters.length==0||!t.fixed)return null;let n=t.dom.offsetWidth*e.scaleX,r=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==ne.LTR?{left:n,right:r}:{right:n,left:r}})});function Sm(i){return Array.isArray(i)?i:[i]}function Xc(i,e,t){for(;i.value&&i.from<=t;)i.from==t&&e.push(i.value),i.next()}var Rc=class{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=H.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:r}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let a=new ea(e,o,s,n);r.elements.push(a),r.dom.appendChild(a.dom)}else r.elements[this.i].update(e,o,s,n);this.height=t.bottom,this.i++}line(e,t,n){let r=[];Xc(this.cursor,r,t.from),n.length&&(r=r.concat(n));let s=this.gutter.config.lineMarker(e,t,r);s&&r.unshift(s);let o=this.gutter;r.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,r)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),r=n?[n]:null;for(let s of e.state.facet(uv)){let o=s(e,t.widget,t);o&&(r||(r=[])).push(o)}r&&this.addElement(e,t,r)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},Jo=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,r=>{let s=r.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=r.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,a,r)&&r.preventDefault()});this.markers=Sm(t.markers(e)),t.initialSpacer&&(this.spacer=new ea(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Sm(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let n=e.view.viewport;return!H.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},ea=class{constructor(e,t,n,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,r)}update(e,t,n,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),mv(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let n="cm-gutterElement",r=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=s<t.length?t[s++]:null,c=!1;if(l){let O=l.elementClass;O&&(n+=" "+O);for(let h=o;h<this.markers.length;h++)if(this.markers[h].compare(l)){a=h,c=!0;break}}else a=this.markers.length;for(;o<a;){let O=this.markers[o++];if(O.toDOM){O.destroy(r);let h=r.nextSibling;r.remove(),r=h}}if(!l)break;l.toDOM&&(c?r=r.nextSibling:this.dom.insertBefore(l.toDOM(e),r)),c&&o++}this.dom.className=n,this.markers=t}destroy(){this.setMarkers(null,[])}};function mv(i,e){if(i.length!=e.length)return!1;for(let t=0;t<i.length;t++)if(!i[t].compare(e[t]))return!1;return!0}var gv=X.define(),$v=X.define(),Xn=X.define({combine(i){return Ze(i,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let r in t){let s=n[r],o=t[r];n[r]=s?(a,l,c)=>s(a,l,c)||o(a,l,c):o}return n}})}}),Mr=class extends et{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function DO(i,e){return i.state.facet(Xn).formatNumber(e,i.state)}var yv=Ur.compute([Xn],i=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(gv)},lineMarker(e,t,n){return n.some(r=>r.toDOM)?null:new Mr(DO(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let r of e.state.facet($v)){let s=r(e,t,n);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Xn)!=e.state.facet(Xn),initialSpacer(e){return new Mr(DO(e,bm(e.state.doc.lines)))},updateSpacer(e,t){let n=DO(t.view,bm(t.view.state.doc.lines));return n==e.number?e:new Mr(n)},domEventHandlers:i.facet(Xn).domEventHandlers,side:"before"}));function qg(i={}){return[Xn.of(i),Rg(),yv]}function bm(i){let e=9;for(;e<i;)e=e*10+9;return e}var Qv=new class extends et{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Sv=jo.compute(["selection"],i=>{let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.head).from;r>t&&(t=r,e.push(Qv.range(r)))}return H.of(e)});function _g(){return Sv}var bv=0,Ge=class{constructor(e,t){this.from=e,this.to=t}},j=class{constructor(e={}){this.id=bv++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=_e.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};j.closedBy=new j({deserialize:i=>i.split(" ")});j.openedBy=new j({deserialize:i=>i.split(" ")});j.group=new j({deserialize:i=>i.split(" ")});j.isolate=new j({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var Li=class{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}static get(e){return e&&e.props&&e.props[j.mounted.id]}},xv=Object.create(null),_e=class i{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):xv,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new i(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(j.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(j.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?n.name:r[s]];if(o)return o}}}};_e.none=new _e("",Object.create(null),0,8);var es=class i{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let r=null;for(let s of e){let o=s(n);o&&(r||(r=Object.assign({},n.props)),r[o[0].id]=o[1])}t.push(r?new _e(n.name,r,n.id,n.flags):n)}return new i(t)}},ra=new WeakMap,Cg=new WeakMap,K;(function(i){i[i.ExcludeBuffers=1]="ExcludeBuffers",i[i.IncludeAnonymous=2]="IncludeAnonymous",i[i.IgnoreMounts=4]="IgnoreMounts",i[i.IgnoreOverlays=8]="IgnoreOverlays"})(K||(K={}));var pe=class i{constructor(e,t,n,r,s){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=Li.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let r=n.toString();r&&(t&&(t+=","),t+=r)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Cn(this.topNode,e)}cursorAt(e,t=0,n=0){let r=ra.get(this)||this.topNode,s=new Cn(r);return s.moveTo(e,t),ra.set(this,s._tree),s}get topNode(){return new Ie(this,0,0,null)}resolve(e,t=0){let n=ts(ra.get(this)||this.topNode,e,t,!1);return ra.set(this,n),n}resolveInner(e,t=0){let n=ts(Cg.get(this)||this.topNode,e,t,!0);return Cg.set(this,n),n}resolveStack(e,t=0){return vv(this,e,t)}iterate(e){let{enter:t,leave:n,from:r=0,to:s=this.length}=e,o=e.mode||0,a=(o&K.IncludeAnonymous)>0;for(let l=this.cursor(o|K.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=r&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Jc(_e.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new i(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new i(_e.none,t,n,r)))}static build(e){return wv(e)}};pe.empty=new pe(_e.none,[],[],0);var Ec=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},gi=class i{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return _e.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],s=r.name;if(/\W/.test(s)&&!r.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,n,r,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(Ug(s,r,o[l+1],o[l+2])&&(a=l,n>0));l=o[l+3]);return a}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=r[a++],s[l++]=r[a++]-n;let c=s[l++]=r[a++]-n;s[l++]=r[a++]-e,o=Math.max(o,c)}return new i(s,o,this.set)}};function Ug(i,e,t,n){switch(i){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function ts(i,e,t,n){for(var r;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to<e);){let o=!n&&i instanceof Ie&&i.index<0?null:i.parent;if(!o)return i;i=o}let s=n?0:K.IgnoreOverlays;if(n)for(let o=i,a=o.parent;a;o=a,a=o.parent)o instanceof Ie&&o.index<0&&((r=a.enter(e,t,s))===null||r===void 0?void 0:r.from)!=o.from&&(i=a);for(;;){let o=i.enter(e,t,s);if(!o)return i;i=o}}var oa=class{cursor(e=0){return new Cn(this,e)}getChild(e,t=null,n=null){let r=Wg(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return Wg(this,e,t,n)}resolve(e,t=0){return ts(this,e,t,!1)}resolveInner(e,t=0){return ts(this,e,t,!0)}matchContext(e){return Dc(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}get node(){return this}get next(){return this.parent}},Ie=class i extends oa{constructor(e,t,n,r){super(),this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,r,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,c=t>0?a.length:-1;e!=c;e+=t){let O=a[e],h=l[e]+o.from;if(Ug(r,n,h,h+O.length)){if(O instanceof gi){if(s&K.ExcludeBuffers)continue;let f=O.findChild(0,O.buffer.length,t,n-h,r);if(f>-1)return new Bi(new Lc(o,O,e,h),null,f)}else if(s&K.IncludeAnonymous||!O.type.isAnonymous||Kc(O)){let f;if(!(s&K.IgnoreMounts)&&(f=Li.get(O))&&!f.overlay)return new i(f.tree,h,e,o);let u=new i(O,h,e,o);return s&K.IncludeAnonymous||!u.type.isAnonymous?u:u.nextChild(t<0?O.children.length-1:0,t,n,r)}}}if(s&K.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let r;if(!(n&K.IgnoreOverlays)&&(r=Li.get(this._tree))&&r.overlay){let s=e-this.from;for(let{from:o,to:a}of r.overlay)if((t>0?o<=s:o<s)&&(t<0?a>=s:a>s))return new i(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Wg(i,e,t,n){let r=i.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function Dc(i,e,t=e.length-1){for(let n=i;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Lc=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},Bi=class i extends oa{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&K.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let o=n.buffer[this.index+1];e.push(n.slice(r,s,o)),t.push(0)}return new pe(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Mg(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;s<i.length;s++){let o=i[s];(o.from>t.from||o.to<t.to)&&(t=o,e=s)}let n=t instanceof Ie&&t.index<0?null:t.parent,r=i.slice();return n?r[e]=n:r.splice(e,1),new Bc(r,t)}var Bc=class{constructor(e,t){this.heads=e,this.node=t}get next(){return Mg(this.heads)}};function vv(i,e,t){let n=i.resolveInner(e,t),r=null;for(let s=n instanceof Ie?n:n.context.parent;s;s=s.parent)if(s.index<0){let o=s.parent;(r||(r=[n])).push(o.resolve(e,t)),s=o}else{let o=Li.get(s.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new Ie(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[n])).push(ts(a,e,t,!1))}}return r?Mg(r):n}var Cn=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Ie)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof Ie?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&K.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&K.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&K.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(r.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let a=n._tree.children[s];if(this.mode&K.IncludeAnonymous||a instanceof gi||!a.type.isAnonymous||Kc(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let r=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=s+1;break e}r=this.stack[--s]}for(let r=n;r<this.stack.length;r++)t=new Bi(this.buffer,t,this.stack[r]);return this.bufferNode=new Bi(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;;){if(r&&t&&t(this),r=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return Dc(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,s=this.stack.length-1;r>=0;s--){if(s<0)return Dc(this._tree,e,r);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}};function Kc(i){return i.children.some(e=>e instanceof gi||!e.type.isAnonymous||Kc(e))}function wv(i){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=n.types.length}=i,a=Array.isArray(t)?new Ec(t,t.length):t,l=n.types,c=0,O=0;function h(S,b,y,w,k,V){let{id:A,start:C,end:D,size:L}=a,B=O,re=c;for(;L<0;)if(a.next(),L==-1){let se=s[A];y.push(se),w.push(C-S);return}else if(L==-3){c=A;return}else if(L==-4){O=A;return}else throw new RangeError(`Unrecognized record size: ${L}`);let me=l[A],Me,Qe,U=C-S;if(D-C<=r&&(Qe=m(a.pos-b,k))){let se=new Uint16Array(Qe.size-Qe.skip),G=a.pos-Qe.size,le=se.length;for(;a.pos>G;)le=g(Qe.start,se,le);Me=new gi(se,D-Qe.start,n),U=Qe.start-S}else{let se=a.pos-L;a.next();let G=[],le=[],W=A>=o?A:-1,te=0,ce=D;for(;a.pos>se;)W>=0&&a.id==W&&a.size>=0?(a.end<=ce-r&&(d(G,le,C,te,a.end,ce,W,B,re),te=G.length,ce=a.end),a.next()):V>2500?f(C,se,G,le):h(C,se,G,le,W,V+1);if(W>=0&&te>0&&te<G.length&&d(G,le,C,te,C,ce,W,B,re),G.reverse(),le.reverse(),W>-1&&te>0){let ze=u(me,re);Me=Jc(me,G,le,0,G.length,0,D-C,ze,ze)}else Me=p(me,G,le,D-C,B-D,re)}y.push(Me),w.push(U)}function f(S,b,y,w){let k=[],V=0,A=-1;for(;a.pos>b;){let{id:C,start:D,end:L,size:B}=a;if(B>4)a.next();else{if(A>-1&&D<A)break;A<0&&(A=L-r),k.push(C,D,L),V++,a.next()}}if(V){let C=new Uint16Array(V*4),D=k[k.length-2];for(let L=k.length-3,B=0;L>=0;L-=3)C[B++]=k[L],C[B++]=k[L+1]-D,C[B++]=k[L+2]-D,C[B++]=B;y.push(new gi(C,k[2]-D,n)),w.push(D-S)}}function u(S,b){return(y,w,k)=>{let V=0,A=y.length-1,C,D;if(A>=0&&(C=y[A])instanceof pe){if(!A&&C.type==S&&C.length==k)return C;(D=C.prop(j.lookAhead))&&(V=w[A]+C.length+D)}return p(S,y,w,k,V,b)}}function d(S,b,y,w,k,V,A,C,D){let L=[],B=[];for(;S.length>w;)L.push(S.pop()),B.push(b.pop()+y-k);S.push(p(n.types[A],L,B,V-k,C-V,D)),b.push(k-y)}function p(S,b,y,w,k,V,A){if(V){let C=[j.contextHash,V];A=A?[C].concat(A):[C]}if(k>25){let C=[j.lookAhead,k];A=A?[C].concat(A):[C]}return new pe(S,b,y,w,A)}function m(S,b){let y=a.fork(),w=0,k=0,V=0,A=y.end-r,C={size:0,start:0,skip:0};e:for(let D=y.pos-S;y.pos>D;){let L=y.size;if(y.id==b&&L>=0){C.size=w,C.start=k,C.skip=V,V+=4,w+=4,y.next();continue}let B=y.pos-L;if(L<0||B<D||y.start<A)break;let re=y.id>=o?4:0,me=y.start;for(y.next();y.pos>B;){if(y.size<0)if(y.size==-3)re+=4;else break e;else y.id>=o&&(re+=4);y.next()}k=me,w+=L,V+=re}return(b<0||w==S)&&(C.size=w,C.start=k,C.skip=V),C.size>4?C:void 0}function g(S,b,y){let{id:w,start:k,end:V,size:A}=a;if(a.next(),A>=0&&w<o){let C=y;if(A>4){let D=a.pos-(A-4);for(;a.pos>D;)y=g(S,b,y)}b[--y]=C,b[--y]=V-S,b[--y]=k-S,b[--y]=w}else A==-3?c=w:A==-4&&(O=w);return y}let Q=[],x=[];for(;a.pos>0;)h(i.start||0,i.bufferStart||0,Q,x,-1,0);let v=(e=i.length)!==null&&e!==void 0?e:Q.length?x[0]+Q[0].length:0;return new pe(l[i.topID],Q.reverse(),x.reverse(),v)}var Zg=new WeakMap;function sa(i,e){if(!i.isAnonymous||e instanceof gi||e.type!=i)return 1;let t=Zg.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=i||!(n instanceof pe)){t=1;break}t+=sa(i,n)}Zg.set(e,t)}return t}function Jc(i,e,t,n,r,s,o,a,l){let c=0;for(let d=n;d<r;d++)c+=sa(i,e[d]);let O=Math.ceil(c*1.5/8),h=[],f=[];function u(d,p,m,g,Q){for(let x=m;x<g;){let v=x,S=p[x],b=sa(i,d[x]);for(x++;x<g;x++){let y=sa(i,d[x]);if(b+y>=O)break;b+=y}if(x==v+1){if(b>O){let y=d[v];u(y.children,y.positions,0,y.children.length,p[v]+Q);continue}h.push(d[v])}else{let y=p[x-1]+d[x-1].length-S;h.push(Jc(i,d,p,v,x,S,y,null,l))}f.push(S+Q-s)}}return u(e,t,n,r,0),(a||l)(h,f,o)}var Wn=class{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof Bi?this.setBuffer(e.context.buffer,e.index,t):e instanceof Ie&&this.map.set(e.tree,t)}get(e){return e instanceof Bi?this.getBuffer(e.context.buffer,e.index):e instanceof Ie?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},Nt=class i{constructor(e,t,n,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new i(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let O=a<t.length?t[a]:null,h=O?O.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let f=o;if(l>=f.from||h<=f.to||c){let u=Math.max(f.from,l)-c,d=Math.min(f.to,h)-c;f=u>=d?null:new i(u,d,f.tree,f.offset+c,a>0,!!O)}if(f&&r.push(f),o.to>h)break;o=s<e.length?e[s++]:null}if(!O)break;l=O.toA,c=O.toA-O.toB}return r}},Zn=class{startParse(e,t,n){return typeof e=="string"&&(e=new Gc(e)),n=n?n.length?n.map(r=>new Ge(r.from,r.to)):[new Ge(0,0)]:[new Ge(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}},Gc=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function Oa(i){return(e,t,n,r)=>new Fc(e,i,t,n,r)}var aa=class{constructor(e,t,n,r,s){this.parser=e,this.parse=t,this.overlay=n,this.target=r,this.from=s}};function Vg(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var Ic=class{constructor(e,t,n,r,s,o,a){this.parser=e,this.predicate=t,this.mounts=n,this.index=r,this.start=s,this.target=o,this.prev=a,this.depth=0,this.ranges=[]}},Nc=new j({perNode:!0}),Fc=class{constructor(e,t,n,r,s){this.nest=t,this.input=n,this.fragments=r,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new pe(n.type,n.children,n.positions,n.length,n.propValues.concat([[Nc,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[j.mounted.id]=new Li(t,e.overlay,e.parser),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].from<e&&(e=Math.min(e,this.inner[t].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].parse.stopAt(e)}startInner(){let e=new Hc(this.fragments),t=null,n=null,r=new Cn(new Ie(this.baseTree,this.ranges[0].from,0,null),K.IncludeAnonymous|K.IgnoreMounts);e:for(let s,o;;){let a=!0,l;if(this.stoppedAt!=null&&r.from>=this.stoppedAt)a=!1;else if(e.hasNode(r)){if(t){let c=t.mounts.find(O=>O.frag.from<=r.from&&O.frag.to>=r.to&&O.mount.overlay);if(c)for(let O of c.mount.overlay){let h=O.from+c.pos,f=O.to+c.pos;h>=r.from&&f<=r.to&&!t.ranges.some(u=>u.from<f&&u.to>h)&&t.ranges.push({from:h,to:f})}}a=!1}else if(n&&(o=Pv(n.ranges,r.from,r.to)))a=o!=2;else if(!r.type.isAnonymous&&(s=this.nest(r,this.input))&&(r.from<r.to||!s.overlay)){r.tree||kv(r);let c=e.findMounts(r.from,s.parser);if(typeof s.overlay=="function")t=new Ic(s.parser,s.overlay,c,this.inner.length,r.from,r.tree,t);else{let O=jg(this.ranges,s.overlay||(r.from<r.to?[new Ge(r.from,r.to)]:[]));O.length&&Vg(O),(O.length||!s.overlay)&&this.inner.push(new aa(s.parser,O.length?s.parser.startParse(this.input,Yg(c,O),O):s.parser.startParse(""),s.overlay?s.overlay.map(h=>new Ge(h.from-r.from,h.to-r.from)):null,r.tree,O.length?O[0].from:r.from)),s.overlay?O.length&&(n={ranges:O,depth:0,prev:n}):a=!1}}else if(t&&(l=t.predicate(r))&&(l===!0&&(l=new Ge(r.from,r.to)),l.from<l.to)){let c=t.ranges.length-1;c>=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&r.firstChild())t&&t.depth++,n&&n.depth++;else for(;!r.nextSibling();){if(!r.parent())break e;if(t&&!--t.depth){let c=jg(this.ranges,t.ranges);c.length&&(Vg(c),this.inner.splice(t.index,0,new aa(t.parser,t.parser.startParse(this.input,Yg(t.mounts,c),c),t.ranges.map(O=>new Ge(O.from-t.start,O.to-t.start)),t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}};function Pv(i,e,t){for(let n of i){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function Ag(i,e,t,n,r,s){if(e<t){let o=i.buffer[e+1];n.push(i.slice(e,t,o)),r.push(o-s)}}function kv(i){let{node:e}=i,t=[],n=e.context.buffer;do t.push(i.index),i.parent();while(!i.tree);let r=i.tree,s=r.children.indexOf(n),o=r.children[s],a=o.buffer,l=[s];function c(O,h,f,u,d,p){let m=t[p],g=[],Q=[];Ag(o,O,m,g,Q,u);let x=a[m+1],v=a[m+2];l.push(g.length);let S=p?c(m+4,a[m+3],o.set.types[a[m]],x,v-x,p-1):e.toTree();return g.push(S),Q.push(x-u),Ag(o,a[m+3],h,g,Q,u),new pe(f,g,Q,d)}r.children[s]=c(0,a.length,_e.none,0,o.length,t.length-1);for(let O of l){let h=i.tree.children[O],f=i.tree.positions[O];i.yield(new Ie(h,f+i.from,O,i._tree))}}var la=class{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(K.IncludeAnonymous|K.IgnoreMounts)}moveTo(e){let{cursor:t}=this,n=e-this.offset;for(;!this.done&&t.from<n;)t.to>=e&&t.enter(n,1,K.IgnoreOverlays|K.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof pe)t=t.children[0];else break}return!1}},Hc=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(Nc))!==null&&t!==void 0?t:n.to,this.inner=new la(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Nc))!==null&&e!==void 0?e:t.to,this.inner=new la(t.tree,-t.offset)}}findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(n=s.tree)===null||n===void 0?void 0:n.prop(j.mounted);if(o&&o.parser==t)for(let a=this.fragI;a<this.fragments.length;a++){let l=this.fragments[a];if(l.from>=s.to)break;l.tree==this.curFrag.tree&&r.push({frag:l,pos:s.from-l.offset,mount:o})}}}return r}};function jg(i,e){let t=null,n=e;for(let r=1,s=0;r<i.length;r++){let o=i[r-1].to,a=i[r].from;for(;s<n.length;s++){let l=n[s];if(l.from>=a)break;l.to<=o||(t||(n=t=e.slice()),l.from<o?(t[s]=new Ge(l.from,o),l.to>a&&t.splice(s+1,0,new Ge(a,l.to))):l.to>a?t[s--]=new Ge(a,l.to):t.splice(s--,1))}}return n}function Tv(i,e,t,n){let r=0,s=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let O=r==i.length?1e9:o?i[r].to:i[r].from,h=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let f=Math.max(l,t),u=Math.min(O,h,n);f<u&&c.push(new Ge(f,u))}if(l=Math.min(O,h),l==1e9)break;O==l&&(o?(o=!1,r++):o=!0),h==l&&(a?(a=!1,s++):a=!0)}return c}function Yg(i,e){let t=[];for(let{pos:n,mount:r,frag:s}of i){let o=n+(r.overlay?r.overlay[0].from:0),a=o+r.tree.length,l=Math.max(s.from,o),c=Math.min(s.to,a);if(r.overlay){let O=r.overlay.map(f=>new Ge(f.from+n,f.to+n)),h=Tv(e,O,l,c);for(let f=0,u=l;;f++){let d=f==h.length,p=d?c:h[f].from;if(p>u&&t.push(new Nt(u,p,r.tree,-o,s.from>=u||s.openStart,s.to<=p||s.openEnd)),d)break;u=h[f].to}}else t.push(new Nt(l,c,r.tree,-o,s.from>=o||s.openStart,s.to<=a||s.openEnd))}return t}var zv=0,$t=class i{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=zv++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let r=new i(n,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new ua(e);return n=>n.modified.indexOf(t)>-1?n:ua.get(n.base||n,n.modified.concat(t).sort((r,s)=>r.id-s.id))}},Xv=0,ua=class i{constructor(e){this.name=e,this.instances=[],this.id=Xv++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(a=>a.base==e&&Rv(t,a.modified));if(n)return n;let r=[],s=new $t(e.name,r,e,t);for(let a of t)a.instances.push(s);let o=qv(t);for(let a of e.set)if(!a.modified.length)for(let l of o)r.push(i.get(a,l));return s}};function Rv(i,e){return i.length==e.length&&i.every((t,n)=>t==e[n])}function qv(i){let e=[[]];for(let t=0;t<i.length;t++)for(let n=0,r=e.length;n<r;n++)e.push(e[n].concat(i[t]));return e.sort((t,n)=>n.length-t.length)}function _t(i){let e=Object.create(null);for(let t in i){let n=i[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],o=2,a=r;for(let h=0;;){if(a=="..."&&h>0&&h+3==r.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+r);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),h+=f[0].length,h==r.length)break;let u=r[h++];if(h==r.length&&u=="!"){o=0;break}if(u!="/")throw new RangeError("Invalid path: "+r);a=r.slice(h)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+r);let O=new Vn(n,o,l>0?s.slice(0,l):null);e[c]=O.sort(e[c])}}return Lg.add(e)}var Lg=new j,Vn=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};Vn.empty=new Vn([],2,null);function nh(i,e){let t=Object.create(null);for(let s of i)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let o of s.tag)t[o.id]=s.class;let{scope:n,all:r=null}=e||{};return{style:s=>{let o=r;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function _v(i,e){let t=null;for(let n of i){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function Bg(i,e,t,n=0,r=i.length){let s=new th(n,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),n,r,"",s.highlighters),s.flush(r)}var th=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(s=this.highlighters.filter(u=>!u.scope||u.scope(o)));let c=r,O=Cv(e)||Vn.empty,h=_v(s,O.tags);if(h&&(c&&(c+=" "),c+=h,O.mode==1&&(r+=(r?" ":"")+h)),this.startSpan(Math.max(t,a),c),O.opaque)return;let f=e.tree&&e.tree.prop(j.mounted);if(f&&f.overlay){let u=e.node.enter(f.overlay[0].from+a,1),d=this.highlighters.filter(m=>!m.scope||m.scope(f.tree.type)),p=e.firstChild();for(let m=0,g=a;;m++){let Q=m<f.overlay.length?f.overlay[m]:null,x=Q?Q.from+a:l,v=Math.max(t,g),S=Math.min(n,x);if(v<S&&p)for(;e.from<S&&(this.highlightRange(e,v,S,r,s),this.startSpan(Math.min(S,e.to),c),!(e.to>=x||!e.nextSibling())););if(!Q||x>n)break;g=Q.to+a,g>t&&(this.highlightRange(u.cursor(),Math.max(t,Q.from+a),Math.min(n,g),"",d),this.startSpan(Math.min(n,g),c))}p&&e.parent()}else if(e.firstChild()){f&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function Cv(i){let e=i.type.prop(Lg);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var z=$t.define,ca=z(),$i=z(),Eg=z($i),Dg=z($i),yi=z(),ha=z(yi),eh=z(yi),qt=z(),Gi=z(qt),Xt=z(),Rt=z(),ih=z(),is=z(ih),fa=z(),$={comment:ca,lineComment:z(ca),blockComment:z(ca),docComment:z(ca),name:$i,variableName:z($i),typeName:Eg,tagName:z(Eg),propertyName:Dg,attributeName:z(Dg),className:z($i),labelName:z($i),namespace:z($i),macroName:z($i),literal:yi,string:ha,docString:z(ha),character:z(ha),attributeValue:z(ha),number:eh,integer:z(eh),float:z(eh),bool:z(yi),regexp:z(yi),escape:z(yi),color:z(yi),url:z(yi),keyword:Xt,self:z(Xt),null:z(Xt),atom:z(Xt),unit:z(Xt),modifier:z(Xt),operatorKeyword:z(Xt),controlKeyword:z(Xt),definitionKeyword:z(Xt),moduleKeyword:z(Xt),operator:Rt,derefOperator:z(Rt),arithmeticOperator:z(Rt),logicOperator:z(Rt),bitwiseOperator:z(Rt),compareOperator:z(Rt),updateOperator:z(Rt),definitionOperator:z(Rt),typeOperator:z(Rt),controlOperator:z(Rt),punctuation:ih,separator:z(ih),bracket:is,angleBracket:z(is),squareBracket:z(is),paren:z(is),brace:z(is),content:qt,heading:Gi,heading1:z(Gi),heading2:z(Gi),heading3:z(Gi),heading4:z(Gi),heading5:z(Gi),heading6:z(Gi),contentSeparator:z(qt),list:z(qt),quote:z(qt),emphasis:z(qt),strong:z(qt),link:z(qt),monospace:z(qt),strikethrough:z(qt),inserted:z(),deleted:z(),changed:z(),invalid:z(),meta:fa,documentMeta:z(fa),annotation:z(fa),processingInstruction:z(fa),definition:$t.defineModifier("definition"),constant:$t.defineModifier("constant"),function:$t.defineModifier("function"),standard:$t.defineModifier("standard"),local:$t.defineModifier("local"),special:$t.defineModifier("special")};for(let i in $){let e=$[i];e instanceof $t&&(e.name=i)}var E6=nh([{tag:$.link,class:"tok-link"},{tag:$.heading,class:"tok-heading"},{tag:$.emphasis,class:"tok-emphasis"},{tag:$.strong,class:"tok-strong"},{tag:$.keyword,class:"tok-keyword"},{tag:$.atom,class:"tok-atom"},{tag:$.bool,class:"tok-bool"},{tag:$.url,class:"tok-url"},{tag:$.labelName,class:"tok-labelName"},{tag:$.inserted,class:"tok-inserted"},{tag:$.deleted,class:"tok-deleted"},{tag:$.literal,class:"tok-literal"},{tag:$.string,class:"tok-string"},{tag:$.number,class:"tok-number"},{tag:[$.regexp,$.escape,$.special($.string)],class:"tok-string2"},{tag:$.variableName,class:"tok-variableName"},{tag:$.local($.variableName),class:"tok-variableName tok-local"},{tag:$.definition($.variableName),class:"tok-variableName tok-definition"},{tag:$.special($.variableName),class:"tok-variableName2"},{tag:$.definition($.propertyName),class:"tok-propertyName tok-definition"},{tag:$.typeName,class:"tok-typeName"},{tag:$.namespace,class:"tok-namespace"},{tag:$.className,class:"tok-className"},{tag:$.macroName,class:"tok-macroName"},{tag:$.propertyName,class:"tok-propertyName"},{tag:$.operator,class:"tok-operator"},{tag:$.comment,class:"tok-comment"},{tag:$.meta,class:"tok-meta"},{tag:$.invalid,class:"tok-invalid"},{tag:$.punctuation,class:"tok-punctuation"}]);var rh,An=new j;function mh(i){return X.define({combine:i?e=>e.concat(i):void 0})}var ga=new j,tt=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,ee.prototype.hasOwnProperty("tree")||Object.defineProperty(ee.prototype,"tree",{get(){return ae(this)}}),this.parser=t,this.extension=[Qi.of(this),ee.languageData.of((s,o,a)=>{let l=Gg(s,o,a),c=l.type.prop(An);if(!c)return[];let O=s.facet(c),h=l.type.prop(ga);if(h){let f=l.resolve(o-l.from,a);for(let u of h)if(u.test(f,s)){let d=s.facet(u.facet);return u.type=="replace"?d:d.concat(O)}}return O})].concat(n)}isActiveAt(e,t,n=-1){return Gg(e,t,n).type.prop(An)==this.data}findRegions(e){let t=e.facet(Qi);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,o)=>{if(s.prop(An)==this.data){n.push({from:o,to:o+s.length});return}let a=s.prop(j.mounted);if(a){if(a.tree.prop(An)==this.data){if(a.overlay)for(let l of a.overlay)n.push({from:l.from+o,to:l.to+o});else n.push({from:o,to:o+s.length});return}else if(a.overlay){let l=n.length;if(r(a.tree,a.overlay[0].from+o),n.length>l)return}}for(let l=0;l<s.children.length;l++){let c=s.children[l];c instanceof pe&&r(c,s.positions[l]+o)}};return r(ae(e),0),n}get allowsNesting(){return!0}};tt.setState=Z.define();function Gg(i,e,t){let n=i.facet(Qi),r=ae(i).topNode;if(!n||n.allowsNesting)for(let s=r;s;s=s.enter(e,t,K.ExcludeBuffers))s.type.isTop&&(r=s);return r}var Ct=class i extends tt{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=mh(e.languageData);return new i(t,e.parser.configure({props:[An.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ae(i){let e=i.field(tt.state,!1);return e?e.tree:pe.empty}var lh=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},ns=null,Oh=class i{constructor(e,t,n=[],r,s,o,a,l){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new i(e,t,[],pe.empty,0,n,[],null)}startParse(){return this.parser.startParse(new lh(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=pe.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let r=this.parse.advance();if(r)if(this.fragments=this.withoutTempSkipped(Nt.addTree(r,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=r,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Nt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=ns;ns=this;try{return e()}finally{ns=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Ig(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,O,h,f)=>l.push({fromA:c,toA:O,fromB:h,toB:f})),n=Nt.applyChanges(n,l),r=pe.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let O=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);O<h&&a.push({from:O,to:h})}}}return new i(this.parser,t,n,r,s,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:r,to:s}=this.skipped[n];r<e.to&&s>e.from&&(this.fragments=Ig(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Zn{createParse(t,n,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let l=ns;if(l){for(let c of r)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new pe(_e.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return ns}};function Ig(i,e,t){return Nt.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var ss=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Oh.create(e.facet(Qi).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new i(n)}};tt.state=de.define({create:ss.init,update(i,e){for(let t of e.effects)if(t.is(tt.setState))return t.value;return e.startState.facet(Qi)!=e.state.facet(Qi)?ss.init(e.state):i.apply(e)}});var e$=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(e$=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var sh=typeof navigator<"u"&&(!((rh=navigator.scheduling)===null||rh===void 0)&&rh.isInputPending)?()=>navigator.scheduling.isInputPending():null,Wv=ge.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(tt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(tt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=e$(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:r}}=this.view,s=n.field(tt.state);if(s.tree==s.context.tree&&s.context.isDone(r+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!sh?Math.max(25,e.timeRemaining()-5):1e9),a=s.context.treeLen<r&&n.doc.length>r+1e3,l=s.context.work(()=>sh&&sh()||Date.now()>o,r+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:tt.setState.of(new ss(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>qe(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Qi=X.define({combine(i){return i.length?i[0]:null},enables:i=>[tt.state,Wv,T.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),Wt=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}};var Zv=X.define(),jn=X.define({combine:i=>{if(!i.length)return"  ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function os(i){let e=i.facet(jn);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function Yn(i,e){let t="",n=i.tabSize,r=i.facet(jn)[0];if(r=="    "){for(;e>=n;)t+="  ",e-=n;r=" "}for(let s=0;s<e;s++)t+=r;return t}function $a(i,e){i instanceof ee&&(i=new Ii(i));for(let n of i.state.facet(Zv)){let r=n(i,e);if(r!==void 0)return r}let t=ae(i.state);return t.length>=e?Vv(i,t,e):null}var Ii=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=os(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==e?{text:"",from:e}:(t<0?r<e:r<=e)?{text:n.text.slice(r-n.from),from:r}:{text:n.text.slice(0,r-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:r}=this.lineAt(e,t);return n.slice(e-r,Math.min(n.length,e+100-r))}column(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.countColumn(n,e-r),o=this.options.overrideIndentation?this.options.overrideIndentation(r):-1;return o>-1&&(s+=o-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return Bt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(r);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Ft=new j;function Vv(i,e,t){let n=e.resolveStack(t),r=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(r!=n.node){let s=[];for(let o=r;o&&!(o.from<n.node.from||o.to>n.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)n={node:s[o],next:n}}return t$(n,i,t)}function t$(i,e,t){for(let n=i;n;n=n.next){let r=jv(n.node);if(r)return r(ch.create(e,t,n))}return 0}function Av(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function jv(i){let e=i.type.prop(Ft);if(e)return e;let t=i.firstChild,n;if(t&&(n=t.type.prop(j.closedBy))){let r=i.lastChild,s=r&&n.indexOf(r.name)>-1;return o=>i$(o,!0,1,void 0,s&&!Av(o)?r.from:void 0)}return i.parent==null?Yv:null}function Yv(){return 0}var ch=class i extends Ii{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new i(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(Uv(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return t$(this.context.next,this.base,this.pos)}};function Uv(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function Mv(i){let e=i.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let r=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function ya({closing:i,align:e=!0,units:t=1}){return n=>i$(n,e,t,i)}function i$(i,e,t,n,r){let s=i.textAfter,o=s.match(/^\s*/)[0].length,a=n&&s.slice(o,o+n.length)==n||r==i.pos+o,l=e?Mv(i):null;return l?a?i.column(l.from):i.column(l.to):i.baseIndent+(a?0:i.unit*t)}var n$=i=>i.baseIndent;function Zt({except:i,units:e=1}={}){return t=>{let n=i&&i.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}var Ev=200;function r$(){return ee.transactionFilter.of(i=>{if(!i.docChanged||!i.isUserEvent("input.type")&&!i.isUserEvent("input.complete"))return i;let e=i.startState.languageDataAt("indentOnInput",i.startState.selection.main.head);if(!e.length)return i;let t=i.newDoc,{head:n}=i.newSelection.main,r=t.lineAt(n);if(n>r.from+Ev)return i;let s=t.sliceString(r.from,n);if(!e.some(c=>c.test(s)))return i;let{state:o}=i,a=-1,l=[];for(let{head:c}of o.selection.ranges){let O=o.doc.lineAt(c);if(O.from==a)continue;a=O.from;let h=$a(o,O.from);if(h==null)continue;let f=/^\s*/.exec(O.text)[0],u=Yn(o,h);f!=u&&l.push({from:O.from,to:O.from+f.length,insert:u})}return l.length?[i,{changes:l,sequential:!0}]:i})}var Dv=X.define(),Ht=new j;function Un(i){let e=i.firstChild,t=i.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?i.to:t.from}:null}function Lv(i,e,t){let n=ae(i);if(n.length<t)return null;let r=n.resolveStack(t,1),s=null;for(let o=r;o;o=o.next){let a=o.node;if(a.to<=t||a.from>t)continue;if(s&&a.from<e)break;let l=a.type.prop(Ht);if(l&&(a.to<n.length-50||n.length==i.doc.length||!Bv(a))){let c=l(a,i);c&&c.from<=t&&c.from>=e&&c.to>t&&(s=c)}}return s}function Bv(i){let e=i.lastChild;return e&&e.to==i.to&&e.type.isError}function da(i,e,t){for(let n of i.facet(Dv)){let r=n(i,e,t);if(r)return r}return Lv(i,e,t)}function s$(i,e){let t=e.mapPos(i.from,1),n=e.mapPos(i.to,-1);return t>=n?void 0:{from:t,to:n}}var Qa=Z.define({map:s$}),as=Z.define({map:s$});function o$(i){let e=[];for(let{head:t}of i.state.selection.ranges)e.some(n=>n.from<=t&&n.to>=t)||e.push(i.lineBlockAt(t));return e}var Ni=de.define({create(){return q.none},update(i,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,n)=>i=Ng(i,t,n)),i=i.map(e.changes);for(let t of e.effects)if(t.is(Qa)&&!Gv(i,t.value.from,t.value.to)){let{preparePlaceholder:n}=e.state.facet(gh),r=n?q.replace({widget:new hh(n(e.state,t.value))}):Fg;i=i.update({add:[r.range(t.value.from,t.value.to)]})}else t.is(as)&&(i=i.update({filter:(n,r)=>t.value.from!=n||t.value.to!=r,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(i=Ng(i,e.selection.main.head)),i},provide:i=>T.decorations.from(i),toJSON(i,e){let t=[];return i.between(0,e.doc.length,(n,r)=>{t.push(n,r)}),t},fromJSON(i){if(!Array.isArray(i)||i.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<i.length;){let n=i[t++],r=i[t++];if(typeof n!="number"||typeof r!="number")throw new RangeError("Invalid JSON for fold state");e.push(Fg.range(n,r))}return q.set(e,!0)}});function Ng(i,e,t=e){let n=!1;return i.between(e,t,(r,s)=>{r<t&&s>e&&(n=!0)}),n?i.update({filterFrom:e,filterTo:t,filter:(r,s)=>r>=t||s<=e}):i}function pa(i,e,t){var n;let r=null;return(n=i.field(Ni,!1))===null||n===void 0||n.between(e,t,(s,o)=>{(!r||r.from>s)&&(r={from:s,to:o})}),r}function Gv(i,e,t){let n=!1;return i.between(e,e,(r,s)=>{r==e&&s==t&&(n=!0)}),n}function a$(i,e){return i.field(Ni,!1)?e:e.concat(Z.appendConfig.of(c$()))}var Iv=i=>{for(let e of o$(i)){let t=da(i.state,e.from,e.to);if(t)return i.dispatch({effects:a$(i.state,[Qa.of(t),l$(i,t)])}),!0}return!1},Nv=i=>{if(!i.state.field(Ni,!1))return!1;let e=[];for(let t of o$(i)){let n=pa(i.state,t.from,t.to);n&&e.push(as.of(n),l$(i,n,!1))}return e.length&&i.dispatch({effects:e}),e.length>0};function l$(i,e,t=!0){let n=i.state.doc.lineAt(e.from).number,r=i.state.doc.lineAt(e.to).number;return T.announce.of(`${i.state.phrase(t?"Folded lines":"Unfolded lines")} ${n} ${i.state.phrase("to")} ${r}.`)}var Fv=i=>{let{state:e}=i,t=[];for(let n=0;n<e.doc.length;){let r=i.lineBlockAt(n),s=da(e,r.from,r.to);s&&t.push(Qa.of(s)),n=(s?i.lineBlockAt(s.to):r).to+1}return t.length&&i.dispatch({effects:a$(i.state,t)}),!!t.length},Hv=i=>{let e=i.state.field(Ni,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,i.state.doc.length,(n,r)=>{t.push(as.of({from:n,to:r}))}),i.dispatch({effects:t}),!0};var O$=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:Iv},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:Nv},{key:"Ctrl-Alt-[",run:Fv},{key:"Ctrl-Alt-]",run:Hv}],Kv={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},gh=X.define({combine(i){return Ze(i,Kv)}});function c$(i){let e=[Ni,ew];return i&&e.push(gh.of(i)),e}function h$(i,e){let{state:t}=i,n=t.facet(gh),r=o=>{let a=i.lineBlockAt(i.posAtDOM(o.target)),l=pa(i.state,a.from,a.to);l&&i.dispatch({effects:as.of(l)}),o.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(i,r,e);let s=document.createElement("span");return s.textContent=n.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=r,s}var Fg=q.replace({widget:new class extends Be{toDOM(i){return h$(i,null)}}}),hh=class extends Be{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return h$(e,this.value)}},Jv={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},rs=class extends et{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function f$(i={}){let e={...Jv,...i},t=new rs(e,!0),n=new rs(e,!1),r=ge.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Qi)!=o.state.facet(Qi)||o.startState.field(Ni,!1)!=o.state.field(Ni,!1)||ae(o.startState)!=ae(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new He;for(let l of o.viewportLineBlocks){let c=pa(o.state,l.from,l.to)?n:da(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[r,Mc({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(r))===null||a===void 0?void 0:a.markers)||H.empty},initialSpacer(){return new rs(e,!1)},domEventHandlers:{...s,click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=pa(o.state,a.from,a.to);if(c)return o.dispatch({effects:as.of(c)}),!0;let O=da(o.state,a.from,a.to);return O?(o.dispatch({effects:Qa.of(O)}),!0):!1}}}),c$()]}var ew=T.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),ma=class i{constructor(e,t){this.specs=e;let n;function r(a){let l=ct.newName();return(n||(n=Object.create(null)))["."+l]=a,l}let s=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof tt?a=>a.prop(An)==o.data:o?a=>a==o:void 0,this.style=nh(e.map(a=>({tag:a.tag,class:a.class||r(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=n?new ct(n):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},fh=X.define(),u$=X.define({combine(i){return i.length?[i[0]]:null}});function oh(i){let e=i.facet(fh);return e.length?e:i.facet(u$)}function d$(i,e){let t=[tw],n;return i instanceof ma&&(i.module&&t.push(T.styleModule.of(i.module)),n=i.themeType),e?.fallback?t.push(u$.of(i)):n?t.push(fh.computeN([T.darkTheme],r=>r.facet(T.darkTheme)==(n=="dark")?[i]:[])):t.push(fh.of(i)),t}var uh=class{constructor(e){this.markCache=Object.create(null),this.tree=ae(e.state),this.decorations=this.buildDeco(e,oh(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ae(e.state),n=oh(e.state),r=n!=oh(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<s.to&&!r&&t.type==this.tree.type&&o>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return q.none;let n=new He;for(let{from:r,to:s}of e.visibleRanges)Bg(this.tree,t,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=q.mark({class:l})))},r,s);return n.finish()}},tw=Ot.high(ge.fromClass(uh,{decorations:i=>i.decorations})),p$=ma.define([{tag:$.meta,color:"#404740"},{tag:$.link,textDecoration:"underline"},{tag:$.heading,textDecoration:"underline",fontWeight:"bold"},{tag:$.emphasis,fontStyle:"italic"},{tag:$.strong,fontWeight:"bold"},{tag:$.strikethrough,textDecoration:"line-through"},{tag:$.keyword,color:"#708"},{tag:[$.atom,$.bool,$.url,$.contentSeparator,$.labelName],color:"#219"},{tag:[$.literal,$.inserted],color:"#164"},{tag:[$.string,$.deleted],color:"#a11"},{tag:[$.regexp,$.escape,$.special($.string)],color:"#e40"},{tag:$.definition($.variableName),color:"#00f"},{tag:$.local($.variableName),color:"#30a"},{tag:[$.typeName,$.namespace],color:"#085"},{tag:$.className,color:"#167"},{tag:[$.special($.variableName),$.macroName],color:"#256"},{tag:$.definition($.propertyName),color:"#00c"},{tag:$.comment,color:"#940"},{tag:$.invalid,color:"#f00"}]),iw=T.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),m$=1e4,g$="()[]{}",$$=X.define({combine(i){return Ze(i,{afterCursor:!0,brackets:g$,maxScanDistance:m$,renderMatch:sw})}}),nw=q.mark({class:"cm-matchingBracket"}),rw=q.mark({class:"cm-nonmatchingBracket"});function sw(i){let e=[],t=i.matched?nw:rw;return e.push(t.range(i.start.from,i.start.to)),i.end&&e.push(t.range(i.end.from,i.end.to)),e}var ow=de.define({create(){return q.none},update(i,e){if(!e.docChanged&&!e.selection)return i;let t=[],n=e.state.facet($$);for(let r of e.state.selection.ranges){if(!r.empty)continue;let s=yt(e.state,r.head,-1,n)||r.head>0&&yt(e.state,r.head-1,1,n)||n.afterCursor&&(yt(e.state,r.head,1,n)||r.head<e.state.doc.length&&yt(e.state,r.head+1,-1,n));s&&(t=t.concat(n.renderMatch(s,e.state)))}return q.set(t,!0)},provide:i=>T.decorations.from(i)}),aw=[ow,iw];function y$(i={}){return[$$.of(i),aw]}var $h=new j;function dh(i,e,t){let n=i.prop(e<0?j.openedBy:j.closedBy);if(n)return n;if(i.name.length==1){let r=t.indexOf(i.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function ph(i){let e=i.type.prop($h);return e?e(i.node):i}function yt(i,e,t,n={}){let r=n.maxScanDistance||m$,s=n.brackets||g$,o=ae(i),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=dh(l.type,t,s);if(c&&l.from<l.to){let O=ph(l);if(O&&(t>0?e>=O.from&&e<O.to:e>O.from&&e<=O.to))return lw(i,e,t,l,O,c,s)}}return Ow(i,e,t,o,a.type,r,s)}function lw(i,e,t,n,r,s,o){let a=n.parent,l={from:r.from,to:r.to},c=0,O=a?.cursor();if(O&&(t<0?O.childBefore(n.from):O.childAfter(n.to)))do if(t<0?O.to<=n.from:O.from>=n.to){if(c==0&&s.indexOf(O.type.name)>-1&&O.from<O.to){let h=ph(O);return{start:l,end:h?{from:h.from,to:h.to}:void 0,matched:!0}}else if(dh(O.type,t,o))c++;else if(dh(O.type,-t,o)){if(c==0){let h=ph(O);return{start:l,end:h&&h.from<h.to?{from:h.from,to:h.to}:void 0,matched:!1}}c--}}while(t<0?O.prevSibling():O.nextSibling());return{start:l,matched:!1}}function Ow(i,e,t,n,r,s,o){let a=t<0?i.sliceDoc(e-1,e):i.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},O=i.doc.iterRange(e,t>0?i.doc.length:0),h=0;for(let f=0;!O.next().done&&f<=s;){let u=O.value;t<0&&(f+=u.length);let d=e+f*t;for(let p=t>0?0:u.length-1,m=t>0?u.length:-1;p!=m;p+=t){let g=o.indexOf(u[p]);if(!(g<0||n.resolveInner(d+p,1).type!=r))if(g%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:d+p,to:d+p+1},matched:g>>1==l>>1};h--}}t>0&&(f+=u.length)}return O.done?{start:c,matched:!1}:null}var cw=Object.create(null),Hg=[_e.none];var Kg=[],Jg=Object.create(null),hw=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])hw[i]=fw(cw,e);function ah(i,e){Kg.indexOf(i)>-1||(Kg.push(i),console.warn(e))}function fw(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let O=i[c]||$[c];O?typeof O=="function"?l.length?l=l.map(O):ah(c,`Modifier ${c} used at start of tag`):l.length?ah(c,`Tag ${c} used as modifier`):l=Array.isArray(O)?O:[O]:ah(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+t.map(a=>a.id),s=Jg[r];if(s)return s.id;let o=Jg[r]=_e.define({id:Hg.length,name:n,props:[_t({[n]:t})]});return Hg.push(o),o.id}var H6={rtl:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:ne.RTL}),ltr:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:ne.LTR}),auto:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var uw=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),n=wh(i.state,t.from);return n.line?dw(i):n.block?mw(i):!1};function vh(i,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=i(e,t);return r?(n(t.update(r)),!0):!1}}var dw=vh(yw,0);var pw=vh(T$,0);var mw=vh((i,e)=>T$(i,e,$w(e)),0);function wh(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var ls=50;function gw(i,{open:e,close:t},n,r){let s=i.sliceDoc(n-ls,n),o=i.sliceDoc(r,r+ls),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:r+l,margin:l&&1}};let O,h;r-n<=2*ls?O=h=i.sliceDoc(n,r):(O=i.sliceDoc(n,n+ls),h=i.sliceDoc(r-ls,r));let f=/^\s*/.exec(O)[0].length,u=/\s*$/.exec(h)[0].length,d=h.length-u-t.length;return O.slice(f,f+e.length)==e&&h.slice(d,d+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(O.charAt(f+e.length))?1:0},close:{pos:r-u-t.length,margin:/\s/.test(h.charAt(d-1))?1:0}}:null}function $w(i){let e=[];for(let t of i.selection.ranges){let n=i.doc.lineAt(t.from),r=t.to<=n.to?n:i.doc.lineAt(t.to);r.from>n.from&&r.from==t.to&&(r=t.to==n.to+1?n:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}function T$(i,e,t=e.selection.ranges){let n=t.map(s=>wh(e,s.from).block);if(!n.every(s=>s))return null;let r=t.map((s,o)=>gw(e,n[o],s.from,s.to));if(i!=2&&!r.every(s=>s))return{changes:e.changes(t.map((s,o)=>r[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(i!=1&&r.some(s=>s)){let s=[];for(let o=0,a;o<r.length;o++)if(a=r[o]){let l=n[o],{open:c,close:O}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:O.pos-O.margin,to:O.pos+l.close.length})}return{changes:s}}return null}function yw(i,e,t=e.selection.ranges){let n=[],r=-1;for(let{from:s,to:o}of t){let a=n.length,l=1e9,c=wh(e,s).line;if(c){for(let O=s;O<=o;){let h=e.doc.lineAt(O);if(h.from>r&&(s==o||o>h.from)){r=h.from;let f=/^\s*/.exec(h.text)[0].length,u=f==h.length,d=h.text.slice(f,f+c.length)==c?f:-1;f<h.text.length&&f<l&&(l=f),n.push({line:h,comment:d,token:c,indent:f,empty:u,single:!1})}O=h.to+1}if(l<1e9)for(let O=a;O<n.length;O++)n[O].indent<n[O].line.text.length&&(n[O].indent=l);n.length==a+1&&(n[a].single=!0)}}if(i!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:O,single:h}of n)(h||!O)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,O=c+l.length;o.text[O-o.from]==" "&&O++,s.push({from:c,to:O})}return{changes:s}}return null}var Qh=De.define(),Qw=De.define(),Sw=X.define(),z$=X.define({combine(i){return Ze(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),X$=de.define({create(){return Fi.empty},update(i,e){let t=e.state.facet(z$),n=e.annotation(Qh);if(n){let l=Qt.fromTransaction(e,n.selection),c=n.side,O=c==0?i.undone:i.done;return l?O=ba(O,O.length,t.minDepth,l):O=C$(O,e.startState.selection),new Fi(c==0?n.rest:O,c==0?O:n.rest)}let r=e.annotation(Qw);if((r=="full"||r=="before")&&(i=i.isolate()),e.annotation(xe.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=Qt.fromTransaction(e),o=e.annotation(xe.time),a=e.annotation(xe.userEvent);return s?i=i.addChanges(s,o,a,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(r=="full"||r=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Fi(i.done.map(Qt.fromJSON),i.undone.map(Qt.fromJSON))}});function R$(i={}){return[X$,z$.of(i),T.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?q$:e.inputType=="historyRedo"?Sh:null;return n?(e.preventDefault(),n(t)):!1}})]}function xa(i,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let r=t.field(X$,!1);if(!r)return!1;let s=r.pop(i,t,e);return s?(n(s),!0):!1}}var q$=xa(0,!1),Sh=xa(1,!1),bw=xa(0,!0),xw=xa(1,!0);var Qt=class i{constructor(e,t,n,r,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new i(e.changes&&Ae.fromJSON(e.changes),[],e.mapped&&Lt.fromJSON(e.mapped),e.startSelection&&P.fromJSON(e.startSelection),e.selectionsAfter.map(P.fromJSON))}static fromTransaction(e,t){let n=ut;for(let r of e.startState.facet(Sw)){let s=r(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new i(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,ut)}static selection(e){return new i(void 0,ut,void 0,void 0,e)}};function ba(i,e,t,n){let r=e+1>t+20?e-t-1:0,s=i.slice(r,e);return s.push(n),s}function vw(i,e){let t=[],n=!1;return i.iterChangedRanges((r,s)=>t.push(r,s)),e.iterChangedRanges((r,s,o,a)=>{for(let l=0;l<t.length;){let c=t[l++],O=t[l++];a>=c&&o<=O&&(n=!0)}}),n}function ww(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function _$(i,e){return i.length?e.length?i.concat(e):i:e}var ut=[],Pw=200;function C$(i,e){if(i.length){let t=i[i.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Pw));return n.length&&n[n.length-1].eq(e)?i:(n.push(e),ba(i,i.length-1,1e9,t.setSelAfter(n)))}else return[Qt.selection([e])]}function kw(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function yh(i,e){if(!i.length)return i;let t=i.length,n=ut;for(;t;){let r=Tw(i[t-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let s=i.slice(0,t);return s[t-1]=r,s}else e=r.mapped,t--,n=r.selectionsAfter}return n.length?[Qt.selection(n)]:ut}function Tw(i,e,t){let n=_$(i.selectionsAfter.length?i.selectionsAfter.map(a=>a.map(e)):ut,t);if(!i.changes)return Qt.selection(n);let r=i.changes.map(e),s=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(s):s;return new Qt(r,Z.mapEffects(i.effects,e),o,i.startSelection.map(s),n)}var zw=/^(input\.type|delete)($|\.)/,Fi=class i{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new i(this.done,this.undone):this}addChanges(e,t,n,r,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||zw.test(n))&&(!a.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(s,vw(a.changes,e.changes))||n=="input.type.compose")?o=ba(o,o.length-1,r.minDepth,new Qt(e.changes.compose(a.changes),_$(Z.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,ut)):o=ba(o,o.length,r.minDepth,e),new i(o,ut,t,n)}addSelection(e,t,n,r){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:ut;return s.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&ww(s[s.length-1],e)?this:new i(C$(this.done,e),this.undone,t,n)}addMapping(e){return new i(yh(this.done,e),yh(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let s=r[r.length-1],o=s.selectionsAfter[0]||t.selection;if(n&&s.selectionsAfter.length)return t.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:Qh.of({side:e,rest:kw(r),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let a=r.length==1?ut:r.slice(0,r.length-1);return s.mapped&&(a=yh(a,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:Qh.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}};Fi.empty=new Fi(ut,ut);var W$=[{key:"Mod-z",run:q$,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Sh,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Sh,preventDefault:!0},{key:"Mod-u",run:bw,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:xw,preventDefault:!0}];function Mn(i,e){return P.create(i.ranges.map(e),i.mainIndex)}function Vt(i,e){return i.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function St({state:i,dispatch:e},t){let n=Mn(i.selection,t);return n.eq(i.selection,!0)?!1:(e(Vt(i,n)),!0)}function va(i,e){return P.cursor(e?i.to:i.from)}function Z$(i,e){return St(i,t=>t.empty?i.moveByChar(t,e):va(t,e))}function Ve(i){return i.textDirectionAt(i.state.selection.main.head)==ne.LTR}var V$=i=>Z$(i,!Ve(i)),A$=i=>Z$(i,Ve(i));function j$(i,e){return St(i,t=>t.empty?i.moveByGroup(t,e):va(t,e))}var Xw=i=>j$(i,!Ve(i)),Rw=i=>j$(i,Ve(i));var o_=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function qw(i,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function wa(i,e,t){let n=ae(i).resolveInner(e.head),r=t?j.closedBy:j.openedBy;for(let l=e.head;;){let c=t?n.childAfter(l):n.childBefore(l);if(!c)break;qw(i,c,r)?n=c:l=t?c.to:c.from}let s=n.type.prop(r),o,a;return s&&(o=t?yt(i,n.from,1):yt(i,n.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?n.to:n.from,P.cursor(a,t?-1:1)}var _w=i=>St(i,e=>wa(i.state,e,!Ve(i))),Cw=i=>St(i,e=>wa(i.state,e,Ve(i)));function Y$(i,e){return St(i,t=>{if(!t.empty)return va(t,e);let n=i.moveVertically(t,e);return n.head!=t.head?n:i.moveToLineBoundary(t,e)})}var U$=i=>Y$(i,!1),M$=i=>Y$(i,!0);function E$(i){let e=i.scrollDOM.clientHeight<i.scrollDOM.scrollHeight-2,t=0,n=0,r;if(e){for(let s of i.state.facet(T.scrollMargins)){let o=s(i);o?.top&&(t=Math.max(o?.top,t)),o?.bottom&&(n=Math.max(o?.bottom,n))}r=i.scrollDOM.clientHeight-t-n}else r=(i.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(i.defaultLineHeight,r-5)}}function D$(i,e){let t=E$(i),{state:n}=i,r=Mn(n.selection,o=>o.empty?i.moveVertically(o,e,t.height):va(o,e));if(r.eq(n.selection))return!1;let s;if(t.selfScroll){let o=i.coordsAtPos(n.selection.main.head),a=i.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottom<c&&(s=T.scrollIntoView(r.main.head,{y:"start",yMargin:o.top-l}))}return i.dispatch(Vt(n,r),{effects:s}),!0}var Q$=i=>D$(i,!1),bh=i=>D$(i,!0);function Si(i,e,t){let n=i.lineBlockAt(e.head),r=i.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?n.to:n.from)&&(r=i.moveToLineBoundary(e,t,!1)),!t&&r.head==n.from&&n.length){let s=/^\s*/.exec(i.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;s&&e.head!=n.from+s&&(r=P.cursor(n.from+s))}return r}var Ww=i=>St(i,e=>Si(i,e,!0)),Zw=i=>St(i,e=>Si(i,e,!1)),Vw=i=>St(i,e=>Si(i,e,!Ve(i))),Aw=i=>St(i,e=>Si(i,e,Ve(i))),jw=i=>St(i,e=>P.cursor(i.lineBlockAt(e.head).from,1)),Yw=i=>St(i,e=>P.cursor(i.lineBlockAt(e.head).to,-1));function Uw(i,e,t){let n=!1,r=Mn(i.selection,s=>{let o=yt(i,s.head,-1)||yt(i,s.head,1)||s.head>0&&yt(i,s.head-1,1)||s.head<i.doc.length&&yt(i,s.head+1,-1);if(!o||!o.end)return s;n=!0;let a=o.start.from==s.head?o.end.to:o.end.from;return t?P.range(s.anchor,a):P.cursor(a)});return n?(e(Vt(i,r)),!0):!1}var Mw=({state:i,dispatch:e})=>Uw(i,e,!1);function dt(i,e){let t=Mn(i.state.selection,n=>{let r=e(n);return P.range(n.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(i.state.selection)?!1:(i.dispatch(Vt(i.state,t)),!0)}function L$(i,e){return dt(i,t=>i.moveByChar(t,e))}var B$=i=>L$(i,!Ve(i)),G$=i=>L$(i,Ve(i));function I$(i,e){return dt(i,t=>i.moveByGroup(t,e))}var Ew=i=>I$(i,!Ve(i)),Dw=i=>I$(i,Ve(i));var Lw=i=>dt(i,e=>wa(i.state,e,!Ve(i))),Bw=i=>dt(i,e=>wa(i.state,e,Ve(i)));function N$(i,e){return dt(i,t=>i.moveVertically(t,e))}var F$=i=>N$(i,!1),H$=i=>N$(i,!0);function K$(i,e){return dt(i,t=>i.moveVertically(t,e,E$(i).height))}var S$=i=>K$(i,!1),b$=i=>K$(i,!0),Gw=i=>dt(i,e=>Si(i,e,!0)),Iw=i=>dt(i,e=>Si(i,e,!1)),Nw=i=>dt(i,e=>Si(i,e,!Ve(i))),Fw=i=>dt(i,e=>Si(i,e,Ve(i))),Hw=i=>dt(i,e=>P.cursor(i.lineBlockAt(e.head).from)),Kw=i=>dt(i,e=>P.cursor(i.lineBlockAt(e.head).to)),x$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:0})),!0),v$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:i.doc.length})),!0),w$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:i.selection.main.anchor,head:0})),!0),P$=({state:i,dispatch:e})=>(e(Vt(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),Jw=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),eP=({state:i,dispatch:e})=>{let t=Pa(i).map(({from:n,to:r})=>P.range(n,Math.min(r+1,i.doc.length)));return e(i.update({selection:P.create(t),userEvent:"select"})),!0},tP=({state:i,dispatch:e})=>{let t=Mn(i.selection,n=>{let r=ae(i),s=r.resolveStack(n.from,1);if(n.empty){let o=r.resolveStack(n.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from<n.from&&a.to>=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return P.range(a.to,a.from)}return n});return t.eq(i.selection)?!1:(e(Vt(i,t)),!0)},iP=({state:i,dispatch:e})=>{let t=i.selection,n=null;return t.ranges.length>1?n=P.create([t.main]):t.main.empty||(n=P.create([P.cursor(t.main.head)])),n?(e(Vt(i,n)),!0):!1};function Os(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:n}=i,r=n.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);l<o?(t="delete.backward",l=Sa(i,l,!1)):l>o&&(t="delete.forward",l=Sa(i,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Sa(i,o,!1),a=Sa(i,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:P.cursor(o,o<s.head?-1:1)}});return r.changes.empty?!1:(i.dispatch(n.update(r,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?T.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function Sa(i,e,t){if(i instanceof T)for(let n of i.state.facet(T.atomicRanges).map(r=>r(i)))n.between(e,e,(r,s)=>{r<e&&s>e&&(e=t?s:r)});return e}var J$=(i,e,t)=>Os(i,n=>{let r=n.from,{state:s}=i,o=s.doc.lineAt(r),a,l;if(t&&!e&&r>o.from&&r<o.from+200&&!/[^ \t]/.test(a=o.text.slice(0,r-o.from))){if(a[a.length-1]=="  ")return r-1;let c=Bt(a,s.tabSize),O=c%os(s)||os(s);for(let h=0;h<O&&a[a.length-1-h]==" ";h++)r--;l=r}else l=ve(o.text,r-o.from,e,e)+o.from,l==r&&o.number!=(e?s.doc.lines:1)?l+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(l-o.from,r-o.from))&&(l=ve(o.text,l-o.from,!1,!1)+o.from);return l}),xh=i=>J$(i,!1,!0);var ey=i=>J$(i,!0,!1),ty=(i,e)=>Os(i,t=>{let n=t.head,{state:r}=i,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let a=null;;){if(n==(e?s.to:s.from)){n==t.head&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let l=ve(s.text,n-s.from,e)+s.from,c=s.text.slice(Math.min(n,l)-s.from,Math.max(n,l)-s.from),O=o(c);if(a!=null&&O!=a)break;(c!=" "||n!=t.head)&&(a=O),n=l}return n}),iy=i=>ty(i,!1),nP=i=>ty(i,!0),rP=i=>Os(i,e=>{let t=i.lineBlockAt(e.head).to;return e.head<t?t:Math.min(i.state.doc.length,e.head+1)});var sP=i=>Os(i,e=>{let t=i.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),oP=i=>Os(i,e=>{let t=i.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(i.state.doc.length,e.head+1)});var aP=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:M.of(["",""])},range:P.cursor(n.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},lP=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>{if(!n.empty||n.from==0||n.from==i.doc.length)return{range:n};let r=n.from,s=i.doc.lineAt(r),o=r==s.from?r-1:ve(s.text,r-s.from,!1)+s.from,a=r==s.to?r+1:ve(s.text,r-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:i.doc.slice(r,a).append(i.doc.slice(o,r))},range:P.cursor(a)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Pa(i){let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.from),s=i.doc.lineAt(n.to);if(!n.empty&&n.to==s.from&&(s=i.doc.lineAt(n.to-1)),t>=r.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});t=s.number+1}return e}function ny(i,e,t){if(i.readOnly)return!1;let n=[],r=[];for(let s of Pa(i)){if(t?s.to==i.doc.length:s.from==0)continue;let o=i.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){n.push({from:s.to,to:o.to},{from:s.from,insert:o.text+i.lineBreak});for(let l of s.ranges)r.push(P.range(Math.min(i.doc.length,l.anchor+a),Math.min(i.doc.length,l.head+a)))}else{n.push({from:o.from,to:s.from},{from:s.to,insert:i.lineBreak+o.text});for(let l of s.ranges)r.push(P.range(l.anchor-a,l.head-a))}}return n.length?(e(i.update({changes:n,scrollIntoView:!0,selection:P.create(r,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}var OP=({state:i,dispatch:e})=>ny(i,e,!1),cP=({state:i,dispatch:e})=>ny(i,e,!0);function ry(i,e,t){if(i.readOnly)return!1;let n=[];for(let r of Pa(i))t?n.push({from:r.from,insert:i.doc.slice(r.from,r.to)+i.lineBreak}):n.push({from:r.to,insert:i.lineBreak+i.doc.slice(r.from,r.to)});return e(i.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var hP=({state:i,dispatch:e})=>ry(i,e,!1),fP=({state:i,dispatch:e})=>ry(i,e,!0),uP=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Pa(e).map(({from:r,to:s})=>(r>0?r--:s<e.doc.length&&s++,{from:r,to:s}))),n=Mn(e.selection,r=>{let s;if(i.lineWrapping){let o=i.lineBlockAt(r.head),a=i.coordsAtPos(r.head,r.assoc||1);a&&(s=o.bottom+i.documentTop-a.bottom+i.defaultLineHeight/2)}return i.moveVertically(r,!0,s)}).map(t);return i.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function dP(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ae(i).resolveInner(e),n=t.childBefore(e),r=t.childAfter(e),s;return n&&r&&n.to<=e&&r.from>=e&&(s=n.type.prop(j.closedBy))&&s.indexOf(r.name)>-1&&i.doc.lineAt(n.to).from==i.doc.lineAt(r.from).from&&!/\S/.test(i.sliceDoc(n.to,r.from))?{from:n.to,to:r.from}:null}var k$=sy(!1),pP=sy(!0);function sy(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{let{from:s,to:o}=r,a=e.doc.lineAt(s),l=!i&&s==o&&dP(e,s);i&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new Ii(e,{simulateBreak:s,simulateDoubleBreak:!!l}),O=$a(c,s);for(O==null&&(O=Bt(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));o<a.to&&/\s/.test(a.text[o-a.from]);)o++;l?{from:s,to:o}=l:s>a.from&&s<a.from+100&&!/\S/.test(a.text.slice(0,s))&&(s=a.from);let h=["",Yn(e,O)];return l&&h.push(Yn(e,c.lineIndent(a.from,-1))),{changes:{from:s,to:o,insert:M.of(h)},range:P.cursor(s+1+h[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function Ph(i,e){let t=-1;return i.changeByRange(n=>{let r=[];for(let o=n.from;o<=n.to;){let a=i.doc.lineAt(o);a.number>t&&(n.empty||n.to>a.from)&&(e(a,r,n),t=a.number),o=a.to+1}let s=i.changes(r);return{changes:r,range:P.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var mP=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),n=new Ii(i,{overrideIndentation:s=>{let o=t[s];return o??-1}}),r=Ph(i,(s,o,a)=>{let l=$a(n,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],O=Yn(i,l);(c!=O||a.from<s.from+c.length)&&(t[s.from]=l,o.push({from:s.from,to:s.from+c.length,insert:O}))});return r.changes.empty||e(i.update(r,{userEvent:"indent"})),!0},gP=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Ph(i,(t,n)=>{n.push({from:t.from,insert:i.facet(jn)})}),{userEvent:"input.indent"})),!0),$P=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Ph(i,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=Bt(r,i.tabSize),o=0,a=Yn(i,Math.max(0,s-os(i)));for(;o<r.length&&o<a.length&&r.charCodeAt(o)==a.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+r.length,insert:a.slice(o)})}),{userEvent:"delete.dedent"})),!0),yP=i=>(i.setTabFocusMode(),!0);var QP=[{key:"Ctrl-b",run:V$,shift:B$,preventDefault:!0},{key:"Ctrl-f",run:A$,shift:G$},{key:"Ctrl-p",run:U$,shift:F$},{key:"Ctrl-n",run:M$,shift:H$},{key:"Ctrl-a",run:jw,shift:Hw},{key:"Ctrl-e",run:Yw,shift:Kw},{key:"Ctrl-d",run:ey},{key:"Ctrl-h",run:xh},{key:"Ctrl-k",run:rP},{key:"Ctrl-Alt-h",run:iy},{key:"Ctrl-o",run:aP},{key:"Ctrl-t",run:lP},{key:"Ctrl-v",run:bh}],SP=[{key:"ArrowLeft",run:V$,shift:B$,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Xw,shift:Ew,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Vw,shift:Nw,preventDefault:!0},{key:"ArrowRight",run:A$,shift:G$,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Rw,shift:Dw,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Aw,shift:Fw,preventDefault:!0},{key:"ArrowUp",run:U$,shift:F$,preventDefault:!0},{mac:"Cmd-ArrowUp",run:x$,shift:w$},{mac:"Ctrl-ArrowUp",run:Q$,shift:S$},{key:"ArrowDown",run:M$,shift:H$,preventDefault:!0},{mac:"Cmd-ArrowDown",run:v$,shift:P$},{mac:"Ctrl-ArrowDown",run:bh,shift:b$},{key:"PageUp",run:Q$,shift:S$},{key:"PageDown",run:bh,shift:b$},{key:"Home",run:Zw,shift:Iw,preventDefault:!0},{key:"Mod-Home",run:x$,shift:w$},{key:"End",run:Ww,shift:Gw,preventDefault:!0},{key:"Mod-End",run:v$,shift:P$},{key:"Enter",run:k$,shift:k$},{key:"Mod-a",run:Jw},{key:"Backspace",run:xh,shift:xh},{key:"Delete",run:ey},{key:"Mod-Backspace",mac:"Alt-Backspace",run:iy},{key:"Mod-Delete",mac:"Alt-Delete",run:nP},{mac:"Mod-Backspace",run:sP},{mac:"Mod-Delete",run:oP}].concat(QP.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),oy=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:_w,shift:Lw},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Cw,shift:Bw},{key:"Alt-ArrowUp",run:OP},{key:"Shift-Alt-ArrowUp",run:hP},{key:"Alt-ArrowDown",run:cP},{key:"Shift-Alt-ArrowDown",run:fP},{key:"Escape",run:iP},{key:"Mod-Enter",run:pP},{key:"Alt-l",mac:"Ctrl-l",run:eP},{key:"Mod-i",run:tP,preventDefault:!0},{key:"Mod-[",run:$P},{key:"Mod-]",run:gP},{key:"Mod-Alt-\\",run:mP},{key:"Shift-Mod-k",run:uP},{key:"Shift-Mod-\\",run:Mw},{key:"Mod-/",run:uw},{key:"Alt-A",run:pw},{key:"Ctrl-m",mac:"Shift-Alt-m",run:yP}].concat(SP);var ay=typeof String.prototype.normalize=="function"?i=>i.normalize("NFKD"):i=>i,xi=class{constructor(e,t,n=0,r=e.length,s,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=s?a=>s(ay(a)):ay,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Xe(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Xr(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Ke(e);let r=this.normalize(t);if(r.length)for(let s=0,o=n;;s++){let a=r.charCodeAt(s),l=this.match(a,o,this.bufferPos+this.bufferStart);if(s==r.length-1){if(l)return this.value=l,this;break}o==n&&s<t.length&&t.charCodeAt(s)==a&&o++}}}match(e,t,n){let r=null;for(let s=0;s<this.matches.length;s+=2){let o=this.matches[s],a=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?r={from:this.matches[s+1],to:n}:(this.matches[s]++,a=!0)),a||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?r={from:t,to:n}:this.matches.push(1,t)),r&&this.test&&!this.test(r.from,r.to,this.buffer,this.bufferStart)&&(r=null),r}};typeof Symbol<"u"&&(xi.prototype[Symbol.iterator]=function(){return this});var hy={from:-1,to:-1,match:/.*/.exec("")},_h="gm"+(/x/.unicode==null?"":"u"),za=class{constructor(e,t,n,r=0,s=e.length){if(this.text=e,this.to=s,this.curLine="",this.done=!1,this.value=hy,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Ra(e,t,n,r,s);this.re=new RegExp(t,_h+(n?.ignoreCase?"i":"")),this.test=n?.test,this.iter=e.iter();let o=e.lineAt(r);this.curLineStart=o.from,this.matchPos=qa(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=qa(this.text,r+(n==r?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},kh=new WeakMap,Xa=class i{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let r=kh.get(e);if(!r||r.from>=n||r.to<=t){let a=new i(t,e.sliceString(t,n));return kh.set(e,a),a}if(r.from==t&&r.to==n)return r;let{text:s,from:o}=r;return o>t&&(s=e.sliceString(t,o)+s,o=t),r.to<n&&(s+=e.sliceString(r.to,n)),kh.set(e,new i(o,s)),new i(t,s.slice(t-o,n-o))}},Ra=class{constructor(e,t,n,r,s){this.text=e,this.to=s,this.done=!1,this.value=hy,this.matchPos=qa(e,r),this.re=new RegExp(t,_h+(n?.ignoreCase?"i":"")),this.test=n?.test,this.flat=Xa.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,r=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this.matchPos=qa(this.text,r+(n==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Xa.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(za.prototype[Symbol.iterator]=Ra.prototype[Symbol.iterator]=function(){return this});function bP(i){try{return new RegExp(i,_h),!0}catch{return!1}}function qa(i,e){if(e>=i.length)return e;let t=i.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}function Th(i){let e=String(i.state.doc.lineAt(i.state.selection.main.head).number),t=N("input",{class:"cm-textfield",name:"line",value:e}),n=N("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),i.dispatch({effects:cs.of(!1)}),i.focus()):s.keyCode==13&&(s.preventDefault(),r())},onsubmit:s=>{s.preventDefault(),r()}},N("label",i.state.phrase("Go to line"),": ",t)," ",N("button",{class:"cm-button",type:"submit"},i.state.phrase("go")),N("button",{name:"close",onclick:()=>{i.dispatch({effects:cs.of(!1)}),i.focus()},"aria-label":i.state.phrase("close"),type:"button"},["\xD7"]));function r(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!s)return;let{state:o}=i,a=o.doc.lineAt(o.selection.main.head),[,l,c,O,h]=s,f=O?+O.slice(1):0,u=c?+c:a.number;if(c&&h){let m=u/100;l&&(m=m*(l=="-"?-1:1)+a.number/o.doc.lines),u=Math.round(o.doc.lines*m)}else c&&l&&(u=u*(l=="-"?-1:1)+a.number);let d=o.doc.line(Math.max(1,Math.min(o.doc.lines,u))),p=P.cursor(d.from+Math.max(0,Math.min(f,d.length)));i.dispatch({effects:[cs.of(!1),T.scrollIntoView(p.from,{y:"center"})],selection:p}),i.focus()}return{dom:n}}var cs=Z.define(),ly=de.define({create(){return!0},update(i,e){for(let t of e.effects)t.is(cs)&&(i=t.value);return i},provide:i=>Ei.from(i,e=>e?Th:null)}),xP=i=>{let e=Di(i,Th);if(!e){let t=[cs.of(!0)];i.state.field(ly,!1)==null&&t.push(Z.appendConfig.of([ly,vP])),i.dispatch({effects:t}),e=Di(i,Th)}return e&&e.dom.querySelector("input").select(),!0},vP=T.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),wP={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},fy=X.define({combine(i){return Ze(i,wP,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function uy(i){let e=[XP,zP];return i&&e.push(fy.of(i)),e}var PP=q.mark({class:"cm-selectionMatch"}),kP=q.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Oy(i,e,t,n){return(t==0||i(e.sliceDoc(t-1,t))!=ie.Word)&&(n==e.doc.length||i(e.sliceDoc(n,n+1))!=ie.Word)}function TP(i,e,t,n){return i(e.sliceDoc(t,t+1))==ie.Word&&i(e.sliceDoc(n-1,n))==ie.Word}var zP=ge.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.selectionSet||i.docChanged||i.viewportChanged)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=i.state.facet(fy),{state:t}=i,n=t.selection;if(n.ranges.length>1)return q.none;let r=n.main,s,o=null;if(r.empty){if(!e.highlightWordAroundCursor)return q.none;let l=t.wordAt(r.head);if(!l)return q.none;o=t.charCategorizer(r.head),s=t.sliceDoc(l.from,l.to)}else{let l=r.to-r.from;if(l<e.minSelectionLength||l>200)return q.none;if(e.wholeWords){if(s=t.sliceDoc(r.from,r.to),o=t.charCategorizer(r.head),!(Oy(o,t,r.from,r.to)&&TP(o,t,r.from,r.to)))return q.none}else if(s=t.sliceDoc(r.from,r.to),!s)return q.none}let a=[];for(let l of i.visibleRanges){let c=new xi(t.doc,s,l.from,l.to);for(;!c.next().done;){let{from:O,to:h}=c.value;if((!o||Oy(o,t,O,h))&&(r.empty&&O<=r.from&&h>=r.to?a.push(kP.range(O,h)):(O>=r.to||h<=r.from)&&a.push(PP.range(O,h)),a.length>e.maxMatches))return q.none}}return q.set(a)}},{decorations:i=>i.decorations}),XP=T.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),RP=({state:i,dispatch:e})=>{let{selection:t}=i,n=P.create(t.ranges.map(r=>i.wordAt(r.head)||P.cursor(r.head)),t.mainIndex);return n.eq(t)?!1:(e(i.update({selection:n})),!0)};function qP(i,e){let{main:t,ranges:n}=i.selection,r=i.wordAt(t.head),s=r&&r.from==t.from&&r.to==t.to;for(let o=!1,a=new xi(i.doc,e,n[n.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new xi(i.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(l=>l.from==a.value.from))continue;if(s){let l=i.wordAt(a.value.from);if(!l||l.from!=a.value.from||l.to!=a.value.to)continue}return a.value}}var _P=({state:i,dispatch:e})=>{let{ranges:t}=i.selection;if(t.some(s=>s.from===s.to))return RP({state:i,dispatch:e});let n=i.sliceDoc(t[0].from,t[0].to);if(i.selection.ranges.some(s=>i.sliceDoc(s.from,s.to)!=n))return!1;let r=qP(i,n);return r?(e(i.update({selection:i.selection.addRange(P.range(r.from,r.to),!1),effects:T.scrollIntoView(r.to)})),!0):!1},Ln=X.define({combine(i){return Ze(i,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new qh(e),scrollToMatch:e=>T.scrollIntoView(e)})}});var _a=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||bP(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
     56`:n=="r"?"\r":n=="t"?"  ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new Xh(this):new zh(this)}getCursor(e,t=0,n){let r=e.doc?e:ee.create({doc:e});return n==null&&(n=r.doc.length),this.regexp?Dn(this,r,t,n):En(this,r,t,n)}},Ca=class{constructor(e){this.spec=e}};function En(i,e,t,n){return new xi(e.doc,i.unquoted,t,n,i.caseSensitive?void 0:r=>r.toLowerCase(),i.wholeWord?CP(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function CP(i,e){return(t,n,r,s)=>((s>t||s+r.length<n)&&(s=Math.max(0,t-2),r=i.sliceString(s,Math.min(i.length,n+2))),(e(Wa(r,t-s))!=ie.Word||e(Za(r,t-s))!=ie.Word)&&(e(Za(r,n-s))!=ie.Word||e(Wa(r,n-s))!=ie.Word))}var zh=class extends Ca{constructor(e){super(e)}nextMatch(e,t,n){let r=En(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);r=En(this.spec,e,0,s).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let s=Math.max(t,r-1e4-this.spec.unquoted.length),o=En(this.spec,e,s,r),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);return r||(r=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=En(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let s=En(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}};function Dn(i,e,t,n){return new za(e.doc,i.search,{ignoreCase:!i.caseSensitive,test:i.wholeWord?WP(e.charCategorizer(e.selection.main.head)):void 0},t,n)}function Wa(i,e){return i.slice(ve(i,e,!1),e)}function Za(i,e){return i.slice(e,ve(i,e))}function WP(i){return(e,t,n)=>!n[0].length||(i(Wa(n.input,n.index))!=ie.Word||i(Za(n.input,n.index))!=ie.Word)&&(i(Za(n.input,n.index+n[0].length))!=ie.Word||i(Wa(n.input,n.index+n[0].length))!=ie.Word)}var Xh=class extends Ca{nextMatch(e,t,n){let r=Dn(this.spec,e,n,e.doc.length).next();return r.done&&(r=Dn(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let s=Math.max(t,n-r*1e4),o=Dn(this.spec,e,s,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let r=n.length;r>0;r--){let s=+n.slice(0,r);if(s>0&&s<e.match.length)return e.match[s]+n.slice(r)}return t})}matchAll(e,t){let n=Dn(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let s=Dn(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}},fs=Z.define(),Ch=Z.define(),bi=de.define({create(i){return new hs(Rh(i).create(),null)},update(i,e){for(let t of e.effects)t.is(fs)?i=new hs(t.value.create(),i.panel):t.is(Ch)&&(i=new hs(i.query,t.value?Wh:null));return i},provide:i=>Ei.from(i,e=>e.panel)});var hs=class{constructor(e,t){this.query=e,this.panel=t}},ZP=q.mark({class:"cm-searchMatch"}),VP=q.mark({class:"cm-searchMatch cm-searchMatch-selected"}),AP=ge.fromClass(class{constructor(i){this.view=i,this.decorations=this.highlight(i.state.field(bi))}update(i){let e=i.state.field(bi);(e!=i.startState.field(bi)||i.docChanged||i.selectionSet||i.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:i,panel:e}){if(!e||!i.spec.valid)return q.none;let{view:t}=this,n=new He;for(let r=0,s=t.visibleRanges,o=s.length;r<o;r++){let{from:a,to:l}=s[r];for(;r<o-1&&l>s[r+1].from-2*250;)l=s[++r].to;i.highlight(t.state,a,l,(c,O)=>{let h=t.state.selection.ranges.some(f=>f.from==c&&f.to==O);n.add(c,O,h?VP:ZP)})}return n.finish()}},{decorations:i=>i.decorations});function us(i){return e=>{let t=e.state.field(bi,!1);return t&&t.query.spec.valid?i(e,t):my(e)}}var Va=us((i,{query:e})=>{let{to:t}=i.state.selection.main,n=e.nextMatch(i.state,t,t);if(!n)return!1;let r=P.single(n.from,n.to),s=i.state.facet(Ln);return i.dispatch({selection:r,effects:[Zh(i,n),s.scrollToMatch(r.main,i)],userEvent:"select.search"}),py(i),!0}),Aa=us((i,{query:e})=>{let{state:t}=i,{from:n}=t.selection.main,r=e.prevMatch(t,n,n);if(!r)return!1;let s=P.single(r.from,r.to),o=i.state.facet(Ln);return i.dispatch({selection:s,effects:[Zh(i,r),o.scrollToMatch(s.main,i)],userEvent:"select.search"}),py(i),!0}),jP=us((i,{query:e})=>{let t=e.matchAll(i.state,1e3);return!t||!t.length?!1:(i.dispatch({selection:P.create(t.map(n=>P.range(n.from,n.to))),userEvent:"select.search.matches"}),!0)}),YP=({state:i,dispatch:e})=>{let t=i.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:n,to:r}=t.main,s=[],o=0;for(let a=new xi(i.doc,i.sliceDoc(n,r));!a.next().done;){if(s.length>1e3)return!1;a.value.from==n&&(o=s.length),s.push(P.range(a.value.from,a.value.to))}return e(i.update({selection:P.create(s,o),userEvent:"select.search.matches"})),!0},cy=us((i,{query:e})=>{let{state:t}=i,{from:n,to:r}=t.selection.main;if(t.readOnly)return!1;let s=e.nextMatch(t,n,n);if(!s)return!1;let o=s,a=[],l,c,O=[];o.from==n&&o.to==r&&(c=t.toText(e.getReplacement(o)),a.push({from:o.from,to:o.to,insert:c}),o=e.nextMatch(t,o.from,o.to),O.push(T.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(n).number)+".")));let h=i.state.changes(a);return o&&(l=P.single(o.from,o.to).map(h),O.push(Zh(i,o)),O.push(t.facet(Ln).scrollToMatch(l.main,i))),i.dispatch({changes:h,selection:l,effects:O,userEvent:"input.replace"}),!0}),UP=us((i,{query:e})=>{if(i.state.readOnly)return!1;let t=e.matchAll(i.state,1e9).map(r=>{let{from:s,to:o}=r;return{from:s,to:o,insert:e.getReplacement(r)}});if(!t.length)return!1;let n=i.state.phrase("replaced $ matches",t.length)+".";return i.dispatch({changes:t,effects:T.announce.of(n),userEvent:"input.replace.all"}),!0});function Wh(i){return i.state.facet(Ln).createPanel(i)}function Rh(i,e){var t,n,r,s,o;let a=i.selection.main,l=a.empty||a.to>a.from+100?"":i.sliceDoc(a.from,a.to);if(e&&!l)return e;let c=i.facet(Ln);return new _a({search:((t=e?.literal)!==null&&t!==void 0?t:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(n=e?.caseSensitive)!==null&&n!==void 0?n:c.caseSensitive,literal:(r=e?.literal)!==null&&r!==void 0?r:c.literal,regexp:(s=e?.regexp)!==null&&s!==void 0?s:c.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function dy(i){let e=Di(i,Wh);return e&&e.dom.querySelector("[main-field]")}function py(i){let e=dy(i);e&&e==i.root.activeElement&&e.select()}var my=i=>{let e=i.state.field(bi,!1);if(e&&e.panel){let t=dy(i);if(t&&t!=i.root.activeElement){let n=Rh(i.state,e.query.spec);n.valid&&i.dispatch({effects:fs.of(n)}),t.focus(),t.select()}}else i.dispatch({effects:[Ch.of(!0),e?fs.of(Rh(i.state,e.query.spec)):Z.appendConfig.of(EP)]});return!0},gy=i=>{let e=i.state.field(bi,!1);if(!e||!e.panel)return!1;let t=Di(i,Wh);return t&&t.dom.contains(i.root.activeElement)&&i.focus(),i.dispatch({effects:Ch.of(!1)}),!0},$y=[{key:"Mod-f",run:my,scope:"editor search-panel"},{key:"F3",run:Va,shift:Aa,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Va,shift:Aa,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:gy,scope:"editor search-panel"},{key:"Mod-Shift-l",run:YP},{key:"Mod-Alt-g",run:xP},{key:"Mod-d",run:_P,preventDefault:!0}],qh=class{constructor(e){this.view=e;let t=this.query=e.state.field(bi).query.spec;this.commit=this.commit.bind(this),this.searchField=N("input",{value:t.search,placeholder:it(e,"Find"),"aria-label":it(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=N("input",{value:t.replace,placeholder:it(e,"Replace"),"aria-label":it(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=N("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=N("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=N("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(r,s,o){return N("button",{class:"cm-button",name:r,onclick:s,type:"button"},o)}this.dom=N("div",{onkeydown:r=>this.keydown(r),class:"cm-search"},[this.searchField,n("next",()=>Va(e),[it(e,"next")]),n("prev",()=>Aa(e),[it(e,"previous")]),n("select",()=>jP(e),[it(e,"all")]),N("label",null,[this.caseField,it(e,"match case")]),N("label",null,[this.reField,it(e,"regexp")]),N("label",null,[this.wordField,it(e,"by word")]),...e.state.readOnly?[]:[N("br"),this.replaceField,n("replace",()=>cy(e),[it(e,"replace")]),n("replaceAll",()=>UP(e),[it(e,"replace all")])],N("button",{name:"close",onclick:()=>gy(e),"aria-label":it(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new _a({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:fs.of(e)}))}keydown(e){gg(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Aa:Va)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),cy(this.view))}update(e){for(let t of e.transactions)for(let n of t.effects)n.is(fs)&&!n.value.eq(this.query)&&this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ln).top}};function it(i,e){return i.state.phrase(e)}var ka=30,Ta=/[\s\.,:;?!]/;function Zh(i,{from:e,to:t}){let n=i.state.doc.lineAt(e),r=i.state.doc.lineAt(t).to,s=Math.max(n.from,e-ka),o=Math.min(r,t+ka),a=i.state.sliceDoc(s,o);if(s!=n.from){for(let l=0;l<ka;l++)if(!Ta.test(a[l+1])&&Ta.test(a[l])){a=a.slice(l);break}}if(o!=r){for(let l=a.length-1;l>a.length-ka;l--)if(!Ta.test(a[l-1])&&Ta.test(a[l])){a=a.slice(0,l);break}}return T.announce.of(`${i.state.phrase("current match")}. ${a} ${i.state.phrase("on line")} ${n.number}.`)}var MP=T.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),EP=[bi,Ot.low(AP),MP];var Ya=class{constructor(e,t,n,r){this.state=e,this.pos=t,this.explicit=n,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ae(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),s=r.search(zy(e,!1));return s<0?null:{from:n+s,to:this.pos,text:r.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function yy(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function DP(i){let e=Object.create(null),t=Object.create(null);for(let{label:r}of i){e[r[0]]=!0;for(let s=1;s<r.length;s++)t[r[s]]=!0}let n=yy(e)+yy(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function Ih(i){let e=i.map(r=>typeof r=="string"?{label:r}:r),[t,n]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:DP(e);return r=>{let s=r.matchBefore(n);return s||r.explicit?{from:s?s.from:r.pos,options:e,validFor:t}:null}}function Ty(i,e){return t=>{for(let n=ae(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(i.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}var Ua=class{constructor(e,t,n,r){this.completion=e,this.source=t,this.match=n,this.score=r}};function Ki(i){return i.selection.main.from}function zy(i,e){var t;let{source:n}=i,r=e&&n[0]!="^",s=n[n.length-1]!="$";return!r&&!s?i:new RegExp(`${r?"^":""}(?:${n})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}var Nh=De.define();function LP(i,e,t,n){let{main:r}=i.selection,s=t-r.from,o=n-r.from;return Object.assign(Object.assign({},i.changeByRange(a=>{if(a!=r&&t!=n&&i.sliceDoc(a.from+s,a.from+o)!=i.sliceDoc(t,n))return{range:a};let l=i.toText(e);return{changes:{from:a.from+s,to:n==r.from?a.to:a.from+o,insert:l},range:P.cursor(a.from+s+l.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var Qy=new WeakMap;function BP(i){if(!Array.isArray(i))return i;let e=Qy.get(i);return e||Qy.set(i,e=Ih(i)),e}var Ma=Z.define(),ds=Z.define(),jh=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=Xe(e,t),r=Ke(n);this.chars.push(n);let s=e.slice(t,t+r),o=s.toUpperCase();this.folded.push(Xe(o==s?s.toLowerCase():o,0)),t+=r}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:r,precise:s,byWord:o}=this;if(t.length==1){let Q=Xe(e,0),x=Ke(Q),v=x==e.length?0:-100;if(Q!=t[0])if(Q==n[0])v+=-200;else return null;return this.ret(v,[0,x])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=t.length,c=0;if(a<0){for(let Q=0,x=Math.min(e.length,200);Q<x&&c<l;){let v=Xe(e,Q);(v==t[c]||v==n[c])&&(r[c++]=Q),Q+=Ke(v)}if(c<l)return null}let O=0,h=0,f=!1,u=0,d=-1,p=-1,m=/[a-z]/.test(e),g=!0;for(let Q=0,x=Math.min(e.length,200),v=0;Q<x&&h<l;){let S=Xe(e,Q);a<0&&(O<l&&S==t[O]&&(s[O++]=Q),u<l&&(S==t[u]||S==n[u]?(u==0&&(d=Q),p=Q+1,u++):u=0));let b,y=S<255?S>=48&&S<=57||S>=97&&S<=122?2:S>=65&&S<=90?1:0:(b=Xr(S))!=b.toLowerCase()?1:b!=b.toUpperCase()?2:0;(!Q||y==1&&m||v==0&&y!=0)&&(t[h]==S||n[h]==S&&(f=!0)?o[h++]=Q:o.length&&(g=!1)),v=y,Q+=Ke(S)}return h==l&&o[0]==0&&g?this.result(-100+(f?-200:0),o,e):u==l&&d==0?this.ret(-200-e.length+(p==e.length?0:-100),[0,p]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):u==l?this.ret(-900-e.length,[d,p]):h==l?this.result(-100+(f?-200:0)+-700+(g?0:-1100),o,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,n){let r=[],s=0;for(let o of t){let a=o+(this.astral?Ke(Xe(n,o)):1);s&&r[s-1]==o?r[s-1]=a:(r[s++]=o,r[s++]=a)}return this.ret(e-n.length,r)}},Yh=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return n==null?null:(this.matched=[0,t.length],this.score=n+(e.length==this.pattern.length?0:-100),this)}},Te=X.define({combine(i){return Ze(i,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:GP,filterStrict:!1,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>Sy(e(n),t(n)),optionClass:(e,t)=>n=>Sy(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Sy(i,e){return i?e?i+" "+e:i:e}function GP(i,e,t,n,r,s){let o=i.textDirection==ne.RTL,a=o,l=!1,c="top",O,h,f=e.left-r.left,u=r.right-e.right,d=n.right-n.left,p=n.bottom-n.top;if(a&&f<Math.min(d,u)?a=!1:!a&&u<Math.min(d,f)&&(a=!0),d<=(a?f:u))O=Math.max(r.top,Math.min(t.top,r.bottom-p))-e.top,h=Math.min(400,a?f:u);else{l=!0,h=Math.min(400,(o?e.right:r.right-e.left)-30);let Q=r.bottom-e.bottom;Q>=p||Q>e.top?O=t.bottom-e.top:(c="bottom",O=e.bottom-t.top)}let m=(e.bottom-e.top)/s.offsetHeight,g=(e.right-e.left)/s.offsetWidth;return{style:`${c}: ${O/m}px; max-width: ${h/g}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function IP(i){let e=i.addToOptions.slice();return i.icons&&e.push({render(t){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),t.type&&n.classList.add(...t.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(t,n,r,s){let o=document.createElement("span");o.className="cm-completionLabel";let a=t.displayLabel||t.label,l=0;for(let c=0;c<s.length;){let O=s[c++],h=s[c++];O>l&&o.appendChild(document.createTextNode(a.slice(l,O)));let f=o.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(a.slice(O,h))),f.className="cm-completionMatchedText",l=h}return l<a.length&&o.appendChild(document.createTextNode(a.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let n=document.createElement("span");return n.className="cm-completionDetail",n.textContent=t.detail,n},position:80}),e.sort((t,n)=>t.position-n.position).map(t=>t.render)}function Vh(i,e,t){if(i<=t)return{from:0,to:i};if(e<0&&(e=0),e<=i>>1){let r=Math.floor(e/t);return{from:r*t,to:(r+1)*t}}let n=Math.floor((i-e)/t);return{from:i-(n+1)*t,to:i-n*t}}var Uh=class{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:l=>this.placeInfo(l),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:s,selected:o}=r.open,a=e.state.facet(Te);this.optionContent=IP(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=Vh(s.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{let{options:c}=e.state.field(t).open;for(let O=l.target,h;O&&O!=this.dom;O=O.parentNode)if(O.nodeName=="LI"&&(h=/-(\d+)$/.exec(O.id))&&+h[1]<c.length){this.applyCompletion(e,c[+h[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Te).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:ds.of(null)})}),this.showOptions(s,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let n=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=r){let{options:s,selected:o,disabled:a}=n.open;(!r.open||r.open.options!=s)&&(this.range=Vh(s.length,o,e.state.facet(Te).maxRenderedOptions),this.showOptions(s,n.id)),this.updateSel(),a!=((t=r.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of t.split(" "))n&&this.dom.classList.add(n);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Vh(t.options.length,t.selected,this.view.state.facet(Te).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:n}=t.options[t.selected],{info:r}=n;if(!r)return;let s=typeof r=="string"?document.createTextNode(r):r(n);if(!s)return;"then"in s?s.then(o=>{o&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(o,n)}).catch(o=>qe(this.view.state,o,"completion info")):this.addInfoPane(s,n)}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:r,destroy:s}=e;n.appendChild(r),this.infoDestroy=s||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,r=this.range.from;n;n=n.nextSibling,r++)n.nodeName!="LI"||!n.id?r--:r==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");return t&&FP(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return r.top>Math.min(s.bottom,t.bottom)-10||r.bottom<Math.max(s.top,t.top)+10?null:this.view.state.facet(Te).positionInfo(this.view,t,r,n,s,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,t,n){let r=document.createElement("ul");r.id=t,r.setAttribute("role","listbox"),r.setAttribute("aria-expanded","true"),r.setAttribute("aria-label",this.view.state.phrase("Completions")),r.addEventListener("mousedown",o=>{o.target==r&&o.preventDefault()});let s=null;for(let o=n.from;o<n.to;o++){let{completion:a,match:l}=e[o],{section:c}=a;if(c){let f=typeof c=="string"?c:c.name;if(f!=s&&(o>n.from||n.from==0))if(s=f,typeof c!="string"&&c.header)r.appendChild(c.header(c));else{let u=r.appendChild(document.createElement("completion-section"));u.textContent=f}}let O=r.appendChild(document.createElement("li"));O.id=t+"-"+o,O.setAttribute("role","option");let h=this.optionClass(a);h&&(O.className=h);for(let f of this.optionContent){let u=f(a,this.view.state,this.view,l);u&&O.appendChild(u)}}return n.from&&r.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&r.classList.add("cm-completionListIncompleteBottom"),r}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}};function NP(i,e){return t=>new Uh(t,i,e)}function FP(i,e){let t=i.getBoundingClientRect(),n=e.getBoundingClientRect(),r=t.height/i.offsetHeight;n.top<t.top?i.scrollTop-=(t.top-n.top)/r:n.bottom>t.bottom&&(i.scrollTop+=(n.bottom-t.bottom)/r)}function by(i){return(i.boost||0)*100+(i.apply?10:0)+(i.info?5:0)+(i.type?1:0)}function HP(i,e){let t=[],n=null,r=c=>{t.push(c);let{section:O}=c.completion;if(O){n||(n=[]);let h=typeof O=="string"?O:O.name;n.some(f=>f.name==h)||n.push(typeof O=="string"?{name:h}:O)}},s=e.facet(Te);for(let c of i)if(c.hasResult()){let O=c.result.getMatch;if(c.result.filter===!1)for(let h of c.result.options)r(new Ua(h,c.source,O?O(h):[],1e9-t.length));else{let h=e.sliceDoc(c.from,c.to),f,u=s.filterStrict?new Yh(h):new jh(h);for(let d of c.result.options)if(f=u.match(d.label)){let p=d.displayLabel?O?O(d,f.matched):[]:f.matched;r(new Ua(d,c.source,p,f.score+(d.boost||0)))}}}if(n){let c=Object.create(null),O=0,h=(f,u)=>{var d,p;return((d=f.rank)!==null&&d!==void 0?d:1e9)-((p=u.rank)!==null&&p!==void 0?p:1e9)||(f.name<u.name?-1:1)};for(let f of n.sort(h))O-=1e5,c[f.name]=O;for(let f of t){let{section:u}=f.completion;u&&(f.score+=c[typeof u=="string"?u:u.name])}}let o=[],a=null,l=s.compareCompletions;for(let c of t.sort((O,h)=>h.score-O.score||l(O.completion,h.completion))){let O=c.completion;!a||a.label!=O.label||a.detail!=O.detail||a.type!=null&&O.type!=null&&a.type!=O.type||a.apply!=O.apply||a.boost!=O.boost?o.push(c):by(c.completion)>by(a)&&(o[o.length-1]=c),a=c.completion}return o}var Mh=class i{constructor(e,t,n,r,s,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=r,this.selected=s,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new i(this.options,xy(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,r,s,o){if(r&&!o&&e.some(c=>c.isPending))return r.setDisabled();let a=HP(e,t);if(!a.length)return r&&e.some(c=>c.isPending)?r.setDisabled():null;let l=t.facet(Te).selectOnOpen?0:-1;if(r&&r.selected!=l&&r.selected!=-1){let c=r.options[r.selected].completion;for(let O=0;O<a.length;O++)if(a[O].completion==c){l=O;break}}return new i(a,xy(n,l),{pos:e.reduce((c,O)=>O.hasResult()?Math.min(c,O.from):c,1e8),create:nk,above:s.aboveCursor},r?r.timestamp:Date.now(),l,!1)}map(e){return new i(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new i(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},Eh=class i{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new i(tk,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Te),s=(n.override||t.languageDataAt("autocomplete",Ki(t)).map(BP)).map(l=>(this.active.find(O=>O.source==l)||new Kt(l,this.active.some(O=>O.state!=0)?1:0)).update(e,n));s.length==this.active.length&&s.every((l,c)=>l==this.active[c])&&(s=this.active);let o=this.open,a=e.effects.some(l=>l.is(Fh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!KP(s,this.active)||a?o=Mh.build(s,t,this.id,o,n,a):o&&o.disabled&&!s.some(l=>l.isPending)&&(o=null),!o&&s.every(l=>!l.isPending)&&s.some(l=>l.hasResult())&&(s=s.map(l=>l.hasResult()?new Kt(l.source,0):l));for(let l of e.effects)l.is(Ry)&&(o=o&&o.setSelected(l.value,this.id));return s==this.active&&o==this.open?this:new i(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?JP:ek}};function KP(i,e){if(i==e)return!0;for(let t=0,n=0;;){for(;t<i.length&&!i[t].hasResult();)t++;for(;n<e.length&&!e[n].hasResult();)n++;let r=t==i.length,s=n==e.length;if(r||s)return r==s;if(i[t++].result!=e[n++].result)return!1}}var JP={"aria-autocomplete":"list"},ek={};function xy(i,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":i};return e>-1&&(t["aria-activedescendant"]=i+"-"+e),t}var tk=[];function Xy(i,e){if(i.isUserEvent("input.complete")){let n=i.annotation(Nh);if(n&&e.activateOnCompletion(n))return 12}let t=i.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:i.isUserEvent("delete.backward")?2:i.selection?8:i.docChanged?16:0}var Kt=class i{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let n=Xy(e,t),r=this;(n&8||n&16&&this.touches(e))&&(r=new i(r.source,0)),n&4&&r.state==0&&(r=new i(this.source,1)),r=r.updateFor(e,n);for(let s of e.effects)if(s.is(Ma))r=new i(r.source,1,s.value);else if(s.is(ds))r=new i(r.source,0);else if(s.is(Fh))for(let o of s.value)o.source==r.source&&(r=o);return r}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Ki(e.state))}},Ea=class i extends Kt{constructor(e,t,n,r,s,o){super(e,3,t),this.limit=n,this.result=r,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,t){var n;if(!(t&3))return this.map(e.changes);let r=this.result;r.map&&!e.changes.empty&&(r=r.map(r,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=Ki(e.state);if(a>o||!r||t&2&&(Ki(e.startState)==this.from||a<this.limit))return new Kt(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return ik(r.validFor,e.state,s,o)?new i(this.source,this.explicit,l,r,s,o):r.update&&(r=r.update(r,s,o,new Ya(e.state,a,!1)))?new i(this.source,this.explicit,l,r,r.from,(n=r.to)!==null&&n!==void 0?n:Ki(e.state)):new Kt(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new i(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new Kt(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}};function ik(i,e,t,n){if(!i)return!1;let r=e.sliceDoc(t,n);return typeof i=="function"?i(r,t,n,e):zy(i,!0).test(r)}var Fh=Z.define({map(i,e){return i.map(t=>t.map(e))}}),Ry=Z.define(),Ne=de.define({create(){return Eh.start()},update(i,e){return i.update(e)},provide:i=>[Jr.from(i,e=>e.tooltip),T.contentAttributes.from(i,e=>e.attrs)]});function Hh(i,e){let t=e.completion.apply||e.completion.label,n=i.state.field(Ne).active.find(r=>r.source==e.source);return n instanceof Ea?(typeof t=="string"?i.dispatch(Object.assign(Object.assign({},LP(i.state,t,n.from,n.to)),{annotations:Nh.of(e.completion)})):t(i,e.completion,n.from,n.to),!0):!1}var nk=NP(Ne,Hh);function ja(i,e="option"){return t=>{let n=t.state.field(Ne,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp<t.state.facet(Te).interactionDelay)return!1;let r=1,s;e=="page"&&(s=Uc(t,n.open.tooltip))&&(r=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:o}=n.open.options,a=n.open.selected>-1?n.open.selected+r*(i?1:-1):i?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),t.dispatch({effects:Ry.of(a)}),!0}}var rk=i=>{let e=i.state.field(Ne,!1);return i.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<i.state.facet(Te).interactionDelay?!1:Hh(i,e.open.options[e.open.selected])},vy=i=>i.state.field(Ne,!1)?(i.dispatch({effects:Ma.of(!0)}),!0):!1,sk=i=>{let e=i.state.field(Ne,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(i.dispatch({effects:ds.of(null)}),!0)},Dh=class{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}},ok=50,ak=1e3,lk=ge.fromClass(class{constructor(i){this.view=i,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of i.state.field(Ne).active)e.isPending&&this.startQuery(e)}update(i){let e=i.state.field(Ne),t=i.state.facet(Te);if(!i.selectionSet&&!i.docChanged&&i.startState.field(Ne)==e)return;let n=i.transactions.some(s=>{let o=Xy(s,t);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;s<this.running.length;s++){let o=this.running[s];if(n||o.context.abortOnDocChange&&i.docChanged||o.updates.length+i.transactions.length>ok&&Date.now()-o.time>ak){for(let a of o.context.abortListeners)try{a()}catch(l){qe(this.view.state,l)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...i.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),i.transactions.some(s=>s.effects.some(o=>o.is(Ma)))&&(this.pendingStart=!0);let r=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),r):-1,this.composing!=0)for(let s of i.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:i}=this.view,e=i.field(Ne);for(let t of e.active)t.isPending&&!this.running.some(n=>n.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Te).updateSyncTime))}startQuery(i){let{state:e}=this.view,t=Ki(e),n=new Ya(e,t,i.explicit,this.view),r=new Dh(i,n);this.running.push(r),Promise.resolve(i.source(n)).then(s=>{r.context.aborted||(r.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:ds.of(null)}),qe(this.view.state,s)})}scheduleAccept(){this.running.every(i=>i.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Te).updateSyncTime))}accept(){var i;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Te),n=this.view.state.field(Ne);for(let r=0;r<this.running.length;r++){let s=this.running[r];if(s.done===void 0)continue;if(this.running.splice(r--,1),s.done){let a=Ki(s.updates.length?s.updates[0].startState:this.view.state),l=Math.min(a,s.done.from+(s.active.explicit?0:1)),c=new Ea(s.active.source,s.active.explicit,l,s.done,s.done.from,(i=s.done.to)!==null&&i!==void 0?i:a);for(let O of s.updates)c=c.update(O,t);if(c.hasResult()){e.push(c);continue}}let o=n.active.find(a=>a.source==s.active.source);if(o&&o.isPending)if(s.done==null){let a=new Kt(s.active.source,0);for(let l of s.updates)a=a.update(l,t);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:Fh.of(e)})}},{eventHandlers:{blur(i){let e=this.view.state.field(Ne,!1);if(e&&e.tooltip&&this.view.state.facet(Te).closeOnBlur){let t=e.open&&Uc(this.view,e.open.tooltip);(!t||!t.dom.contains(i.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:ds.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ma.of(!1)}),20),this.composing=0}}}),Ok=typeof navigator=="object"&&/Win/.test(navigator.platform),ck=Ot.highest(T.domEventHandlers({keydown(i,e){let t=e.state.field(Ne,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||i.key.length>1||i.ctrlKey&&!(Ok&&i.altKey)||i.metaKey)return!1;let n=t.open.options[t.open.selected],r=t.active.find(o=>o.source==n.source),s=n.completion.commitCharacters||r.result.commitCharacters;return s&&s.indexOf(i.key)>-1&&Hh(e,n),!1}})),qy=T.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Lh=class{constructor(e,t,n,r){this.field=e,this.line=t,this.from=n,this.to=r}},Bh=class i{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,ke.TrackDel),n=e.mapPos(this.to,1,ke.TrackDel);return t==null||n==null?null:new i(this.field,t,n)}},Gh=class i{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],r=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(n.length){let c=o,O=/^\t*/.exec(l)[0].length;for(let h=0;h<O;h++)c+=e.facet(jn);r.push(t+c.length-O),l=c+l.slice(O)}n.push(l),t+=l.length+1}let a=this.fieldPositions.map(l=>new Bh(l.field,r[l.line]+l.from,r[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let t=[],n=[],r=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(o);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",c=-1,O=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h<t.length;h++)(a!=null?t[h].seq==a:O&&t[h].name==O)&&(c=h);if(c<0){let h=0;for(;h<t.length&&(a==null||t[h].seq!=null&&t[h].seq<a);)h++;t.splice(h,0,{seq:a,name:O}),c=h;for(let f of r)f.field>=c&&f.field++}r.push(new Lh(c,n.length,s.index,s.index+O.length)),o=o.slice(0,s.index)+l+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let O of r)O.line==n.length&&O.from>c&&(O.from--,O.to--);return l}),n.push(o)}return new i(n,r)}},hk=q.widget({widget:new class extends Be{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),fk=q.mark({class:"cm-snippetField"}),Bn=class i{constructor(e,t){this.ranges=e,this.active=t,this.deco=q.set(e.map(n=>(n.from==n.to?hk:fk).range(n.from,n.to)))}map(e){let t=[];for(let n of this.ranges){let r=n.map(e);if(!r)return null;t.push(r)}return new i(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}},gs=Z.define({map(i,e){return i&&i.map(e)}}),uk=Z.define(),ps=de.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(gs))return t.value;if(t.is(uk)&&i)return new Bn(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>T.decorations.from(i,e=>e?e.deco:q.none)});function Kh(i,e){return P.create(i.filter(t=>t.field==e).map(t=>P.range(t.from,t.to)))}function dk(i){let e=Gh.parse(i);return(t,n,r,s)=>{let{text:o,ranges:a}=e.instantiate(t.state,r),{main:l}=t.state.selection,c={changes:{from:r,to:s==l.from?l.to:s,insert:M.of(o)},scrollIntoView:!0,annotations:n?[Nh.of(n),xe.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=Kh(a,0)),a.some(O=>O.field>0)){let O=new Bn(a,0),h=c.effects=[gs.of(O)];t.state.field(ps,!1)===void 0&&h.push(Z.appendConfig.of([ps,yk,Qk,qy]))}t.dispatch(t.state.update(c))}}function _y(i){return({state:e,dispatch:t})=>{let n=e.field(ps,!1);if(!n||i<0&&n.active==0)return!1;let r=n.active+i,s=i>0&&!n.ranges.some(o=>o.field==r+i);return t(e.update({selection:Kh(n.ranges,r),effects:gs.of(s?null:new Bn(n.ranges,r)),scrollIntoView:!0})),!0}}var pk=({state:i,dispatch:e})=>i.field(ps,!1)?(e(i.update({effects:gs.of(null)})),!0):!1,mk=_y(1),gk=_y(-1);var $k=[{key:"Tab",run:mk,shift:gk},{key:"Escape",run:pk}],wy=X.define({combine(i){return i.length?i[0]:$k}}),yk=Ot.highest(_n.compute([wy],i=>i.facet(wy)));function Ue(i,e){return Object.assign(Object.assign({},e),{apply:dk(i)})}var Qk=T.domEventHandlers({mousedown(i,e){let t=e.state.field(ps,!1),n;if(!t||(n=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let r=t.ranges.find(s=>s.from<=n&&s.to>=n);return!r||r.field==t.active?!1:(e.dispatch({selection:Kh(t.ranges,r.field),effects:gs.of(t.ranges.some(s=>s.field>r.field)?new Bn(t.ranges,r.field):null),scrollIntoView:!0}),!0)}});var ms={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Hi=Z.define({map(i,e){let t=e.mapPos(i,-1,ke.TrackAfter);return t??void 0}}),Jh=new class extends mt{};Jh.startSide=1;Jh.endSide=-1;var Cy=de.define({create(){return H.empty},update(i,e){if(i=i.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);i=i.update({filter:n=>n>=t.from&&n<=t.to})}for(let t of e.effects)t.is(Hi)&&(i=i.update({add:[Jh.range(t.value,t.value+1)]}));return i}});function Wy(){return[bk,Cy]}var Ah="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function Zy(i){for(let e=0;e<Ah.length;e+=2)if(Ah.charCodeAt(e)==i)return Ah.charAt(e+1);return Xr(i<128?i:i+1)}function Vy(i,e){return i.languageDataAt("closeBrackets",e)[0]||ms}var Sk=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),bk=T.inputHandler.of((i,e,t,n)=>{if((Sk?i.composing:i.compositionStarted)||i.state.readOnly)return!1;let r=i.state.selection.main;if(n.length>2||n.length==2&&Ke(Xe(n,0))==1||e!=r.from||t!=r.to)return!1;let s=vk(i.state,n);return s?(i.dispatch(s),!0):!1}),xk=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let n=Vy(i,i.selection.main.head).brackets||ms.brackets,r=null,s=i.changeByRange(o=>{if(o.empty){let a=wk(i.doc,o.head);for(let l of n)if(l==a&&Da(i.doc,o.head)==Zy(Xe(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:P.cursor(o.head-l.length)}}return{range:r=o}});return r||e(i.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},Ay=[{key:"Backspace",run:xk}];function vk(i,e){let t=Vy(i,i.selection.main.head),n=t.brackets||ms.brackets;for(let r of n){let s=Zy(Xe(r,0));if(e==r)return s==r?Tk(i,r,n.indexOf(r+r+r)>-1,t):Pk(i,r,s,t.before||ms.before);if(e==s&&jy(i,i.selection.main.from))return kk(i,r,s)}return null}function jy(i,e){let t=!1;return i.field(Cy).between(0,i.doc.length,n=>{n==e&&(t=!0)}),t}function Da(i,e){let t=i.sliceString(e,e+2);return t.slice(0,Ke(Xe(t,0)))}function wk(i,e){let t=i.sliceString(e-2,e);return Ke(Xe(t,0))==t.length?t:t.slice(1)}function Pk(i,e,t,n){let r=null,s=i.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Hi.of(o.to+e.length),range:P.range(o.anchor+e.length,o.head+e.length)};let a=Da(i.doc,o.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Hi.of(o.head+e.length),range:P.cursor(o.head+e.length)}:{range:r=o}});return r?null:i.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function kk(i,e,t){let n=null,r=i.changeByRange(s=>s.empty&&Da(i.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:P.cursor(s.head+t.length)}:n={range:s});return n?null:i.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function Tk(i,e,t,n){let r=n.stringPrefixes||ms.stringPrefixes,s=null,o=i.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Hi.of(a.to+e.length),range:P.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=Da(i.doc,l),O;if(c==e){if(Py(i,l))return{changes:{insert:e+e,from:l},effects:Hi.of(l+e.length),range:P.cursor(l+e.length)};if(jy(i,l)){let f=t&&i.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:P.cursor(l+f.length)}}}else{if(t&&i.sliceDoc(l-2*e.length,l)==e+e&&(O=ky(i,l-2*e.length,r))>-1&&Py(i,O))return{changes:{insert:e+e+e+e,from:l},effects:Hi.of(l+e.length),range:P.cursor(l+e.length)};if(i.charCategorizer(l)(c)!=ie.Word&&ky(i,l,r)>-1&&!zk(i,l,e,r))return{changes:{insert:e+e,from:l},effects:Hi.of(l+e.length),range:P.cursor(l+e.length)}}return{range:s=a}});return s?null:i.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Py(i,e){let t=ae(i).resolveInner(e+1);return t.parent&&t.from==e}function zk(i,e,t,n){let r=ae(i).resolveInner(e,-1),s=n.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=i.sliceDoc(r.from,Math.min(r.to,r.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&n.indexOf(a.slice(0,l))>-1){let O=r.firstChild;for(;O&&O.from==r.from&&O.to-O.from>t.length+l;){if(i.sliceDoc(O.to-t.length,O.to)==t)return!1;O=O.firstChild}return!0}let c=r.to==e&&r.parent;if(!c)break;r=c}return!1}function ky(i,e,t){let n=i.charCategorizer(e);if(n(i.sliceDoc(e-1,e))!=ie.Word)return e;for(let r of t){let s=e-r.length;if(i.sliceDoc(s,e)==r&&n(i.sliceDoc(s-1,s))!=ie.Word)return s}return-1}function Yy(i={}){return[ck,Ne,Te.of(i),lk,Xk,qy]}var ef=[{key:"Ctrl-Space",run:vy},{mac:"Alt-`",run:vy},{key:"Escape",run:sk},{key:"ArrowDown",run:ja(!0)},{key:"ArrowUp",run:ja(!1)},{key:"PageDown",run:ja(!0,"page")},{key:"PageUp",run:ja(!1,"page")},{key:"Enter",run:rk}],Xk=Ot.highest(_n.computeN([Te],i=>i.facet(Te).defaultKeymap?[ef]:[]));var Ba=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},Ji=class i{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let r=n.facet($s).markerFilter;r&&(e=r(e,n));let s=e.slice().sort((O,h)=>O.from-h.from||O.to-h.to),o=new He,a=[],l=0;for(let O=0;;){let h=O==s.length?null:s[O];if(!h&&!a.length)break;let f,u;for(a.length?(f=l,u=a.reduce((p,m)=>Math.min(p,m.to),h&&h.from>f?h.from:1e8)):(f=h.from,u=h.to,a.push(h),O++);O<s.length;){let p=s[O];if(p.from==f&&(p.to>p.from||p.to==f))a.push(p),O++,u=Math.min(p.to,u);else{u=Math.min(p.from,u);break}}let d=Uk(a);if(a.some(p=>p.from==p.to||p.from==p.to-1&&n.doc.lineAt(p.from).to==p.from))o.add(f,f,q.widget({widget:new tf(d),diagnostics:a.slice()}));else{let p=a.reduce((m,g)=>g.markClass?m+" "+g.markClass:m,"");o.add(f,u,q.mark({class:"cm-lintRange cm-lintRange-"+d+p,diagnostics:a.slice(),inclusiveEnd:a.some(m=>m.to>u)}))}l=u;for(let p=0;p<a.length;p++)a[p].to<=l&&a.splice(p--,1)}let c=o.finish();return new i(c,t,Gn(c))}};function Gn(i,e=null,t=0){let n=null;return i.between(t,1e9,(r,s,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!n)n=new Ba(r,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(n.diagnostic)<0)return!1;n=new Ba(n.from,s,n.diagnostic)}}),n}function Rk(i,e){let t=e.pos,n=e.end||t,r=i.state.facet($s).hideOn(i,t,n);if(r!=null)return r;let s=i.startState.doc.lineAt(e.pos);return!!(i.effects.some(o=>o.is(My))||i.changes.touchesRange(s.from,Math.max(s.to,n)))}function qk(i,e){return i.field(nt,!1)?e:e.concat(Z.appendConfig.of(Mk))}var My=Z.define(),nf=Z.define(),Ey=Z.define(),nt=de.define({create(){return new Ji(q.none,null,null)},update(i,e){if(e.docChanged&&i.diagnostics.size){let t=i.diagnostics.map(e.changes),n=null,r=i.panel;if(i.selected){let s=e.changes.mapPos(i.selected.from,1);n=Gn(t,i.selected.diagnostic,s)||Gn(t,null,s)}!t.size&&r&&e.state.facet($s).autoPanel&&(r=null),i=new Ji(t,r,n)}for(let t of e.effects)if(t.is(My)){let n=e.state.facet($s).autoPanel?t.value.length?ys.open:null:i.panel;i=Ji.init(t.value,n,e.state)}else t.is(nf)?i=new Ji(i.diagnostics,t.value?ys.open:null,i.selected):t.is(Ey)&&(i=new Ji(i.diagnostics,i.panel,t.value));return i},provide:i=>[Ei.from(i,e=>e.panel),T.decorations.from(i,e=>e.diagnostics)]});var _k=q.mark({class:"cm-lintRange cm-lintRange-active"});function Ck(i,e,t){let{diagnostics:n}=i.state.field(nt),r,s=-1,o=-1;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:O})=>{if(e>=l&&e<=c&&(l==c||(e>l||t>0)&&(e<c||t<0)))return r=O.diagnostics,s=l,o=c,!1});let a=i.state.facet($s).tooltipFilter;return r&&a&&(r=a(r,i.state)),r?{pos:s,end:o,above:i.state.doc.lineAt(s).to<o,create(){return{dom:Wk(i,r)}}}:null}function Wk(i,e){return N("ul",{class:"cm-tooltip-lint"},e.map(t=>By(i,t,!1)))}var Zk=i=>{let e=i.state.field(nt,!1);(!e||!e.panel)&&i.dispatch({effects:qk(i.state,[nf.of(!0)])});let t=Di(i,ys.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},Uy=i=>{let e=i.state.field(nt,!1);return!e||!e.panel?!1:(i.dispatch({effects:nf.of(!1)}),!0)},Vk=i=>{let e=i.state.field(nt,!1);if(!e)return!1;let t=i.state.selection.main,n=e.diagnostics.iter(t.to+1);return!n.value&&(n=e.diagnostics.iter(0),!n.value||n.from==t.from&&n.to==t.to)?!1:(i.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)};var Dy=[{key:"Mod-Shift-m",run:Zk,preventDefault:!0},{key:"F8",run:Vk}];var $s=X.define({combine(i){return Object.assign({sources:i.map(e=>e.source).filter(e=>e!=null)},Ze(i.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t}))}});function Ly(i){let e=[];if(i)e:for(let{name:t}of i){for(let n=0;n<t.length;n++){let r=t[n];if(/[a-zA-Z]/.test(r)&&!e.some(s=>s.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}function By(i,e,t){var n;let r=t?Ly(e.actions):[];return N("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},N("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(i):e.message),(n=e.actions)===null||n===void 0?void 0:n.map((s,o)=>{let a=!1,l=f=>{if(f.preventDefault(),a)return;a=!0;let u=Gn(i.state.field(nt).diagnostics,e);u&&s.apply(i,u.from,u.to)},{name:c}=s,O=r[o]?c.indexOf(r[o]):-1,h=O<0?c:[c.slice(0,O),N("u",c.slice(O,O+1)),c.slice(O+1)];return N("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${c}${O<0?"":` (access key "${r[o]})"`}.`},h)}),e.source&&N("div",{class:"cm-diagnosticSource"},e.source))}var tf=class extends Be{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return N("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},Ga=class{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=By(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},ys=class i{constructor(e){this.view=e,this.items=[];let t=r=>{if(r.keyCode==27)Uy(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=Ly(s.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==r.keyCode){let l=Gn(this.view.state.field(nt).diagnostics,s);l&&s.actions[a].apply(e,l.from,l.to)}}else return;r.preventDefault()},n=r=>{for(let s=0;s<this.items.length;s++)this.items[s].dom.contains(r.target)&&this.moveSelection(s)};this.list=N("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:n}),this.dom=N("div",{class:"cm-panel-lint"},this.list,N("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Uy(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(nt).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(nt),n=0,r=!1,s=null,o=new Set;for(e.between(0,this.view.state.doc.length,(a,l,{spec:c})=>{for(let O of c.diagnostics){if(o.has(O))continue;o.add(O);let h=-1,f;for(let u=n;u<this.items.length;u++)if(this.items[u].diagnostic==O){h=u;break}h<0?(f=new Ga(this.view,O),this.items.splice(n,0,f),r=!0):(f=this.items[h],h>n&&(this.items.splice(n,h-n),r=!0)),t&&f.diagnostic==t.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),s=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new Ga(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),r=!0),s?(this.list.setAttribute("aria-activedescendant",s.id),this.view.requestMeasure({key:this,read:()=>({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let c=l.height/this.list.offsetHeight;a.top<l.top?this.list.scrollTop-=(l.top-a.top)/c:a.bottom>l.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(nt),n=Gn(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:Ey.of(n)})}static open(e){return new i(e)}};function Ak(i,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(i)}</svg>')`}function La(i){return Ak(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${i}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}var jk=T.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:La("#d11")},".cm-lintRange-warning":{backgroundImage:La("orange")},".cm-lintRange-info":{backgroundImage:La("#999")},".cm-lintRange-hint":{backgroundImage:La("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function Yk(i){return i=="error"?4:i=="warning"?3:i=="info"?2:1}function Uk(i){let e="hint",t=1;for(let n of i){let r=Yk(n.severity);r>t&&(t=r,e=n.severity)}return e}var Mk=[nt,T.decorations.compute([nt],i=>{let{selected:e,panel:t}=i.field(nt);return!e||!t||e.from==e.to?q.none:q.set([_k.range(e.from,e.to)])}),zg(Ck,{hideOn:Rk}),jk];var Gy=[qg(),_g(),wg(),R$(),f$(),Sg(),vg(),ee.allowMultipleSelections.of(!0),r$(),d$(p$,{fallback:!0}),y$(),Wy(),Yy(),kg(),Tg(),Pg(),uy(),_n.of([...Ay,...oy,...$y,...W$,...O$,...ef,...Dy])];var of=class i{constructor(e,t,n,r,s,o,a,l,c,O=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=O,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new i(e,[],t,n,n,0,[],0,r?new Ia(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,o=this.reducePos<this.pos-25;o&&this.setLookAhead(this.pos);let a=s.dynamicPrecedence(r);if(a&&(this.score+=a),n==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r<s.minRepeatTerm&&this.storeNode(r,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(r,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),c=l?this.stack[l-2]:this.p.ranges[0].from,O=this.reducePos-c;O>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=O):this.p.lastBigReductionSize<O&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=c,this.p.lastBigReductionSize=O));let h=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-h;if(r<s.minRepeatTerm||e&131072){let u=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,c,u,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let u=this.stack[l-3];this.state=s.getGoto(u,r,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(r,c)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0){let a=!1;for(let l=o;l>0&&this.buffer[l-2]>n;l-=4)if(this.buffer[l-1]>=0){a=!0;break}if(a)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,r>4&&(r-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4);else{let s=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,n),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,r,4)}}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new i(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new af(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&r.push(t[s],o);if(this.stack.length<120)for(let s=0;r.length<8&&s<t.length;s+=2){let o=t[s+1];r.some((a,l)=>l&1&&a==o)||r.push(t[s],o)}t=r}let n=[];for(let r=0;r<t.length&&n.length<4;r+=2){let s=t[r+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[r],this.pos),o.reducePos=this.pos,o.score-=200,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,r=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,s+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ia(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ia=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},af=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},lf=class i{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new i(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new i(this.stack,this.pos,this.index)}};function Qs(i,e=Uint16Array){if(typeof i!="string")return i;let t=null;for(let n=0,r=0;n<i.length;){let s=0;for(;;){let o=i.charCodeAt(n++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var In=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Iy=new In,Of=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Iy,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!r)return null;let o=this.ranges[--r];s-=n.from-o.to,n=o}for(;t<0?s>n.to:s>=n.to;){if(r==this.ranges.length-1)return null;let o=this.ranges[++r];s+=o.from-n.to,n=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Iy,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},vi=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Jy(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};vi.prototype.contextual=vi.prototype.fallback=vi.prototype.extend=!1;var wi=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Qs(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(Jy(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,o==null)break;e.reset(o,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};wi.prototype.contextual=vi.prototype.fallback=vi.prototype.extend=!1;var $e=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function Jy(i,e,t,n,r,s){let o=0,a=1<<n,{dialect:l}=t.p.parser;e:for(;a&i[o];){let c=i[o+1];for(let u=o+3;u<c;u+=2)if((i[u+1]&a)>0){let d=i[u];if(l.allows(d)&&(e.token.value==-1||e.token.value==d||Dk(d,e.token.value,r,s))){e.acceptToken(d);break}}let O=e.next,h=0,f=i[o+2];if(e.next<0&&f>h&&i[c+f*3-3]==65535){o=i[c+f*3-1];continue e}for(;h<f;){let u=h+f>>1,d=c+u+(u<<1),p=i[d],m=i[d+1]||65536;if(O<p)f=u;else if(O>=m)h=u+1;else{o=i[d+2],e.advance();continue e}}break}}function Ny(i,e,t){for(let n=e,r;(r=i[n])!=65535;n++)if(r==t)return n-e;return-1}function Dk(i,e,t,n){let r=Ny(t,n,e);return r<0||Ny(t,n,i)<r}var rt=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),rf=null;function Fy(i,e,t){let n=i.cursor(K.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(i.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:i.length}}var cf=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Fy(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Fy(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[r],o=this.start[t]+n.positions[r];if(o>e)return this.nextStart=o,null;if(s instanceof pe){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(j.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},hf=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new In)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,o=r.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<s.length;c++){if(!(1<<c&o))continue;let O=s[c],h=this.tokens[c];if(!(n&&!O.fallback)&&((O.contextual||h.start!=e.pos||h.mask!=o||h.context!=a)&&(this.updateCachedToken(h,O,e),h.mask=o,h.context=a),h.lookAhead>h.end+25&&(l=Math.max(h.lookAhead,l)),h.value!=0)){let f=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!O.extend&&(n=h,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new In,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new In,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),n);if(a>=0&&n.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;s<r;s+=3)if(this.actions[s]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let c=o.stateSlot(s,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=Jt(a,c+2);else{r==0&&a[c+1]==2&&(r=this.putAction(Jt(a,c+2),t,n,r));break}a[c]==t&&(r=this.putAction(Jt(a,c+1),t,n,r))}return r}},ff=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Of(t,r),this.tokens=new hf(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[of.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new cf(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)n.push(a);else{if(this.advanceStack(a,n,e))continue;{r||(r=[],s=[]),r.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!n.length){let o=r&&Lk(r);if(o)return rt&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw rt&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let o=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(o)return rt&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,l)=>l.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let l=o+1;l<n.length;l++){let c=n[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(o--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:s}=this,o=rt?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,O=c?e.curContext.hash:0;for(let h=this.fragments.nodeAt(r);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?s.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!c||(h.prop(j.contextHash)||0)==O))return e.useNode(h,f),rt&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(h.type.id)})`),!0;if(!(h instanceof pe)||h.children.length==0||h.positions[0]>0)break;let u=h.children[0];if(u instanceof pe&&h.positions[0]==0)h=u;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),rt&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let O=l[c++],h=l[c++],f=l[c++],u=c==l.length||!n,d=u?e:e.split(),p=this.tokens.mainToken;if(d.apply(O,h,p?p.start:d.pos,f),rt&&console.log(o+this.stackID(d)+` (via ${O&65536?`reduce of ${s.getName(O&65535)}`:"shift"} for ${s.getName(h)} @ ${r}${d==e?"":", split"})`),u)return!0;d.pos>r?t.push(d):n.push(d)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return Hy(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],c=t[(o<<1)+1],O=rt?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),rt&&console.log(O+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let h=a.split(),f=O;for(let u=0;h.forceReduce()&&u<10&&(rt&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));u++)rt&&(f=this.stackID(h)+" -> ");for(let u of a.recoverByInsert(l))rt&&console.log(O+this.stackID(u)+" (via recover-insert)"),this.advanceFully(u,n);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),rt&&console.log(O+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Hy(a,n)):(!r||r.score<a.score)&&(r=a)}return r}stackToTree(e){return e.close(),pe.build({buffer:lf.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(rf||(rf=new WeakMap)).get(e);return t||rf.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Hy(i,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==i.pos&&n.sameState(i)){e[t].score<i.score&&(e[t]=i);return}}e.push(i)}var uf=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}},sf=i=>i,Nn=class{constructor(e){this.start=e.start,this.shift=e.shift||sf,this.reduce=e.reduce||sf,this.reuse=e.reuse||sf,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},At=class i extends Zn{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),r=[];for(let a=0;a<t.length;a++)r.push([]);function s(a,l,c){r[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=j[l]);for(let c=1;c<a.length;){let O=a[c++];if(O>=0)s(O,l,a[c++]);else{let h=a[c+-O];for(let f=-O;f>0;f--)s(a[c++],l,h);c++}}}this.nodeSet=new es(t.map((a,l)=>_e.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:r[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Qs(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(Ky),this.states=Qs(e.states,Uint32Array),this.data=Qs(e.stateData),this.goto=Qs(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new vi(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new ff(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let o=r[s++],a=o&1,l=r[s++];if(a&&n)return l;for(let c=s+(o>>1);s<c;s++)if(r[s]==e)return l;if(a)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let s=this.stateSlot(e,r?2:1),o;;s+=3){if((o=n[s])==65535)if(n[s+1]==1)o=n[s=Jt(n,s+2)];else{if(n[s+1]==2)return Jt(n,s+2);break}if(o==t||o==0)return Jt(n,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Jt(this.data,s+2);else break;r=t(Jt(this.data,s+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Jt(this.data,n+2);else break;if(!(this.data[n+2]&1)){let r=this.data[n+1];t.some((s,o)=>o&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(i.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(a=>a.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=Ky(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let r=null;for(let s=0;s<t.length;s++)if(!n[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[a]=1;return new uf(e,n,r)}static deserialize(e){return new i(e)}};function Jt(i,e){return i[e]|i[e+1]<<16}function Lk(i){let e=null;for(let t of i){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Ky(i){if(i.external){let e=i.extend?1:0;return(t,n)=>i.external(t,n)<<1|e}return i.get}var Bk=1,Gk=2,Ik=263,Nk=3,Fk=264,eQ=265,Hk=266,Kk=4,Jk=5,e2=6,t2=7,tQ=8,i2=9,n2=10,r2=11,s2=12,o2=13,a2=14,l2=15,O2=16,c2=17,h2=18,f2=19,u2=20,d2=21,p2=22,m2=23,g2=24,$2=25,y2=26,Q2=27,S2=28,b2=29,x2=30,v2=31,w2=32,P2=33,k2=34,T2=35,z2=36,X2=37,R2=38,q2=39,_2=40,C2=41,W2=42,Z2=43,V2=44,A2=45,j2=46,Y2=47,U2=48,M2=49,E2=50,D2=51,L2=52,B2=53,G2=54,I2=55,N2=56,F2=57,H2=58,K2=59,J2=60,eT=61,df=62,tT=63,iT=64,nT=65,rT={abstract:Kk,and:Jk,array:e2,as:t2,true:tQ,false:tQ,break:i2,case:n2,catch:r2,clone:s2,const:o2,continue:a2,declare:O2,default:l2,do:c2,echo:h2,else:f2,elseif:u2,enddeclare:d2,endfor:p2,endforeach:m2,endif:g2,endswitch:$2,endwhile:y2,enum:Q2,extends:S2,final:b2,finally:x2,fn:v2,for:w2,foreach:P2,from:k2,function:T2,global:z2,goto:X2,if:R2,implements:q2,include:_2,include_once:C2,instanceof:W2,insteadof:Z2,interface:V2,list:A2,match:j2,namespace:Y2,new:U2,null:M2,or:E2,print:D2,require:L2,require_once:B2,return:G2,switch:I2,throw:N2,trait:F2,try:H2,unset:K2,use:J2,var:eT,public:df,private:df,protected:df,while:tT,xor:iT,yield:nT,__proto__:null};function iQ(i){let e=rT[i.toLowerCase()];return e??-1}function nQ(i){return i==9||i==10||i==13||i==32}function rQ(i){return i>=97&&i<=122||i>=65&&i<=90}function Ss(i){return i==95||i>=128||rQ(i)}function pf(i){return i>=48&&i<=55||i>=97&&i<=102||i>=65&&i<=70}var sT={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},oT=new $e(i=>{if(i.next==40){i.advance();let e=0;for(;nQ(i.peek(e));)e++;let t="",n;for(;rQ(n=i.peek(e));)t+=String.fromCharCode(n),e++;for(;nQ(i.peek(e));)e++;i.peek(e)==41&&sT[t.toLowerCase()]&&i.acceptToken(Bk)}else if(i.next==60&&i.peek(1)==60&&i.peek(2)==60){for(let n=0;n<3;n++)i.advance();for(;i.next==32||i.next==9;)i.advance();let e=i.next==39;if(e&&i.advance(),!Ss(i.next))return;let t=String.fromCharCode(i.next);for(;i.advance(),!(!Ss(i.next)&&!(i.next>=48&&i.next<=55));)t+=String.fromCharCode(i.next);if(e){if(i.next!=39)return;i.advance()}if(i.next!=10&&i.next!=13)return;for(;;){let n=i.next==10||i.next==13;if(i.advance(),i.next<0)return;if(n){for(;i.next==32||i.next==9;)i.advance();let r=!0;for(let s=0;s<t.length;s++){if(i.next!=t.charCodeAt(s)){r=!1;break}i.advance()}if(r)return i.acceptToken(Gk)}}}}),aT=new $e(i=>{i.next<0&&i.acceptToken(Hk)}),lT=new $e((i,e)=>{i.next==63&&e.canShift(eQ)&&i.peek(1)==62&&i.acceptToken(eQ)});function OT(i){let e=i.peek(1);if(e==110||e==114||e==116||e==118||e==101||e==102||e==92||e==36||e==34||e==123)return 2;if(e>=48&&e<=55){let t=2,n;for(;t<5&&(n=i.peek(t))>=48&&n<=55;)t++;return t}if(e==120&&pf(i.peek(2)))return pf(i.peek(3))?4:3;if(e==117&&i.peek(2)==123)for(let t=3;;t++){let n=i.peek(t);if(n==125)return t==2?0:t+1;if(!pf(n))break}return 0}var cT=new $e((i,e)=>{let t=!1;for(;!(i.next==34||i.next<0||i.next==36&&(Ss(i.peek(1))||i.peek(1)==123)||i.next==123&&i.peek(1)==36);t=!0){if(i.next==92){let n=OT(i);if(n){if(t)break;return i.acceptToken(Nk,n)}}else if(!t&&(i.next==91||i.next==45&&i.peek(1)==62&&Ss(i.peek(2))||i.next==63&&i.peek(1)==45&&i.peek(2)==62&&Ss(i.peek(3)))&&e.canShift(Fk))break;i.advance()}t&&i.acceptToken(Ik)}),hT=_t({"Visibility abstract final static":$.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":$.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":$.controlKeyword,"and or xor yield unset clone instanceof insteadof":$.operatorKeyword,"function fn class trait implements extends const enum global interface use var":$.definitionKeyword,"include include_once require require_once namespace":$.moduleKeyword,"new from echo print array list as":$.keyword,null:$.null,Boolean:$.bool,VariableName:$.variableName,"NamespaceName/...":$.namespace,"NamedType/...":$.typeName,Name:$.name,"CallExpression/Name":$.function($.variableName),"LabelStatement/Name":$.labelName,"MemberExpression/Name":$.propertyName,"MemberExpression/VariableName":$.special($.propertyName),"ScopedExpression/ClassMemberName/Name":$.propertyName,"ScopedExpression/ClassMemberName/VariableName":$.special($.propertyName),"CallExpression/MemberExpression/Name":$.function($.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":$.function($.propertyName),"MethodDeclaration/Name":$.function($.definition($.variableName)),"FunctionDefinition/Name":$.function($.definition($.variableName)),"ClassDeclaration/Name":$.definition($.className),UpdateOp:$.updateOperator,ArithOp:$.arithmeticOperator,LogicOp:$.logicOperator,BitOp:$.bitwiseOperator,CompareOp:$.compareOperator,ControlOp:$.controlOperator,AssignOp:$.definitionOperator,"$ ConcatOp":$.operator,LineComment:$.lineComment,BlockComment:$.blockComment,Integer:$.integer,Float:$.float,String:$.string,ShellExpression:$.special($.string),"=> ->":$.punctuation,"( )":$.paren,"#[ [ ]":$.squareBracket,"${ { }":$.brace,"-> ?->":$.derefOperator,", ; :: : \\":$.separator,"PhpOpen PhpClose":$.processingInstruction}),fT={__proto__:null,static:311,STATIC:311,class:333,CLASS:333},sQ=At.deserialize({version:14,states:"$FvQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{O<YQ`O'#G|O<_Q`O'#G}O<dQ`O'#G}O9oQ`O'#HOO<iQ`O'#HQO<nQ`O'#HRO<sQ`O'#HSO<xQ`O'#HVO=TQ`O'#HWO9yQaO'#H[OOQ#u'#IV'#IVOOQ#u'#Ha'#HaQhQaOOO=fQ`O'#HPO7pQ`O'#HPO=kO#|O'#DrPOOO)CCw)CCwOOO#t-E;]-E;]OOO#u,5:c,5:cOOO#u'#H`'#H`O&XO$VOOO=vQ$VO'#IUOOOO'#IU'#IUQOOOOOOOQ#y,5:h,5:hO=}QaO,5:hOOQ#u,5:j,5:jO@eQaO,5:mO@lQaO,5;UO*kQaO,5;UO@sQ`O,5;VOCbQaO'#EsOOQS,5;^,5;^OCiQ`O,5;jOOQP'#F]'#F]O*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qO*kQaO,5;qOOQ#u'#Im'#ImOOQS,5<q,5<qOOQ#u,5:l,5:lOEbQ`O,5:rOEiQdO'#E}OF]Q`O'#FlOFeQ`O'#FlOFmQ`O,5:oOFrQaO'#E_OOQS,5:x,5:xOHyQ`O'#I]O9yQaO'#EaO9yQaO'#I]OOQS'#I]'#I]OIQQ`O'#I[OIYQ`O,5:xO-UQaO,5:xOI_QaO'#EgOOQS,5;Q,5;QOOQS,5;Z,5;ZOIiQ`O,5;ZOOQO,5>S,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5<POMwQdO,5<QONXQdO,5<RONiQdO,5<SO!!sQdO,5<SO!!zQdO,5<VO!#[Q`O'#FrO!#gQ`O'#IgO!#oQ`O,5<]OOQO-E;g-E;gO!#tQ`O'#IoO<_Q`O,5=iO!#|Q`O,5=iO9oQ`O,5=jO!$RQ`O,5=nO!$WQ`O,5=kO!$]Q`O,5=kO!$bQ`O'#FnO!$xQ`O,5<WO!%TQ`O,5<WO!%WQ`O,5?ZO!%]Q`O,5<WO!%eQ`O,5<bO!%mQdO'#GPO!%{QdO'#InO!&WQdO,5=wO!&`Q`O,5<bO!%WQ`O,5<bO!&hQdO,5<cO!&xQ`O,5<cO!'lQdO,5<qO!)nQdO,5<tO!*OOrO'#HsOOOQ'#It'#ItO*kQaO'#GbOOOQ'#Hs'#HsO!*pOrO,5<wOOQS,5<w,5<wO!*wQaO,5=OO!+OQ`O,5=QO!+WQeO,5=VO!+bQ`O,5=XO!+gQaO'#GoO!+WQeO,5=YO9yQaO'#GrO!+WQeO,5=]O!&WQdO,5=`O(tQdO,5=aOOQ#u,5=a,5=aO(tQdO,5=bOOQ#u,5=b,5=bO(tQdO,5=cOOQ#u,5=c,5=cO!+nQ`O,5=dO!+vQ`O,5=fO!+{QdO'#IvOOQS'#Iv'#IvO!&WQdO,5=gO>UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!<PQdO1G1]O!=lQdO1G1]O!?XQdO1G1]O!@tQdO1G1]O!BaQdO1G1]O!C|QdO1G1]O!EiQdO1G1]O!GUQdO1G1]O!HqQdO1G1]O!J^QdO1G1]O!KyQdO1G1]O!MfQdO1G1]O# RQdO1G1]O#!nQdO1G1]OOQT1G0^1G0^O!%WQ`O,5<WO#$ZQaO'#EXOOQS1G0Z1G0ZO#$bQ`O,5:yOFuQaO,5:yO#$gQaO,5:}O#$nQdO,5:{O#&jQdO,5>wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5<YOOQS1G1r1G1rO0aQ`O1G1rO#6yQ`O1G1rO#7OQ`O1G1rO!%WQ`O1G4uO#7ZQdO1G4uO!%WQ`O1G1rO#7iQ`O1G1|O!%WQ`O1G1|O9yQaO,5<kO#7qQdO'#HqO#8PQdO,5?YOOQ#u1G3c1G3cO*kQaO1G1|O0aQ`O1G1|O#8[QdO1G1}O7RQ`O'#FyO7RQ`O'#FzO#:nQ`O'#F{OOQS1G1}1G1}O!-xQ`O1G1}O!1UQ`O1G1}O!1RQ`O1G1}O#;eO`O,5<xO#;jO`O,5<xO#;uO!bO,5<yO#<TQ`O,5<|OOOQ-E;q-E;qOOQS1G2c1G2cO#<[QaO'#GeO#<uQ$VO1G2jO#AuQ`O1G2jO#BQQ`O'#GgO#B]Q`O'#GjOOQ#u1G2l1G2lO#BhQ`O1G2lOOQ#u'#Gl'#GlOOQ#u'#Iu'#IuOOQ#u1G2q1G2qO#BmQ`O1G2qO,zQ`O1G2sO#BrQaO,5=ZO#ByQ`O,5=ZOOQ#u1G2t1G2tO#COQ`O1G2tO#CTQ`O,5=^OOQ#u1G2w1G2wO#DgQ`O1G2wOOQ#u1G2z1G2zOOQ#u1G2{1G2{OOQ#u1G2|1G2|OOQ#u1G2}1G2}O#DlQ`O'#HxO9oQ`O'#HxO#DqQ$VO1G3OO#IwQ`O1G3QO9yQaO'#HwO#I|QdO,5=[OOQ#u1G3R1G3RO#JXQ`O1G3SO9yQaO,5<iO#J^QdO'#HpO#JlQdO,5?WOOQ#u1G3T1G3TOOQ#u1G3W1G3WO!-xQ`O1G3WOOQ#u1G3X1G3XO#JwQ`O'#HTOOQ#u1G3Y1G3YO#KqQ`O1G3YO0aQ`O1G3YOOQ#u1G3]1G3]O!&WQdO1G3^O#KvQ`O1G3^O#LOQdO'#HzO#LaQdO,5?cO#LlQ`O,5?cO#LqQ`O'#HYO7RQ`O'#HYO#L|Q`O'#IxO#MUQ`O,5=sOOQ#u1G3^1G3^O!.eQ`O1G3^O!.eQ`O1G3^O#MZQeO'#HbO#MkQdO,5>tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MyQdO7+%sOOQS7+&[7+&[O$ fQ`O,5>yO>UQaO,5;`O$ mQ`O,5;aO$#SQaO'#HfO$#^Q`O,5>zOOQS1G0y1G0yO$#fQ`O'#EYO$#kQ`O'#IXO$#sQ`O,5:sOOQS1G0e1G0eO$#xQ`O1G0eO$#}Q`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%dQaO'#HeO$%nQ`O,5>xOOQS1G0m1G0mO$%vQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%{QdO7+&hO$'}QtO1G1RO$([QdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KqQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)wQ`O,5<ZO$*SQ`O,5<ZO$*[Q`O,5<_O$*aQpO,5<ZO>UQaO,5<ZOOQO,5<_,5<_O$*oQpO,5<`O$*wQ`O,5<`O$+SQ`O'#HkO$+mQ`O,5?POOQS1G1t1G1tO$+uQpO7+'^O$+}Q`O'#FuO$,YQ`O7+'^OOQS7+'^7+'^O0aQ`O7+'^O#6yQ`O7+'^O$,bQdO7+*aO0aQ`O7+*aO$,pQ`O7+'^O*kQaO7+'hO0aQ`O7+'hO$,{Q`O7+'hO$-TQdO1G2VOOQS,5>],5>]OOQS-E;o-E;oO$.mQdO7+'hO$.}QpO7+'hO$/VQdO'#IiOOQO,5<e,5<eOOQO,5<f,5<fO$/hQpO'#GOO$/pQ`O'#GOOOQO'#Ik'#IkOOQO'#Ho'#HoO$0aQ`O'#GOO<_Q`O'#F|O!&WQdO'#GOO!.YQdO'#GQO7RQ`O'#GROOQO'#Ij'#IjOOQO'#Hn'#HnO$0}Q`O,5<gOOQ#y,5<g,5<gOOQS7+'i7+'iO!-xQ`O7+'iO!1UQ`O7+'iOOOQ1G2d1G2dO$1tO`O1G2dO$1yO!bO1G2eO$2XO`O'#G`O$2^O`O1G2eOOOQ1G2h1G2hO$2cQaO,5=PO,zQ`O'#HtO$2|Q$VO7+(UOhQaO7+(UO,zQ`O'#HuO$7|Q`O7+(UO!&WQdO7+(UO$8XQ`O7+(UO$8^QaO'#GhO$:mQ`O'#GiOOQO'#Hv'#HvO$:uQ`O,5=ROOQ#u,5=R,5=RO$;QQ`O,5=UO!&WQdO7+(WO!&WQdO7+(]O!&WQdO7+(_O$;]QaO1G2uO$;dQ`O1G2uO$;iQaO1G2uO!&WQdO7+(`O9yQaO1G2xO!&WQdO7+(cO0aQ`O'#GyO9oQ`O,5>dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;pQaO7+(lO$<XQdO,5>cOOQS-E;u-E;uO!&WQdO7+(nO$=qQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?ZQ`O'#GOO$?}Q`O'#HUOOQO'#Hy'#HyO$@SQ`O,5=oOOQ#u,5=o,5=oO$@|QpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$AXQdO,5>fOOQS-E;x-E;xO$AgQdO1G4}O$ArQ`O,5=tO$AwQ`O,5=tO$BSQ`O'#H{O$BhQ`O,5?dOOQS1G3_1G3_O#KvQ`O7+(xO$BpQdO,5=|OOQS-E;`-E;`O$D]QdO<<I_OOQS1G4e1G4eO$ExQ`O1G0zOOQO,5>Q,5>QOOQO-E;d-E;dO$8^QaO,5:tO$G_QaO'#HcO$GlQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$GtQ`O7+&TO$IZQ`O1G0nO$JpQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<<LZ<<LZOOQ#u<<L`<<L`O$@|QpO<<L`OOQ#u<<L]<<L]O!-xQ`O<<L]O!1UQ`O<<L]O>UQaO1G1uO$LYQ`O1G1uO$LeQ`O1G1yOOQO1G1y1G1yO$LjQ`O1G1uO$LrQ`O1G1uO$NXQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<<Jx<<JxO$NdQ`O'#IhO$NlQ`O'#IhO$NqQ`O,5<aO0aQ`O<<JxO$+uQpO<<JxO$NvQ`O<<JxO0aQ`O<<M{O% OQtO<<M{O#6yQ`O<<JxO% ^QdO<<KSO% nQpO<<KSO*kQaO<<KSO0aQ`O<<KSO% vQdO'#HmO%!_QdO,5?TO!&WQdO,5<jO$/hQpO,5<jO%!pQ`O,5<jO<_Q`O,5<hO!.YQdO,5<lOOQO-E;m-E;mO!&WQdO,5<hOOQO,5<j,5<jOOQO,5<l,5<lO%#^QdO,5<mOOQO-E;l-E;lOOQ#y1G2R1G2ROOQS<<KT<<KTO!-xQ`O<<KTOOOQ7+(O7+(OO%#iO`O7+(POOOO,5<z,5<zOOOQ7+(P7+(POhQaO,5>`OOQ#u-E;r-E;rOhQaO<<KpOOQ#u<<Kp<<KpO$8XQ`O,5>aOOQO-E;s-E;sO!&WQdO<<KpO$8XQ`O<<KpO%#nQ`O<<KpO%#sQ`O,5=SO%%YQaO,5=TOOQO-E;t-E;tOOQ#u1G2m1G2mOOQ#u<<Kr<<KrOOQ#u<<Kw<<KwOOQ#u<<Ky<<KyOOQT7+(a7+(aO%%jQ`O7+(aO%%oQaO7+(aO%%vQ`O7+(aOOQ#u<<Kz<<KzO%%{Q`O7+(dO%'bQ`O7+(dOOQ#u<<K}<<K}O%'gQpO,5=eOOQ#u1G4O1G4OO%'rQ`O<<LWOOQ#u<<LY<<LYO%'wQ`O,5=pO%'|QdO,5=pOOQO-E;w-E;wOOQ#u1G3Z1G3ZO#KqQ`O<<L`OOQ#u<<Ld<<LdO%(XQ`O1G4QO%(^QdO7+*iOOQO1G3`1G3`O%(iQ`O1G3`O%(nQ`O'#HZO7RQ`O'#HZOOQO,5>g,5>gOOQO-E;y-E;yO!&WQdO<<LdO%(yQ`O1G0`OOQO,5=},5=}OOQO-E;a-E;aO>UQaO,5;TOOQ#uANAzANAzO#KqQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%*`Q`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+uQ`O7+'aO%,QQ`O7+'eO>UQaO7+'fO%,VQ`O7+'fO%-lQ`O'#HlO%-zQ`O,5?SO%-zQ`O,5?SOOQO1G1{1G1{O$+uQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%.SQtOANCgO%.bQ`OAN@dO*kQaOAN@nO%.jQdOAN@nO%.zQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/hQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%/SQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<<Kk<<KkOOQ#u1G3z1G3zOOQ#uANA[ANA[OOQO1G3{1G3{O%1RQ`OANA[O!&WQdOANA[O%1WQaO1G2nO%1hQaO1G2oOOQT<<K{<<K{O%1xQ`O<<K{O%1}QaO<<K{O*kQaO,5=_OOQT<<LO<<LOOOQO1G3P1G3PO%2UQ`O1G3PO!+WQeOANArO%2ZQdO1G3[OOQO1G3[1G3[O%2fQ`O1G3[OOQS7+)l7+)lOOQO7+(z7+(zO%2nQ`O,5=uO%2sQ`O,5=uOOQ#uANBOANBOO%3OQ`O1G0oOOQ#uG27fG27fOOQ#uG27cG27cO%4eQ`O<<J{O>UQaO<<J{OOQO<<KP<<KPO%5zQ`O<<KQOOQO,5>W,5>WO%7aQ`O,5>WOOQO-E;j-E;jO%7fQ`O1G4nOOQSG26OG26OO$+uQpOG26OO0aQ`OG26OO%7nQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%8OQ`OLD+tO%9_Q`O'#E}O%9iQ`O'#IZO!&WQdO'#HrO%;fQaO,5<nOOQO,5<n,5<nO!&WQdOG26vOOQ#uG26vG26vO%=eQaO7+(YOOQTANAgANAgO%=uQ`OANAgO%=zQ`O1G2yOOQO7+(k7+(kOOQ#uG27^G27^O%>RQ`OG27^OOQO7+(v7+(vO%>WQ`O7+(vO!&WQdO7+(vOOQO1G3a1G3aO%>`Q`O1G3aO%>eQ`OAN@gOOQO1G3r1G3rOOQSLD+jLD+jO$+uQpOLD+jO%?zQdOLD+tOOQO<<K[<<K[OOQO<<KY<<KYO%@[Q`O,5<oO%@aQ`O,5<pOOQP,5>^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<<LbOOQO<<Lb<<LbOOQO7+({7+({OOQS!$( U!$( UOOQS1G2Z1G2ZOOQS1G2[1G2[O%@iQdO1G2[OOQ#u!$(!d!$(!dOOQOANA|ANA|OOQS7+'v7+'vO%@tQ`O'#E{O%@tQ`O'#E{O%@yQ`O,5;gO%AOQdO,5<cO%BzQaO,5:}O*kQaO1G0iO%CRQaO'#FwO#.YQaO'#GVO#.YQaO'#GYO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO#.YQaO,5;qO%CYQdO'#I]O%DxQdO'#I]O#.YQaO'#EaO#.YQaO'#I]O%FzQaO,5:wO#.YQaO,5;nO#.YQaO,5;pO%GRQdO,5<PO%H}QdO,5<QO%JyQdO,5<RO%LuQdO,5<SO%NqQdO,5<SO& XQdO,5<VO&#TQdO,5<tO#.YQaO1G0XO&%PQdO1G1]O&&{QdO1G1]O&(wQdO1G1]O&*sQdO1G1]O&,oQdO1G1]O&.kQdO1G1]O&0gQdO1G1]O&2cQdO1G1]O&4_QdO1G1]O&6ZQdO1G1]O&8VQdO1G1]O&:RQdO1G1]O&;}QdO1G1]O&=yQdO1G1]O&?uQdO1G1]O&AqQdO,5:{O&CmQdO,5>wO&EiQdO1G0cO#.YQaO1G0cO&GeQdO1G1YO&IaQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&K]QdO7+%sO&MXQdO7+%}O#.YQaO7+'hO' TQdO7+'hO'#PQdO<<I_O'${QdO<<KSO#.YQaO<<KSO#.YQaOAN@nO'&wQdOAN@nO'(sQdOG26YO#.YQaOG26YO'*oQdOLD+tO',kQaO,5:}O'.jQaO1G0iO'0fQdO'#IWO'0yQeO'#FUO'4yQeO'#FUO#.YQaO'#FeO'.jQaO'#FeO#.YQaO'#FfO'.jQaO'#FfO#.YQaO'#FgO'.jQaO'#FgO#.YQaO'#FhO'.jQaO'#FhO#.YQaO'#FhO'.jQaO'#FhO#.YQaO'#FkO'.jQaO'#FkO'9PQaO,5:mO'9WQ`O,5<bO'9`Q`O1G0XO'.jQaO1G0|O':rQ`O1G1|O':zQ`O7+'hO';SQpO7+'hO';[QpO<<KSO';dQpOAN@nO';lQaO'#FwO'.jQaO'#GVO'.jQaO'#GYO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO,5;qO'.jQaO'#EaO'.jQaO'#I]O'=kQaO,5:wO'.jQaO,5;nO'.jQaO,5;pO'?jQdO,5<PO'AlQdO,5<QO'CnQdO,5<RO'EpQdO,5<SO'GrQdO,5<SO'H`QdO,5<VO'JbQdO,5<tO'.jQaO1G0XO'LdQdO1G1]O'NfQdO1G1]O(!hQdO1G1]O($jQdO1G1]O(&lQdO1G1]O((nQdO1G1]O(*pQdO1G1]O(,rQdO1G1]O(.tQdO1G1]O(0vQdO1G1]O(2xQdO1G1]O(4zQdO1G1]O(6|QdO1G1]O(9OQdO1G1]O(;QQdO1G1]O(=SQdO,5:{O(?UQdO,5>wO(AWQdO1G0cO'.jQaO1G0cO(CYQdO1G1YO(E[QdO1G1[O'.jQaO1G1|O'.jQaO7+%sO(G^QdO7+%sO(I`QdO7+%}O'.jQaO7+'hO(KbQdO7+'hO(MdQdO<<I_O) fQdO<<KSO'.jQaO<<KSO'.jQaOAN@nO)#hQdOAN@nO)%jQdOG26YO'.jQaOG26YO)'lQdOLD+tO))nQaO,5:}O#.YQaO1G0iO))uQ`O'#FvO))}QpO,5;bO)*VQ`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO0aQ`O<<KSO)*_QdO,5<cO),aQdO'#I]O).`QdO'#IWO).yQaO,5:mO)/QQ`O,5<bO)/YQ`O1G0XO)0lQ`O1G1|O)0tQ`O7+'hO)0|QpO7+'hO)1UQpO<<KSO)1^QpOAN@nO0aQ`O'#EvO9yQaO'#FeO9yQaO'#FfO9yQaO'#FgO9yQaO'#FhO9yQaO'#FhO9yQaO'#FkO)1fQaO'#FwO9yQaO'#GVO9yQaO'#GYO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO9yQaO,5;qO)1mQ`O'#FlO*kQaO'#EaO*kQaO'#I]O)1uQaO,5:wO9yQaO,5;nO9yQaO,5;pO)1|QdO,5<PO)3xQdO,5<QO)5tQdO,5<RO)7pQdO,5<SO)9lQdO,5<SO):SQdO,5<VO)<OQdO,5<cO)=zQdO,5<tO)?vQ`O'#IvO)A]Q`O'#IYO9yQaO1G0XO)BrQdO1G1]O)DnQdO1G1]O)FjQdO1G1]O)HfQdO1G1]O)JbQdO1G1]O)L^QdO1G1]O)NYQdO1G1]O*!UQdO1G1]O*$QQdO1G1]O*%|QdO1G1]O*'xQdO1G1]O*)tQdO1G1]O*+pQdO1G1]O*-lQdO1G1]O*/hQdO1G1]O*1dQaO,5:}O*1kQdO,5:{O*1{QdO,5>wO*2]QaO'#HdO*2mQ`O,5>vO*2uQdO1G0cO9yQaO1G0cO*4qQdO1G1YO*6mQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8iQ`O,5=[O*8qQaO'#HbO*8{Q`O,5>tO9yQaO7+%sO*9TQdO7+%sO*;PQ`O1G0iO>UQaO1G0iO*<fQdO7+%}O9yQaO7+'hO*>bQdO7+'hO*@^Q`O,5>cO*AsQ`O,5=|O*CYQdO<<I_O*EUQ`O7+&TO*FkQdO<<KSO9yQaO<<KSO9yQaOAN@nO*HgQdOAN@nO*JcQdOG26YO9yQaOG26YO*L_QdOLD+tO*NZQaO,5:}O9yQaO1G0iO*NbQdO'#I]O*N{Q`O'#FvO+ TQ`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO0aQ`O<<KSO+ ]QdO'#IWO+ vQeO'#FUO+!dQaO'#FUO+$]QaO'#FUO+%xQaO'#FUO>UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'qQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'xQaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+(PQ`O'#I]O$8^QaO'#EaO+)iQaOG26YO$8^QaO'#I]O++eQ`O'#I[O++mQaO,5:wO>UQaO,5;nO>UQaO,5;pO++tQ`O,5<PO+-aQ`O,5<QO+.|Q`O,5<RO+0iQ`O,5<SO+2UQ`O,5<SO+3qQ`O,5<VO+5^Q`O,5<bO+5fQ`O,5<cO+7RQ`O,5<tO+8nQ`O1G0XO>UQaO1G0XO+:QQ`O1G1]O+;mQ`O1G1]O+=YQ`O1G1]O+>uQ`O1G1]O+@bQ`O1G1]O+A}Q`O1G1]O+CjQ`O1G1]O+EVQ`O1G1]O+FrQ`O1G1]O+H_Q`O1G1]O+IzQ`O1G1]O+KgQ`O1G1]O+MSQ`O1G1]O+NoQ`O1G1]O,![Q`O1G1]O,#wQ`O1G0cO>UQaO1G0cO,%dQ`O1G1YO,'PQ`O1G1[O,(lQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,(tQ`O7+%sO,*aQ`O7+%}O>UQaO7+'hO,+|Q`O7+'hO,,UQ`O7+'hO,-qQpO7+'hO,-yQ`O<<I_O,/fQ`O<<KSO,1RQpO<<KSO>UQaO<<KSO>UQaOAN@nO,1ZQ`OAN@nO,2vQpOAN@nO,3OQ`OG26YO>UQaOG26YO,4kQ`OLD+tO,6WQaO,5:}O>UQaO1G0iO,6_Q`O'#I]O$8^QaO'#FeO$8^QaO'#FfO$8^QaO'#FgO$8^QaO'#FhO$8^QaO'#FhO+)iQaO'#FhO$8^QaO'#FkO,6lQaO'#FwO,6sQaO'#FwO$8^QaO'#GVO+)iQaO'#GVO$8^QaO'#GYO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO$8^QaO,5;qO+)iQaO,5;qO,8rQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8zQaO,5:wO,9RQaO,5:wO$8^QaO,5;nO+)iQaO,5;nO$8^QaO,5;pO,;QQ`O,5<PO,<mQ`O,5<QO,>YQ`O,5<RO,?uQ`O,5<SO,AbQ`O,5<SO,B}Q`O,5<SO,D^Q`O,5<VO,EyQ`O,5<cO%8OQ`O,5<cO,GfQ`O,5<tO$8^QaO1G0XO+)iQaO1G0XO,IRQ`O1G1]O,JnQ`O1G1]O,K}Q`O1G1]O,MjQ`O1G1]O,NyQ`O1G1]O-!fQ`O1G1]O-#uQ`O1G1]O-%bQ`O1G1]O-&qQ`O1G1]O-(^Q`O1G1]O-)mQ`O1G1]O-+YQ`O1G1]O-,iQ`O1G1]O-.UQ`O1G1]O-/eQ`O1G1]O-1QQ`O1G1]O-2aQ`O1G1]O-3|Q`O1G1]O-5]Q`O1G1]O-6xQ`O1G1]O-8XQ`O1G1]O-9tQ`O1G1]O-;TQ`O1G1]O-<pQ`O1G1]O->PQ`O1G1]O-?lQ`O1G1]O-@{Q`O1G1]O-BhQ`O1G1]O-CwQ`O1G1]O-EdQ`O1G1]O-FsQ`O,5:{O-H`Q`O,5>wO-I{Q`O1G0cO-KhQ`O1G0cO$8^QaO1G0cO+)iQaO1G0cO-LwQ`O1G1YO-NdQ`O1G1YO. sQ`O1G1[O$8^QaO1G1|O$8^QaO7+%sO+)iQaO7+%sO.#`Q`O7+%sO.${Q`O7+%sO.&[Q`O7+%}O.'wQ`O7+%}O$8^QaO7+'hO.)WQ`O7+'hO.*sQ`O<<I_O.,`Q`O<<I_O.-oQ`O<<KSO$8^QaO<<KSO$8^QaOAN@nO./[Q`OAN@nO.0wQ`OG26YO$8^QaOG26YO.2dQ`OLD+tO.4PQaO,5:}O.4WQaO,5:}O$8^QaO1G0iO+)iQaO1G0iO.6VQ`O'#I]O.7iQ`O'#I]O.;OQ`O'#IWO.;`Q`O'#FvO.;hQaO,5:mO.;oQ`O,5<bO.;wQ`O,5<bO!%WQ`O,5<bO.<PQ`O1G0XO.=cQ`O,5:{O.?OQ`O,5>wO.@kQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@sQ`O7+'hO.@{QpO7+'hO.ATQpO<<KSO0aQ`O<<KSO.A]QpOAN@nO.AeQ`O'#IWO.AuQ`O'#IWO.ClQaO,5:mO.CsQaO,5:mO.CzQ`O,5<bO.DSQ`O7+'hO.D[Q`O1G0XO.EnQ`O1G0XO.GQQ`O1G1|O.GYQ`O7+'hO.GbQpO7+'hO.GjQpOAN@nO.GrQpO<<KSO.GzQpOAN@nO.HSQ`O'#FvO.H[Q`O'#FlO.HdQ`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO0aQ`O<<KSO.HlQ`O'#FvO.HtQ`O,5<bO.H|Q`O,5<bO!%WQ`O,5<bO!%WQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O<<KSO0aQ`O7+'hO0aQ`O<<KSO.IUQ`O'#FlO.I^Q`O'#FlO.IfQ`O'#Fl",stateData:".I{~O!dOS!eOS&vOS!gQQ~O!iTO&wRO~OPgOQ|OS!lOU^OW}OX!XO[mO]!_O^!WO`![Oa!SOb!]Ok!dOm!lOowOp!TOq!UOsuOt!gOu!VOv!POxkOykO|!bO}`O!O]O!P!eO!QxO!R}O!TpO!UlO!VlO!W!YO!X!QO!YzO!Z!cO![!ZO!]!^O!^!fO!`!`O!a!RO!cjO!mWO!oXO!sYO!y[O#W_O#bhO#daO#ebO#peO$ToO$]nO$^oO$aqO$drO$l!kO$zyO${!OO$}}O%O}O%V|O'g{O~O!g!mO~O&wRO!i!hX&p!hX&t!hX~O!i!pO~O!d!qO!e!qO!g!mO&t!tO&v!qO~PhO!n!vO~PhOT'VXz'VX!S'VX!b'VX!m'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX&s'VX~O!q!xO~P&sOT#TOz#RO!S#UO!b#VO!m#cO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO&s#cO~OPgOQ|OU^OW}O[mOowOs#hOxkOykO}`O!O]O!QxO!R}O!TpO!UlO!VlO!YzO!cjO!s#gO!y[O#W_O#bhO#daO#ebO#peO$ToO$]nO$^oO$aqO$zyO${!OO$}}O%O}O%V|O'g{O~O!y[O~O!y#kO~OP6ZOQ|OU^OW}O[6^Oo=WOs#hOx6[Oy6[O}`O!O]O!Q6bO!R}O!T6aO!U6]O!V6]O!Y6dO!c8dO!s#gO!y[O#S#oO#U#nO#W_O#bhO#daO#ebO#peO$T6`O$]6_O$^6`O$aqO$z6cO${!OO$}}O%O}O%V|O'g{O#X'OP~O!}#sO~P-UO!y#tO~O#b#vO#daO#ebO~O#p#xO~O!s#yO~OU$PO!R$PO!s$OO!v#}O#p2VO~OT&zXz&zX!S&zX!b&zX!m&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX&s&zX!x&zX!n&zX~O#u$RO#w$SO~P0rOP6ZOQ|OU^OW}O[6^Oo=WOs#hOx6[Oy6[O}`O!O]O!Q6bO!R}O!T6aO!U6]O!V6]O!Y6dO!c8dO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T6`O$]6_O$^6`O$aqO$z6cO${!OO$}}O%O}O%V|O'g{OT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX~Or$UO#S6wO#U6vO~P2yO!s#gO#peO~OS$gO]$bOk$eOm$gOs$aO!`$cO$drO$l$fO~O!s$kO!y$hO#S$jO~Oo$mOs$lO#b$nO~O!y$hO#S$rO~O$l$tO~P*kOR$zO!o$yO#b$xO#e$yO&q$zO~O'f$|O~P8lO!y%RO~O!y%TO~O!s%VO~O!m#cO&s#cO~P*kO!oXO~O!y%_O~OP6ZOQ|OU^OW}O[6^Oo=WOs#hOx6[Oy6[O}`O!O]O!Q6bO!R}O!T6aO!U6]O!V6]O!Y6dO!c8dO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T6`O$]6_O$^6`O$aqO$z6cO${!OO$}}O%O}O%V|O'g{O~O!y%cO~O!s%dO~O]$bO~O!s%hO~O!s%iO~O!s%jO~O!oXO!s#gO#peO~O]%rOs%rO!o%pO!s#gO#p%nO~O!s%vO~O!i%wO&t%wO&wRO~O&t%zO~PhO!n%{O~PhOPgOQ|OU^OW}O[8jOo=wOs#hOx8hOy8hO}`O!O]O!Q8nO!R}O!T8mO!U8iO!V8iO!Y8pO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T8lO$]8kO$^8lO$aqO$z8oO${!OO$}}O%O}O%V|O'g{O~O!q%}O~P>UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8jOo=wOs#hOx8hOy8hO}`O!O]O!Q8nO!R}O!T8mO!U8iO!V8iO!Y8pO!c8gO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8lO$]8kO$^8lO$aqO$z8oO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;bO#U;aO!x'OP~P9yOT6gOz6eO!S6hO!b6iO!o!{O!v8qO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6gOz6eO!S6hO!b6iO!v8qO!}({O#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6gOz6eO!S6hO!b6iO!v8qO!})iO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8tOz8rO!S8uO!b8vO!q)pO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#X)rO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!n)rO~PCqOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6gOz6eO!S6hO!b6iO!v8qO!}*UO#O*TO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[3|Oo5vOs#hOx3xOy3xO}`O!O]O!Q2[O!R}O!T4SO!U3zO!V3zO!Y2^O!c3vO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4QO$]4OO$^4QO$aqO$z2]O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6gOV,XOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,hO]+aOm+^Os$aO!^+dO!_+^O!`+^O!n,kO#b$nO$aqO$drO~P0aO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,qO~OV,rO!n%|X!}%|X~O!},tO!n'lX~O!n,vO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,{O~PCqOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-PO~O!}-QO!n&{X~O!n-SO~O!x-TO~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-ZO~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-cO!x$ca!}$ca~O#U-eO#b-dO~O#b-fO~O#S-gO#U-eO#b-dO#l'SO~O#b-iO#l'SO~O#u-jO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-oO#b-nO!x'[P~O!oXO!q-qO~O!q-tO!o'cq!m'cq&s'cq~O!^-vO!oXO!q-qO~O!q-zO#O-yO~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-yO#l'SO~O!}-{Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].QOm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].QOm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.YO#b$nO$aqO$drO~P0aO!s.]O~O!s.^O#b.^O$}.^O%T+oO~O$}._O~O#X.`O~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.cOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.hOd+vOh.gO~O!q(`O~OP6ZOQ|OU^OW}O[:dOo>POs#hOx:bOy:bO}`O!O]O!Q:iO!R}O!T:hO!U:cO!V:cO!Y:mO!c8eO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:fO$]:eO$^:fO$aqO$z:kO${!OO$}}O%O}O%V|O'g{O~O!m.kO!q.kO~OY+zO_+{O!n.mO~OY+zO_+{Oi%^a~O!x.qO~P>UO!m.sO~O!m.sO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m&ka!}&ka&s&ka~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^OY.}O].QOm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aO!s/OO~OS+^OY,hO]+aOm+^Os$aO!^+dO!_+^O!`+^O!n/QO#b$nO$aqO$drO~P0aOw(SO!o)WO#l'SO~OV/TO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/VO~OV/WO!n%|a!}%|a~O]/YOs/YO!s#gO#peO!n&oX!}&oX~O!},tO!n'la~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-QO!n&{a~OT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#Vq#X#Vq~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#[i!}#[i~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#O/aO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!x&Xa!}&Xa~P!'WO#u/gO!x$ci!}$ci~O#b/hO~O#U/jO#b/iO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$ci!}$ci~P!'WO#u/kO!x$hi!}$hi~O!}/mO!x'[X~O#b/oO~O!x/pO~O!oXO!q/sO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/vO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-{Ow']a!o']a!m']a&s']a~OS+^O]0OOm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aO!m#cO!o0TO&s#cO~O#X0WO~Oh0]O~OT:rOz:nO!S:tO!b:vO!m0^O!q0^O!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0`O~O!x0`O~P>UO!m0bO~OT6gOz6eO!S6hO!b6iO!v8qO!x0dO#O0cO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO~P!'WO!x0dO~O!x0eO#b0fO#l'SO~O!x0gO~O!s0hO~O!m#cO#u0jO&s#cO~O!s0kO~O!})_O!m'kq&s'kq~O!s0lO~OV0mO!n%}X!}%}X~OT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!n!|i!}!|i~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$cq!}$cq~P!'WO#u0tO!x$cq!}$cq~O#b0uO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$hq!}$hq~P!'WO#S0xO#b0wO!x&`X!}&`X~O!}/mO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q0}O~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1PO#l'SO~OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!n1[O!s1WO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOh1]O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1`O~O!x1`O~P>UO!x1cO~O!m#cO#u1gO&s#cO~O$}1hO%V1hO~O!s1iO~OV1jO!n%}a!}%}a~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#]i!}#]i~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$cy!}$cy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$hy!}$hy~P!'WO#b1lO~O!}/mO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:sOz:oO!S:uO!b:wO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dO~P!'WOV1sO{1rO~P!5xOV1sO{1rOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!n1vO!s1WO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOY%[q_%[q!n%[qi%[q~PhO!x1xO~O!x%gi~PCqOe1yO~O$}1zO%V1zO~O!s1|O~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2OO~O!`2QO!s2PO~O!s2TO!m$xi&s$xi~O!s'WO~O!s*]O~OT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2ZO~P*kO$l$tO~P#.YOT6gOz6eO!S6hO!b6iO!v8qO#O2YO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#O3sO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3bO~P#.YOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2_O#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2_O#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2aOz2_O!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2aOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O#S#QO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$T2lO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$S2kO$T2lO$V2nO$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2_O$W2nO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2_O#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2_O!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2_O#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2aOz2_O!S2bO!b2cO!v4UO#S#QO#z2`O#{2dO#|2eO#}2fO$O2gO$Q2iO$R2jO$S2kO$T2lO$U2mO$V2nO$W2nO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S3tO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OO~P$;pOP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OO~P$;pO#u2sO#w2tO!q&zX#X&zX!}&zX~P0rOP6ZOU^O[3}Oo8[Or2uOs#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S2rO#U2qO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;pOP6ZOU^O[3}Oo8[Or4vOs#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S4sO#U4rO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;pO!q2}O~P>UO!q5{O#O3eO~OT8tOz8rO!S8uO!b8vO!q3fO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!q5|O#O3iO~O!q5}O#O3mO~O#O3mO#l'SO~O#O3nO#l'SO~O#O3qO#l'SO~OP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$l$tO$z4`O${!OO~P$;pOP6ZOU^O[3}Oo8[Os#hOx3yOy3yO}`O!O]O!Q4_O!T4TO!U3{O!V3{O!Y4aO!c3wO!s#gO!y[O#S5cO#W_O#bhO#daO#ebO#peO$T4RO$]4PO$^4RO$aqO$z4`O${!OO~P$;pOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4bO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4bO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4dOz4bO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4dOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO#S#QO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$T4oO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$S4nO$T4oO$V4qO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4bO$W4qO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4bO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4bO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4bO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5uO~P#.YO!y$hO#S5yO~O!x4XO#l'SO~O!y$hO#S5zO~OT4dOz4bO!S4eO!b4fO!v6RO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4dOz4bO!S4eO!b4fO!v6RO#O5tO#S#QO#z4cO#{4gO#|4hO#}4iO$O4jO$Q4lO$R4mO$S4nO$T4oO$U4pO$V4qO$W4qO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4tO#w4uO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5OO~P>UO!q8`O#O5fO~OT8tOz8rO!S8uO!b8vO!q5gO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!q8aO#O5jO~O!q8bO#O5nO~O#O5nO#l'SO~O#O5oO#l'SO~O#O5rO#l'SO~O$l$tO~P9yOo5xOs$lO~O#S7mO~P9yOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6eO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8tOz8rO!S8uO!b8vO!v=XO!}7qO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x'jX~P!'WOT8tOz8rO!S8uO!b8vO!v=XO!}7sO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x&|X~P!'WOz6eO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6gOz6eO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6gOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO#S#QO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$T6rO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$S6qO$T6rO$V6tO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6eO$W6tO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7xO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;bO#U;aO!x&WX!}&WX~P9yO!}7jO!x'Oa~Oz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7qO!x%da~O!x&UX!}&UX~P>UO!}7sO!x&|a~Oz6eO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#Vi!}#Vi~P!'WOz6eO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x&ka!}&ka~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x&Ua!}&Ua~P!'WOz6eO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#Vq!}#Vq~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8YO~P9yO#O8XO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8^O~O!y$hO#S8_O~O#u6xO#w6yO!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6zO#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;gO#S9VO#U9TOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9UO#S9UO#U9UOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9ZO#S;bO#U;aOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7VO~P>UOT6gOz6eO!S6hO!b6iO!v8qO#O7gO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!x'PX!}'PX~P!'WOP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pO!}7jO!x'OX~O#S9wO~P>UOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8rO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=bO#O7pO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8tOz8rO!S8uO!b8vO!q7uO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOz8rO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8tOz8rO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8tOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8rO#S#QO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8rO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8rO$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8rO$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8rO$T9PO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8rO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8rO$S9OO$T9PO$V9RO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8rO$W9RO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=cO#O7zO~Oz8rO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8rO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=gO#O8RO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8RO#l'SO~Oz8rO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8SO#l'SO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8VO#l'SO~OT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:`O~P>UO#O:_O!q'PX!x'PX~PGSO$l$tO~P$8^OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$l$tO$z:lO${!OO~P$;pOo8]Os$lO~O#S<hO~P$8^OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#S<iO#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$Xa!q$Xa!n$Xa!}$Xa~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$Ya!q$Ya!n$Ya!}$Ya~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$Za!q$Za!n$Za!}$Za~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$[a!q$[a!n$[a!}$[a~P!'WOz:nO$z#dOT$[a!S$[a!b$[a!m$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a!n$[a!}$[a~P!'WOz:oO$z#dOT$[a!S$[a!b$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$_a!q$_a!n$_a!}$_a~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$ka!q$ka!n$ka!}$ka~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$|a!q$|a!n$|a!}$|a~P!'WOz:nO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi!n#yi!}#yi~P!'WOz:oO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!n#yi!}#yi~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi~P!'WOT:rOz:nO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!S#yi!m#yi!q#yi!n#yi!}#yi~P!'WOT:sOz:oO!b:wO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dO!S#yi~P!'WOT:rOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!S#yi!b#yi!m#yi!q#yi!n#yi!}#yi~P!'WOT:sOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dO!S#yi!b#yi~P!'WOz:nO#S#QO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi!n#yi!}#yi~P!'WOz:oO#S#QO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi~P!'WOz:nO#S#QO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi#|#yi!n#yi!}#yi~P!'WOz:oO#S#QO#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi#|#yi~P!'WOz:nO#S#QO$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi!n#yi!}#yi~P!'WOz:oO#S#QO$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi#|#yi#}#yi~P!'WOz:nO#S#QO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi!n#yi!}#yi~P!'WOz:oO#S#QO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi~P!'WOz:nO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi!n#yi!}#yi~P!'WOz:oO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi~P!'WOz:nO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!n#yi!}#yi~P!'WOz:oO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi~P!'WOz:nO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!n#yi!}#yi~P!'WOz:oO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi~P!'WOz:nO$T;YO$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!n#yi!}#yi~P!'WOz:oO$T;ZO$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi~P!'WOz:nO$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!n#yi!}#yi~P!'WOz:oO$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi~P!'WOz:nO$S;WO$T;YO$V;^O$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!n#yi!}#yi~P!'WOz:oO$S;XO$T;ZO$V;_O$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi~P!'WOz:nO$W;^O$z#dOT#yi!S#yi!b#yi!m#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!n#yi!}#yi~P!'WOz:oO$W;_O$z#dOT#yi!S#yi!b#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x#Ta!}#Ta!q#Ta#X#Ta~P!'WOT8tOz8rO!S8uO!b8vO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO!x'Pa!}'Pa!q'Pa#X'Pa~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#Pi!S#Pi!b#Pi!m#Pi!q#Pi!n#Pi!}#Pi~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#Pi!S#Pi!b#Pi~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#vi!S#vi!b#vi!m#vi!q#vi!n#vi!}#vi~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#vi!S#vi!b#vi~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m#xi!q#xi!n#xi!}#xi~P!'WOz:nO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT!uq!S!uq!b!uq!m!uq!q!uq!v!uq!n!uq!}!uq~P!'WOz:oO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT!uq!S!uq!b!uq!v!uq~P!'WOz:nO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT#Pq!S#Pq!b#Pq!m#Pq!q#Pq!n#Pq!}#Pq~P!'WOz:oO!v=lO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT#Pq!S#Pq!b#Pq~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$jq!q$jq!n$jq!}$jq~P!'WOz:nO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dOT!uy!S!uy!b!uy!m!uy!q!uy!v!uy!n!uy!}!uy~P!'WOz:oO#S#QO#z:qO#{:yO#|:{O#}:}O$O;PO$Q;TO$R;VO$S;XO$T;ZO$U;]O$V;_O$W;_O$z#dOT!uy!S!uy!b!uy!v!uy~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$jy!q$jy!n$jy!}$jy~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$j!R!q$j!R!n$j!R!}$j!R~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$j!Z!q$j!Z!n$j!Z!}$j!Z~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m$j!c!q$j!c!n$j!c!}$j!c~P!'WO#S=RO~P$8^OP6ZOU^O[9UOo>QOs#hOx9UOy9UO}`O!O]O!Q:jO!T9UO!U9UO!V9UO!Y9UO!c8fO!s#gO!y[O#S=SO#W_O#bhO#daO#ebO#peO$T:gO$]9UO$^:gO$aqO$z:lO${!OO~P$;pOT6gOz6eO!S6hO!b6iO!v8qO#O=QO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO~P!'WOT6gOz6eO!S6hO!b6iO!v8qO#O=PO#S#QO#z6fO#{6jO#|6kO#}6lO$O6mO$Q6oO$R6pO$S6qO$T6rO$U6sO$V6tO$W6tO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9XO#w9YO#X&zX!x&zX~P.9XO!y$hO#S=[O~O!q9fO~P>UO!y$hO#S=aO~O!q=|O#O9{O~OT8tOz8rO!S8uO!b8vO!q9|O!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:rOz:nO!S:tO!b:vO!v=kO#S#QO#z:pO#{:xO#|:zO#}:|O$O;OO$Q;SO$R;UO$S;WO$T;YO$U;[O$V;^O$W;^O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q=}O#O:PO~O!q>OO#O:WO~O#O:WO#l'SO~O#O:XO#l'SO~O#O:]O#l'SO~O#u;cO#w;eO!m&zX!n&zX~P.9XO#u;dO#w;fOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;rO~P>UO!q;sO~P>UO!q>VO#O<mO~O!q>WO#O9UO~OT8tOz8rO!S8uO!b8vO!q<nO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WOT8tOz8rO!S8uO!b8vO!q<oO!v=XO#S#QO#z8sO#{8wO#|8xO#}8yO$O8zO$Q8|O$R8}O$S9OO$T9PO$U9QO$V9RO$W9RO$z#dO~P!'WO!q>XO#O<tO~O!q>YO#O<yO~O#O<yO#l'SO~O#O9UO#l'SO~O#O<zO#l'SO~O#O<}O#l'SO~O!y$hO#S=zO~Oo=YOs$lO~O!y$hO#S={O~O!y$hO#S>SO~O!y$hO#S>TO~O!y$hO#S>UO~Oo=yOs$lO~Oo>ROs$lO~Oo>QOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%'X'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%XP!.c!7yP!?xP*ZP*Z*ZPPPPP!?{PPPPPPP*Z*Z*Z*ZPP*Z*ZP!Ef!G[P!G`!HS!G[!G[!HY*Z*ZP!Hc!Hu!Ik!Ji!Jo!Ji!Jz!Ji!Ji!K]!K`!K`*ZPP*ZPP!Kd#%b#%b#%fP#%lP(O#%p(O#&Y#&]#&]#&c(O#&f(O(O#&l#&o(O#&x#&{(O(O(O(O(O#'O(O(O(O(O(O(O(O(O(O#'R#'e(O(O#'i#'y#'|(O(OP#(P#(W#(^#(y#)T#)Z#)e#)l#)r#*n#4f#5b#5h#5n#5x#6O#6U#6d#6j#6p#6v#6|#7S#7Y#7d#7n#7t#7z#8UPPPPPPPP#8[#8`#9U#NV#NY#Nd$(m$(y$)`$)f$)i$)l$)r$,c$6T$>j$>m$>s$>v$>y$?S$?[$?f$?x$Bx$C`$DZ$LZPP%&X%&]%&i%'O%'UQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_Q%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-m*v*x+OQ.V+cQ.z,[S/r-r-sQ0R.RS0{/q/uQ1T0PQ1m0|R1}1n0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=l0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lQ#j]Q$}!PQ%O!QQ%P!RQ,S(kQ.a+sR.e+vR&q#jQ)z&pR/_-Q0uhPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lR#l^k#p_j#k#s&s&w3v3w7j8d8e8f8gR#u`T&|#t'OR-X*U0thPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lR#va-r#OZ#f#m#w$V$W$X$Y$Z$[$u$v%W%Y%[%`%s%|&O&Q&U&^&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&u&v&{'X'Z'[(](p)q)s)u*O*[*^+S+V,`,c,x,z,|-U-V-W-h-w.j.v/^/f/l/w0p0s0v1O1V1b1k1o2o2p2v2w2x2y2z2{2|3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3^3_3`3a3c3d3g3h3j3k3l3o3p3r4W4w4x4y4z4{4|4}5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`5a5b5d5e5h5i5k5l5m5p5q5s6P6T6{6|6}7O7P7Q7S7T7U7W7X7Y7Z7[7]7^7_7`7a7b7c7d7e7f7h7i7l7n7o7v7w7y7{7|7}8O8P8Q8T8U8W8Z9S9[9]9^9_9`9a9d9e9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9x9y9}:O:R:T:U:Y:[:^:a;h;i;j;k;l;m;n;q;t;u;v;w;x;y;z;{;|;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<[<]<^<_<`<a<b<c<d<e<f<g<j<k<l<p<q<r<s<u<v<w<x<{<|=O=T=U=]=^=_=o=pQ']$]Y(Q$s7R9c;o;pS(U2X6OR(X$tT&X!})v!}$Qg#}$h'S'i'm'r(P(T)W)Z*f*s*z*}+Q+]+`+g,Z,g,j-q-t-z.P/s0}5{5|5}6Z8`8a8b=b=c=g=|=}>O>V>W>X>Y3afPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)W)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,g,j,t-P-Q-c-j-q-t-y-z-{.P.a.c.k.s/Y/a/g/k/s/v0T0^0_0b0c0g0t0}1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u5{5|5}6R6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8`8a8b8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=b=c=g=k=l=|=}>O>V>W>X>Y3ycPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)W)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,g,j,t,w-P-Q-c-j-q-t-y-z-{.P.a.c.k.s/Y/a/g/k/s/v0T0^0_0b0c0g0t0}1P1Z1_2U2V2W2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u5{5|5}6R6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8`8a8b8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=b=c=g=k=l=|=}>O>V>W>X>Y0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0^0_0b0c0g0t1P1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lT1X0T1ZR&]#P!n#[Z#f#w$V$W$X$Y$[$s$v%W%Y%[&Q&_&`&a&b&c&d&e&f'X'Z'[(])q)s*^+V,z-w/w1O1b1o7h7i!Y2h2X2v2w2x2y2{2|3O3P3Q3R3S3T3U3V3_3`3a3c3d3g3h3j3k3l3o3p3r!^4k2p4w4x4y4z4|4}5P5Q5R5S5T5U5V5W5`5a5b5d5e5h5i5k5l5m5p5q5s6O6P#Q6n#m%`%s&u&v&{(p*O+S,`,c,x-U-W.v2o6{6|6}7O7Q7R7S7W7X7Y7Z7[7]7^7_7l7n7o7v7y7{8O8Q8T8U8W8Z9S:a=T=U#^8{%|&O&U)u,|-V-h/f/l0p0s0v1k4W6T7T7U7w7|7}8P9[9]9^9_9a9c9d9e9g9h9i9j9k9l9m9n9v9x9y9}:O:R:T:U:Y:[:^<d<e=]=o=p!^;Q.j/^;h;i;j;k;n;o;q;t;v;x;z;|<O<Q<S<f<j<l<p<r<u<v<x<{<|=O=^=_o;R1V;p;u;w;y;{;}<P<R<T<g<k<q<s<wS$iu#hQ$qwU't$j$l&oQ'v$kS'x$m$rQ*|'uQ+O'wQ+R'yQ4V5vS4Y5x5yQ4Z5zQ6S8[S6U8]8^Q6V8_Q9b=WS9z=Y=[Q:Q=aQ=Z=wS=`=y=zQ=d={Q=m>PS=n>Q>TS=q>R>SR=r>UT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,j.a.c.k0^0_0g1_Q$^rR*`'^Q*x'sQ-s*{R/u-vQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-b*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-a*i*jQ.[+kQ/R,lQ/c-_R/e-bQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-`*h*i*jS.Z+j+kS/d-a-bQ0V.[R0r/eX+e(T)W+g,j[%e!_$b'c+a.Q0OR,d)Qh$ov(T)W+[+]+`+g,g,j.O.P/}R+T'{R0U.WT1Y0T1Z0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lT$x{${Q+p([R.^+nT$z{${Q(b$}Q(j%PQ(o%SQ(r%UQ.i+yQ0Z.eQ0[.hR1e0gR(e%OX+|(c(d+},PR(f%OX(h%P%S%U0gR%S!T_%a!]%R(l,T,V.s0bR%U!UR.w,XR,[(wQ)X%jS*d'e)YS-^*e,lS/b-_/RR0q/cT,i)W,jQ%q!fU)]%m%n%rU,n)^)g)hR/],wR)d%pR/Z,tSSO!mR!oSQ!rVR%y!rQ!jPS!sV!rQ!wX[%u!j!s!w+r0_1_Q+r(`Q0_.kR1_0^Q)j%sS,y)j7tR7t7UQ-R)zR/`-RQ&x#qS*R&x7kR7k9WS*V&{&|R-Y*VQ)w&YR-O)w!l'T#|'h*n*q*v+W+[,l-_-r-u-x.O.y/q/t/x/}0|1n4[4]4^5w6W6X6Y:S:V:Z=e=f=h=s=t=u=vR*Z'T1^dPVX[_bjklmnoprxyz!S!W!X!Y!]!e!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%p%}&S&W&p&s&t&w'O'U'Y'^'z(O(R(S(`(l({)P)_)c)i)p)t)v*P*T*U*o+P+d+r+u+z,T,V,X,t-P-Q-c-j-y-{.a.c.k.s/Y/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=l`#zd#{%m)^)g,w2U2WQ#{eQ%m!fQ)^%nQ)g%rQ,w)h!|2Ug#}$h'S'i'm'r(P(T)W)Z*f*s*z*}+Q+]+`+g,Z,g,j-q-t-z.P/s0}5{5|5}6Z8`8a8b=b=c=g=|=}>O>V>W>X>YR2W2V|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_W$`t'i+],gS'i$h*sS+](T+gT,g)W,jQ'_$^R*a'_Q*t'oR-l*tQ/n-nS0y/n0zR0z/oQ-|+XR/z-|Q+g(TR.X+gW+`(T)W+g,jS.P+],gT.S+`.PQ)R%eR,e)RQ'|$oR+U'|Q1Z0TR1u1ZQ${{R(^${Q+t(aR.b+tQ+w(bR.f+wQ+}(cQ,P(dT.l+},PQ(|%`S,a(|7rR7r7TQ(y%^R,^(yQ,j)WR/P,jQ)`%oS,p)`/UR/U,qQ,u)dR/[,uT!uV!rj!iPVX!j!r!s!w(`+r.k0^0_1_Q%Q!SQ(a$}W(h%P%S%U0gQ.d+uQ0X.aR0Y.c|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_Q#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2]4`6c8o:k:lQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-QQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2_4b6e8r:n:oQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4XQ*^'Y^*_2Y3s5t8X:_=P=QQ+S'zQ+V(OQ,`({Q,c)PQ,x)iQ,z)pQ,|)tQ-U*PQ-V*TQ-W*U^-[2Z3t5u8Y:`=R=SQ-h*oQ-w+PQ.j+zQ.v,XQ/^-PQ/f-cQ/l-jQ/w-yQ0p/aQ0s/gQ0v/kQ1O/vU1V0T1Z9UQ1b0cQ1k0tQ1o1PQ2X2[Q2ojQ2p3wQ2v3xQ2w3zQ2x3|Q2y4OQ2z4QQ2{4SQ2|2^Q3O2`Q3P2aQ3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2qQ3`2rQ3a2sQ3c2tQ3d2uQ3g2}Q3h3bQ3j3eQ3k3fQ3l3iQ3o3mQ3p3nQ3r3qQ4W4UQ4w3yQ4x3{Q4y3}Q4z4PQ4{4RQ4|4TQ4}4aQ5P4cQ5Q4dQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5d4uQ5e4vQ5h5OQ5i5cQ5k5fQ5l5gQ5m5jQ5p5nQ5q5oQ5s5rQ6O4_Q6P3vQ6T6RQ6{6[Q6|6]Q6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6dU7T,T.s0bQ7U%cQ7W6fQ7X6gQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7h6vQ7i6wQ7l6xQ7n6yQ7o6zQ7v7VQ7w7gQ7y7mQ7{7pQ7|7qQ7}7sQ8O7uQ8P7xQ8Q7zQ8T8RQ8U8SQ8W8VQ8Z8dU9S#k&s7jQ9[8hQ9]8iQ9^8jQ9_8kQ9`8lQ9a8mQ9c8nQ9d8pQ9e8qQ9g8sQ9h8tQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9XQ9x9YQ9y9ZQ9}9fQ:O9wQ:R9{Q:T9|Q:U:PQ:Y:WQ:[:XQ:^:]Q:a8gQ;h:bQ;i:cQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:mQ;t:pQ;u:qQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQ<O:zQ<P:{Q<Q:|Q<R:}Q<S;OQ<T;PQ<U;QQ<V;RQ<W;SQ<X;TQ<Y;UQ<Z;VQ<[;WQ<];XQ<^;YQ<_;ZQ<`;[Q<a;]Q<b;^Q<c;_Q<d;aQ<e;bQ<f;cQ<g;dQ<j;eQ<k;fQ<l;gQ<p;rQ<q;sQ<r<hQ<s<iQ<u<mQ<v<nQ<w<oQ<x<tQ<{<yQ<|<zQ=O<}Q=T8fQ=U8eQ=]=XQ=^9TQ=_9VQ=o=kR=p=lR){&pQ%t!gQ)O%cT)y&p-Q$SiPVX[bklmnopxyz!S!W!X!Y!j!r!s!w!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y$}%P%S%U%}&S'Y(O(`)p+P+r+u-y.a.c.k/v0^0_0c0g1P1_2Y2Z6v6w!t3u'U2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3x3z3|4O4Q4S5t5u!x6Q3s3t3v3w3y3{3}4P4R4T4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r$O8c_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-Q6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6x6y6z7V7j7m7p7u7z8R8S8V8X8Y8d8e8f8g#|=V!y!z!}%c&W)t)v*T*o,T-c-j.s/a/g/k0b0t4U6R7g7q7s7x8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9X9Y9Z9f9w9{9|:P:W:X:]:_:`;a;b=X=k=l!v=i+z-P9T9V:b:c:d:e:f:h:i:k:m:n:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;c;e;g;r<h<m<n<t<y<z<}=P=R!]=j0T1Z9U:g:j:l:o:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;d;f;s<i<o=Q=SQ#r_Q&r#kQ&z#sR)}&sS#q_#s^$Tj3v3w8d8e8f8gS*Q&w7jT9W#k&sQ&}#tR*X'OR&T!|R&Z!}Q&Y!}R,})vQ#|gQ'V#}S'h$h*sQ*Y'SQ*n'iQ*q'mQ*v'rQ+W(PW+[(T)W+g,jQ,l)ZQ-_*fQ-r*zQ-u*}Q-x+QU.O+]+`,gQ.y,ZQ/q-qQ/t-tQ/x-zQ/}.PQ0|/sQ1n0}Q4[5{Q4]5|Q4^5}Q5w6ZQ6W8`Q6X8aQ6Y8bQ:S=bQ:V=cQ:Z=gQ=e=|Q=f=}Q=h>OQ=s>VQ=t>WQ=u>XR=v>Y0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=l!|$Pg#}$h'S'i'm'r(P(T)W)Z*f*s*z*}+Q+]+`+g,Z,g,j-q-t-z.P/s0}5{5|5}6Z8`8a8b=b=c=g=|=}>O>V>W>X>YS$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,o)_Q,s)cQ/X,tQ/y-{R0n/Y|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-y/v0c1P2Y2Z6v6w`+^(T)W+]+`+g,g,j.P!t6u'U2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3x3z3|4O4Q4S5t5u!x;`3s3t3v3w3y3{3}4P4R4T4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r$O=x_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-Q6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6x6y6z7V7j7m7p7u7z8R8S8V8X8Y8d8e8f8g#|>Z!y!z!}%c&W)t)v*T*o,T-c-j.s/a/g/k0b0t4U6R7g7q7s7x8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9X9Y9Z9f9w9{9|:P:W:X:]:_:`;a;b=X=k=l!v>[+z-P9T9V:b:c:d:e:f:h:i:k:m:n:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;c;e;g;r<h<m<n<t<y<z<}=P=R!]>]0T1Z9U:g:j:l:o:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;d;f;s<i<o=Q=SR'p$hQ'o$hR-k*sR$_rR-p*wQ+Y(RQ+Z(SR.W+dS+f(T+gT,i)W,ja+_(T)W+]+`+g,g,j.PQ%f!_Q'b$bQ*c'cQ.T+aQ0Q.QR1S0OQ#eZQ%X!WQ%Z!XQ%]!YQ'}$pQ(s%VQ(t%WQ(u%YQ(v%[Q(}%bQ)S%fQ)[%kQ)f%qQ)k%tQ*b'bQ,m)]Q-]*cQ.U+bQ.V+cQ.d+xQ.n,QQ.o,RQ.p,SQ.u,WQ.x,YQ.|,bQ/S,nQ/{-}Q0R.RQ0S.TQ0U.WQ0Y.gQ0i/OQ0o/]Q1Q/|Q1T0PQ1U0QQ1^0]Q1f0hQ1p1RQ1q1SQ1t1YQ1w1]Q1{1hQ2R1yR2S1zQ$pvW+b(T)W+g,jW-}+[+]+`,gS/|.O.PR1R/}|!aPVX!S!j!r!s!w$}%P%S%U(`+r+u.a.c.k0^0_0g1_Q$dtW+c(T)W+g,jU.R+]+`,gR0P.P0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lR.{,_0w}PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-P-Q-c-j-y.a.c.k.s/a/g/k/v0T0^0_0b0c0g0t1P1Z1_2Y2Z2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2q2r2s2t2u2}3b3e3f3i3m3n3q3s3t3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4X4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v5O5c5f5g5j5n5o5r5t5u6R6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6v6w6x6y6z7V7g7j7m7p7q7s7u7x7z8R8S8V8X8Y8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9T9U9V9X9Y9Z9f9w9{9|:P:W:X:]:_:`:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;a;b;c;d;e;f;g;r;s<h<i<m<n<o<t<y<z<}=P=Q=R=S=X=k=lT$w{${Q(i%PQ(n%SQ(q%UR1d0gQ%b!]Q(m%RQ,U(lQ.r,TQ.t,VQ0a.sR1a0bQ%q!fR)]%rR)e%p",nodeNames:"\u26A0 ( HeredocString EscapeSequence abstract LogicOp array as Boolean break case catch clone const continue default declare do echo else elseif enddeclare endfor endforeach endif endswitch endwhile enum extends final finally fn for foreach from function global goto if implements include include_once LogicOp insteadof interface list match namespace new null LogicOp print require require_once return switch throw trait try unset use var Visibility while LogicOp yield LineComment BlockComment TextInterpolation PhpClose Text PhpOpen Template TextInterpolation EmptyStatement ; } { Block : LabelStatement Name ExpressionStatement ConditionalExpression LogicOp MatchExpression ) ( ParenthesizedExpression MatchBlock MatchArm , => AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["isolate",-4,66,67,70,191,""],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[hT],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!<h#Q#R!=U#R#S!7z#S#T!=u#T#U!7z#U#V!9W#V#o!7z#o#p!Co#p#q!D]#q#r!Er#r#s!F`#s$f$z$f$g&^$g&j!7z&j$I_$z$I_$I`&^$I`$KW$z$KW$KX&^$KX;'S$z;'S;=`&W<%l?HT$z?HT?HU&^?HUO$zP%PV&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zP%kO&wPP%nWOY$zYZ%fZ!a$z!b;'S$z;'S;=`&W<%l~$z~O$z~~%fP&ZP;=`<%l$zV&ed&wP&vUOX$zXY&^YZ'sZ]$z]^&^^p$zpq&^q!^$z!^!_%k!_$f$z$f$g&^$g$I_$z$I_$I`&^$I`$KW$z$KW$KX&^$KX;'S$z;'S;=`&W<%l?HT$z?HT?HU&^?HUO$zV'zW&wP&vUXY(dYZ(d]^(dpq(d$f$g(d$I_$I`(d$KW$KX(d?HT?HU(dU(iW&vUXY(dYZ(d]^(dpq(d$f$g(d$I_$I`(d$KW$KX(d?HT?HU(dR)YW$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`;'S$z;'S;=`&W<%lO$zR)yW$QQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`*c!`;'S$z;'S;=`&W<%lO$zR*jV$QQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV+YV'fS&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV+v]&wP!dUOY,oYZ%fZ],o]^$z^!^,o!^!_-i!_!a,o!a!b/y!b!},o!}#O1f#O;'S,o;'S;=`/s<%lO,oV,vZ&wP!dUOY,oYZ%fZ],o]^$z^!^,o!^!_-i!_!a,o!a!b/y!b;'S,o;'S;=`/s<%lO,oV-nZ!dUOY,oYZ%fZ],o]^$z^!a,o!a!b.a!b;'S,o;'S;=`/s<%l~,o~O,o~~%fU.dWOY.|YZ/nZ].|]^/n^!`.|!a;'S.|;'S;=`/h<%lO.|U/RV!dUOY.|Z].|^!a.|!a!b.a!b;'S.|;'S;=`/h<%lO.|U/kP;=`<%l.|U/sO!dUV/vP;=`<%l,oV0OZ&wPOY,oYZ0qZ],o]^0x^!^,o!^!_-i!_!`,o!`!a$z!a;'S,o;'S;=`/s<%lO,oV0xO&wP!dUV1PV&wP!dUOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV1oZ&wP$dQ!dUOY,oYZ%fZ],o]^$z^!^,o!^!_-i!_!a,o!a!b/y!b;'S,o;'S;=`/s<%lO,o_2i`&wP#dQOY$zYZ%fZ!^$z!^!_%k!_!c$z!c!}3k!}#R$z#R#S3k#S#T$z#T#o3k#o#p4w#p$g$z$g&j3k&j;'S$z;'S;=`&W<%lO$z_3ra&wP#b^OY$zYZ%fZ!Q$z!Q![3k![!^$z!^!_%k!_!c$z!c!}3k!}#R$z#R#S3k#S#T$z#T#o3k#o$g$z$g&j3k&j;'S$z;'S;=`&W<%lO$zV5OV&wP#eUOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR5lW&wP$VQOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR6]V#wQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV6yY#SU&wPOY$zYZ%fZv$zvw7iw!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR7pV#|Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR8^Z&wP%VQOY8VYZ9PZw8Vwx;_x!^8V!^!_;{!_#O8V#O#P<y#P;'S8V;'S;=`>V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR<Q]%VQOY8VYZ9PZw8Vwx;_x!a8V!a!b9m!b#O8V#O#P<y#P;'S8V;'S;=`>V<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!<RV#pU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!<oV#XQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!=]W$OQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!=zZ&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[oT,cT,lT,0,1,2,3,aT],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(i,e)=>iQ(i)<<1,external:iQ},{term:81,get:i=>fT[i]||-1}],tokenPrec:29378});var uT=54,dT=1,pT=55,mT=2,gT=56,$T=3,oQ=4,yT=5,Na=6,dQ=7,pQ=8,mQ=9,gQ=10,QT=11,ST=12,bT=13,mf=57,xT=14,aQ=58,$Q=20,vT=22,yQ=23,wT=24,$f=26,QQ=27,PT=28,kT=31,TT=34,zT=36,XT=37,RT=0,qT=1,_T={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},CT={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},lQ={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function WT(i){return i==45||i==46||i==58||i>=65&&i<=90||i==95||i>=97&&i<=122||i>=161}function SQ(i){return i==9||i==10||i==13||i==32}var OQ=null,cQ=null,hQ=0;function yf(i,e){let t=i.pos+e;if(hQ==t&&cQ==i)return OQ;let n=i.peek(e);for(;SQ(n);)n=i.peek(++e);let r="";for(;WT(n);)r+=String.fromCharCode(n),n=i.peek(++e);return cQ=i,hQ=t,OQ=r?r.toLowerCase():n==ZT||n==VT?void 0:null}var bQ=60,Fa=62,Qf=47,ZT=63,VT=33,AT=45;function fQ(i,e){this.name=i,this.parent=e}var jT=[Na,gQ,dQ,pQ,mQ],YT=new Nn({start:null,shift(i,e,t,n){return jT.indexOf(e)>-1?new fQ(yf(n,1)||"",i):i},reduce(i,e){return e==$Q&&i?i.parent:i},reuse(i,e,t,n){let r=e.type.id;return r==Na||r==zT?new fQ(yf(n,1)||"",i):i},strict:!1}),UT=new $e((i,e)=>{if(i.next!=bQ){i.next<0&&e.context&&i.acceptToken(mf);return}i.advance();let t=i.next==Qf;t&&i.advance();let n=yf(i,0);if(n===void 0)return;if(!n)return i.acceptToken(t?xT:Na);let r=e.context?e.context.name:null;if(t){if(n==r)return i.acceptToken(QT);if(r&&CT[r])return i.acceptToken(mf,-2);if(e.dialectEnabled(RT))return i.acceptToken(ST);for(let s=e.context;s;s=s.parent)if(s.name==n)return;i.acceptToken(bT)}else{if(n=="script")return i.acceptToken(dQ);if(n=="style")return i.acceptToken(pQ);if(n=="textarea")return i.acceptToken(mQ);if(_T.hasOwnProperty(n))return i.acceptToken(gQ);r&&lQ[r]&&lQ[r][n]?i.acceptToken(mf,-1):i.acceptToken(Na)}},{contextual:!0}),MT=new $e(i=>{for(let e=0,t=0;;t++){if(i.next<0){t&&i.acceptToken(aQ);break}if(i.next==AT)e++;else if(i.next==Fa&&e>=2){t>=3&&i.acceptToken(aQ,-2);break}else e=0;i.advance()}});function ET(i){for(;i;i=i.parent)if(i.name=="svg"||i.name=="math")return!0;return!1}var DT=new $e((i,e)=>{if(i.next==Qf&&i.peek(1)==Fa){let t=e.dialectEnabled(qT)||ET(e.context);i.acceptToken(t?yT:oQ,2)}else i.next==Fa&&i.acceptToken(oQ,1)});function Sf(i,e,t){let n=2+i.length;return new $e(r=>{for(let s=0,o=0,a=0;;a++){if(r.next<0){a&&r.acceptToken(e);break}if(s==0&&r.next==bQ||s==1&&r.next==Qf||s>=2&&s<n&&r.next==i.charCodeAt(s-2))s++,o++;else if((s==2||s==n)&&SQ(r.next))o++;else if(s==n&&r.next==Fa){a>o?r.acceptToken(e,-o):r.acceptToken(t,-(o-2));break}else if((r.next==10||r.next==13)&&a){r.acceptToken(e,1);break}else s=o=0;r.advance()}})}var LT=Sf("script",uT,dT),BT=Sf("style",pT,mT),GT=Sf("textarea",gT,$T),IT=_t({"Text RawText":$.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":$.angleBracket,TagName:$.tagName,"MismatchedCloseTag/TagName":[$.tagName,$.invalid],AttributeName:$.attributeName,"AttributeValue UnquotedAttributeValue":$.attributeValue,Is:$.definitionOperator,"EntityReference CharacterReference":$.character,Comment:$.blockComment,ProcessingInst:$.processingInstruction,DoctypeDecl:$.documentMeta}),xQ=At.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%ZQ&rO,59fO%fQ&rO,59iO%qQ&rO,59lO%|Q&rO,59nOOOa'#D^'#D^O&XOaO'#CxO&dOaO,59[OOOb'#D_'#D_O&lObO'#C{O&wObO,59[OOOd'#D`'#D`O'POdO'#DOO'[OdO,59[OOO`'#Da'#DaO'dO!rO,59[O'kQ#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'pO$fO,59oOOO`,59o,59oO'xQ#|O,59qO'}Q#|O,59rOOO`-E7W-E7WO(SQ&rO'#CsOOQW'#DZ'#DZO(bQ&rO1G.wOOOa1G.w1G.wOOO`1G/Y1G/YO(mQ&rO1G/QOOOb1G/Q1G/QO(xQ&rO1G/TOOOd1G/T1G/TO)TQ&rO1G/WOOO`1G/W1G/WO)`Q&rO1G/YOOOa-E7[-E7[O)kQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)pQ#tO'#C|OOOd-E7^-E7^O)uQ#tO'#DPOOO`-E7_-E7_O)zQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O*PQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOO`7+$t7+$tOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rO*[Q#|O,59eO*aQ#|O,59hO*fQ#|O,59kOOO`1G/X1G/XO*kO7[O'#CvO*|OMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O+_O7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+pOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:",]~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OT}OhyO~OS!POT}OhyO~OS!ROT}OhyO~OS!TOT}OhyO~OS}OT}OhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXTgXhgX~OS!fOT!gOhyO~OS!hOT!gOhyO~OS!iOT!gOhyO~OS!jOT!gOhyO~OS!gOT!gOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:YT,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"],["isolate",-11,21,29,30,32,33,35,36,37,38,41,42,"ltr",-3,26,27,39,""]],propSources:[IT],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebhSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXhSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vchS`P!a`!cpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WihSkWc!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QchSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[LT,BT,GT,DT,UT,MT,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:509},tokenPrec:511});function vQ(i,e){let t=Object.create(null);for(let n of i.getChildren(yQ)){let r=n.getChild(wT),s=n.getChild($f)||n.getChild(QQ);r&&(t[e.read(r.from,r.to)]=s?s.type.id==$f?e.read(s.from+1,s.to-1):e.read(s.from,s.to):"")}return t}function uQ(i,e){let t=i.getChild(vT);return t?e.read(t.from,t.to):" "}function gf(i,e,t){let n;for(let r of t)if(!r.attrs||r.attrs(n||(n=vQ(i.node.parent.firstChild,e))))return{parser:r.parser};return null}function bf(i=[],e=[]){let t=[],n=[],r=[],s=[];for(let a of i)(a.tag=="script"?t:a.tag=="style"?n:a.tag=="textarea"?r:s).push(a);let o=e.length?Object.create(null):null;for(let a of e)(o[a.name]||(o[a.name]=[])).push(a);return Oa((a,l)=>{let c=a.type.id;if(c==PT)return gf(a,l,t);if(c==kT)return gf(a,l,n);if(c==TT)return gf(a,l,r);if(c==$Q&&s.length){let O=a.node,h=O.firstChild,f=h&&uQ(h,l),u;if(f){for(let d of s)if(d.tag==f&&(!d.attrs||d.attrs(u||(u=vQ(h,l))))){let p=O.lastChild,m=p.type.id==XT?p.from:O.to;if(m>h.to)return{parser:d.parser,overlay:[{from:h.to,to:m}]}}}}if(o&&c==yQ){let O=a.node,h;if(h=O.firstChild){let f=o[l.read(h.from,h.to)];if(f)for(let u of f){if(u.tagName&&u.tagName!=uQ(O.parent,l))continue;let d=O.lastChild;if(d.type.id==$f){let p=d.from+1,m=d.lastChild,g=d.to-(m&&m.isError?0:1);if(g>p)return{parser:u.parser,overlay:[{from:p,to:g}]}}else if(d.type.id==QQ)return{parser:u.parser,overlay:[{from:d.from,to:d.to}]}}}}return null})}var NT=122,wQ=1,FT=123,HT=124,kQ=2,KT=125,JT=3,ez=4,TQ=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],tz=58,iz=40,zQ=95,nz=91,Ha=45,rz=46,sz=35,oz=37,az=38,lz=92,Oz=10,cz=42;function bs(i){return i>=65&&i<=90||i>=97&&i<=122||i>=161}function xf(i){return i>=48&&i<=57}function PQ(i){return xf(i)||i>=97&&i<=102||i>=65&&i<=70}var XQ=(i,e,t)=>(n,r)=>{for(let s=!1,o=0,a=0;;a++){let{next:l}=n;if(bs(l)||l==Ha||l==zQ||s&&xf(l))!s&&(l!=Ha||a>0)&&(s=!0),o===a&&l==Ha&&o++,n.advance();else if(l==lz&&n.peek(1)!=Oz){if(n.advance(),PQ(n.next)){do n.advance();while(PQ(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();s=!0}else{s&&n.acceptToken(o==2&&r.canShift(kQ)?e:l==iz?t:i);break}}},hz=new $e(XQ(FT,kQ,HT)),fz=new $e(XQ(KT,JT,ez)),uz=new $e(i=>{if(TQ.includes(i.peek(-1))){let{next:e}=i;(bs(e)||e==zQ||e==sz||e==rz||e==cz||e==nz||e==tz&&bs(i.peek(1))||e==Ha||e==az)&&i.acceptToken(NT)}}),dz=new $e(i=>{if(!TQ.includes(i.peek(-1))){let{next:e}=i;if(e==oz&&(i.advance(),i.acceptToken(wQ)),bs(e)){do i.advance();while(bs(i.next)||xf(i.next));i.acceptToken(wQ)}}}),pz=_t({"AtKeyword import charset namespace keyframes media supports":$.definitionKeyword,"from to selector":$.keyword,NamespaceName:$.namespace,KeyframeName:$.labelName,KeyframeRangeName:$.operatorKeyword,TagName:$.tagName,ClassName:$.className,PseudoClassName:$.constant($.className),IdName:$.labelName,"FeatureName PropertyName":$.propertyName,AttributeName:$.attributeName,NumberLiteral:$.number,KeywordQuery:$.keyword,UnaryQueryOp:$.operatorKeyword,"CallTag ValueName":$.atom,VariableName:$.variableName,Callee:$.operatorKeyword,Unit:$.unit,"UniversalSelector NestingSelector":$.definitionOperator,"MatchOp CompareOp":$.compareOperator,"ChildOp SiblingOp, LogicOp":$.logicOperator,BinOp:$.arithmeticOperator,Important:$.modifier,Comment:$.blockComment,ColorLiteral:$.color,"ParenthesizedContent StringLiteral":$.string,":":$.punctuation,"PseudoOp #":$.derefOperator,"; ,":$.separator,"( )":$.paren,"[ ]":$.squareBracket,"{ }":$.brace}),mz={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},gz={__proto__:null,or:98,and:98,not:106,only:106,layer:170},$z={__proto__:null,selector:112,layer:166},yz={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},Qz={__proto__:null,to:207},RQ=At.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"\u26A0 Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[pz],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[uz,dz,hz,fz,1,2,3,4,new wi("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},specialized:[{term:124,get:i=>mz[i]||-1},{term:125,get:i=>gz[i]||-1},{term:4,get:i=>$z[i]||-1},{term:25,get:i=>yz[i]||-1},{term:123,get:i=>Qz[i]||-1}],tokenPrec:1963});var vf=null;function wf(){if(!vf&&typeof document=="object"&&document.body){let{style:i}=document.body,e=[],t=new Set;for(let n in i)n!="cssText"&&n!="cssFloat"&&typeof i[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));vf=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return vf||[]}var qQ=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(i=>({type:"class",label:i})),_Q=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(i=>({type:"keyword",label:i})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(i=>({type:"constant",label:i}))),Sz=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(i=>({type:"type",label:i})),bz=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(i=>({type:"keyword",label:i})),ei=/^(\w[\w-]*|-\w[\w-]*|)$/,xz=/^-(-[\w-]*)?$/;function vz(i,e){var t;if((i.name=="("||i.type.isError)&&(i=i.parent||i),i.name!="ArgList")return!1;let n=(t=i.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}var CQ=new Wn,wz=["Declaration"];function Pz(i){for(let e=i;;){if(e.type.isTop)return e;if(!(e=e.parent))return i}}function WQ(i,e,t){if(e.to-e.from>4096){let n=CQ.get(e);if(n)return n;let r=[],s=new Set,o=e.cursor(K.IncludeAnonymous);if(o.firstChild())do for(let a of WQ(i,o.node,t))s.has(a.label)||(s.add(a.label),r.push(a));while(o.nextSibling());return CQ.set(e,r),r}else{let n=[],r=new Set;return e.cursor().iterate(s=>{var o;if(t(s)&&s.matchContext(wz)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let a=i.sliceString(s.from,s.to);r.has(a)||(r.add(a),n.push({label:a,type:"variable"}))}}),n}}var kz=i=>e=>{let{state:t,pos:n}=e,r=ae(t).resolveInner(n,-1),s=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:wf(),validFor:ei};if(r.name=="ValueName")return{from:r.from,options:_Q,validFor:ei};if(r.name=="PseudoClassName")return{from:r.from,options:qQ,validFor:ei};if(i(r)||(e.explicit||s)&&vz(r,t.doc))return{from:i(r)||s?r.from:n,options:WQ(t.doc,Pz(r),i),validFor:xz};if(r.name=="TagName"){for(let{parent:l}=r;l;l=l.parent)if(l.name=="Block")return{from:r.from,options:wf(),validFor:ei};return{from:r.from,options:Sz,validFor:ei}}if(r.name=="AtKeyword")return{from:r.from,options:bz,validFor:ei};if(!e.explicit)return null;let o=r.resolve(n),a=o.childBefore(n);return a&&a.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:qQ,validFor:ei}:a&&a.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:_Q,validFor:ei}:o.name=="Block"||o.name=="Styles"?{from:n,options:wf(),validFor:ei}:null},Tz=kz(i=>i.name=="VariableName"),xs=Ct.define({name:"css",parser:RQ.configure({props:[Ft.add({Declaration:Zt()}),Ht.add({"Block KeyframeList":Un})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function ZQ(){return new Wt(xs,xs.data.of({autocomplete:Tz}))}var zz=315,Xz=316,VQ=1,Rz=2,qz=3,_z=4,Cz=317,Wz=319,Zz=320,Vz=5,Az=6,jz=0,kf=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],AQ=125,Yz=59,Tf=47,Uz=42,Mz=43,Ez=45,Dz=60,Lz=44,Bz=63,Gz=46,Iz=91,Nz=new Nn({start:!1,shift(i,e){return e==Vz||e==Az||e==Wz?i:e==Zz},strict:!1}),Fz=new $e((i,e)=>{let{next:t}=i;(t==AQ||t==-1||e.context)&&i.acceptToken(Cz)},{contextual:!0,fallback:!0}),Hz=new $e((i,e)=>{let{next:t}=i,n;kf.indexOf(t)>-1||t==Tf&&((n=i.peek(1))==Tf||n==Uz)||t!=AQ&&t!=Yz&&t!=-1&&!e.context&&i.acceptToken(zz)},{contextual:!0}),Kz=new $e((i,e)=>{i.next==Iz&&!e.context&&i.acceptToken(Xz)},{contextual:!0}),Jz=new $e((i,e)=>{let{next:t}=i;if(t==Mz||t==Ez){if(i.advance(),t==i.next){i.advance();let n=!e.context&&e.canShift(VQ);i.acceptToken(n?VQ:Rz)}}else t==Bz&&i.peek(1)==Gz&&(i.advance(),i.advance(),(i.next<48||i.next>57)&&i.acceptToken(qz))},{contextual:!0});function Pf(i,e){return i>=65&&i<=90||i>=97&&i<=122||i==95||i>=192||!e&&i>=48&&i<=57}var e5=new $e((i,e)=>{if(i.next!=Dz||!e.dialectEnabled(jz)||(i.advance(),i.next==Tf))return;let t=0;for(;kf.indexOf(i.next)>-1;)i.advance(),t++;if(Pf(i.next,!0)){for(i.advance(),t++;Pf(i.next,!1);)i.advance(),t++;for(;kf.indexOf(i.next)>-1;)i.advance(),t++;if(i.next==Lz)return;for(let n=0;;n++){if(n==7){if(!Pf(i.next,!0))return;break}if(i.next!="extends".charCodeAt(n))break;i.advance(),t++}}i.acceptToken(_z,-t)}),t5=_t({"get set async static":$.modifier,"for while do if else switch try catch finally return throw break continue default case":$.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":$.operatorKeyword,"let var const using function class extends":$.definitionKeyword,"import export from":$.moduleKeyword,"with debugger new":$.keyword,TemplateString:$.special($.string),super:$.atom,BooleanLiteral:$.bool,this:$.self,null:$.null,Star:$.modifier,VariableName:$.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":$.function($.variableName),VariableDefinition:$.definition($.variableName),Label:$.labelName,PropertyName:$.propertyName,PrivatePropertyName:$.special($.propertyName),"CallExpression/MemberExpression/PropertyName":$.function($.propertyName),"FunctionDeclaration/VariableDefinition":$.function($.definition($.variableName)),"ClassDeclaration/VariableDefinition":$.definition($.className),"NewExpression/VariableName":$.className,PropertyDefinition:$.definition($.propertyName),PrivatePropertyDefinition:$.definition($.special($.propertyName)),UpdateOp:$.updateOperator,"LineComment Hashbang":$.lineComment,BlockComment:$.blockComment,Number:$.number,String:$.string,Escape:$.escape,ArithOp:$.arithmeticOperator,LogicOp:$.logicOperator,BitOp:$.bitwiseOperator,CompareOp:$.compareOperator,RegExp:$.regexp,Equals:$.definitionOperator,Arrow:$.function($.punctuation),": Spread":$.punctuation,"( )":$.paren,"[ ]":$.squareBracket,"{ }":$.brace,"InterpolationStart InterpolationEnd":$.special($.brace),".":$.derefOperator,", ;":$.separator,"@":$.meta,TypeName:$.typeName,TypeDefinition:$.definition($.typeName),"type enum interface implements namespace module declare":$.definitionKeyword,"abstract global Privacy readonly override":$.modifier,"is keyof unique infer asserts":$.operatorKeyword,JSXAttributeValue:$.attributeValue,JSXText:$.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":$.angleBracket,"JSXIdentifier JSXNameSpacedName":$.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":$.attributeName,"JSXBuiltin/JSXIdentifier":$.standard($.tagName)}),i5={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,for:474,of:483,while:486,with:490,do:494,if:498,else:500,switch:504,case:510,try:516,catch:520,finally:524,return:528,throw:532,break:536,continue:540,debugger:544},n5={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},r5={__proto__:null,"<":193},jQ=At.deserialize({version:14,states:"$EOQ%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Ik'#IkO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JqO6[Q!0MxO'#JrO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO7eQMhO'#F|O9[Q`O'#F{OOQ!0Lf'#Jr'#JrOOQ!0Lb'#Jq'#JqO9aQ`O'#GwOOQ['#K^'#K^O9lQ`O'#IXO9qQ!0LrO'#IYOOQ['#J_'#J_OOQ['#I^'#I^Q`QlOOQ`QlOOO9yQ!L^O'#DvO:QQlO'#EOO:XQlO'#EQO9gQ`O'#GsO:`QMhO'#CoO:nQ`O'#EnO:yQ`O'#EyO;OQMhO'#FeO;mQ`O'#GsOOQO'#K_'#K_O;rQ`O'#K_O<QQ`O'#G{O<QQ`O'#G|O<QQ`O'#HOO9gQ`O'#HRO<wQ`O'#HUO>`Q`O'#CeO>pQ`O'#HbO>xQ`O'#HhO>xQ`O'#HjO`QlO'#HlO>xQ`O'#HnO>xQ`O'#HqO>}Q`O'#HwO?SQ!0LsO'#H}O%[QlO'#IPO?_Q!0LsO'#IRO?jQ!0LsO'#ITO9qQ!0LrO'#IVO?uQ!0MxO'#CiO@wQpO'#DlQOQ`OOO%[QlO'#EQOA_Q`O'#ETO:`QMhO'#EnOAjQ`O'#EnOAuQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Ju'#JuO%[QlO'#JuOOQO'#Jx'#JxOOQO'#Ig'#IgOBuQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J|'#J|OCqQ!0MSO'#EgOC{QpO'#EWOOQO'#Jw'#JwODaQpO'#JxOEnQpO'#EWOC{QpO'#EgPE{O&2DjO'#CbPOOO)CD|)CD|OOOO'#I_'#I_OFWO#tO,59UOOQ!0Lh,59U,59UOOOO'#I`'#I`OFfO&jO,59UOFtQ!L^O'#DcOOOO'#Ib'#IbOF{O#@ItO,59{OOQ!0Lf,59{,59{OGZQlO'#IcOGnQ`O'#JsOImQ!fO'#JsO+}QlO'#JsOItQ`O,5:ROJ[Q`O'#EpOJiQ`O'#KSOJtQ`O'#KROJtQ`O'#KROJ|Q`O,5;^OKRQ`O'#KQOOQ!0Ln,5:^,5:^OKYQlO,5:^OMWQ!0MxO,5:fOMwQ`O,5:nONbQ!0LrO'#KPONiQ`O'#KOO9aQ`O'#KOON}Q`O'#KOO! VQ`O,5;]O! [Q`O'#KOO!#aQ!fO'#JrOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$PQ!fO,5:sOOQS'#Jy'#JyOOQO-E<i-E<iO9gQ`O,5=_O!$gQ`O,5=_O!$lQlO,5;ZO!&oQMhO'#EkO!(YQ`O,5;ZO!(_QlO'#DyO!(iQpO,5;dO!(qQpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)PQlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IoO!+SQ!0LrO,5<iO%[QlO,5;eO!&oQMhO,5;eO!+qQMhO,5;eO!-cQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-jQ,UO'#FjO!.gQ,UO'#KWO!.RQ,UO'#KWO!.nQ,UO'#KWOOQO'#KW'#KWO!/SQ,UO,5<SOOOW,5<`,5<`O!/eQlO'#FvOOOW'#In'#InO7VO7dO,5<QO!/lQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0]Q$IUO'#CyOOQ!0Lh'#C}'#C}O!0pO#@ItO'#DRO!1^QMjO,5<eO!1eQ`O,5<hO!3QQ(CWO'#GXO!3_Q`O'#GYO!3dQ`O'#GYO!5SQ(CWO'#G^O!6XQpO'#GbOOQO'#Gn'#GnO!+xQMhO'#GmOOQO'#Gp'#GpO!+xQMhO'#GoO!6zQ$IUO'#JkOOQ!0Lh'#Jk'#JkO!7UQ`O'#JjO!7dQ`O'#JiO!7lQ`O'#CuOOQ!0Lh'#C{'#C{O!7}Q`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO1SQ`O'#DZO!+xQMhO'#GPO!+xQMhO'#GRO!8SQ`O'#GTO!8XQ`O'#GUO!3dQ`O'#G[O!+xQMhO'#GaO<QQ`O'#JjO!8^Q`O'#EqO!8{Q`O,5<gOOQ!0Lb'#Cr'#CrO!9TQ`O'#ErO!9}QpO'#EsOOQ!0Lb'#KQ'#KQO!:UQ!0LrO'#K`O9qQ!0LrO,5=cO`QlO,5>sOOQ['#Jg'#JgOOQ[,5>t,5>tOOQ[-E<[-E<[O!<TQ!0MxO,5:bO!9xQpO,5:`O!>nQ!0MxO,5:jO%[QlO,5:jO!AUQ!0MxO,5:lOOQO,5@y,5@yO!AuQMhO,5=_O!BTQ!0LrO'#JhO9[Q`O'#JhO!BfQ!0LrO,59ZO!BqQpO,59ZO!ByQMhO,59ZO:`QMhO,59ZO!CUQ`O,5;ZO!C^Q`O'#HaO!CrQ`O'#KcO%[QlO,5;}O!9xQpO,5<PO!CzQ`O,5=zO!DPQ`O,5=zO!DUQ`O,5=zO9qQ!0LrO,5=zO<QQ`O,5=jOOQO'#Cy'#CyO!DdQpO,5=gO!DlQMhO,5=hO!DwQ`O,5=jO!D|Q!bO,5=mO!EUQ`O'#K_O>}Q`O'#HWO9gQ`O'#HYO!EZQ`O'#HYO:`QMhO'#H[O!E`Q`O'#H[OOQ[,5=p,5=pO!EeQ`O'#H]O!EvQ`O'#CoO!E{Q`O,59PO!FVQ`O,59PO!H[QlO,59POOQ[,59P,59PO!HlQ!0LrO,59PO%[QlO,59PO!JwQlO'#HdOOQ['#He'#HeOOQ['#Hf'#HfO`QlO,5=|O!K_Q`O,5=|O`QlO,5>SO`QlO,5>UO!KdQ`O,5>WO`QlO,5>YO!KiQ`O,5>]O!KnQlO,5>cOOQ[,5>i,5>iO%[QlO,5>iO9qQ!0LrO,5>kOOQ[,5>m,5>mO# xQ`O,5>mOOQ[,5>o,5>oO# xQ`O,5>oOOQ[,5>q,5>qO#!fQpO'#D_O%[QlO'#JuO##XQpO'#JuO##cQpO'#DmO##tQpO'#DmO#&VQlO'#DmO#&^Q`O'#JtO#&fQ`O,5:WO#&kQ`O'#EtO#&yQ`O'#KTO#'RQ`O,5;_O#'WQpO'#DmO#'eQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#'lQ`O,5:oO>}Q`O,5;YO!BqQpO,5;YO!ByQMhO,5;YO:`QMhO,5;YO#'tQ`O,5@aO#'yQ07dO,5:sOOQO-E<e-E<eO#)PQ!0MSO,5;ROC{QpO,5:rO#)ZQpO,5:rOC{QpO,5;RO!BfQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#)hQ!0LrO,5;RO#)sQ!0LrO,5;RO!BqQpO,5:rOOQO,5;X,5;XO#*RQ!0LrO,5;RPOOO'#I]'#I]P#*gO&2DjO,58|POOO,58|,58|OOOO-E<]-E<]OOQ!0Lh1G.p1G.pOOOO-E<^-E<^OOOO,59},59}O#*rQ!bO,59}OOOO-E<`-E<`OOQ!0Lf1G/g1G/gO#*wQ!fO,5>}O+}QlO,5>}OOQO,5?T,5?TO#+RQlO'#IcOOQO-E<a-E<aO#+`Q`O,5@_O#+hQ!fO,5@_O#+oQ`O,5@mOOQ!0Lf1G/m1G/mO%[QlO,5@nO#+wQ`O'#IiOOQO-E<g-E<gO#+oQ`O,5@mOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@kO#,]Q!0LrO,5@kO#,nQ!0LrO,5@kO#,uQ`O,5@jO9aQ`O,5@jO#,}Q`O,5@jO#-]Q`O'#IlO#,uQ`O,5@jOOQ!0Lb1G0w1G0wO!(iQpO,5:uO!(tQpO,5:uOOQS,5:w,5:wO#-}QdO,5:wO#.VQMhO1G2yO9gQ`O1G2yOOQ!0Lf1G0u1G0uO#.eQ!0MxO1G0uO#/jQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0WQ!0MzO'#JkO!$lQlO1G0uO#2cQ!fO'#JvO%[QlO'#JvO#2mQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#2rQ`O1G1OO#5WQ!0MxO1G1PO#5_Q!0MxO1G1PO#7uQ!0MxO1G1PO#7|Q!0MxO1G1PO#:dQ!0MxO1G1PO#<zQ!0MxO1G1PO#=RQ!0MxO1G1PO#=YQ!0MxO1G1PO#?pQ!0MxO1G1PO#?wQ!0MxO1G1PO#BUQ?MtO'#CiO#DPQ?MtO1G1`O#DWQ?MtO'#JrO#DkQ!0MxO,5?ZOOQ!0Lb-E<m-E<mO#FxQ!0MxO1G1PO#GuQ!0MzO1G1POOQ!0Lf1G1P1G1PO#HxQMjO'#J{O#ISQ`O,5:xO#IXQ!0MxO1G1cO#I{Q,UO,5<WO#JTQ,UO,5<XO#J]Q,UO'#FoO#JtQ`O'#FnOOQO'#KX'#KXOOQO'#Im'#ImO#JyQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#K[Q?MtO'#JqO#KfQ`O,5<bO!)PQlO,5<bOOOW-E<l-E<lOOQ!0Lf1G1l1G1lO#KkQpO'#KWOOQ!0Lf,5<d,5<dO#KsQpO,5<dO#KxQMhO'#DTOOOO'#Ia'#IaO#LPO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8XQ`O'#IqO#L[Q`O,5<zOOQ!0Lh,5<w,5<wO!+xQMhO'#ItO#LxQMjO,5=XO!+xQMhO'#IvO#MkQMjO,5=ZO!&oQMhO,5=]OOQO1G2S1G2SO#MuQ!dO'#CrO#NYQ(CWO'#ErO$ _QpO'#GbO$ uQ!dO,5<sO$ |Q`O'#KZO9aQ`O'#KZO$![Q`O,5<uO!+xQMhO,5<tO$!aQ`O'#GZO$!rQ`O,5<tO$!wQ!dO'#GWO$#UQ!dO'#K[O$#`Q`O'#K[O!&oQMhO'#K[O$#eQ`O,5<xO$#jQlO'#JuO$#tQpO'#GcO##tQpO'#GcO$$VQ`O'#GgO!3dQ`O'#GkO$$[Q!0LrO'#IsO$$gQpO,5<|OOQ!0Lp,5<|,5<|O$$nQpO'#GcO$${QpO'#GdO$%^QpO'#GdO$%cQMjO,5=XO$%sQMjO,5=ZOOQ!0Lh,5=^,5=^O!+xQMhO,5@UO!+xQMhO,5@UO$&TQ`O'#IxO$&iQ`O,5@TO$&qQ`O,59aOOQ!0Lh,59i,59iO$'hQ$IYO,59uOOQ!0Lh'#Jo'#JoO$(ZQMjO,5<kO$(|QMjO,5<mO@oQ`O,5<oOOQ!0Lh,5<p,5<pO$)WQ`O,5<vO$)]QMjO,5<{O$)mQ`O,5@UO$){Q`O'#KOO!$lQlO1G2RO$*QQ`O1G2RO9aQ`O'#KRO9aQ`O'#EtO%[QlO'#EtO9aQ`O'#IzO$*VQ!0LrO,5@zOOQ[1G2}1G2}OOQ[1G4_1G4_OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$,XQ!0MxO1G0UOOQ[1G2y1G2yO!&oQMhO1G2yO%[QlO1G2yO#.YQ`O1G2yO$.]QMhO'#EkOOQ!0Lb,5@S,5@SO$.jQ!0LrO,5@SOOQ[1G.u1G.uO!BfQ!0LrO1G.uO!BqQpO1G.uO!ByQMhO1G.uO$.{Q`O1G0uO$/QQ`O'#CiO$/]Q`O'#KdO$/eQ`O,5={O$/jQ`O'#KdO$/oQ`O'#KdO$/}Q`O'#JQO$0]Q`O,5@}O$0eQ!fO1G1iOOQ!0Lf1G1k1G1kO9gQ`O1G3fO@oQ`O1G3fO$0lQ`O1G3fO$0qQ`O1G3fOOQ[1G3f1G3fO!DwQ`O1G3UO!&oQMhO1G3RO$0vQ`O1G3ROOQ[1G3S1G3SO!&oQMhO1G3SO$0{Q`O1G3SO$1TQpO'#HQOOQ[1G3U1G3UO!6SQpO'#I|O!D|Q!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$1]QMhO,5=tO9gQ`O,5=tO$$VQ`O,5=vO9[Q`O,5=vO!BqQpO,5=vO!ByQMhO,5=vO:`QMhO,5=vO$1kQ`O'#KbO$1vQ`O,5=wOOQ[1G.k1G.kO$1{Q!0LrO1G.kO@oQ`O1G.kO$2WQ`O1G.kO9qQ!0LrO1G.kO$4`Q!fO,5APO$4mQ`O,5APO9aQ`O,5APO$4xQlO,5>OO$5PQ`O,5>OOOQ[1G3h1G3hO`QlO1G3hOOQ[1G3n1G3nOOQ[1G3p1G3pO>xQ`O1G3rO$5UQlO1G3tO$9YQlO'#HsOOQ[1G3w1G3wO$9gQ`O'#HyO>}Q`O'#H{OOQ[1G3}1G3}O$9oQlO1G3}O9qQ!0LrO1G4TOOQ[1G4V1G4VOOQ!0Lb'#G_'#G_O9qQ!0LrO1G4XO9qQ!0LrO1G4ZO$=vQ`O,5@aO!)PQlO,5;`O9aQ`O,5;`O>}Q`O,5:XO!)PQlO,5:XO!BqQpO,5:XO$={Q?MtO,5:XOOQO,5;`,5;`O$>VQpO'#IdO$>mQ`O,5@`OOQ!0Lf1G/r1G/rO$>uQpO'#IjO$?PQ`O,5@oOOQ!0Lb1G0y1G0yO##tQpO,5:XOOQO'#If'#IfO$?XQpO,5:qOOQ!0Ln,5:q,5:qO#'oQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO>}Q`O1G0tO!BqQpO1G0tO!ByQMhO1G0tOOQ!0Lb1G5{1G5{O!BfQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$?`Q!0LrO1G0mO$?kQ!0LrO1G0mO!BqQpO1G0^OC{QpO1G0^O$?yQ!0LrO1G0mOOQO1G0^1G0^O$@_Q!0MxO1G0mPOOO-E<Z-E<ZPOOO1G.h1G.hOOOO1G/i1G/iO$@iQ!bO,5<iO$@qQ!fO1G4iOOQO1G4o1G4oO%[QlO,5>}O$@{Q`O1G5yO$ATQ`O1G6XO$A]Q!fO1G6YO9aQ`O,5?TO$AgQ!0MxO1G6VO%[QlO1G6VO$AwQ!0LrO1G6VO$BYQ`O1G6UO$BYQ`O1G6UO9aQ`O1G6UO$BbQ`O,5?WO9aQ`O,5?WOOQO,5?W,5?WO$BvQ`O,5?WO$){Q`O,5?WOOQO-E<j-E<jOOQS1G0a1G0aOOQS1G0c1G0cO#.QQ`O1G0cOOQ[7+(e7+(eO!&oQMhO7+(eO%[QlO7+(eO$CUQ`O7+(eO$CaQMhO7+(eO$CoQ!0MzO,5=XO$EzQ!0MzO,5=ZO$HVQ!0MzO,5=XO$JhQ!0MzO,5=ZO$LyQ!0MzO,59uO% OQ!0MzO,5<kO%#ZQ!0MzO,5<mO%%fQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%'wQ!0MxO7+&aO%(kQlO'#IeO%(xQ`O,5@bO%)QQ!fO,5@bOOQ!0Lf1G0P1G0PO%)[Q`O7+&jOOQ!0Lf7+&j7+&jO%)aQ?MtO,5:fO%[QlO7+&zO%)kQ?MtO,5:bO%)xQ?MtO,5:jO%*SQ?MtO,5:lO%*^QMhO'#IhO%*hQ`O,5@gOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%*pQ!jO,5<ZO!)PQlO,5<YOOQO-E<k-E<kOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%*{Q`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%+QQ!dO,59oOOOO-E<_-E<_OOQ!0Lh1G/X1G/XO%+XQ!0MxO7+'kOOQ!0Lh,5?],5?]O%+{QMhO1G2fP%,SQ`O'#IqPOQ!0Lh-E<o-E<oO%,pQMjO,5?`OOQ!0Lh-E<r-E<rO%-cQMjO,5?bOOQ!0Lh-E<t-E<tO%-mQ!dO1G2wO%-tQ!dO'#CrO%.[QMhO'#KRO$#jQlO'#JuOOQ!0Lh1G2_1G2_O%.cQ`O'#IpO%.wQ`O,5@uO%.wQ`O,5@uO%/PQ`O,5@uO%/[Q`O,5@uOOQO1G2a1G2aO%/jQMjO1G2`O!+xQMhO1G2`O%/zQ(CWO'#IrO%0XQ`O,5@vO!&oQMhO,5@vO%0aQ!dO,5@vOOQ!0Lh1G2d1G2dO%2qQ!fO'#CiO%2{Q`O,5=POOQ!0Lb,5<},5<}O%3TQpO,5<}OOQ!0Lb,5=O,5=OOClQ`O,5<}O%3`QpO,5<}OOQ!0Lb,5=R,5=RO$){Q`O,5=VOOQO,5?_,5?_OOQO-E<q-E<qOOQ!0Lp1G2h1G2hO##tQpO,5<}O$#jQlO,5=PO%3nQ`O,5=OO%3yQpO,5=OO!+xQMhO'#ItO%4sQMjO1G2sO!+xQMhO'#IvO%5fQMjO1G2uO%5pQMjO1G5pO%5zQMjO1G5pOOQO,5?d,5?dOOQO-E<v-E<vOOQO1G.{1G.{O!9xQpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%6XQ`O1G2ZO!+xQMhO1G2bO!+xQMhO1G5pO!+xQMhO1G5pO%6^Q!0MxO7+'mOOQ!0Lf7+'m7+'mO!$lQlO7+'mO%7QQ`O,5;`OOQ!0Lb,5?f,5?fOOQ!0Lb-E<x-E<xO%7VQ!dO'#K]O#'oQ`O7+(eO4UQ!fO7+(eO$CXQ`O7+(eO%7aQ!0MvO'#CiO%7tQ!0MvO,5=SO%8fQ`O,5=SO%8nQ`O,5=SOOQ!0Lb1G5n1G5nOOQ[7+$a7+$aO!BfQ!0LrO7+$aO!BqQpO7+$aO!$lQlO7+&aO%8sQ`O'#JPO%9[Q`O,5AOOOQO1G3g1G3gO9gQ`O,5AOO%9[Q`O,5AOO%9dQ`O,5AOOOQO,5?l,5?lOOQO-E=O-E=OOOQ!0Lf7+'T7+'TO%9iQ`O7+)QO9qQ!0LrO7+)QO9gQ`O7+)QO@oQ`O7+)QOOQ[7+(p7+(pO%9nQ!0MvO7+(mO!&oQMhO7+(mO!DrQ`O7+(nOOQ[7+(n7+(nO!&oQMhO7+(nO%9xQ`O'#KaO%:TQ`O,5=lOOQO,5?h,5?hOOQO-E<z-E<zOOQ[7+(s7+(sO%;gQpO'#HZOOQ[1G3`1G3`O!&oQMhO1G3`O%[QlO1G3`O%;nQ`O1G3`O%;yQMhO1G3`O9qQ!0LrO1G3bO$$VQ`O1G3bO9[Q`O1G3bO!BqQpO1G3bO!ByQMhO1G3bO%<XQ`O'#JOO%<mQ`O,5@|O%<uQpO,5@|OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@oQ`O7+$VO9qQ!0LrO7+$VO%=QQ`O7+$VO%[QlO1G6kO%[QlO1G6lO%=VQ!0LrO1G6kO%=aQlO1G3jO%=hQ`O1G3jO%=mQlO1G3jOOQ[7+)S7+)SO9qQ!0LrO7+)^O`QlO7+)`OOQ['#Kg'#KgOOQ['#JR'#JRO%=tQlO,5>_OOQ[,5>_,5>_O%[QlO'#HtO%>RQ`O'#HvOOQ[,5>e,5>eO9aQ`O,5>eOOQ[,5>g,5>gOOQ[7+)i7+)iOOQ[7+)o7+)oOOQ[7+)s7+)sOOQ[7+)u7+)uO%>WQpO1G5{O%>rQ?MtO1G0zO%>|Q`O1G0zOOQO1G/s1G/sO%?XQ?MtO1G/sO>}Q`O1G/sO!)PQlO'#DmOOQO,5?O,5?OOOQO-E<b-E<bOOQO,5?U,5?UOOQO-E<h-E<hO!BqQpO1G/sOOQO-E<d-E<dOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#'oQ`O7+%uOOQ!0Lf7+&`7+&`O>}Q`O7+&`O!BqQpO7+&`OOQO7+%x7+%xO$@_Q!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%?cQ!0LrO7+&XO!BfQ!0LrO7+%xO!BqQpO7+%xO%?nQ!0LrO7+&XO%?|Q!0MxO7++qO%[QlO7++qO%@^Q`O7++pO%@^Q`O7++pOOQO1G4r1G4rO9aQ`O1G4rO%@fQ`O1G4rOOQS7+%}7+%}O#'oQ`O<<LPO4UQ!fO<<LPO%@tQ`O<<LPOOQ[<<LP<<LPO!&oQMhO<<LPO%[QlO<<LPO%@|Q`O<<LPO%AXQ!0MzO,5?`O%CdQ!0MzO,5?bO%EoQ!0MzO1G2`O%HQQ!0MzO1G2sO%J]Q!0MzO1G2uO%LhQ!fO,5?PO%[QlO,5?POOQO-E<c-E<cO%LrQ`O1G5|OOQ!0Lf<<JU<<JUO%LzQ?MtO1G0uO& RQ?MtO1G1PO& YQ?MtO1G1PO&#ZQ?MtO1G1PO&#bQ?MtO1G1PO&%cQ?MtO1G1PO&'dQ?MtO1G1PO&'kQ?MtO1G1PO&'rQ?MtO1G1PO&)sQ?MtO1G1PO&)zQ?MtO1G1PO&*RQ!0MxO<<JfO&+yQ?MtO1G1PO&,vQ?MvO1G1PO&-yQ?MvO'#JkO&0PQ?MtO1G1cO&0^Q?MtO1G0UO&0hQMjO,5?SOOQO-E<f-E<fO!)PQlO'#FqOOQO'#KY'#KYOOQO1G1u1G1uO&0rQ`O1G1tO&0wQ?MtO,5?ZOOOW7+'h7+'hOOOO1G/Z1G/ZO&1RQ!dO1G4wOOQ!0Lh7+(Q7+(QP!&oQMhO,5?]O!+xQMhO7+(cO&1YQ`O,5?[O9aQ`O,5?[OOQO-E<n-E<nO&1hQ`O1G6aO&1hQ`O1G6aO&1pQ`O1G6aO&1{QMjO7+'zO&2]Q!dO,5?^O&2gQ`O,5?^O!&oQMhO,5?^OOQO-E<p-E<pO&2lQ!dO1G6bO&2vQ`O1G6bO&3OQ`O1G2kO!&oQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%3TQpO1G2iO!BqQpO1G2iOClQ`O1G2iOOQ!0Lb1G2q1G2qO&3TQpO1G2iO&3cQ`O1G2kO$){Q`O1G2jOClQ`O1G2jO$#jQlO1G2kO&3kQ`O1G2jO&4_QMjO,5?`OOQ!0Lh-E<s-E<sO&5QQMjO,5?bOOQ!0Lh-E<u-E<uO!+xQMhO7++[OOQ!0Lh1G/c1G/cO&5[Q`O1G/cOOQ!0Lh7+'u7+'uO&5aQMjO7+'|O&5qQMjO7++[O&5{QMjO7++[O&6YQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&6|Q`O1G0zO!&oQMhO'#IyO&7RQ`O,5@wO&9TQ!fO<<LPO!&oQMhO1G2nO&9[Q!0LrO1G2nOOQ[<<G{<<G{O!BfQ!0LrO<<G{O&9mQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?k,5?kO&:aQ`O,5?kO&:fQ`O,5?kOOQO-E<}-E<}O&:tQ`O1G6jO&:tQ`O1G6jO9gQ`O1G6jO@oQ`O<<LlOOQ[<<Ll<<LlO&:|Q`O<<LlO9qQ!0LrO<<LlOOQ[<<LX<<LXO%9nQ!0MvO<<LXOOQ[<<LY<<LYO!DrQ`O<<LYO&;RQpO'#I{O&;^Q`O,5@{O!)PQlO,5@{OOQ[1G3W1G3WOOQO'#I}'#I}O9qQ!0LrO'#I}O&;fQpO,5=uOOQ[,5=u,5=uO&;mQpO'#EgO&;tQpO'#GeO&;yQ`O7+(zO&<OQ`O7+(zOOQ[7+(z7+(zO!&oQMhO7+(zO%[QlO7+(zO&<WQ`O7+(zOOQ[7+(|7+(|O9qQ!0LrO7+(|O$$VQ`O7+(|O9[Q`O7+(|O!BqQpO7+(|O&<cQ`O,5?jOOQO-E<|-E<|OOQO'#H^'#H^O&<nQ`O1G6hO9qQ!0LrO<<GqOOQ[<<Gq<<GqO@oQ`O<<GqO&<vQ`O7+,VO&<{Q`O7+,WO%[QlO7+,VO%[QlO7+,WOOQ[7+)U7+)UO&=QQ`O7+)UO&=VQlO7+)UO&=^Q`O7+)UOOQ[<<Lx<<LxOOQ[<<Lz<<LzOOQ[-E=P-E=POOQ[1G3y1G3yO&=cQ`O,5>`OOQ[,5>b,5>bO&=hQ`O1G4PO9aQ`O7+&fO!)PQlO7+&fOOQO7+%_7+%_O&=mQ?MtO1G6YO>}Q`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO>}Q`O<<IzOOQO<<Is<<IsO$@_Q!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!BfQ!0LrO<<IdO&=wQ!0LrO<<IsO&>SQ!0MxO<= ]O&>dQ`O<= [OOQO7+*^7+*^O9aQ`O7+*^OOQ[ANAkANAkO&>lQ!fOANAkO!&oQMhOANAkO#'oQ`OANAkO4UQ!fOANAkO&>sQ`OANAkO%[QlOANAkO&>{Q!0MzO7+'zO&A^Q!0MzO,5?`O&CiQ!0MzO,5?bO&EtQ!0MzO7+'|O&HVQ!fO1G4kO&HaQ?MtO7+&aO&JeQ?MvO,5=XO&LlQ?MvO,5=ZO&L|Q?MvO,5=XO&M^Q?MvO,5=ZO&MnQ?MvO,59uO' tQ?MvO,5<kO'#wQ?MvO,5<mO'&]Q?MvO,5<{O'(RQ?MtO7+'kO'(`Q?MtO7+'mO'(mQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*c7+*cO'(rQMjO<<K}OOQO1G4v1G4vO'(yQ`O1G4vO')UQ`O1G4vO')dQ`O7++{O')dQ`O7++{O!&oQMhO1G4xO')lQ!dO1G4xO')vQ`O7++|O'*OQ`O7+(VO'*ZQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!BqQpO7+(TOClQ`O7+(TO'*eQ`O7+(VO!&oQMhO7+(VO$){Q`O7+(UO'*jQ`O7+(VOClQ`O7+(UO'*rQMjO<<NvOOQ!0Lh7+$}7+$}O!+xQMhO<<NvO'*|Q!dO,5?eOOQO-E<w-E<wO'+WQ!0MvO7+(YO!&oQMhO7+(YOOQ[AN=gAN=gO9gQ`O1G5VOOQO1G5V1G5VO'+hQ`O1G5VO'+mQ`O7+,UO'+mQ`O7+,UO9qQ!0LrOANBWO@oQ`OANBWOOQ[ANBWANBWOOQ[ANAsANAsOOQ[ANAtANAtO'+uQ`O,5?gOOQO-E<y-E<yO',QQ?MtO1G6gOOQO,5?i,5?iOOQO-E<{-E<{OOQ[1G3a1G3aO',[Q`O,5=POOQ[<<Lf<<LfO!&oQMhO<<LfO&;yQ`O<<LfO',aQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9qQ!0LrO<<LhO$$VQ`O<<LhO9[Q`O<<LhO',iQpO1G5UO',tQ`O7+,SOOQ[AN=]AN=]O9qQ!0LrOAN=]OOQ[<= q<= qOOQ[<= r<= rO',|Q`O<= qO'-RQ`O<= rOOQ[<<Lp<<LpO'-WQ`O<<LpO'-]QlO<<LpOOQ[1G3z1G3zO>}Q`O7+)kO'-dQ`O<<JQO'-oQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$@_Q!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<Mx<<MxOOQ[G27VG27VO!&oQMhOG27VO#'oQ`OG27VO'-yQ!fOG27VO4UQ!fOG27VO'.QQ`OG27VO'.YQ?MtO<<JfO'.gQ?MvO1G2`O'0]Q?MvO,5?`O'2`Q?MvO,5?bO'4cQ?MvO1G2sO'6fQ?MvO1G2uO'8iQ?MtO<<KXO'8vQ?MtO<<I{OOQO1G1w1G1wO!+xQMhOANAiOOQO7+*b7+*bO'9TQ`O7+*bO'9`Q`O<= gO'9hQ!dO7+*dOOQ!0Lb<<Kq<<KqO$){Q`O<<KqOClQ`O<<KqO'9rQ`O<<KqO!&oQMhO<<KqOOQ!0Lb<<Ko<<KoO!BqQpO<<KoO'9}Q!dO<<KqOOQ!0Lb<<Kp<<KpO':XQ`O<<KqO!&oQMhO<<KqO$){Q`O<<KpO':^QMjOANDbO':hQ!0MvO<<KtOOQO7+*q7+*qO9gQ`O7+*qO':xQ`O<= pOOQ[G27rG27rO9qQ!0LrOG27rO!)PQlO1G5RO';QQ`O7+,RO';YQ`O1G2kO&;yQ`OANBQOOQ[ANBQANBQO!&oQMhOANBQO';_Q`OANBQOOQ[ANBSANBSO9qQ!0LrOANBSO$$VQ`OANBSOOQO'#H_'#H_OOQO7+*p7+*pOOQ[G22wG22wOOQ[ANE]ANE]OOQ[ANE^ANE^OOQ[ANB[ANB[O';gQ`OANB[OOQ[<<MV<<MVO!)PQlOAN?lOOQOG24yG24yO$@_Q!0MxOG24yO#'oQ`OLD,qOOQ[LD,qLD,qO!&oQMhOLD,qO';lQ!fOLD,qO';sQ?MvO7+'zO'=iQ?MvO,5?`O'?lQ?MvO,5?bO'AoQ?MvO7+'|O'CeQMjOG27TOOQO<<M|<<M|OOQ!0LbANA]ANA]O$){Q`OANA]OClQ`OANA]O'CuQ!dOANA]OOQ!0LbANAZANAZO'C|Q`OANA]O!&oQMhOANA]O'DXQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N]<<N]OOQ[LD-^LD-^O'DcQ?MtO7+*mOOQO'#Gf'#GfOOQ[G27lG27lO&;yQ`OG27lO!&oQMhOG27lOOQ[G27nG27nO9qQ!0LrOG27nOOQ[G27vG27vO'DmQ?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#'oQ`O!$(!]O!&oQMhO!$(!]O'DwQ!0MzOG27TOOQ!0LbG26wG26wO$){Q`OG26wO'GYQ`OG26wOClQ`OG26wO'GeQ!dOG26wO!&oQMhOG26wOOQ[LD-WLD-WO&;yQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#'oQ`O!)9EwOOQ!0LbLD,cLD,cO$){Q`OLD,cOClQ`OLD,cO'GlQ`OLD,cO'GwQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'HOQ?MvOG27TOOQ!0Lb!$( }!$( }O$){Q`O!$( }OClQ`O!$( }O'ItQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$){Q`O!)9EiOClQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$){Q`O!.K;TOOQ!0Lb!4/0o!4/0oO!)PQlO'#DzO1PQ`O'#EXO'JPQ!fO'#JqO'JWQ!L^O'#DvO'J_QlO'#EOO'JfQ!fO'#CiO'L|Q!fO'#CiO!)PQlO'#EQO'M^QlO,5;ZO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO,5;eO!)PQlO'#IoO( aQ`O,5<iO!)PQlO,5;eO( iQMhO,5;eO(#SQMhO,5;eO!)PQlO,5;wO!&oQMhO'#GmO( iQMhO'#GmO!&oQMhO'#GoO( iQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&oQMhO'#GPO( iQMhO'#GPO!&oQMhO'#GRO( iQMhO'#GRO!&oQMhO'#GaO( iQMhO'#GaO!)PQlO,5:jO(#ZQpO'#D_O(#eQpO'#JuO!)PQlO,5@nO'M^QlO1G0uO(#oQ?MtO'#CiO!)PQlO1G2PO!&oQMhO'#ItO( iQMhO'#ItO!&oQMhO'#IvO( iQMhO'#IvO(#yQ!dO'#CrO!&oQMhO,5<tO( iQMhO,5<tO'M^QlO1G2RO!)PQlO7+&zO!&oQMhO1G2`O( iQMhO1G2`O!&oQMhO'#ItO( iQMhO'#ItO!&oQMhO'#IvO( iQMhO'#IvO!&oQMhO1G2bO( iQMhO1G2bO'M^QlO7+'mO'M^QlO7+&aO!&oQMhOANAiO( iQMhOANAiO($^Q`O'#EoO($cQ`O'#EoO($kQ`O'#F]O($pQ`O'#EyO($uQ`O'#KSO(%QQ`O'#KQO(%]Q`O,5;ZO(%bQMjO,5<eO(%iQ`O'#GYO(%nQ`O'#GYO(%sQ`O,5<gO(%{Q`O,5;ZO(&TQ?MtO1G1`O(&[Q`O,5<tO(&aQ`O,5<tO(&fQ`O,5<vO(&kQ`O,5<vO(&pQ`O1G2RO(&uQ`O1G0uO(&zQMjO<<K}O('RQMjO<<K}O7eQMhO'#F|O9[Q`O'#F{OAjQ`O'#EnO!)PQlO,5;tO!3dQ`O'#GYO!3dQ`O'#GYO!3dQ`O'#G[O!3dQ`O'#G[O!+xQMhO7+(cO!+xQMhO7+(cO%-mQ!dO1G2wO%-mQ!dO1G2wO!&oQMhO,5=]O!&oQMhO,5=]",stateData:"((X~O'{OS'|OSTOS'}RQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&V!WO&]!XO&_!YO&a!ZO&c![O&f!]O&l!^O&r!_O&t!`O&v!aO&x!bO&z!cO(SSO(UTO(XUO(`VO(n[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(S!dO(UTO(XUO(`VO(n[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|;wO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(T!lO(UTO(XUO(d!mO(n!sO~O'}!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'y]X(`]X(q]X(x]X(y]X~O!g%RX~P(qO_!}O(U#PO(V!}O(W#PO~O_#QO(W#PO(X#PO(Y#QO~Ox#SO!U#TO(a#TO(b#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(S;{O(UTO(XUO(`VO(n[O~O![#ZO!]#WO!Y(gP!Y(uP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(UTO(XUO(`VO(n[O~Op#mO![#iO!|]O#i#lO#j#iO(S;|O!k(rP~P.iO!l#oO(S#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(`VO(q$YO(x#|O(y#}O~Oa(eX'y(eX'v(eX!k(eX!Y(eX!_(eX%i(eX!g(eX~P1qO#S$dO#`$eO$Q$eOP(fXR(fX[(fXj(fXr(fX!Q(fX!S(fX!](fX!l(fX!p(fX#R(fX#n(fX#o(fX#p(fX#q(fX#r(fX#s(fX#t(fX#u(fX#v(fX#x(fX#z(fX#{(fX(`(fX(q(fX(x(fX(y(fX!_(fX%i(fX~Oa(fX'y(fX'v(fX!Y(fX!k(fXv(fX!g(fX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%cOk%cOl%cOp%WOr%XOs$tOt$tOz%YO|%ZO!O%[O!S${O!_$|O!i%aO!l$xO#j%bO$W%_O$t%]O$v%^O$y%`O(S$sO(UTO(XUO(`$uO(x$}O(y%POg(]P~O!l%dO~O!S%gO!_%hO(S%fO~O!g%lO~Oa%mO'y%mO~O!Q%qO~P%[O(T!lO~P%[O%n%uO~P%[Oh%VO!l%dO(S%fO(T!lO~Oe%|O!l%dO(S%fO~Oj$RO~O!Q&RO!_&OO!l&QO%j&UO(S%fO(T!lO(UTO(XUO`)VP~O!x#sO~O%s&WO!S)RX!_)RX(S)RX~O(S&XO~Ol!PO!u&^O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&cOe&bO!x&`O%h&aO%{&_O~P<VOd&fOeyOl!PO!_&eO!u&^O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&iO#`&lO%j&gO(T!lO~P=[O!l&mO!u&qO~O!l#oO~O!_XO~Oa%mO'w&yO'y%mO~Oa%mO'w&|O'y%mO~Oa%mO'w'OO'y%mO~O'v]X!Y]Xv]X!k]X&Z]X!_]X%i]X!g]X~P(qO!b']O!c'UO!d'UO(T!lO(UTO(XUO~Os'SO!S'RO!['VO(d'QO!^(hP!^(wP~P@cOn'`O!_'^O(S%fO~Oe'eO!l%dO(S%fO~O!Q&RO!l&QO~Os!nO!S!oO!|;wO#T!pO#U!pO#W!pO#X!pO(T!lO(UTO(XUO(d!mO(n!sO~O!b'kO!c'jO!d'jO#V!pO#['lO#]'lO~PA}Oa%mOh%VO!g#vO!l%dO'y%mO(q'nO~O!p'rO#`'pO~PC]Os!nO!S!oO(UTO(XUO(d!mO(n!sO~O!_XOs(lX!S(lX!b(lX!c(lX!d(lX!|(lX#T(lX#U(lX#V(lX#W(lX#X(lX#[(lX#](lX(T(lX(U(lX(X(lX(d(lX(n(lX~O!c'jO!d'jO(T!lO~PC{O(O'vO(P'vO(Q'xO~O_!}O(U'zO(V!}O(W'zO~O_#QO(W'zO(X'zO(Y#QO~Ov'|O~P%[Ox#SO!U#TO(a#TO(b(PO~O![(RO!Y'VX!Y']X!]'VX!]']X~P+}O!](TO!Y(gX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](TO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(`VO(q$YO(x#|O(y#}O~O!Y(gX~PGvO!Y(YO~O!Y(tX!](tX!g(tX!k(tX(q(tX~O#`(tX#k#dX!^(tX~PIyO#`(ZO!Y(vX!](vX~O!]([O!Y(uX~O!Y(_O~O#`$eO~PIyO!^(`O~P`OR#zO!Q#yO!S#{O!l#xO(`VOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(q!na(x!na(y!na~Oa!na'y!na'v!na!Y!na!k!nav!na!_!na%i!na!g!na~PKaO!k(aO~O!g#vO#`(bO(q'nO!](sXa(sX'y(sX~O!k(sX~PM|O!S%gO!_%hO!|]O#i(gO#j(fO(S%fO~O!](hO!k(rX~O!k(jO~O!S%gO!_%hO#j(fO(S%fO~OP(fXR(fX[(fXj(fXr(fX!Q(fX!S(fX!](fX!l(fX!p(fX#R(fX#n(fX#o(fX#p(fX#q(fX#r(fX#s(fX#t(fX#u(fX#v(fX#x(fX#z(fX#{(fX(`(fX(q(fX(x(fX(y(fX~O!g#vO!k(fX~P! jOR(lO!Q(kO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(S!{a~P!#kO!x(pO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(S!dO(UTO(XUO(`VO(n[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<eO!S${O!_$|O!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(S(tO(UTO(XUO(`$uO(x$}O(y%PO~O#k(vO~O![(xO!k(jP~P%[O(d(zO(n[O~O!S(|O!l#xO(d(zO(n[O~OP;vOQ;vOSfOd=rOe!iOpkOr;vOskOtkOzkO|;vO!O;vO!SWO!WkO!XkO!_!eO!i;yO!lZO!o;vO!p;vO!q;vO!s;zO!u;}O!x!hO$W!kO$n=pO(S)ZO(UTO(XUO(`VO(n[O~O!]$_Oa$qa'y$qa'v$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)bO~P!&oOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%[O!S${O!_$|O!i%aO!l$xO#j%bO$W%_O$t%]O$v%^O$y%`O(S(tO(UTO(XUO(`$uO(x$}O(y%PO~Og(oP~P!+xO!Q)gO!g)fO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)fO!_(zX$Z(zX$](zX$_(zX$f(zX~O!Q)gO~P!.RO!Q)gO!_(zX$Z(zX$](zX$_(zX$f(zX~O!_)iO$Z)mO$])hO$_)hO$f)nO~O![)qO~P!)PO$]$hO$_$gO$f)uO~On$zX!Q$zX#S$zX'x$zX(x$zX(y$zX~OgmXg$zXnmX!]mX#`mX~P!/wOx)wO(a)xO(b)zO~On*TO!Q)|O'x)}O(x$}O(y%PO~Og){O~P!0{Og*UO~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<eO!S*WO!_*XO!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(UTO(XUO(`$uO(x$}O(y%PO~O![*[O(S*VO!k(}P~P!1jO#k*^O~O!l*_O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<eO!S${O!_$|O!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(S*aO(UTO(XUO(`$uO(x$}O(y%PO~O![*dO!Y)OP~P!3iOr*pOs!nO!S*fO!b*nO!c*hO!d*hO!l*_O#[*oO%`*jO(T!lO(UTO(XUO(d!mO~O!^*mO~P!5^O#S$dOn(_X!Q(_X'x(_X(x(_X(y(_X!](_X#`(_X~Og(_X$O(_X~P!6`On*uO#`*tOg(^X!](^X~O!]*vOg(]X~Oj%cOk%cOl%cO(S&XOg(]P~Os*yO~O!l+OO~O(S(tO~Op+TO!S%gO![#iO!_%hO!|]O#i#lO#j#iO(S%fO!k(rP~O!g#vO#k+UO~O!S%gO![+WO!]([O!_%hO(S%fO!Y(uP~Os'YO!S+YO![+XO(UTO(XUO(d(zO~O!^(wP~P!9iO!]+ZOa)SX'y)SX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(`VO(q$YO(x#|O(y#}O~Oa!ja!]!ja'y!ja'v!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:aOR#zO!Q#yO!S#{O!l#xO(`VOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(q!ra(x!ra(y!ra~Oa!ra'y!ra'v!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!<wOR#zO!Q#yO!S#{O!l#xO(`VOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(q!ta(x!ta(y!ta~Oa!ta'y!ta'v!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?_Oh%VOn+dO!_'^O%i+cO~O!g+fOa([X!_([X'y([X!]([X~Oa%mO!_XO'y%mO~Oh%VO!l%dO~Oh%VO!l%dO(S%fO~O!g#vO#k(vO~Ob+qO%j+rO(S+nO(UTO(XUO!^)WP~O!]+sO`)VX~O[+wO~O`+xO~O!_&OO(S%fO(T!lO`)VP~Oh%VO#`+}O~Oh%VOn,QO!_$|O~O!_,SO~O!Q,UO!_XO~O%n%uO~O!x,ZO~Oe,`O~Ob,aO(S#nO(UTO(XUO!^)UP~Oe%|O~O%j!QO(S&XO~P=[O[,fO`,eO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(UTO(XUO(`VO(n[O~O!_!eO!u!gO$W!kO(S!dO~P!F_O`,eOa%mO'y%mO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(S!dO(UTO(XUO(`VO(n[O~Oa,kOl!OO!uwO%l!OO%m!OO%n!OO~P!HwO!l&mO~O&],qO~O!_,sO~O&n,uO&p,vOP&kaQ&kaS&kaY&kaa&kad&kae&kal&kap&kar&kas&kat&kaz&ka|&ka!O&ka!S&ka!W&ka!X&ka!_&ka!i&ka!l&ka!o&ka!p&ka!q&ka!s&ka!u&ka!x&ka!|&ka$W&ka$n&ka%h&ka%j&ka%l&ka%m&ka%n&ka%q&ka%s&ka%v&ka%w&ka%y&ka&V&ka&]&ka&_&ka&a&ka&c&ka&f&ka&l&ka&r&ka&t&ka&v&ka&x&ka&z&ka'v&ka(S&ka(U&ka(X&ka(`&ka(n&ka!^&ka&d&kab&ka&i&ka~O(S,{O~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P# }O!g-QO#`-POh(iX!]#hX!^#hX!g(iX!l(iX~O!](iX!^(iX~P#!pOh%VO!g-SO!l%dO!]!aX!^!aX~Os!nO!S!oO(UTO(XUO(d!mO~OP;vOQ;vOSfOd=rOe!iOpkOr;vOskOtkOzkO|;vO!O;vO!SWO!WkO!XkO!_!eO!i;yO!lZO!o;vO!p;vO!q;vO!s;zO!u;}O!x!hO$W!kO$n=pO(UTO(XUO(`VO(n[O~O(S<rO~P#$VO!]-WO!^(hX~O!^-YO~O!g-QO#`-PO!]#hX!^#hX~O!]-ZO!^(wX~O!^-]O~O!c-^O!d-^O(T!lO~P##tO!^-aO~P'_On-dO!_'^O~O!Y-iO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(T!{a(U!{a(X!{a(d!{a(n!{a~P!#kO!p-nO#`-lO~PC]O!c-pO!d-pO(T!lO~PC{Oa%mO#`-lO'y%mO~Oa%mO!g#vO#`-lO'y%mO~Oa%mO!g#vO!p-nO#`-lO'y%mO(q'nO~O(O'vO(P'vO(Q-uO~Ov-vO~O!Y'Va!]'Va~P!:aO![-zO!Y'VX!]'VX~P%[O!](TO!Y(ga~O!Y(ga~PGvO!]([O!Y(ua~O!S%gO![.OO!_%hO(S%fO!Y']X!]']X~O#`.QO!](sa!k(saa(sa'y(sa~O!g#vO~P#,]O!](hO!k(ra~O!S%gO!_%hO#j.UO(S%fO~Op.ZO!S%gO![.WO!_%hO!|]O#i.YO#j.WO(S%fO!]'`X!k'`X~OR._O!l#xO~Oh%VOn.bO!_'^O%i.aO~Oa#ci!]#ci'y#ci'v#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:aOn=|O!Q)|O'x)}O(x$}O(y%PO~O#k#_aa#_a#`#_a'y#_a!]#_a!k#_a!_#_a!Y#_a~P#/XO#k(_XP(_XR(_X[(_Xa(_Xj(_Xr(_X!S(_X!l(_X!p(_X#R(_X#n(_X#o(_X#p(_X#q(_X#r(_X#s(_X#t(_X#u(_X#v(_X#x(_X#z(_X#{(_X'y(_X(`(_X(q(_X!k(_X!Y(_X'v(_Xv(_X!_(_X%i(_X!g(_X~P!6`O!].oO!k(jX~P!:aO!k.rO~O!Y.tO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(`VO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'y#mi(q#mi(x#mi(y#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#2wO#n$OO~P#2wOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(`VO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'y#mi(q#mi(x#mi(y#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#5fO#r$QO~P#5fOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(`VOa#mi!]#mi#x#mi#z#mi#{#mi'y#mi(q#mi(x#mi(y#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8TOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(`VO(y#}Oa#mi!]#mi#z#mi#{#mi'y#mi(q#mi(x#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#:kO#x#mi~P#:kO#v$SO~P#8TOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(`VO(x#|O(y#}Oa#mi!]#mi#{#mi'y#mi(q#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#=aO#z$WO~P#=aOP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(`]X(q]X(x]X(y]X!]]X!^]X~O$O]X~P#@OOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O#v<TO#x<VO#z<XO#{<YO(`VO(q$YO(x#|O(y#}O~O$O.vO~P#B]O#S$dO#`<`O$Q<`O$O(fX!^(fX~P! jOa'ca!]'ca'y'ca'v'ca!k'ca!Y'cav'ca!_'ca%i'ca!g'ca~P!:aO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'y#mi(q#mi'v#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(`VO(x#mi(y#mi~P#E_On=|O!Q)|O'x)}O(x$}O(y%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(`#mi~P#E_O!].zOg(oX~P!0{Og.|O~Oa$Pi!]$Pi'y$Pi'v$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:aO$].}O$_.}O~O$]/OO$_/OO~O!g)fO#`/PO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/QO~O!_)iO$Z/SO$])hO$_)hO$f/TO~O!]<ZO!^(eX~P#B]O!^/UO~O!g)fO$f(zX~O$f/WO~Ov/XO~P!&oOx)wO(a)xO(b/[O~O!S/_O~O(x$}On%aa!Q%aa'x%aa(y%aa!]%aa#`%aa~Og%aa$O%aa~P#LaO(y%POn%ca!Q%ca'x%ca(x%ca!]%ca#`%ca~Og%ca$O%ca~P#MSO!]fX!gfX!kfX!k$zX(qfX~P!/wO![/hO!]([O(S/gO!Y(uP!Y)OP~P!1jOr*pO!b*nO!c*hO!d*hO!l*_O#[*oO%`*jO(T!lO(UTO(XUO~Os<oO!S/iO![+XO!^*mO(d<nO!^(wP~P#NmO!k/jO~P#/XO!]/kO!g#vO(q'nO!k(}X~O!k/pO~O!S%gO![*[O!_%hO(S%fO!k(}P~O#k/rO~O!Y$zX!]$zX!g%RX~P!/wO!]/sO!Y)OX~P#/XO!g/uO~O!Y/wO~OpkO(S/xO~P.iOh%VOr/}O!g#vO!l%dO(q'nO~O!g+fO~Oa%mO!]0RO'y%mO~O!^0TO~P!5^O!c0UO!d0UO(T!lO~P##tOs!nO!S0VO(UTO(XUO(d!mO~O#[0XO~Og%aa!]%aa#`%aa$O%aa~P!0{Og%ca!]%ca#`%ca$O%ca~P!0{Oj%cOk%cOl%cO(S&XOg'lX!]'lX~O!]*vOg(]a~Og0bO~OR0cO!Q0cO!S0dO#S$dOn}a'x}a(x}a(y}a!]}a#`}a~Og}a$O}a~P$&vO!Q)|O'x)}On$sa(x$sa(y$sa!]$sa#`$sa~Og$sa$O$sa~P$'rO!Q)|O'x)}On$ua(x$ua(y$ua!]$ua#`$ua~Og$ua$O$ua~P$(eO#k0gO~Og%Ta!]%Ta#`%Ta$O%Ta~P!0{On0iO#`0hOg(^a!](^a~O!g#vO~O#k0lO~O!]+ZOa)Sa'y)Sa~OR#zO!Q#yO!S#{O!l#xO(`VOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(q!ri(x!ri(y!ri~Oa!ri'y!ri'v!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$*bOh%VOr%XOs$tOt$tOz%YO|%ZO!O<eO!S${O!_$|O!i=vO!l$xO#j<kO$W%_O$t<gO$v<iO$y%`O(UTO(XUO(`$uO(x$}O(y%PO~Op0uO%]0vO(S0tO~P$,xO!g+fOa([a!_([a'y([a!]([a~O#k0|O~O[]X!]fX!^fX~O!]0}O!^)WX~O!^1PO~O[1QO~Ob1SO(S+nO(UTO(XUO~O!_&OO(S%fO`'tX!]'tX~O!]+sO`)Va~O!k1VO~P!:aO[1YO~O`1ZO~O#`1^O~On1aO!_$|O~O(d(zO!^)TP~Oh%VOn1jO!_1gO%i1iO~O[1tO!]1rO!^)UX~O!^1uO~O`1wOa%mO'y%mO~O(S#nO(UTO(XUO~O#S$dO#`$eO$Q$eOP(fXR(fX[(fXr(fX!Q(fX!S(fX!](fX!l(fX!p(fX#R(fX#n(fX#o(fX#p(fX#q(fX#r(fX#s(fX#t(fX#u(fX#v(fX#x(fX#z(fX#{(fX(`(fX(q(fX(x(fX(y(fX~Oj1zO&Z1{Oa(fX~P$2cOj1zO#`$eO&Z1{O~Oa1}O~P%[Oa2PO~O&d2SOP&biQ&biS&biY&bia&bid&bie&bil&bip&bir&bis&bit&biz&bi|&bi!O&bi!S&bi!W&bi!X&bi!_&bi!i&bi!l&bi!o&bi!p&bi!q&bi!s&bi!u&bi!x&bi!|&bi$W&bi$n&bi%h&bi%j&bi%l&bi%m&bi%n&bi%q&bi%s&bi%v&bi%w&bi%y&bi&V&bi&]&bi&_&bi&a&bi&c&bi&f&bi&l&bi&r&bi&t&bi&v&bi&x&bi&z&bi'v&bi(S&bi(U&bi(X&bi(`&bi(n&bi!^&bib&bi&i&bi~Ob2YO!^2WO&i2XO~P`O!_XO!l2[O~O&p,vOP&kiQ&kiS&kiY&kia&kid&kie&kil&kip&kir&kis&kit&kiz&ki|&ki!O&ki!S&ki!W&ki!X&ki!_&ki!i&ki!l&ki!o&ki!p&ki!q&ki!s&ki!u&ki!x&ki!|&ki$W&ki$n&ki%h&ki%j&ki%l&ki%m&ki%n&ki%q&ki%s&ki%v&ki%w&ki%y&ki&V&ki&]&ki&_&ki&a&ki&c&ki&f&ki&l&ki&r&ki&t&ki&v&ki&x&ki&z&ki'v&ki(S&ki(U&ki(X&ki(`&ki(n&ki!^&ki&d&kib&ki&i&ki~O!Y2bO~O!]!aa!^!aa~P#B]Os!nO!S!oO![2hO(d!mO!]'WX!^'WX~P@cO!]-WO!^(ha~O!]'^X!^'^X~P!9iO!]-ZO!^(wa~O!^2oO~P'_Oa%mO#`2xO'y%mO~Oa%mO!g#vO#`2xO'y%mO~Oa%mO!g#vO!p2|O#`2xO'y%mO(q'nO~Oa%mO'y%mO~P!:aO!]$_Ov$qa~O!Y'Vi!]'Vi~P!:aO!](TO!Y(gi~O!]([O!Y(ui~O!Y(vi!](vi~P!:aO!](si!k(sia(si'y(si~P!:aO#`3OO!](si!k(sia(si'y(si~O!](hO!k(ri~O!S%gO!_%hO!|]O#i3TO#j3SO(S%fO~O!S%gO!_%hO#j3SO(S%fO~On3[O!_'^O%i3ZO~Oh%VOn3[O!_'^O%i3ZO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'y%aa(`%aa(q%aa!k%aa!Y%aa'v%aav%aa!_%aa%i%aa!g%aa~P#LaO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'y%ca(`%ca(q%ca!k%ca!Y%ca'v%cav%ca!_%ca%i%ca!g%ca~P#MSO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'y%aa(`%aa(q%aa!k%aa!Y%aa'v%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/XO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'y%ca(`%ca(q%ca!k%ca!Y%ca'v%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/XO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'y}a(`}a(q}a!k}a!Y}a'v}av}a!_}a%i}a!g}a~P$&vO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'y$sa(`$sa(q$sa!k$sa!Y$sa'v$sav$sa!_$sa%i$sa!g$sa~P$'rO#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'y$ua(`$ua(q$ua!k$ua!Y$ua'v$uav$ua!_$ua%i$ua!g$ua~P$(eO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'y%Ta(`%Ta(q%Ta!k%Ta!Y%Ta'v%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/XOa#cq!]#cq'y#cq'v#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:aO![3dO!]'XX!k'XX~P%[O!].oO!k(ja~O!].oO!k(ja~P!:aO!Y3gO~O$O!na!^!na~PKaO$O!ja!]!ja!^!ja~P#B]O$O!ra!^!ra~P!<wO$O!ta!^!ta~P!?_Og'[X!]'[X~P!+xO!].zOg(oa~OSfO!_3{O$d3|O~O!^4QO~Ov4RO~P#/XOa$mq!]$mq'y$mq'v$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:aO!Y4TO~P!&oO!S4UO~O!Q)|O'x)}O(y%POn'ha(x'ha!]'ha#`'ha~Og'ha$O'ha~P%,XO!Q)|O'x)}On'ja(x'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P%,zO(q$YO~P#/XO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!/wO(S<xO~P!1jO!S%gO![4XO!_%hO(S%fO!]'dX!k'dX~O!]/kO!k(}a~O!]/kO!g#vO!k(}a~O!]/kO!g#vO(q'nO!k(}a~Og$|i!]$|i#`$|i$O$|i~P!0{O![4aO!Y'fX!]'fX~P!3iO!]/sO!Y)Oa~O!]/sO!Y)Oa~P#/XOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(`]X(q]X(x]X(y]X~Oj%YX!g%YX~P%0kOj4fO!g#vO~Oh%VO!g#vO!l%dO~Oh%VOr4kO!l%dO(q'nO~Or4pO!g#vO(q'nO~Os!nO!S4qO(UTO(XUO(d!mO~O(x$}On%ai!Q%ai'x%ai(y%ai!]%ai#`%ai~Og%ai$O%ai~P%4[O(y%POn%ci!Q%ci'x%ci(x%ci!]%ci#`%ci~Og%ci$O%ci~P%4}Og(^i!](^i~P!0{O#`4wOg(^i!](^i~P!0{O!k4zO~Oa$oq!]$oq'y$oq'v$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:aO!Y5QO~O!]5RO!_)PX~P#/XOa$zX!_$zX%^]X'y$zX!]$zX~P!/wO%^5UOaoXnoX!QoX!_oX'xoX'yoX(xoX(yoX!]oX~Op5VO(S#nO~O%^5UO~Ob5]O%j5^O(S+nO(UTO(XUO!]'sX!^'sX~O!]0}O!^)Wa~O[5bO~O`5cO~Oa%mO'y%mO~P#/XO!]5kO#`5mO!^)TX~O!^5nO~Or5tOs!nO!S*fO!b!yO!c!vO!d!vO!|;wO#T!pO#U!pO#V!pO#W!pO#X!pO#[5sO#]!zO(T!lO(UTO(XUO(d!mO(n!sO~O!^5rO~P%:YOn5yO!_1gO%i5xO~Oh%VOn5yO!_1gO%i5xO~Ob6QO(S#nO(UTO(XUO!]'rX!^'rX~O!]1rO!^)Ua~O(UTO(XUO(d6SO~O`6WO~Oj6ZO&Z6[O~PM|O!k6]O~P%[Oa6_O~Oa6_O~P%[Ob2YO!^6dO&i2XO~P`O!g6fO~O!g6hOh(ii!](ii!^(ii!g(ii!l(iir(ii(q(ii~O!]#hi!^#hi~P#B]O#`6iO!]#hi!^#hi~O!]!ai!^!ai~P#B]Oa%mO#`6rO'y%mO~Oa%mO!g#vO#`6rO'y%mO~O!](sq!k(sqa(sq'y(sq~P!:aO!](hO!k(rq~O!S%gO!_%hO#j6yO(S%fO~O!_'^O%i6|O~On7QO!_'^O%i6|O~O#k'haP'haR'ha['haa'haj'har'ha!S'ha!l'ha!p'ha#R'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#t'ha#u'ha#v'ha#x'ha#z'ha#{'ha'y'ha(`'ha(q'ha!k'ha!Y'ha'v'hav'ha!_'ha%i'ha!g'ha~P%,XO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'y'ja(`'ja(q'ja!k'ja!Y'ja'v'jav'ja!_'ja%i'ja!g'ja~P%,zO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'y$|i(`$|i(q$|i!k$|i!Y$|i'v$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/XO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'y%ai(`%ai(q%ai!k%ai!Y%ai'v%aiv%ai!_%ai%i%ai!g%ai~P%4[O#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'y%ci(`%ci(q%ci!k%ci!Y%ci'v%civ%ci!_%ci%i%ci!g%ci~P%4}O!]'Xa!k'Xa~P!:aO!].oO!k(ji~O$O#ci!]#ci!^#ci~P#B]OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(`VO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(q#mi(x#mi(y#mi!]#mi!^#mi~O#n#mi~P%MXO#n<PO~P%MXOP$[OR#zOr<]O!Q#yO!S#{O!l#xO!p$[O#n<PO#o<QO#p<QO#q<QO(`VO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(q#mi(x#mi(y#mi!]#mi!^#mi~O#r#mi~P& aO#r<RO~P& aOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O(`VO#x#mi#z#mi#{#mi$O#mi(q#mi(x#mi(y#mi!]#mi!^#mi~O#v#mi~P&#iOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O#v<TO(`VO(y#}O#z#mi#{#mi$O#mi(q#mi(x#mi!]#mi!^#mi~O#x<VO~P&%jO#x#mi~P&%jO#v<TO~P&#iOP$[OR#zO[<_Oj<SOr<]O!Q#yO!S#{O!l#xO!p$[O#R<SO#n<PO#o<QO#p<QO#q<QO#r<RO#s<SO#t<SO#u<^O#v<TO#x<VO(`VO(x#|O(y#}O#{#mi$O#mi(q#mi!]#mi!^#mi~O#z#mi~P&'yO#z<XO~P&'yOa#|y!]#|y'y#|y'v#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:aO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(q#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<PO#o<QO#p<QO#q<QO(`VO(x#mi(y#mi~P&*uOn=}O!Q)|O'x)}O(x$}O(y%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(`#mi~P&*uO#S$dOP(_XR(_X[(_Xj(_Xn(_Xr(_X!Q(_X!S(_X!l(_X!p(_X#R(_X#n(_X#o(_X#p(_X#q(_X#r(_X#s(_X#t(_X#u(_X#v(_X#x(_X#z(_X#{(_X$O(_X'x(_X(`(_X(q(_X(x(_X(y(_X!](_X!^(_X~O$O$Pi!]$Pi!^$Pi~P#B]O$O!ri!^!ri~P$*bOg'[a!]'[a~P!0{O!^7dO~O!]'ca!^'ca~P#B]O!Y7eO~P#/XO!g#vO(q'nO!]'da!k'da~O!]/kO!k(}i~O!]/kO!g#vO!k(}i~Og$|q!]$|q#`$|q$O$|q~P!0{O!Y'fa!]'fa~P#/XO!g7lO~O!]/sO!Y)Oi~P#/XO!]/sO!Y)Oi~O!Y7oO~Oh%VOr7tO!l%dO(q'nO~Oj7vO!g#vO~Or7yO!g#vO(q'nO~O!Q)|O'x)}O(y%POn'ia(x'ia!]'ia#`'ia~Og'ia$O'ia~P&3vO!Q)|O'x)}On'ka(x'ka(y'ka!]'ka#`'ka~Og'ka$O'ka~P&4iO!Y7{O~Og%Oq!]%Oq#`%Oq$O%Oq~P!0{Og(^q!](^q~P!0{O#`7|Og(^q!](^q~P!0{Oa$oy!]$oy'y$oy'v$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:aO!g6hO~O!]5RO!_)Pa~O!_'^OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(`$Ta(q$Ta(x$Ta(y$Ta~O%i6|O~P&7ZO%^8QOa%[i!_%[i'y%[i!]%[i~Oa#cy!]#cy'y#cy'v#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:aO[8SO~Ob8UO(S+nO(UTO(XUO~O!]0}O!^)Wi~O`8YO~O(d(zO!]'oX!^'oX~O!]5kO!^)Ta~O!^8cO~P%:YO(n!sO~P$${O#[8dO~O!_1gO~O!_1gO%i8fO~On8iO!_1gO%i8fO~O[8nO!]'ra!^'ra~O!]1rO!^)Ui~O!k8rO~O!k8sO~O!k8vO~O!k8vO~P%[Oa8xO~O!g8yO~O!k8zO~O!](vi!^(vi~P#B]Oa%mO#`9SO'y%mO~O!](sy!k(sya(sy'y(sy~P!:aO!](hO!k(ry~O%i9VO~P&7ZO!_'^O%i9VO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'y$|q(`$|q(q$|q!k$|q!Y$|q'v$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/XO#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'y'ia(`'ia(q'ia!k'ia!Y'ia'v'iav'ia!_'ia%i'ia!g'ia~P&3vO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'y'ka(`'ka(q'ka!k'ka!Y'ka'v'kav'ka!_'ka%i'ka!g'ka~P&4iO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'y%Oq(`%Oq(q%Oq!k%Oq!Y%Oq'v%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/XO!]'Xi!k'Xi~P!:aO$O#cq!]#cq!^#cq~P#B]O(x$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(`%aa(q%aa!]%aa!^%aa~On%aa!Q%aa'x%aa(y%aa~P&HnO(y%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(`%ca(q%ca!]%ca!^%ca~On%ca!Q%ca'x%ca(x%ca~P&JuOn=}O!Q)|O'x)}O(y%PO~P&HnOn=}O!Q)|O'x)}O(x$}O~P&JuOR0cO!Q0cO!S0dO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'x}a(`}a(q}a(x}a(y}a!]}a!^}a~O!Q)|O'x)}OP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(`$sa(q$sa(x$sa(y$sa!]$sa!^$sa~O!Q)|O'x)}OP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(`$ua(q$ua(x$ua(y$ua!]$ua!^$ua~On=}O!Q)|O'x)}O(x$}O(y%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(`%Ta(q%Ta!]%Ta!^%Ta~P'%zO$O$mq!]$mq!^$mq~P#B]O$O$oq!]$oq!^$oq~P#B]O!^9dO~O$O9eO~P!0{O!g#vO!]'di!k'di~O!g#vO(q'nO!]'di!k'di~O!]/kO!k(}q~O!Y'fi!]'fi~P#/XO!]/sO!Y)Oq~Or9lO!g#vO(q'nO~O[9nO!Y9mO~P#/XO!Y9mO~Oj9tO!g#vO~Og(^y!](^y~P!0{O!]'ma!_'ma~P#/XOa%[q!_%[q'y%[q!]%[q~P#/XO[9yO~O!]0}O!^)Wq~O#`9}O!]'oa!^'oa~O!]5kO!^)Ti~P#B]O!S:PO~O!_1gO%i:SO~O(UTO(XUO(d:XO~O!]1rO!^)Uq~O!k:[O~O!k:]O~O!k:^O~O!k:^O~P%[O#`:aO!]#hy!^#hy~O!]#hy!^#hy~P#B]O%i:fO~P&7ZO!_'^O%i:fO~O$O#|y!]#|y!^#|y~P#B]OP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(`$|i(q$|i!]$|i!^$|i~P'%zO!Q)|O'x)}O(y%POP'haR'ha['haj'han'har'ha!S'ha!l'ha!p'ha#R'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#t'ha#u'ha#v'ha#x'ha#z'ha#{'ha$O'ha(`'ha(q'ha(x'ha!]'ha!^'ha~O!Q)|O'x)}OP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(`'ja(q'ja(x'ja(y'ja!]'ja!^'ja~O(x$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'x%ai(`%ai(q%ai(y%ai!]%ai!^%ai~O(y%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'x%ci(`%ci(q%ci(x%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#B]O$O#cy!]#cy!^#cy~P#B]O!g#vO!]'dq!k'dq~O!]/kO!k(}y~O!Y'fq!]'fq~P#/XOr:pO!g#vO(q'nO~O[:tO!Y:sO~P#/XO!Y:sO~Og(^!R!](^!R~P!0{Oa%[y!_%[y'y%[y!]%[y~P#/XO!]0}O!^)Wy~O!]5kO!^)Tq~O(S:zO~O!_1gO%i:}O~O!k;QO~O%i;VO~P&7ZOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(`$|q(q$|q!]$|q!^$|q~P'%zO!Q)|O'x)}O(y%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(`'ia(q'ia(x'ia!]'ia!^'ia~O!Q)|O'x)}OP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(`'ka(q'ka(x'ka(y'ka!]'ka!^'ka~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(`%Oq(q%Oq!]%Oq!^%Oq~P'%zOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!0{O!Y;ZO~P#/XOr;[O!g#vO(q'nO~O[;^O!Y;ZO~P#/XO!]'oq!^'oq~P#B]O!]#h!Z!^#h!Z~P#B]O#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'y%e!Z(`%e!Z(q%e!Z!k%e!Z!Y%e!Z'v%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/XOr;fO!g#vO(q'nO~O!Y;gO~P#/XOr;nO!g#vO(q'nO~O!Y;oO~P#/XOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(`%e!Z(q%e!Z!]%e!Z!^%e!Z~P'%zOr;rO!g#vO(q'nO~Ov(eX~P1qO!Q%qO~P!)PO(T!lO~P!)PO!YfX!]fX#`fX~P%0kOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(`]X(q]X(x]X(y]X~O!gfX!k]X!kfX(qfX~P'JsOP;vOQ;vOSfOd=rOe!iOpkOr;vOskOtkOzkO|;vO!O;vO!SWO!WkO!XkO!_XO!i;yO!lZO!o;vO!p;vO!q;vO!s;zO!u;}O!x!hO$W!kO$n=pO(S)ZO(UTO(XUO(`VO(n[O~O!]<ZO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<fO!S${O!_$|O!i=wO!l$xO#j<lO$W%_O$t<hO$v<jO$y%`O(S(tO(UTO(XUO(`$uO(x$}O(y%PO~Ol)bO~P( iOr!eX(q!eX~P# }Or(iX(q(iX~P#!pO!^]X!^fX~P'JsO!YfX!Y$zX!]fX!]$zX#`fX~P!/wO#k<OO~O!g#vO#k<OO~O#`<`O~Oj<SO~O#`<pO!](vX!^(vX~O#`<`O!](tX!^(tX~O#k<qO~Og<sO~P!0{O#k<yO~O#k<zO~O!g#vO#k<{O~O!g#vO#k<qO~O$O<|O~P#B]O#k<}O~O#k=OO~O#k=TO~O#k=UO~O#k=VO~O#k=WO~O$O=XO~P!0{O$O=YO~P!0{Ok#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~'}T#o!X'{(T#ps#n#qr!Q'|$]'|(S$_(d~",goto:"$8g)[PPPPPP)]PP)`P)qP+R/WPPPP6bPP6xPP<pPPP@dP@zP@zPPP@zPCSP@zP@zP@zPCWPC]PCzPHtPPPHxPPPPHxK{PPPLRLsPHxPHxPP! RHxPPPHxPHxP!#YHxP!&p!'u!(OP!(r!(v!(r!,TPPPPPPP!,t!'uPP!-U!.vP!2SHxHx!2X!5e!:R!:R!>QPPP!>YHxPPPPPPPPP!AiP!BvPPHx!DXPHxPHxHxHxHxHxPHx!EkP!HuP!K{P!LP!LZ!L_!L_P!HrP!Lc!LcP# iP# mHxPHx# s#$xCW@zP@zP@z@zP#&V@z@z#(i@z#+a@z#-m@z@z#.]#0q#0q#0v#1P#0q#1[PP#0qP@z#1t@z#5s@z@z6bPPP#9xPPP#:c#:cP#:cP#:y#:cPP#;PP#:vP#:v#;d#:v#<O#<U#<X)`#<[)`P#<c#<c#<cP)`P)`P)`P)`PP)`P#<i#<lP#<l)`P#<pP#<sP)`P)`P)`P)`P)`P)`)`PP#<y#=P#=[#=b#=h#=n#=t#>S#>Y#>d#>j#>t#>z#?[#?b#@S#@f#@l#@r#AQ#Ag#C[#Cj#Cq#E]#Ek#G]#Gk#Gq#Gw#G}#HX#H_#He#Ho#IR#IXPPPPPPPPPPP#I_PPPPPPP#JS#MZ#Ns#Nz$ SPPP$&nP$&w$)p$0Z$0^$0a$1`$1c$1j$1rP$1x$1{P$2i$2m$3e$4s$4x$5`PP$5e$5k$5o$5r$5v$5z$6v$7_$7v$7z$7}$8Q$8W$8Z$8_$8cR!|RoqOXst!Z#d%l&p&r&s&u,n,s2S2VY!vQ'^-`1g5qQ%svQ%{yQ&S|Q&h!VS'U!e-WQ'd!iS'j!r!yU*h$|*X*lQ+l%|Q+y&UQ,_&bQ-^']Q-h'eQ-p'kQ0U*nQ1q,`R<m;z%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y,k,n,s-d-l-z.Q.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3d4q5y6Z6[6_6r8i8x9SS#q];w!r)]$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sU*{%[<e<fQ+q&OQ,a&eQ,h&mQ0r+dQ0w+fQ1S+rQ1y,fQ3W.bQ5V0vQ5]0}Q6Q1rQ7O3[Q8U5^R9Y7Q'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=s!S!nQ!r!v!y!z$|'U']'^'j'k'l*h*l*n*o-W-^-`-p0U0X1g5q5s%[$ti#v$b$c$d$x${%O%Q%]%^%b)w*P*R*T*W*^*d*t*u+c+f+},Q.a.z/_/h/r/s/u0Y0[0g0h0i1^1a1i3Z4U4V4a4f4w5R5U5x6|7l7v7|8Q8f9V9e9n9t:S:f:t:};V;^<^<_<a<b<c<d<g<h<i<j<k<l<t<u<v<w<y<z<}=O=P=Q=R=S=T=U=X=Y=p=x=y=|=}Q&V|Q'S!eS'Y%h-ZQ+q&OQ,a&eQ0f+OQ1S+rQ1X+xQ1x,eQ1y,fQ5]0}Q5f1ZQ6Q1rQ6T1tQ6U1wQ8U5^Q8X5cQ8q6WQ9|8YQ:Y8nR<o*XrnOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VR,c&i&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=r=s[#]WZ#W#Z'V(R!b%im#h#i#l$x%d%g([(f(g(h*W*[*_+W+X+Z,j-Q.O.U.V.W.Y/h/k2[3S3T4X6h6yQ%vxQ%zyS&P|&UQ&]!TQ'a!hQ'c!iQ(o#sS+k%{%|Q+o&OQ,Y&`Q,^&bS-g'd'eQ.d(pQ0{+lQ1R+rQ1T+sQ1W+wQ1l,ZS1p,_,`Q2t-hQ5[0}Q5`1QQ5e1YQ6P1qQ8T5^Q8W5bQ9x8SR:w9y!U$zi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y!^%xy!i!u%z%{%|'T'c'd'e'i's*g+k+l-T-g-h-o/{0O0{2m2t2{4i4j4m7s9pQ+e%vQ,O&YQ,R&ZQ,]&bQ.c(oQ1k,YU1o,^,_,`Q3].dQ5z1lS6O1p1qQ8m6P#f=t#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}o=u<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=YW%Ti%V*v=pS&Y!Q&gQ&Z!RQ&[!SQ+S%cR+|&W%]%Si#v$b$c$d$x${%O%Q%]%^%b)w*P*R*T*W*^*d*t*u+c+f+},Q.a.z/_/h/r/s/u0Y0[0g0h0i1^1a1i3Z4U4V4a4f4w5R5U5x6|7l7v7|8Q8f9V9e9n9t:S:f:t:};V;^<^<_<a<b<c<d<g<h<i<j<k<l<t<u<v<w<y<z<}=O=P=Q=R=S=T=U=X=Y=p=x=y=|=}T)x$u)yV*{%[<e<fW'Y!e%h*X-ZS({#y#zQ+`%qQ+v&RS.](k(lQ1b,SQ4x0cR8^5k'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=s$i$^c#Y#e%p%r%t(Q(W(r(w)P)Q)R)S)T)U)V)W)X)Y)[)^)`)e)o+a+u-U-s-x-}.P.n.q.u.w.x.y/]0j2c2f2v2}3c3h3i3j3k3l3m3n3o3p3q3r3s3t3w3x4P5O5Y6k6q6v7V7W7a7b8`8|9Q9[9b9c:c:y;R;x=gT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sQ'W!eR2i-W!W!nQ!e!r!v!y!z$|'U']'^'j'k'l*X*h*l*n*o-W-^-`-p0U0X1g5q5sR1d,UnqOXst!Z#d%l&p&r&s&u,n,s2S2VQ&w!^Q't!xS(q#u<OQ+i%yQ,W&]Q,X&_Q-e'bQ-r'mS.m(v<qS0k+U<{Q0y+jQ1f,VQ2Z,uQ2],vQ2e-RQ2r-fQ2u-jS5P0l=VQ5W0zS5Z0|=WQ6j2gQ6n2sQ6s2zQ8R5XQ8}6lQ9O6oQ9R6tR:`8z$d$]c#Y#e%r%t(Q(W(r(w)P)Q)R)S)T)U)V)W)X)Y)[)^)`)e)o+a+u-U-s-x-}.P.n.q.u.x.y/]0j2c2f2v2}3c3h3i3j3k3l3m3n3o3p3q3r3s3t3w3x4P5O5Y6k6q6v7V7W7a7b8`8|9Q9[9b9c:c:y;R;x=gS(m#p'gQ(}#zS+_%p.wS.^(l(nR3U._'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sS#q];wQ&r!XQ&s!YQ&u![Q&v!]R2R,qQ'_!hQ+b%vQ-c'aS.`(o+eQ2p-bW3Y.c.d0q0sQ6m2qW6z3V3X3]5TU9U6{6}7PU:e9W9X9ZS;T:d:gQ;b;UR;j;cU!wQ'^-`T5o1g5q!Q_OXZ`st!V!Z#d#h%d%l&g&i&p&r&s&u(h,n,s.V2S2V]!pQ!r'^-`1g5qT#q];w%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SS({#y#zS.](k(l!s=^$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sU$fd)],hS(n#p'gU*s%R(u3vU0e*z.i7]Q5T0rQ6{3WQ9X7OR:g9Ym!tQ!r!v!y!z'^'j'k'l-`-p1g5q5sQ'r!uS(d#g1|S-n'i'uQ/n*ZQ/{*gQ2|-qQ4]/oQ4i/}Q4j0OQ4o0WQ7h4WS7s4k4mS7w4p4rQ9g7iQ9k7oQ9p7tQ9u7yS:o9l9mS;Y:p:sS;e;Z;[S;m;f;gS;q;n;oR;t;rQ#wbQ'q!uS(c#g1|S(e#m+TQ+V%eQ+g%wQ+m%}U-m'i'r'uQ.R(dQ/m*ZQ/|*gQ0P*iQ0x+hQ1m,[S2y-n-qQ3R.ZS4[/n/oQ4e/yS4h/{0WQ4l0QQ5|1nQ6u2|Q7g4WQ7k4]U7r4i4o4rQ7u4nQ8k5}S9f7h7iQ9j7oQ9r7wQ9s7xQ:V8lQ:m9gS:n9k9mQ:v9uQ;P:WS;X:o:sS;d;Y;ZS;l;e;gS;p;m;oQ;s;qQ;u;tQ=a=[Q=l=eR=m=fV!wQ'^-`%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SS#wz!j!r=Z$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sR=a=r%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SQ%ej!^%wy!i!u%z%{%|'T'c'd'e'i's*g+k+l-T-g-h-o/{0O0{2m2t2{4i4j4m7s9pS%}z!jQ+h%xQ,[&bW1n,],^,_,`U5}1o1p1qS8l6O6PQ:W8m!r=[$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sQ=e=qR=f=r%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&p&r&s&u&y'R'`'p(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9SY#bWZ#W#Z(R!b%im#h#i#l$x%d%g([(f(g(h*W*[*_+W+X+Z,j-Q.O.U.V.W.Y/h/k2[3S3T4X6h6yQ,i&m!p=]$Z$n)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sR=`'VU'Z!e%h*XR2k-Z%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y,k,n,s-d-l-z.Q.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3d4q5y6Z6[6_6r8i8x9S!r)]$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sQ,h&mQ0r+dQ3W.bQ7O3[R9Y7Q!b$Tc#Y%p(Q(W(r(w)X)Y)^)e+u-s-x-}.P.n.q/]0j2v2}3c3s5O5Y6q6v7V9Q:c;x!P<U)[)o-U.w2c2f3h3q3r3w4P6k7W7a7b8`8|9[9b9c:y;R=g!f$Vc#Y%p(Q(W(r(w)U)V)X)Y)^)e+u-s-x-}.P.n.q/]0j2v2}3c3s5O5Y6q6v7V9Q:c;x!T<W)[)o-U.w2c2f3h3n3o3q3r3w4P6k7W7a7b8`8|9[9b9c:y;R=g!^$Zc#Y%p(Q(W(r(w)^)e+u-s-x-}.P.n.q/]0j2v2}3c3s5O5Y6q6v7V9Q:c;xQ4V/fz=s)[)o-U.w2c2f3h3w4P6k7W7a7b8`8|9[9b9c:y;R=gQ=x=zR=y={'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sS$oh$pR3|/P'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/P/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sT$kf$qQ$ifS)h$l)lR)t$qT$jf$qT)j$l)l'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%l%s&Q&i&l&m&p&r&s&u&y'R'V'`'p(R(T(Z(b(v(x(|)q){*f+U+Y+d,k,n,s-P-S-d-l-z.Q.b.o.v/P/Q/i0V0d0l0|1j1z1{1}2P2S2V2X2h2x3O3[3d3{4q5m5y6Z6[6_6i6r7Q8i8x9S9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=sT$oh$pQ$rhR)s$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%l%s&Q&i&l&m&p&r&s&u&y'R'`'p(R(T(Z(b(v(x(|){*f+U+Y+d,k,n,s-d-l-z.Q.b.o.v/i0V0d0l0|1j1z1{1}2P2S2V2X2x3O3[3d4q5y6Z6[6_6r7Q8i8x9S!s=q$Z$n'V)q-P-S/Q2h3{5m6i9}:a;v;y;z;}<O<P<Q<R<S<T<U<V<W<X<Y<Z<]<`<m<p<q<s<{<|=V=W=s#glOPXZst!Z!`!o#S#d#o#{$n%l&i&l&m&p&r&s&u&y'R'`(|)q*f+Y+d,k,n,s-d.b/Q/i0V0d1j1z1{1}2P2S2V2X3[3{4q5y6Z6[6_7Q8i8x!U%Ri$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y#f(u#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}Q+P%`Q/^)|o3v<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=Y!U$yi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=yQ*`$zU*i$|*X*lQ+Q%aQ0Q*j#f=c#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}n=d<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=YQ=h=tQ=i=uQ=j=vR=k=w!U%Ri$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y#f(u#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}o3v<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=YnoOXst!Z#d%l&p&r&s&u,n,s2S2VS*c${*WQ,|&|Q,}'OR4`/s%[%Si#v$b$c$d$x${%O%Q%]%^%b)w*P*R*T*W*^*d*t*u+c+f+},Q.a.z/_/h/r/s/u0Y0[0g0h0i1^1a1i3Z4U4V4a4f4w5R5U5x6|7l7v7|8Q8f9V9e9n9t:S:f:t:};V;^<^<_<a<b<c<d<g<h<i<j<k<l<t<u<v<w<y<z<}=O=P=Q=R=S=T=U=X=Y=p=x=y=|=}Q,P&ZQ1`,RQ5i1_R8]5jV*k$|*X*lU*k$|*X*lT5p1g5qS/y*f/iQ4n0VT7x4q:PQ+g%wQ0P*iQ0x+hQ1m,[Q5|1nQ8k5}Q:V8lR;P:W!U%Oi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=yx*P$v)c*Q*r+R/q0^0_3y4^4{4|4}7f7z9v:l=b=n=oS0Y*q0Z#f<a#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}n<b<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=Y!d<t(s)a*Y*b.e.h.l/Y/f/v0p1]3`4S4_4c5h7R7U7m7p7}8P9i9q9w:q:u;W;];h=z={`<u3u7X7[7`9]:h:k;kS=P.g3aT=Q7Z9`!U%Qi$d%O%Q%]%^%b*P*R*^*t*u.z/r0Y0[0g0h0i4V4w7|9e=p=x=y|*R$v)c*S*q+R/b/q0^0_3y4^4s4{4|4}7f7z9v:l=b=n=oS0[*r0]#f<c#v$b$c$x${)w*T*W*d+c+f+},Q.a/_/h/s/u1^1a1i3Z4U4a4f5R5U5x6|7l7v8Q8f9V9n9t:S:f:t:};V;^<a<c<g<i<k<t<v<y<}=P=R=T=X=|=}n<d<^<_<b<d<h<j<l<u<w<z=O=Q=S=U=Y!h<v(s)a*Y*b.f.g.l/Y/f/v0p1]3^3`4S4_4c5h7R7S7U7m7p7}8P9i9q9w:q:u;W;];h=z={d<w3u7Y7Z7`9]9^:h:i:k;kS=R.h3bT=S7[9arnOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VQ&d!UR,k&mrnOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VR&d!UQ,T&[R1[+|snOXst!V!Z#d%l&g&p&r&s&u,n,s2S2VQ1h,YS5w1k1lU8e5u5v5zS:R8g8hS:{:Q:TQ;_:|R;i;`Q&k!VR,d&gR6T1tR:Y8nS&P|&UR1T+sQ&p!WR,n&qR,t&vT2T,s2VR,x&wQ,w&wR2^,xQ'w!{R-t'wSsOtQ#dXT%os#dQ#OTR'y#OQ#RUR'{#RQ)y$uR/Z)yQ#UVR(O#UQ#XWU(U#X(V-{Q(V#YR-{(WQ-X'WR2j-XQ.p(wS3e.p3fR3f.qQ-`'^R2n-`Y!rQ'^-`1g5qR'h!rQ.{)cR3z.{U#_W%g*WU(]#_(^-|Q(^#`R-|(XQ-['ZR2l-[t`OXst!V!Z#d%l&g&i&p&r&s&u,n,s2S2VS#hZ%dU#r`#h.VR.V(hQ(i#jQ.S(eW.[(i.S3P6wQ3P.TR6w3QQ)l$lR/R)lQ$phR)r$pQ$`cU)_$`-w<[Q-w;xR<[)oQ/l*ZW4Y/l4Z7j9hU4Z/m/n/oS7j4[4]R9h7k$e*O$v(s)a)c*Y*b*q*r*|*}+R.g.h.j.k.l/Y/b/d/f/q/v0^0_0p1]3^3_3`3u3y4S4^4_4c4s4u4{4|4}5h7R7S7T7U7Z7[7^7_7`7f7m7p7z7}8P9]9^9_9i9q9v9w:h:i:j:k:l:q:u;W;];h;k=b=n=o=z={Q/t*bU4b/t4d7nQ4d/vR7n4cS*l$|*XR0S*lx*Q$v)c*q*r+R/q0^0_3y4^4{4|4}7f7z9v:l=b=n=o!d.e(s)a*Y*b.g.h.l/Y/f/v0p1]3`4S4_4c5h7R7U7m7p7}8P9i9q9w:q:u;W;];h=z={U/c*Q.e7Xa7X3u7Z7[7`9]:h:k;kQ0Z*qQ3a.gU4t0Z3a9`R9`7Z|*S$v)c*q*r+R/b/q0^0_3y4^4s4{4|4}7f7z9v:l=b=n=o!h.f(s)a*Y*b.g.h.l/Y/f/v0p1]3^3`4S4_4c5h7R7S7U7m7p7}8P9i9q9w:q:u;W;];h=z={U/e*S.f7Ye7Y3u7Z7[7`9]9^:h:i:k;kQ0]*rQ3b.hU4v0]3b9aR9a7[Q*w%UR0a*wQ5S0pR8O5SQ+[%jR0o+[Q5l1bS8_5l:OR:O8`Q,V&]R1e,VQ5q1gR8b5qQ1s,aS6R1s8oR8o6TQ1O+oW5_1O5a8V9zQ5a1RQ8V5`R9z8WQ+t&PR1U+tQ2V,sR6c2VYrOXst#dQ&t!ZQ+^%lQ,m&pQ,o&rQ,p&sQ,r&uQ2Q,nS2T,s2VR6b2SQ%npQ&x!_Q&{!aQ&}!bQ'P!cQ'o!uQ+]%kQ+i%yQ+{&VQ,c&kQ,z&zW-k'i'q'r'uQ-r'mQ0R*kQ0y+jS1v,d,gQ2_,yQ2`,|Q2a,}Q2u-jW2w-m-n-q-sQ5W0zQ5d1XQ5g1]Q5{1mQ6V1xQ6a2RU6p2v2y2|Q6s2zQ8R5XQ8Z5fQ8[5hQ8a5pQ8j5|Q8p6US9P6q6uQ9R6tQ9{8XQ:U8kQ:Z8qQ:b9QQ:x9|Q;O:VQ;S:cR;a;PQ%yyQ'b!iQ'm!uU+j%z%{%|Q-R'TU-f'c'd'eS-j'i'sQ/z*gS0z+k+lQ2g-TS2s-g-hQ2z-oS4g/{0OQ5X0{Q6l2mQ6o2tQ6t2{U7q4i4j4mQ9o7sR:r9pS$wi=pR*x%VU%Ui%V=pR0`*vQ$viS(s#v+fS)a$b$cQ)c$dQ*Y$xS*b${*WQ*q%OQ*r%QQ*|%]Q*}%^Q+R%bQ.g<aQ.h<cQ.j<gQ.k<iQ.l<kQ/Y)wQ/b*PQ/d*RQ/f*TQ/q*^S/v*d/hQ0^*tQ0_*ul0p+c,Q.a1a1i3Z5x6|8f9V:S:f:};VQ1]+}Q3^<tQ3_<vQ3`<yS3u<^<_Q3y.zS4S/_4UQ4^/rQ4_/sQ4c/uQ4s0YQ4u0[Q4{0gQ4|0hQ4}0iQ5h1^Q7R<}Q7S=PQ7T=RQ7U=TQ7Z<bQ7[<dQ7^<hQ7_<jQ7`<lQ7f4VQ7m4aQ7p4fQ7z4wQ7}5RQ8P5UQ9]<zQ9^<uQ9_<wQ9i7lQ9q7vQ9v7|Q9w8QQ:h=OQ:i=QQ:j=SQ:k=UQ:l9eQ:q9nQ:u9tQ;W=XQ;]:tQ;h;^Q;k=YQ=b=pQ=n=xQ=o=yQ=z=|R={=}Q*z%[Q.i<eR7]<fnpOXst!Z#d%l&p&r&s&u,n,s2S2VQ!fPS#fZ#oQ&z!`W'f!o*f0V4qQ'}#SQ)O#{Q)p$nS,g&i&lQ,l&mQ,y&yS-O'R/iQ-b'`Q.s(|Q/V)qQ0m+YQ0s+dQ2O,kQ2q-dQ3X.bQ4O/QQ4y0dQ5v1jQ6X1zQ6Y1{Q6^1}Q6`2PQ6e2XQ7P3[Q7c3{Q8h5yQ8t6ZQ8u6[Q8w6_Q9Z7QQ:T8iR:_8x#[cOPXZst!Z!`!o#d#o#{%l&i&l&m&p&r&s&u&y'R'`(|*f+Y+d,k,n,s-d.b/i0V0d1j1z1{1}2P2S2V2X3[4q5y6Z6[6_7Q8i8xQ#YWQ#eYQ%puQ%rvS%tw!gS(Q#W(TQ(W#ZQ(r#uQ(w#xQ)P$OQ)Q$PQ)R$QQ)S$RQ)T$SQ)U$TQ)V$UQ)W$VQ)X$WQ)Y$XQ)[$ZQ)^$_Q)`$aQ)e$eW)o$n)q/Q3{Q+a%sQ+u&QS-U'V2hQ-s'pS-x(R-zQ-}(ZQ.P(bQ.n(vQ.q(xQ.u;vQ.w;yQ.x;zQ.y;}Q/]){Q0j+UQ2c-PQ2f-SQ2v-lQ2}.QQ3c.oQ3h<OQ3i<PQ3j<QQ3k<RQ3l<SQ3m<TQ3n<UQ3o<VQ3p<WQ3q<XQ3r<YQ3s.vQ3t<]Q3w<`Q3x<mQ4P<ZQ5O0lQ5Y0|Q6k<pQ6q2xQ6v3OQ7V3dQ7W<qQ7a<sQ7b<{Q8`5mQ8|6iQ9Q6rQ9[<|Q9b=VQ9c=WQ:c9SQ:y9}Q;R:aQ;x#SR=g=sR#[WR'X!el!tQ!r!v!y!z'^'j'k'l-`-p1g5q5sS'T!e-WU*g$|*X*lS-T'U']S0O*h*nQ0W*oQ2m-^Q4m0UR4r0XR(y#xQ!fQT-_'^-`]!qQ!r'^-`1g5qQ#p]R'g;wR)d$dY!uQ'^-`1g5qQ'i!rS's!v!yS'u!z5sS-o'j'kQ-q'lR2{-pT#kZ%dS#jZ%dS%jm,jU(e#h#i#lS.T(f(gQ.X(hQ0n+ZQ3Q.UU3R.V.W.YS6x3S3TR9T6yd#^W#W#Z%g(R([*W+W.O/hr#gZm#h#i#l%d(f(g(h+Z.U.V.W.Y3S3T6yS*Z$x*_Q/o*[Q1|,jQ2d-QQ4W/kQ6g2[Q7i4XQ8{6hT=_'V+XV#aW%g*WU#`W%g*WS(S#W([U(X#Z+W/hS-V'V+XT-y(R.OV'[!e%h*XQ$lfR)v$qT)k$l)lR3}/PT*]$x*_T*e${*WQ0q+cQ1_,QQ3V.aQ5j1aQ5u1iQ6}3ZQ8g5xQ9W6|Q:Q8fQ:d9VQ:|:SQ;U:fQ;`:}R;c;VnqOXst!Z#d%l&p&r&s&u,n,s2S2VQ&j!VR,c&gtmOXst!U!V!Z#d%l&g&p&r&s&u,n,s2S2VR,j&mT%km,jR1c,SR,b&eQ&T|R+z&UR+p&OT&n!W&qT&o!W&qT2U,s2V",nodeNames:"\u26A0 ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:379,context:Nz,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,236,242,244,246,248,251,257,263,265,267,269,271,273,274,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[t5],skippedNodes:[0,5,6,277],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(VpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(VpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Vp(Y!b'{0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(W#S$i&j'|0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Vp(Y!b'|0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(U':f$i&j(Y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Y!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Vp(Y!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Vp(Y!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Y!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Y!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(VpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(VpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Vp(Y!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(n%1l(Vp(Y!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Vp(Y!b$]#t(S,2j(d$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Vp(Y!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Vp(Y!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(y+JY$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(X';W$i&j(VpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(VpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(VpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(VpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(VpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Vp(Y!b(T%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Vp(Y!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Vp(Y!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Vp(Y!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Vp(Y!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Vp(Y!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Y!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Y!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Y!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Y!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Y!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Y!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Vp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Vp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Vp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Vp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(VpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(VpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Vp(Y!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Vp(Y!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Vp(Y!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Vp(Y!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Vp(Y!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Vp(Y!b'}0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Vp(Y!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Y!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Y!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(VpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(VpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Vp(Y!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Vp(Y!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Vp(Y!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Vp(Y!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Vp(Y!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Vp(Y!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(q(Ct$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Vp(Y!b(`+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Vp(Y!b(S,2j$_#t(d$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Vp(Y!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Vp(Y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(x+JY$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Vp(Y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Vp(Y!b'{0/l$]#t(S,2j(d$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Vp(Y!b'|0/l$]#t(S,2j(d$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[Hz,Kz,Jz,e5,2,3,4,5,6,7,8,9,10,11,12,13,14,Fz,new wi("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(b~~",141,339),new wi("j~RQYZXz{^~^O(P~~aP!P!Qd~iO(Q~~",25,322)],topRules:{Script:[0,7],SingleExpression:[1,275],SingleClassItem:[2,276]},dialects:{jsx:0,ts:15098},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:326,get:i=>i5[i]||-1},{term:342,get:i=>n5[i]||-1},{term:95,get:i=>r5[i]||-1}],tokenPrec:15124});var EQ=[Ue("function ${name}(${params}) {\n  ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Ue("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n  ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Ue("for (let ${name} of ${collection}) {\n  ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Ue("do {\n   ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Ue("while (${}) {\n  ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Ue(`try {
    5757    \${}
    5858} catch (\${error}) {
     
    6666        \${}
    6767    }
    68 }`,{label:"class",detail:"definition",type:"keyword"}),Ue('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Ue('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],t5=UQ.concat([Ue("interface ${name} {\n    ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Ue("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Ue("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),AQ=new Wn,MQ=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function vs(i){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,i),!0}}var i5=["FunctionDeclaration"],n5={FunctionDeclaration:vs("function"),ClassDeclaration:vs("class"),ClassExpression:()=>!0,EnumDeclaration:vs("constant"),TypeAliasDeclaration:vs("type"),NamespaceDeclaration:vs("namespace"),VariableDefinition(i,e){i.matchContext(i5)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function EQ(i,e){let t=AQ.get(e);if(t)return t;let n=[],r=!0;function s(o,a){let l=i.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(H.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let a=n5[o.name];if(a&&a(o,s)||MQ.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of EQ(i,o.node))n.push(a);return!1}}),AQ.set(e,n),n}var jQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,DQ=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function r5(i){let e=ae(i.state).resolveInner(i.pos,-1);if(DQ.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&jQ.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)MQ.has(r.name)&&(n=n.concat(EQ(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:jQ}}var bt=Ct.define({name:"javascript",parser:VQ.configure({props:[Ft.add({IfStatement:Zt({except:/^\s*({|else\b)/}),TryStatement:Zt({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:t$,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:ya({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":Zt({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Ht.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Un,BlockComment(i){return{from:i.from+2,to:i.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),BQ={test:i=>/^JSX/.test(i.name),facet:mh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},zf=bt.configure({dialect:"ts"},"typescript"),Xf=bt.configure({dialect:"jsx",props:[ga.add(i=>i.isTop?[BQ]:void 0)]}),Rf=bt.configure({dialect:"jsx ts",props:[ga.add(i=>i.isTop?[BQ]:void 0)]},"typescript"),LQ=i=>({label:i,type:"keyword"}),GQ="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(LQ),s5=GQ.concat(["declare","implements","private","protected","public"].map(LQ));function IQ(i={}){let e=i.jsx?i.typescript?Rf:Xf:i.typescript?zf:bt,t=i.typescript?t5.concat(s5):UQ.concat(GQ);return new Wt(e,[bt.data.of({autocomplete:Py(DQ,Ih(t))}),bt.data.of({autocomplete:r5}),i.jsx?l5:[]])}function o5(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function YQ(i,e,t=i.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return i.sliceString(n.from,Math.min(n.to,t));return""}var a5=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),l5=T.inputHandler.of((i,e,t,n,r)=>{if((a5?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||n!=">"&&n!="/"||!bt.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:O}=l,h=ae(o).resolveInner(O-1,-1),f;if(h.name=="JSXStartTag"&&(h=h.parent),!(o.doc.sliceString(O-1,O)!=n||h.name=="JSXAttributeValue"&&h.to>O)){if(n==">"&&h.name=="JSXFragmentTag")return{range:l,changes:{from:O,insert:"</>"}};if(n=="/"&&h.name=="JSXStartCloseTag"){let u=h.parent,d=u.parent;if(d&&u.from==O-2&&((f=YQ(o.doc,d.firstChild,O))||((c=d.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let p=`${f}>`;return{range:P.cursor(O+p.length,-1),changes:{from:O,insert:p}}}}else if(n==">"){let u=o5(h);if(u&&u.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(O,O+2))&&(f=YQ(o.doc,u,O)))return{range:l,changes:{from:O,insert:`</${f}>`}}}}return{range:l}});return a.changes.empty?!1:(i.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var ws=["_blank","_self","_top","_parent"],qf=["ascii","utf-8","utf-16","latin1","latin1"],_f=["get","post","put","delete"],Cf=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],st=["true","false"],_={},O5={a:{attrs:{href:null,ping:null,type:null,media:null,target:ws,hreflang:null}},abbr:_,address:_,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:_,aside:_,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:_,base:{attrs:{href:null,target:ws}},bdi:_,bdo:_,blockquote:{attrs:{cite:null}},body:_,br:_,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Cf,formmethod:_f,formnovalidate:["novalidate"],formtarget:ws,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:_,center:_,cite:_,code:_,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:_,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:_,div:_,dl:_,dt:_,em:_,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:_,figure:_,footer:_,form:{attrs:{action:null,name:null,"accept-charset":qf,autocomplete:["on","off"],enctype:Cf,method:_f,novalidate:["novalidate"],target:ws}},h1:_,h2:_,h3:_,h4:_,h5:_,h6:_,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:_,hgroup:_,hr:_,html:{attrs:{manifest:null}},i:_,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Cf,formmethod:_f,formnovalidate:["novalidate"],formtarget:ws,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:_,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:_,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:_,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:qf,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:_,noscript:_,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:_,param:{attrs:{name:null,value:null}},pre:_,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:_,rt:_,ruby:_,samp:_,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:qf}},section:_,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:_,source:{attrs:{src:null,type:null,media:null}},span:_,strong:_,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:_,summary:_,sup:_,table:_,tbody:_,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:_,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:_,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:_,time:{attrs:{datetime:null}},title:_,tr:_,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:_,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:_},KQ={accesskey:null,class:null,contenteditable:st,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:st,autocorrect:st,autocapitalize:st,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":st,"aria-autocomplete":["inline","list","both","none"],"aria-busy":st,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":st,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":st,"aria-hidden":st,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":st,"aria-multiselectable":st,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":st,"aria-relevant":null,"aria-required":st,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},JQ="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(i=>"on"+i);for(let i of JQ)KQ[i]=null;var Fn=class{constructor(e,t){this.tags=Object.assign(Object.assign({},O5),e),this.globalAttrs=Object.assign(Object.assign({},KQ),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};Fn.default=new Fn;function Hn(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}function Kn(i,e=!1){for(;i;i=i.parent)if(i.name=="Element")if(e)e=!1;else return i;return null}function e0(i,e,t){let n=t.tags[Hn(i,Kn(e))];return n?.children||t.allTags}function Wf(i,e){let t=[];for(let n=Kn(e);n&&!n.type.isTop;n=Kn(n.parent)){let r=Hn(i,n);if(r&&n.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(r)}return t}var t0=/^[:\-\.\w\u00b7-\uffff]*$/;function NQ(i,e,t,n,r){let s=/\s*>/.test(i.sliceDoc(r,r+5))?"":">",o=Kn(t,!0);return{from:n,to:r,options:e0(i.doc,o,e).map(a=>({label:a,type:"type"})).concat(Wf(i.doc,t).map((a,l)=>({label:"/"+a,apply:"/"+a+s,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function FQ(i,e,t,n){let r=/\s*>/.test(i.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:Wf(i.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:t0}}function c5(i,e,t,n){let r=[],s=0;for(let o of e0(i.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of Wf(i.doc,t))r.push({label:"</"+o+">",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function h5(i,e,t,n,r){let s=Kn(t),o=s?e.tags[Hn(i.doc,s)]:null,a=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?a:a.length?a.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:r,options:l.map(c=>({label:c,type:"property"})),validFor:t0}}function f5(i,e,t,n,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),a=[],l;if(o){let c=i.sliceDoc(o.from,o.to),O=e.globalAttrs[c];if(!O){let h=Kn(t),f=h?e.tags[Hn(i.doc,h)]:null;O=f?.attrs&&f.attrs[c]}if(O){let h=i.sliceDoc(n,r).toLowerCase(),f='"',u='"';/^['"]/.test(h)?(l=h[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",u=i.sliceDoc(r,r+1)==h[0]?"":h[0],h=h.slice(1),n++):l=/^[^\s<>='"]*$/;for(let d of O)a.push({label:d,apply:f+d+u,type:"constant"})}}return{from:n,to:r,options:a,validFor:l}}function u5(i,e){let{state:t,pos:n}=e,r=ae(t).resolveInner(n,-1),s=r.resolve(n);for(let o=n,a;s==r&&(a=r.childBefore(o));){let l=a.lastChild;if(!l||!l.type.isError||l.from<l.to)break;s=r=a,o=l.from}return r.name=="TagName"?r.parent&&/CloseTag$/.test(r.parent.name)?FQ(t,r,r.from,n):NQ(t,i,r,r.from,n):r.name=="StartTag"?NQ(t,i,r,n,n):r.name=="StartCloseTag"||r.name=="IncompleteCloseTag"?FQ(t,r,n,n):r.name=="OpenTag"||r.name=="SelfClosingTag"||r.name=="AttributeName"?h5(t,i,r,r.name=="AttributeName"?r.from:n,n):r.name=="Is"||r.name=="AttributeValue"||r.name=="UnquotedAttributeValue"?f5(t,i,r,r.name=="Is"?n:r.from,n):e.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?c5(t,i,r,n):null}function d5(i){let{extraTags:e,extraGlobalAttributes:t}=i,n=t||e?new Fn(e,t):Fn.default;return r=>u5(n,r)}var p5=bt.parser.configure({top:"SingleExpression"}),i0=[{tag:"script",attrs:i=>i.type=="text/typescript"||i.lang=="ts",parser:zf.parser},{tag:"script",attrs:i=>i.type=="text/babel"||i.type=="text/jsx",parser:Xf.parser},{tag:"script",attrs:i=>i.type=="text/typescript-jsx",parser:Rf.parser},{tag:"script",attrs(i){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(i.type)},parser:p5},{tag:"script",attrs(i){return!i.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(i.type)},parser:bt.parser},{tag:"style",attrs(i){return(!i.lang||i.lang=="css")&&(!i.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(i.type))},parser:xs.parser}],n0=[{name:"style",parser:xs.parser.configure({top:"Styles"})}].concat(JQ.map(i=>({name:i,parser:bt.parser}))),r0=Ct.define({name:"html",parser:SQ.configure({props:[Ft.add({Element(i){let e=/^(\s*)(<\/)?/.exec(i.textAfter);return i.node.to<=i.pos+e[0].length?i.continue():i.lineIndent(i.node.from)+(e[2]?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit},Document(i){if(i.pos+/\s*/.exec(i.textAfter)[0].length<i.node.to)return i.continue();let e=null,t;for(let n=i.node;;){let r=n.lastChild;if(!r||r.name!="Element"||r.to!=n.to)break;e=n=r}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?i.lineIndent(e.from)+i.unit:null}}),Ht.add({Element(i){let e=i.firstChild,t=i.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:i.to}}}),$h.add({"OpenTag CloseTag":i=>i.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),Ka=r0.configure({wrap:bf(i0,n0)});function s0(i={}){let e="",t;i.matchClosingTags===!1&&(e="noMatch"),i.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(i.nestedLanguages&&i.nestedLanguages.length||i.nestedAttributes&&i.nestedAttributes.length)&&(t=bf((i.nestedLanguages||[]).concat(i0),(i.nestedAttributes||[]).concat(n0)));let n=t?r0.configure({wrap:t,dialect:e}):e?Ka.configure({dialect:e}):Ka;return new Wt(n,[Ka.data.of({autocomplete:d5(i)}),i.autoCloseTags!==!1?m5:[],IQ().support,CQ().support])}var HQ=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),m5=T.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!Ka.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,a=o.changeByRange(l=>{var c,O,h;let f=o.doc.sliceString(l.from-1,l.to)==n,{head:u}=l,d=ae(o).resolveInner(u,-1),p;if(f&&n==">"&&d.name=="EndTag"){let m=d.parent;if(((O=(c=m.parent)===null||c===void 0?void 0:c.lastChild)===null||O===void 0?void 0:O.name)!="CloseTag"&&(p=Hn(o.doc,m.parent,u))&&!HQ.has(p)){let g=u+(o.doc.sliceString(u,u+1)===">"?1:0),y=`</${p}>`;return{range:l,changes:{from:u,to:g,insert:y}}}}else if(f&&n=="/"&&d.name=="IncompleteCloseTag"){let m=d.parent;if(d.from==u-2&&((h=m.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(p=Hn(o.doc,m,u))&&!HQ.has(p)){let g=u+(o.doc.sliceString(u,u+1)===">"?1:0),y=`${p}>`;return{range:P.cursor(u+y.length,-1),changes:{from:u,to:g,insert:y}}}}return{range:l}});return a.changes.empty?!1:(i.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var g5=Ct.define({name:"php",parser:nQ.configure({props:[Ft.add({IfStatement:Zt({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:Zt({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},ColonBlock:i=>i.baseIndent+i.unit,"Block EnumBody DeclarationList":ya({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"String BlockComment":()=>null,Statement:Zt({except:/^({|end(for|foreach|switch|while)\b)/})}),Ht.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":Un,ColonBlock(i){return{from:i.from+1,to:i.to}},BlockComment(i){return{from:i.from+2,to:i.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function o0(i={}){let e=[],t;if(i.baseLanguage!==null)if(i.baseLanguage)t=i.baseLanguage;else{let n=s0({matchClosingTags:!1});e.push(n.support),t=n.language}return new Wt(g5.configure({wrap:t&&Oa(n=>n.type.isTop?{parser:t.parser,overlay:r=>r.name=="Text"}:null),top:i.plain?"Program":"Template"}),e)}var{useEffect:$5,useRef:Zf}=wp.element;function Vf({id:i,doc:e,update:t}){let n=Zf(),r=Zf(),s=Zf((()=>{let o;return ee.changeFilter.of(a=>(clearTimeout(o),setTimeout(()=>t(a.newDoc.toString()),200),!0))})()).current;return $5(()=>{n.current&&(r.current||(r.current=new T({doc:e,parent:n.current,extensions:[By,o0({plain:!0}),s]})))},[e]),React.createElement(y5,{id:i},React.createElement("div",{ref:n}))}function y5({id:i,children:e}){let t=`function forms_bridge_job_${i.replace(/-/g,"_")}($payload, $bridge)
     68}`,{label:"class",detail:"definition",type:"keyword"}),Ue('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Ue('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],s5=EQ.concat([Ue("interface ${name} {\n    ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Ue("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Ue("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),YQ=new Wn,DQ=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function vs(i){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,i),!0}}var o5=["FunctionDeclaration"],a5={FunctionDeclaration:vs("function"),ClassDeclaration:vs("class"),ClassExpression:()=>!0,EnumDeclaration:vs("constant"),TypeAliasDeclaration:vs("type"),NamespaceDeclaration:vs("namespace"),VariableDefinition(i,e){i.matchContext(o5)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function LQ(i,e){let t=YQ.get(e);if(t)return t;let n=[],r=!0;function s(o,a){let l=i.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(K.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let a=a5[o.name];if(a&&a(o,s)||DQ.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of LQ(i,o.node))n.push(a);return!1}}),YQ.set(e,n),n}var UQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,BQ=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function l5(i){let e=ae(i.state).resolveInner(i.pos,-1);if(BQ.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&UQ.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)DQ.has(r.name)&&(n=n.concat(LQ(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:UQ}}var bt=Ct.define({name:"javascript",parser:jQ.configure({props:[Ft.add({IfStatement:Zt({except:/^\s*({|else\b)/}),TryStatement:Zt({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:n$,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:ya({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":Zt({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Ht.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Un,BlockComment(i){return{from:i.from+2,to:i.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),GQ={test:i=>/^JSX/.test(i.name),facet:mh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},zf=bt.configure({dialect:"ts"},"typescript"),Xf=bt.configure({dialect:"jsx",props:[ga.add(i=>i.isTop?[GQ]:void 0)]}),Rf=bt.configure({dialect:"jsx ts",props:[ga.add(i=>i.isTop?[GQ]:void 0)]},"typescript"),IQ=i=>({label:i,type:"keyword"}),NQ="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(IQ),O5=NQ.concat(["declare","implements","private","protected","public"].map(IQ));function FQ(i={}){let e=i.jsx?i.typescript?Rf:Xf:i.typescript?zf:bt,t=i.typescript?s5.concat(O5):EQ.concat(NQ);return new Wt(e,[bt.data.of({autocomplete:Ty(BQ,Ih(t))}),bt.data.of({autocomplete:l5}),i.jsx?f5:[]])}function c5(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function MQ(i,e,t=i.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return i.sliceString(n.from,Math.min(n.to,t));return""}var h5=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),f5=T.inputHandler.of((i,e,t,n,r)=>{if((h5?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||n!=">"&&n!="/"||!bt.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:O}=l,h=ae(o).resolveInner(O-1,-1),f;if(h.name=="JSXStartTag"&&(h=h.parent),!(o.doc.sliceString(O-1,O)!=n||h.name=="JSXAttributeValue"&&h.to>O)){if(n==">"&&h.name=="JSXFragmentTag")return{range:l,changes:{from:O,insert:"</>"}};if(n=="/"&&h.name=="JSXStartCloseTag"){let u=h.parent,d=u.parent;if(d&&u.from==O-2&&((f=MQ(o.doc,d.firstChild,O))||((c=d.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let p=`${f}>`;return{range:P.cursor(O+p.length,-1),changes:{from:O,insert:p}}}}else if(n==">"){let u=c5(h);if(u&&u.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(O,O+2))&&(f=MQ(o.doc,u,O)))return{range:l,changes:{from:O,insert:`</${f}>`}}}}return{range:l}});return a.changes.empty?!1:(i.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var ws=["_blank","_self","_top","_parent"],qf=["ascii","utf-8","utf-16","latin1","latin1"],_f=["get","post","put","delete"],Cf=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],st=["true","false"],_={},u5={a:{attrs:{href:null,ping:null,type:null,media:null,target:ws,hreflang:null}},abbr:_,address:_,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:_,aside:_,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:_,base:{attrs:{href:null,target:ws}},bdi:_,bdo:_,blockquote:{attrs:{cite:null}},body:_,br:_,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Cf,formmethod:_f,formnovalidate:["novalidate"],formtarget:ws,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:_,center:_,cite:_,code:_,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:_,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:_,div:_,dl:_,dt:_,em:_,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:_,figure:_,footer:_,form:{attrs:{action:null,name:null,"accept-charset":qf,autocomplete:["on","off"],enctype:Cf,method:_f,novalidate:["novalidate"],target:ws}},h1:_,h2:_,h3:_,h4:_,h5:_,h6:_,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:_,hgroup:_,hr:_,html:{attrs:{manifest:null}},i:_,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Cf,formmethod:_f,formnovalidate:["novalidate"],formtarget:ws,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:_,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:_,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:_,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:qf,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:_,noscript:_,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:_,param:{attrs:{name:null,value:null}},pre:_,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:_,rt:_,ruby:_,samp:_,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:qf}},section:_,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:_,source:{attrs:{src:null,type:null,media:null}},span:_,strong:_,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:_,summary:_,sup:_,table:_,tbody:_,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:_,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:_,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:_,time:{attrs:{datetime:null}},title:_,tr:_,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:_,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:_},e0={accesskey:null,class:null,contenteditable:st,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:st,autocorrect:st,autocapitalize:st,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":st,"aria-autocomplete":["inline","list","both","none"],"aria-busy":st,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":st,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":st,"aria-hidden":st,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":st,"aria-multiselectable":st,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":st,"aria-relevant":null,"aria-required":st,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},t0="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(i=>"on"+i);for(let i of t0)e0[i]=null;var Fn=class{constructor(e,t){this.tags=Object.assign(Object.assign({},u5),e),this.globalAttrs=Object.assign(Object.assign({},e0),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};Fn.default=new Fn;function Hn(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}function Kn(i,e=!1){for(;i;i=i.parent)if(i.name=="Element")if(e)e=!1;else return i;return null}function i0(i,e,t){let n=t.tags[Hn(i,Kn(e))];return n?.children||t.allTags}function Wf(i,e){let t=[];for(let n=Kn(e);n&&!n.type.isTop;n=Kn(n.parent)){let r=Hn(i,n);if(r&&n.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(r)}return t}var n0=/^[:\-\.\w\u00b7-\uffff]*$/;function HQ(i,e,t,n,r){let s=/\s*>/.test(i.sliceDoc(r,r+5))?"":">",o=Kn(t,!0);return{from:n,to:r,options:i0(i.doc,o,e).map(a=>({label:a,type:"type"})).concat(Wf(i.doc,t).map((a,l)=>({label:"/"+a,apply:"/"+a+s,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function KQ(i,e,t,n){let r=/\s*>/.test(i.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:Wf(i.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:n0}}function d5(i,e,t,n){let r=[],s=0;for(let o of i0(i.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of Wf(i.doc,t))r.push({label:"</"+o+">",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function p5(i,e,t,n,r){let s=Kn(t),o=s?e.tags[Hn(i.doc,s)]:null,a=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?a:a.length?a.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:r,options:l.map(c=>({label:c,type:"property"})),validFor:n0}}function m5(i,e,t,n,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),a=[],l;if(o){let c=i.sliceDoc(o.from,o.to),O=e.globalAttrs[c];if(!O){let h=Kn(t),f=h?e.tags[Hn(i.doc,h)]:null;O=f?.attrs&&f.attrs[c]}if(O){let h=i.sliceDoc(n,r).toLowerCase(),f='"',u='"';/^['"]/.test(h)?(l=h[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",u=i.sliceDoc(r,r+1)==h[0]?"":h[0],h=h.slice(1),n++):l=/^[^\s<>='"]*$/;for(let d of O)a.push({label:d,apply:f+d+u,type:"constant"})}}return{from:n,to:r,options:a,validFor:l}}function g5(i,e){let{state:t,pos:n}=e,r=ae(t).resolveInner(n,-1),s=r.resolve(n);for(let o=n,a;s==r&&(a=r.childBefore(o));){let l=a.lastChild;if(!l||!l.type.isError||l.from<l.to)break;s=r=a,o=l.from}return r.name=="TagName"?r.parent&&/CloseTag$/.test(r.parent.name)?KQ(t,r,r.from,n):HQ(t,i,r,r.from,n):r.name=="StartTag"?HQ(t,i,r,n,n):r.name=="StartCloseTag"||r.name=="IncompleteCloseTag"?KQ(t,r,n,n):r.name=="OpenTag"||r.name=="SelfClosingTag"||r.name=="AttributeName"?p5(t,i,r,r.name=="AttributeName"?r.from:n,n):r.name=="Is"||r.name=="AttributeValue"||r.name=="UnquotedAttributeValue"?m5(t,i,r,r.name=="Is"?n:r.from,n):e.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?d5(t,i,r,n):null}function $5(i){let{extraTags:e,extraGlobalAttributes:t}=i,n=t||e?new Fn(e,t):Fn.default;return r=>g5(n,r)}var y5=bt.parser.configure({top:"SingleExpression"}),r0=[{tag:"script",attrs:i=>i.type=="text/typescript"||i.lang=="ts",parser:zf.parser},{tag:"script",attrs:i=>i.type=="text/babel"||i.type=="text/jsx",parser:Xf.parser},{tag:"script",attrs:i=>i.type=="text/typescript-jsx",parser:Rf.parser},{tag:"script",attrs(i){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(i.type)},parser:y5},{tag:"script",attrs(i){return!i.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(i.type)},parser:bt.parser},{tag:"style",attrs(i){return(!i.lang||i.lang=="css")&&(!i.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(i.type))},parser:xs.parser}],s0=[{name:"style",parser:xs.parser.configure({top:"Styles"})}].concat(t0.map(i=>({name:i,parser:bt.parser}))),o0=Ct.define({name:"html",parser:xQ.configure({props:[Ft.add({Element(i){let e=/^(\s*)(<\/)?/.exec(i.textAfter);return i.node.to<=i.pos+e[0].length?i.continue():i.lineIndent(i.node.from)+(e[2]?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit},Document(i){if(i.pos+/\s*/.exec(i.textAfter)[0].length<i.node.to)return i.continue();let e=null,t;for(let n=i.node;;){let r=n.lastChild;if(!r||r.name!="Element"||r.to!=n.to)break;e=n=r}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?i.lineIndent(e.from)+i.unit:null}}),Ht.add({Element(i){let e=i.firstChild,t=i.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:i.to}}}),$h.add({"OpenTag CloseTag":i=>i.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),Ka=o0.configure({wrap:bf(r0,s0)});function a0(i={}){let e="",t;i.matchClosingTags===!1&&(e="noMatch"),i.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(i.nestedLanguages&&i.nestedLanguages.length||i.nestedAttributes&&i.nestedAttributes.length)&&(t=bf((i.nestedLanguages||[]).concat(r0),(i.nestedAttributes||[]).concat(s0)));let n=t?o0.configure({wrap:t,dialect:e}):e?Ka.configure({dialect:e}):Ka;return new Wt(n,[Ka.data.of({autocomplete:$5(i)}),i.autoCloseTags!==!1?Q5:[],FQ().support,ZQ().support])}var JQ=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Q5=T.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!Ka.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,a=o.changeByRange(l=>{var c,O,h;let f=o.doc.sliceString(l.from-1,l.to)==n,{head:u}=l,d=ae(o).resolveInner(u,-1),p;if(f&&n==">"&&d.name=="EndTag"){let m=d.parent;if(((O=(c=m.parent)===null||c===void 0?void 0:c.lastChild)===null||O===void 0?void 0:O.name)!="CloseTag"&&(p=Hn(o.doc,m.parent,u))&&!JQ.has(p)){let g=u+(o.doc.sliceString(u,u+1)===">"?1:0),Q=`</${p}>`;return{range:l,changes:{from:u,to:g,insert:Q}}}}else if(f&&n=="/"&&d.name=="IncompleteCloseTag"){let m=d.parent;if(d.from==u-2&&((h=m.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(p=Hn(o.doc,m,u))&&!JQ.has(p)){let g=u+(o.doc.sliceString(u,u+1)===">"?1:0),Q=`${p}>`;return{range:P.cursor(u+Q.length,-1),changes:{from:u,to:g,insert:Q}}}}return{range:l}});return a.changes.empty?!1:(i.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var S5=Ct.define({name:"php",parser:sQ.configure({props:[Ft.add({IfStatement:Zt({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:Zt({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},ColonBlock:i=>i.baseIndent+i.unit,"Block EnumBody DeclarationList":ya({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"String BlockComment":()=>null,Statement:Zt({except:/^({|end(for|foreach|switch|while)\b)/})}),Ht.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":Un,ColonBlock(i){return{from:i.from+1,to:i.to}},BlockComment(i){return{from:i.from+2,to:i.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function l0(i={}){let e=[],t;if(i.baseLanguage!==null)if(i.baseLanguage)t=i.baseLanguage;else{let n=a0({matchClosingTags:!1});e.push(n.support),t=n.language}return new Wt(S5.configure({wrap:t&&Oa(n=>n.type.isTop?{parser:t.parser,overlay:r=>r.name=="Text"}:null),top:i.plain?"Program":"Template"}),e)}var{useEffect:b5,useRef:Zf}=wp.element;function Vf({id:i,doc:e,update:t}){let n=Zf(),r=Zf(),s=Zf((()=>{let o;return ee.changeFilter.of(a=>(clearTimeout(o),setTimeout(()=>t(a.newDoc.toString()),200),!0))})()).current;return b5(()=>{n.current&&(r.current||(r.current=new T({doc:e,parent:n.current,extensions:[Gy,l0({plain:!0}),s]})))},[e]),React.createElement(x5,{id:i},React.createElement("div",{ref:n}))}function x5({id:i,children:e}){let t=`function forms_bridge_job_${i.replace(/-/g,"_")}($payload, $bridge)
    6969{`;return React.createElement(React.Fragment,null,React.createElement("code",{style:{display:"block",paddingLeft:"32px"}},React.createElement("pre",{style:{paddingLeft:"5px",margin:"2px 0",borderLeft:"1px solid #ddd",color:"#6c6c6c"}},t)),e,React.createElement("code",{style:{display:"block",paddingLeft:"32px"}},React.createElement("pre",{style:{paddingLeft:"5px",margin:"2px 0",borderLeft:"1px solid #ddd",color:"#6c6c6c"}},`    return $payload;
    70 }`)))}var{useState:Q5,useEffect:S5,useMemo:b5,useRef:Af}=wp.element,{SelectControl:x5}=wp.components;function jf({value:i=[],onChange:e=()=>{},options:t=[],disabled:n=!1}){let[r,s]=Q5(!1);Array.isArray(i)||(i=[i]);let o=b5(()=>i.join(", "),[i]),a=Af(),l=Af(O=>{O.key==="Enter"&&(s(!1),document.body.removeEventListener("keydown",l))}).current,c=Af(O=>{O.target!==a.current&&!a.current.contains(O.target)&&(O.preventDefault(),s(!1),document.body.removeEventListener("click",c,!0))}).current;return S5(()=>{r&&(document.body.addEventListener("click",c,!0),document.body.addEventListener("keydown",l))},[r]),React.createElement("div",{ref:a,style:{position:"relative"}},r&&React.createElement("div",{style:{position:"absolute",zIndex:10,top:0,left:0,width:"100%",height:"100%"}},React.createElement(x5,{disabled:n,value:i,onChange:e,options:t,multiple:!0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))||React.createElement(React.Fragment,null,React.createElement("input",{type:"text",value:o,onChange:()=>{},style:{height:"40px",padding:"6px 30px 6px 12px",border:"1px solid #949494",borderRadius:"2px",cursor:"pointer",width:"100%"},onClick:()=>s(!0)}),React.createElement("div",{style:{position:"absolute",zIndex:1,right:"10px",top:"50%",width:"6px",height:"6px",borderRight:"1px solid",borderBottom:"1px solid",transform:"translate(-50%, -50%) scale(1, 0.80) rotate(45deg)",color:"black"}})))}var{ToggleControl:v5}=wp.components,{useEffect:w5,useRef:P5}=wp.element,k5=`.fb-toggle-control .components-form-toggle { height: 24px }
     70}`)))}var{useState:v5,useEffect:w5,useMemo:P5,useRef:Af}=wp.element,{SelectControl:k5}=wp.components;function jf({value:i=[],onChange:e=()=>{},options:t=[],disabled:n=!1}){let[r,s]=v5(!1);Array.isArray(i)||(i=[i]);let o=P5(()=>i.join(", "),[i]),a=Af(),l=Af(O=>{O.key==="Enter"&&(s(!1),document.body.removeEventListener("keydown",l))}).current,c=Af(O=>{O.target!==a.current&&!a.current.contains(O.target)&&(O.preventDefault(),s(!1),document.body.removeEventListener("click",c,!0))}).current;return w5(()=>{r&&(document.body.addEventListener("click",c,!0),document.body.addEventListener("keydown",l))},[r]),React.createElement("div",{ref:a,style:{position:"relative"}},r&&React.createElement("div",{style:{position:"absolute",zIndex:10,top:0,left:0,width:"100%",height:"100%"}},React.createElement(k5,{disabled:n,value:i,onChange:e,options:t,multiple:!0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))||React.createElement(React.Fragment,null,React.createElement("input",{type:"text",value:o,onChange:()=>{},style:{height:"40px",padding:"6px 30px 6px 12px",border:"1px solid #949494",borderRadius:"2px",cursor:"pointer",width:"100%"},onClick:()=>s(!0)}),React.createElement("div",{style:{position:"absolute",zIndex:1,right:"10px",top:"50%",width:"6px",height:"6px",borderRight:"1px solid",borderBottom:"1px solid",transform:"translate(-50%, -50%) scale(1, 0.80) rotate(45deg)",color:"black"}})))}var{ToggleControl:T5}=wp.components,{useEffect:z5,useRef:X5}=wp.element,R5=`.fb-toggle-control .components-form-toggle { height: 24px }
    7171.fb-toggle-control .components-form-toggle__track { height: 24px; width: 48px; border-radius: 12px }
    7272.fb-toggle-control .components-form-toggle__thumb { width: 18px; height: 18px; top: 3px; left: 3px }
    7373.fb-toggle-control .components-form-toggle.is-checked .components-form-toggle__thumb { transform: translate(24px) }
    74 .fb-toggle-control .components-toggle-control__help { margin-inline-start: 56px }`;function Jn({checked:i,onChange:e,disabled:t,help:n,label:r,noEdit:s=!1}){let o=P5(document.createElement("style"));return w5(()=>{let a=k5;return s&&(a+=".fb-toggle-control .components-form-toggle.is-disabled { opacity: 1 }"),o.current.appendChild(document.createTextNode(a)),document.head.appendChild(o.current),()=>{document.head.removeChild(o.current)}},[]),React.createElement(v5,{label:r,help:n,className:"fb-toggle-control",disabled:t,checked:!!i,onChange:()=>e(!!i),__nextHasNoMarginBottom:!0})}var{__:T5}=window.wp.i18n;function Ja(i){return i.type==="object"?(delete i.properties[""],Object.keys(i.properties).forEach(e=>{i.properties[e]=Ja(i.properties[e])}),i.additionalProperties=Object.keys(i.properties).length===0,i):(i.type==="array"&&(Array.isArray(i.items)?(i.items=i.map.filter(e=>Ja(e)),i.items.length===1&&(i.items=i.items[0])):i.items=Ja(i.items),i.additionalItems=!Array.isArray(i.items)),i)}function Yf(i){return i.filter(e=>e.name).map(e=>(e.schema=Ja(e.schema),e))}function Uf(i,e){if(e.type==="array")Array.isArray(e.items)?e={type:"string"}:e=e.items;else if(e.type==="object"&&i!=="array"){let n=Object.keys(e.properties);n.length===1?e=e.properties[n[0]]:e={type:"string"}}let t={type:i};return i==="array"?(t.items=e,t.additionalItems=!0):i==="object"&&(t.properties={"":e},t.required=[],t.additionalProperties=!1),t}function a0(i){return{addon:i,id:`${i}-new-job`,name:"",title:T5("New job","forms-bridge"),description:"",input:[],output:[],snippet:"",method:`forms_bridge_${i}_new_job`}}function l0(i){return i.toLowerCase().replace(/\s+/g,"-").replace(/[^[0-9a-z-_]/g,"").normalize("NFD").replace(/[\u0300-\u036f]/g,"")}var{useEffect:z5,useRef:X5}=wp.element,{TextControl:c0,SelectControl:Ef,Button:Ps,Tooltip:O0}=wp.components,{__:er}=wp.i18n,h0=[{value:"string",label:"string"},{value:"integer",label:"integer"},{value:"number",label:"number"},{value:"boolean",label:"boolean"},{value:"object",label:"object"},{value:"array",label:"array"}],Df={type:"string"},Mf={name:"",schema:Df};function el({fields:i,setFields:e,fromFields:t}){let n=(o,a)=>{let l=i.slice(0,o).concat([a]).concat(i.slice(o+1,i.length));e(l)},r=(o,a=Mf)=>{let l=i.slice(0,o).concat([a]).concat(i.slice(o,i.length));e(l)},s=o=>{let a=i.slice(0,o).concat(i.slice(o+1,i.length));e(a)};return z5(()=>{i.length||r(0,{...Mf})},[i]),React.createElement(React.Fragment,null,React.createElement(Bf,{mode:Array.isArray(t)&&"output"||"input",style:{marginLeft:"calc(80px + 1rem)",marginBottom:"-1rem"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column"}},i.map((o,a)=>React.createElement(R5,{key:a,field:o,update:l=>n(a,l),remove:()=>s(a),add:()=>r(a+1,{...Mf}),from:t}))))}function Bf({style:i={},mode:e="input"}){return React.createElement("div",{style:{display:"flex",gap:"0.5rem",paddingBottom:"0.5rem",...i}},React.createElement("div",{style:{width:"clamp(200px, 15vw, 300px)",padding:"0 5px"}},React.createElement("b",null,er("Name","forms-bridge"))),React.createElement("div",{style:{width:"clamp(200px, 15vw, 300px)",padding:"0 5px"}},React.createElement("b",null,er("Type","forms-bridge"))),React.createElement("div",{style:{width:"clamp(200px, 15vw, 300px)",padding:"0 5px"}},e==="input"&&React.createElement("b",null,er("Required","forms-bridge")," ",React.createElement(O0,{text:er("If it does not exists on the payload, the job will be skipped","forms-bridge")},React.createElement("span",{style:{background:"gray",color:"white",borderRadius:"100%",padding:"0 0.35em",fontWeight:"bold",fontSize:"0.9em",cursor:"pointer"}},"?")))||React.createElement("b",null,er("Requires","forms-bridge")," ",React.createElement(O0,{text:er("Required payload fields to include it on the job output","forms-bridge")},React.createElement("span",{style:{background:"gray",color:"white",borderRadius:"100%",padding:"0 0.35em",fontWeight:"bold",fontSize:"0.9em",cursor:"pointer"}},"?")))))}function R5({field:i,update:e,remove:t,add:n,from:r}){return React.createElement(React.Fragment,null,React.createElement("div",{style:{display:"flex",gap:"0.5rem",padding:"1rem 0",borderBottom:"1px solid rgba(0, 0, 0, 0.1)"}},React.createElement(Ps,{size:"compact",variant:"secondary",onClick:n,style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(Ps,{size:"compact",variant:"secondary",isDestructive:!0,onClick:t,style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"-"),React.createElement(be,null,React.createElement(c0,{value:i.name,onChange:s=>e({...i,name:s}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(be,null,React.createElement(Ef,{value:i.schema.type,onChange:s=>{let o=Uf(s,i.schema);e({...i,schema:o})},options:h0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),Array.isArray(r)&&React.createElement(React.Fragment,null,React.createElement(be,null,React.createElement(jf,{value:i.requires||[],onChange:s=>e({...i,requires:s}),options:r.map(({name:s})=>({value:s,label:s}))})),React.createElement(be,null,React.createElement(Ef,{value:i.requires})))||React.createElement("div",{style:{paddingLeft:"0.5rem",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement(Jn,{checked:i.required,onChange:()=>e({...i,required:!i.required})}))),i.schema.type==="object"&&React.createElement(u0,{schema:i.schema,setSchema:s=>e({...i,schema:s})})||null,i.schema.type==="array"&&React.createElement(d0,{schema:i.schema,setSchema:s=>e({...i,schema:s})})||null)}function f0({name:i,setName:e,schema:t,setSchema:n,required:r,toggleRequired:s,remove:o}){return React.createElement(React.Fragment,null,React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Ps,{size:"compact",variant:"secondary",isDestructive:!0,disabled:!o,onClick:o,style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"-"),React.createElement(be,null,React.createElement(c0,{disabled:!e,value:i,onChange:e,__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})),React.createElement(be,null,React.createElement(Ef,{value:t.type,onChange:a=>n(Uf(a,t)),options:h0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("div",{style:{paddingLeft:"0.5rem",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement(Jn,{disabled:!s,checked:r,onChange:s}))),t.type==="object"&&React.createElement(u0,{schema:t,setSchema:a=>n({...t,...a})})||null,t.type==="array"&&React.createElement(d0,{schema:t,setSchema:a=>n({...t,...a})})||null)}function u0({schema:i,setSchema:e}){i.properties||(i.properties={});let t=X5(Object.keys(i.properties));return React.createElement("div",{style:{marginLeft:"0.5rem",borderLeft:"1px dashed",padding:"0.5rem 0 1rem 40px",background:"rgb(245, 245, 245)"}},React.createElement(Bf,{style:{marginLeft:"calc(40px + 0.5rem)"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},t.current.map((n,r)=>i.properties[n]?React.createElement(f0,{key:r,name:n,setName:s=>{if(s=s.trim(),i.properties[s])return;let o={...i.properties};o[s]=i.properties[n],delete o[n],e({...i,properties:o,additionalProperties:Object.keys(i.properties).length===0}),t.current[r]=s},required:i.required?.includes(n),toggleRequired:()=>{let s=Array.isArray(i.required)?[...i.required]:[],o=s.findIndex(a=>n===a);o!==-1?s.splice(o,1):s.push(n),e({...i,required:s})},schema:i.properties[n],setSchema:s=>{e({...i,properties:{...i.properties,[n]:s}})},remove:()=>{let s={...i.properties};delete s[n],e({...i,properties:s}),t.current.splice(r,1)}}):null)),React.createElement(Ps,{size:"compact",variant:"secondary",disabled:E(i.properties,""),onClick:()=>{e({...i,properties:{...i.properties,"":{type:"string"}}}),t.current.push("")},style:{marginTop:"0.5rem",width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"))}function d0({schema:i,setSchema:e}){let t=Array.isArray(i.items)?i.items:[i.items];return React.createElement("div",{style:{marginLeft:"0.5rem",borderLeft:"1px dashed",padding:"0.5rem 0 1rem 40px",background:"rgb(245, 245, 245)"}},React.createElement(Bf,{style:{marginLeft:"calc(40px + 0.5rem)"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},t.map((n,r)=>React.createElement(f0,{key:r,name:Array.isArray(i.items)?r:"{index}",schema:n,setSchema:s=>{if(Array.isArray(i.items)){let o=[...i.items];o[r]=s,e({...i,items:o,additionalItems:!1})}else e({...i,items:s,additionalItems:!0})},required:Array.isArray(i.items),toggleRequired:null,remove:Array.isArray(i.items)?()=>{let s={...i,items:t.slice(0,r).concat(t.slice(r+1,t.length))};s.items.length===1&&(s.items=s.items[0]),e(s)}:null}))),React.createElement(Ps,{size:"compact",variant:"secondary",onClick:()=>{e({...i,items:Array.isArray(i.items)?[...i.items,Df]:[i.items,Df]})},style:{marginTop:"0.5rem",width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"))}var{TextControl:q5,TextareaControl:_5}=wp.components,{__:p0}=wp.i18n;function Lf({data:i,setData:e}){return React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"1rem",paddingBottom:"2rem"}},React.createElement(q5,{label:p0("Title","forms-bridge"),value:i.title,onChange:t=>e({title:t}),__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),React.createElement(_5,{label:p0("Description","forms-bridge"),value:i.description,onChange:t=>e({description:t}),__nextHasNoMarginBottom:!0}))}var{useState:m0,useEffect:C5,useMemo:W5,useRef:Z5,useCallback:V5}=wp.element,{TabPanel:A5,Button:g0,Spinner:j5}=wp.components,{__:en}=wp.i18n,Y5=[{title:en("Metadata","forms-bridge"),name:"meta"},{title:en("Input interface","forms-bridge"),name:"input"},{title:en("Output interface","forms-bridge"),name:"output"},{title:en("Job snippet","forms-bridge"),name:"snippet"}];function ks({close:i}){let e=K(),t=ot(),[n]=pn(),r=W5(()=>new Set(n.map(d=>d.name)),[n]),[s]=un(),[o,a]=dn(),[l,c]=m0(),[O,h]=m0(!1),f=Z5(o?.name||"");C5(()=>{f.current=o?.name||"",c(s?o:a0(e))},[s,o]);let u=V5(d=>{d.name=d.name.trim(),d.name||(d.name=l0(d.title)),d.input=Yf(d.input),d.output=Yf(d.output),h(!0),a(d).then(()=>f.current!==d.name?t():Promise.resolve()).finally(()=>{h(!1),i()})},[r]);if(l?.id)return React.createElement("div",{style:{width:"100%",flex:1,position:"relative"}},React.createElement("div",{style:{display:O?"flex":"none",position:"absolute",zIndex:10,top:0,left:0,width:"100%",height:"100%",background:"#ffffff88",justifyContent:"center",alignItems:"center"}},React.createElement(j5,null)),React.createElement(A5,{tabs:Y5},d=>React.createElement("div",{style:{height:"calc(452px - 4rem)",overflowY:"auto",padding:"1rem 5px 0"}},React.createElement(U5,{tab:d.name,job:l,update:p=>c({...l,...p})}))),React.createElement("div",{style:{display:"flex",gap:"0.5em",padding:"1rem 0",borderTop:"1px solid"}},React.createElement(g0,{variant:"primary",disabled:!l.title,onClick:()=>u(l),__next40pxDefaultSize:!0},f.current.trim()!==l.name.trim()?en("Create","forms-bridge"):en("Save","forms-bridge")),React.createElement(g0,{variant:"secondary",isDestructive:!0,onClick:i,__next40pxDefaultSize:!0},en("Discard","forms-bridge"))))}function U5({tab:i,job:e,update:t}){switch(i){case"meta":return React.createElement(Lf,{data:e,setData:n=>t({...e,...n})});case"input":return React.createElement(el,{fields:e.input,setFields:n=>t({input:n})});case"output":return React.createElement(el,{fields:e.output,setFields:n=>t({output:n}),fromFields:e.input});case"snippet":return React.createElement(Vf,{id:e.id,doc:e.snippet,update:n=>t({...e,snippet:n})})}}var{__experimentalItemGroup:M5,__experimentalItem:E5,SelectControl:D5,Button:Nf}=wp.components,{useMemo:Gf,useCallback:$0}=wp.element,{__:If}=wp.i18n;function Ff({workflow:i,setWorkflow:e,setEdit:t}){let[n,r]=Dt(),[s]=pn(),o=Gf(()=>s.map(f=>({value:f.name,label:f.title})).sort((f,u)=>f.label>u.label?1:-1),[s]),a=Gf(()=>i.map(f=>({name:f,title:s.find(u=>u.name===f)?.title||f})),[i,s]),l=Gf(()=>[{title:If("Form submission","forms-bridge"),name:"form"}].concat(a).concat([{title:If("Output payload","forms-bridge"),name:"output"}]),[a]),c=f=>{let u=i.slice(0,f).concat(i.slice(f+1,i.length));e(u,f),setTimeout(()=>{n-1===f&&f===u.length&&r(n-1)},100)},O=$0(f=>{let u=i.slice(0,f+1).concat([o[0].value]).concat(i.slice(f+1,i.length));e(u,f+1)},[i,o]),h=$0((f,u)=>{if(!f)return;let d=i.slice(0,u).concat([f]).concat(i.slice(u+1,i.length));e(d,u)},[i]);return React.createElement("div",{style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column"}},React.createElement(M5,{size:"large",isSeparated:!0,style:{maxHeight:"calc(100% - 68px)",overflowY:"auto"}},l.map((f,u)=>React.createElement(E5,{key:f.name+u},React.createElement(B5,{index:u,name:f.name,title:f.title,options:o,append:O,remove:c,update:h})))),React.createElement("div",{style:{padding:"1rem 16px",marginTop:"auto"}},React.createElement(Nf,{style:{width:"100px",justifyContent:"center"},variant:"primary",onClick:()=>t(),__next40pxDefaultSize:!0},If("New job","forms-bridge"))))}function B5({name:i,title:e,index:t,options:n,append:r,update:s,remove:o}){let a=Pe(),[l,c]=Dt(),O=l===t,h=O&&i!=="form"&&i!=="output";return i==="output"?React.createElement("div",{style:{display:"flex",alignItems:"center",color:O?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"inherit"}},React.createElement("div",{style:{padding:"0.25em 0.5em"}},React.createElement("strong",null,"\u{1F680}")),React.createElement("p",{style:{cursor:"pointer",textIndent:"12px",margin:"10px 0",whiteSpace:"nowrap"},onClick:()=>c(t)},e)):React.createElement("div",{style:{display:"flex",alignItems:"center",color:O?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"inherit"}},React.createElement("div",{style:{padding:"0.25em 0.5em"}},React.createElement("strong",null,t+1,".\xA0")),React.createElement("div",{style:{flex:1}},h&&React.createElement(be,{min:"150px",max:"250px",isResponsive:a},React.createElement(D5,{value:i,onChange:f=>s(f,t-1),options:n,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))||React.createElement("p",{style:{cursor:"pointer",textIndent:"12px",padding:"10px 30px 10px 0",whiteSpace:"nowrap",margin:0,border:t?"1px solid #d1cfcf":"none",overflow:"hidden",textOverflow:"ellipsis",position:"relative",width:"clamp(150px, 15vw, 250px)"},onClick:()=>c(t)},e,React.createElement("span",{style:{display:t?"block":"none",position:"absolute",top:"50%",right:"8px",width:"6px",height:"6px",borderBottom:"1px solid #d1cfcf",borderRight:"1px solid #d1cfcf",transform:"translate(-50%, -50%) rotate(45deg)"}}))),i!=="output"&&React.createElement("div",{style:{display:"inline-flex",alignItems:"center",gap:"0.45em",padding:"0 0.45em 0 0.75em"}},React.createElement(Nf,{size:"compact",variant:"secondary",disabled:!i||n.length<=1,onClick:()=>r(t-1),style:{width:"32px"},__next40pxDefaultSize:!0},"+"),React.createElement(Nf,{size:"compact",variant:"secondary",disabled:!i||i==="form",onClick:()=>o(t-1),style:{width:"32px"},isDestructive:!0,__next40pxDefaultSize:!0},"-")))}function tl(i,e=""){let t=e.match(/\[\](?=[^[])/g)?.length>=2;if(e!==""&&(e=Y.pointer(Y.parse(e))),i.type==="object"){let n=[{value:e,label:e}];return t&&n.push({value:e+"[]",label:e+"[]"}),n.concat(Object.keys(i.properties).reduce((r,s)=>{let o=e?`${e}.${s}`:s;return r.concat(tl(i.properties[s],o))},[]))}else if(i.type==="array"){let n=[{value:e,label:e}],r=Array.isArray(i.items)?i.items:[i.items],s=r.reduce((o,a)=>o||a.type!==r[0]?.type,!1);return s||n.push({value:e+"[]",label:e+"[]"}),n.concat(r.reduce((o,a)=>{if(s)return o;let l=`${e}[]`;return o.concat(tl(a,l).filter(c=>t||c.value!==l))},[])).concat(r.reduce((o,a,l)=>{if(i.additionalItems)return o;let c=`${e}[${l}]`;return o.concat(tl(a,c))},[]))}else{let n=[{label:e,value:e}];return t&&n.push({label:e+"[]",value:e+"[]"}),n}}function y0(i,e){let t=Ci(mn(gn(i),e));return tl(t)}var{BaseControl:L5,SelectControl:Q0,Button:Hf}=wp.components,{useEffect:S0,useRef:b0,useMemo:G5,useState:I5}=wp.element,{__:ye}=wp.i18n,N5=[{value:"type-cast",label:ye("Type mutations","forms-bridge"),disabled:!0},{value:"string",label:ye("String","forms-bridge")},{value:"integer",label:ye("Integer","forms-bridge")},{value:"number",label:ye("Decimal","forms-bridge")},{value:"boolean",label:ye("Boolean","forms-bridge")},{value:"not",label:ye("Negation","forms-bridge")},{value:"implode",label:ye("Implode mutations","forms-bridge"),disabled:!0},{value:"json",label:"JSON"},{value:"pretty_json",label:"Pretty JSON"},{value:"csv",label:"CSV"},{value:"concat",label:ye("Spaced","forms-bridge")},{value:"join",label:ye("Join","forms-bridge")},{value:"sum",label:ye("Sum","forms-bridge")},{value:"count",label:ye("Count","forms-bridge")},{value:"and",label:ye("AND","forms-bridge")},{value:"or",label:ye("OR","forms-bridge")},{value:"xor",label:ye("XOR","forms-bridge")},{value:"structure",label:ye("Structure mutations","forms-bridge"),disabled:!0},{value:"inherit",label:ye("Rename","forms-bridge")},{value:"copy",label:ye("Copy","forms-bridge")},{value:"null",label:ye("Ignore","forms-bridge")}],F5=`.scrollbar-hide {
     74.fb-toggle-control .components-toggle-control__help { margin-inline-start: 56px }`;function Jn({checked:i,onChange:e,disabled:t,help:n,label:r,noEdit:s=!1}){let o=X5(document.createElement("style"));return z5(()=>{let a=R5;return s&&(a+=".fb-toggle-control .components-form-toggle.is-disabled { opacity: 1 }"),o.current.appendChild(document.createTextNode(a)),document.head.appendChild(o.current),()=>{document.head.removeChild(o.current)}},[]),React.createElement(T5,{label:r,help:n,className:"fb-toggle-control",disabled:t,checked:!!i,onChange:()=>e(!!i),__nextHasNoMarginBottom:!0})}var{__:q5}=window.wp.i18n;function Ja(i){return i.type==="object"?(delete i.properties[""],Object.keys(i.properties).forEach(e=>{i.properties[e]=Ja(i.properties[e])}),i.additionalProperties=Object.keys(i.properties).length===0,i):(i.type==="array"&&(Array.isArray(i.items)?(i.items=i.map.filter(e=>Ja(e)),i.items.length===1&&(i.items=i.items[0])):i.items=Ja(i.items),i.additionalItems=!Array.isArray(i.items)),i)}function Yf(i){return i.filter(e=>e.name).map(e=>(e.schema=Ja(e.schema),e))}function Uf(i,e){if(e.type==="array")Array.isArray(e.items)?e={type:"string"}:e=e.items;else if(e.type==="object"&&i!=="array"){let n=Object.keys(e.properties);n.length===1?e=e.properties[n[0]]:e={type:"string"}}let t={type:i};return i==="array"?(t.items=e,t.additionalItems=!0):i==="object"&&(t.properties={"":e},t.required=[],t.additionalProperties=!1),t}function O0(i){return{addon:i,id:`${i}-new-job`,name:"",title:q5("New job","forms-bridge"),description:"",input:[],output:[],snippet:"",method:`forms_bridge_${i}_new_job`}}function c0(i){return i.toLowerCase().replace(/\s+/g,"-").replace(/[^[0-9a-z-_]/g,"").normalize("NFD").replace(/[\u0300-\u036f]/g,"")}var{useEffect:_5,useRef:C5}=wp.element,{TextControl:f0,SelectControl:Ef,Button:Ps,Tooltip:h0}=wp.components,{__:er}=wp.i18n,u0=[{value:"string",label:"string"},{value:"integer",label:"integer"},{value:"number",label:"number"},{value:"boolean",label:"boolean"},{value:"object",label:"object"},{value:"array",label:"array"}],Df={type:"string"},Mf={name:"",schema:Df};function el({fields:i,setFields:e,fromFields:t}){let n=(o,a)=>{let l=i.slice(0,o).concat([a]).concat(i.slice(o+1,i.length));e(l)},r=(o,a=Mf)=>{let l=i.slice(0,o).concat([a]).concat(i.slice(o,i.length));e(l)},s=o=>{let a=i.slice(0,o).concat(i.slice(o+1,i.length));e(a)};return _5(()=>{i.length||r(0,{...Mf})},[i]),React.createElement(React.Fragment,null,React.createElement(Lf,{mode:Array.isArray(t)&&"output"||"input",style:{marginLeft:"calc(80px + 1rem)",marginBottom:"-1rem"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column"}},i.map((o,a)=>React.createElement(W5,{key:a,field:o,update:l=>n(a,l),remove:()=>s(a),add:()=>r(a+1,{...Mf}),from:t}))))}function Lf({style:i={},mode:e="input"}){return React.createElement("div",{style:{display:"flex",gap:"0.5rem",paddingBottom:"0.5rem",...i}},React.createElement("div",{style:{width:"clamp(200px, 15vw, 300px)",padding:"0 5px"}},React.createElement("b",null,er("Name","forms-bridge"))),React.createElement("div",{style:{width:"clamp(200px, 15vw, 300px)",padding:"0 5px"}},React.createElement("b",null,er("Type","forms-bridge"))),React.createElement("div",{style:{width:"clamp(200px, 15vw, 300px)",padding:"0 5px"}},e==="input"&&React.createElement("b",null,er("Required","forms-bridge")," ",React.createElement(h0,{text:er("If it does not exists on the payload, the job will be skipped","forms-bridge")},React.createElement("span",{style:{background:"gray",color:"white",borderRadius:"100%",padding:"0 0.35em",fontWeight:"bold",fontSize:"0.9em",cursor:"pointer"}},"?")))||React.createElement("b",null,er("Requires","forms-bridge")," ",React.createElement(h0,{text:er("Required payload fields to include it on the job output","forms-bridge")},React.createElement("span",{style:{background:"gray",color:"white",borderRadius:"100%",padding:"0 0.35em",fontWeight:"bold",fontSize:"0.9em",cursor:"pointer"}},"?")))))}function W5({field:i,update:e,remove:t,add:n,from:r}){return React.createElement(React.Fragment,null,React.createElement("div",{style:{display:"flex",gap:"0.5rem",padding:"1rem 0",borderBottom:"1px solid rgba(0, 0, 0, 0.1)"}},React.createElement(Ps,{size:"compact",variant:"secondary",onClick:n,style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(Ps,{size:"compact",variant:"secondary",isDestructive:!0,onClick:t,style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"-"),React.createElement(be,null,React.createElement(f0,{value:i.name,onChange:s=>e({...i,name:s}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(be,null,React.createElement(Ef,{value:i.schema.type,onChange:s=>{let o=Uf(s,i.schema);e({...i,schema:o})},options:u0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),Array.isArray(r)&&React.createElement(React.Fragment,null,React.createElement(be,null,React.createElement(jf,{value:i.requires||[],onChange:s=>e({...i,requires:s}),options:r.map(({name:s})=>({value:s,label:s}))})),React.createElement(be,null,React.createElement(Ef,{value:i.requires})))||React.createElement("div",{style:{paddingLeft:"0.5rem",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement(Jn,{checked:i.required,onChange:()=>e({...i,required:!i.required})}))),i.schema.type==="object"&&React.createElement(p0,{schema:i.schema,setSchema:s=>e({...i,schema:s})})||null,i.schema.type==="array"&&React.createElement(m0,{schema:i.schema,setSchema:s=>e({...i,schema:s})})||null)}function d0({name:i,setName:e,schema:t,setSchema:n,required:r,toggleRequired:s,remove:o}){return React.createElement(React.Fragment,null,React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Ps,{size:"compact",variant:"secondary",isDestructive:!0,disabled:!o,onClick:o,style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"-"),React.createElement(be,null,React.createElement(f0,{disabled:!e,value:i,onChange:e,__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})),React.createElement(be,null,React.createElement(Ef,{value:t.type,onChange:a=>n(Uf(a,t)),options:u0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("div",{style:{paddingLeft:"0.5rem",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement(Jn,{disabled:!s,checked:r,onChange:s}))),t.type==="object"&&React.createElement(p0,{schema:t,setSchema:a=>n({...t,...a})})||null,t.type==="array"&&React.createElement(m0,{schema:t,setSchema:a=>n({...t,...a})})||null)}function p0({schema:i,setSchema:e}){i.properties||(i.properties={});let t=C5(Object.keys(i.properties));return React.createElement("div",{style:{marginLeft:"0.5rem",borderLeft:"1px dashed",padding:"0.5rem 0 1rem 40px",background:"rgb(245, 245, 245)"}},React.createElement(Lf,{style:{marginLeft:"calc(40px + 0.5rem)"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},t.current.map((n,r)=>i.properties[n]?React.createElement(d0,{key:r,name:n,setName:s=>{if(s=s.trim(),i.properties[s])return;let o={...i.properties};o[s]=i.properties[n],delete o[n],e({...i,properties:o,additionalProperties:Object.keys(i.properties).length===0}),t.current[r]=s},required:i.required?.includes(n),toggleRequired:()=>{let s=Array.isArray(i.required)?[...i.required]:[],o=s.findIndex(a=>n===a);o!==-1?s.splice(o,1):s.push(n),e({...i,required:s})},schema:i.properties[n],setSchema:s=>{e({...i,properties:{...i.properties,[n]:s}})},remove:()=>{let s={...i.properties};delete s[n],e({...i,properties:s}),t.current.splice(r,1)}}):null)),React.createElement(Ps,{size:"compact",variant:"secondary",disabled:E(i.properties,""),onClick:()=>{e({...i,properties:{...i.properties,"":{type:"string"}}}),t.current.push("")},style:{marginTop:"0.5rem",width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"))}function m0({schema:i,setSchema:e}){let t=Array.isArray(i.items)?i.items:[i.items];return React.createElement("div",{style:{marginLeft:"0.5rem",borderLeft:"1px dashed",padding:"0.5rem 0 1rem 40px",background:"rgb(245, 245, 245)"}},React.createElement(Lf,{style:{marginLeft:"calc(40px + 0.5rem)"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},t.map((n,r)=>React.createElement(d0,{key:r,name:Array.isArray(i.items)?r:"{index}",schema:n,setSchema:s=>{if(Array.isArray(i.items)){let o=[...i.items];o[r]=s,e({...i,items:o,additionalItems:!1})}else e({...i,items:s,additionalItems:!0})},required:Array.isArray(i.items),toggleRequired:null,remove:Array.isArray(i.items)?()=>{let s={...i,items:t.slice(0,r).concat(t.slice(r+1,t.length))};s.items.length===1&&(s.items=s.items[0]),e(s)}:null}))),React.createElement(Ps,{size:"compact",variant:"secondary",onClick:()=>{e({...i,items:Array.isArray(i.items)?[...i.items,Df]:[i.items,Df]})},style:{marginTop:"0.5rem",width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"))}var{TextControl:Z5,TextareaControl:V5}=wp.components,{__:g0}=wp.i18n;function Bf({data:i,setData:e}){return React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"1rem",paddingBottom:"2rem"}},React.createElement(Z5,{label:g0("Title","forms-bridge"),value:i.title,onChange:t=>e({title:t}),__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),React.createElement(V5,{label:g0("Description","forms-bridge"),value:i.description,onChange:t=>e({description:t}),__nextHasNoMarginBottom:!0}))}var{useState:$0,useEffect:A5,useMemo:j5,useRef:Y5,useCallback:U5}=wp.element,{TabPanel:M5,Button:y0,Spinner:E5}=wp.components,{__:en}=wp.i18n,D5=[{title:en("Metadata","forms-bridge"),name:"meta"},{title:en("Input interface","forms-bridge"),name:"input"},{title:en("Output interface","forms-bridge"),name:"output"},{title:en("Job snippet","forms-bridge"),name:"snippet"}];function ks({close:i}){let e=I(),t=ot(),[n]=pn(),r=j5(()=>new Set(n.map(d=>d.name)),[n]),[s]=un(),[o,a]=dn(),[l,c]=$0(),[O,h]=$0(!1),f=Y5(o?.name||"");A5(()=>{f.current=o?.name||"",c(s?o:O0(e))},[s,o]);let u=U5(d=>{d.name=d.name.trim(),d.name||(d.name=c0(d.title)),d.input=Yf(d.input),d.output=Yf(d.output),h(!0),a(d).then(()=>f.current!==d.name?t():Promise.resolve()).finally(()=>{h(!1),i()})},[r]);if(l?.id)return React.createElement("div",{style:{width:"100%",flex:1,position:"relative"}},React.createElement("div",{style:{display:O?"flex":"none",position:"absolute",zIndex:10,top:0,left:0,width:"100%",height:"100%",background:"#ffffff88",justifyContent:"center",alignItems:"center"}},React.createElement(E5,null)),React.createElement(M5,{tabs:D5},d=>React.createElement("div",{style:{height:"calc(452px - 4rem)",overflowY:"auto",padding:"1rem 5px 0"}},React.createElement(L5,{tab:d.name,job:l,update:p=>c({...l,...p})}))),React.createElement("div",{style:{display:"flex",gap:"0.5em",padding:"1rem 0",borderTop:"1px solid"}},React.createElement(y0,{variant:"primary",disabled:!l.title,onClick:()=>u(l),__next40pxDefaultSize:!0},f.current.trim()!==l.name.trim()?en("Create","forms-bridge"):en("Save","forms-bridge")),React.createElement(y0,{variant:"secondary",isDestructive:!0,onClick:i,__next40pxDefaultSize:!0},en("Discard","forms-bridge"))))}function L5({tab:i,job:e,update:t}){switch(i){case"meta":return React.createElement(Bf,{data:e,setData:n=>t({...e,...n})});case"input":return React.createElement(el,{fields:e.input,setFields:n=>t({input:n})});case"output":return React.createElement(el,{fields:e.output,setFields:n=>t({output:n}),fromFields:e.input});case"snippet":return React.createElement(Vf,{id:e.id,doc:e.snippet,update:n=>t({...e,snippet:n})})}}var{__experimentalItemGroup:B5,__experimentalItem:G5,SelectControl:I5,Button:Nf}=wp.components,{useMemo:Gf,useCallback:Q0}=wp.element,{__:If}=wp.i18n;function Ff({workflow:i,setWorkflow:e,setEdit:t}){let[n,r]=Dt(),[s]=pn(),o=Gf(()=>s.map(f=>({value:f.name,label:f.title})).sort((f,u)=>f.label>u.label?1:-1),[s]),a=Gf(()=>i.map(f=>({name:f,title:s.find(u=>u.name===f)?.title||f})),[i,s]),l=Gf(()=>[{title:If("Form submission","forms-bridge"),name:"form"}].concat(a).concat([{title:If("Output payload","forms-bridge"),name:"output"}]),[a]),c=f=>{let u=i.slice(0,f).concat(i.slice(f+1,i.length));e(u,f),setTimeout(()=>{n-1===f&&f===u.length&&r(n-1)},100)},O=Q0(f=>{let u=i.slice(0,f+1).concat([o[0].value]).concat(i.slice(f+1,i.length));e(u,f+1)},[i,o]),h=Q0((f,u)=>{if(!f)return;let d=i.slice(0,u).concat([f]).concat(i.slice(u+1,i.length));e(d,u)},[i]);return React.createElement("div",{style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column"}},React.createElement(B5,{size:"large",isSeparated:!0,style:{maxHeight:"calc(100% - 68px)",overflowY:"auto"}},l.map((f,u)=>React.createElement(G5,{key:f.name+u},React.createElement(N5,{index:u,name:f.name,title:f.title,options:o,append:O,remove:c,update:h})))),React.createElement("div",{style:{padding:"1rem 16px",marginTop:"auto"}},React.createElement(Nf,{style:{width:"100px",justifyContent:"center"},variant:"primary",onClick:()=>t(),__next40pxDefaultSize:!0},If("New job","forms-bridge"))))}function N5({name:i,title:e,index:t,options:n,append:r,update:s,remove:o}){let a=Pe(),[l,c]=Dt(),O=l===t,h=O&&i!=="form"&&i!=="output";return i==="output"?React.createElement("div",{style:{display:"flex",alignItems:"center",color:O?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"inherit"}},React.createElement("div",{style:{padding:"0.25em 0.5em"}},React.createElement("strong",null,"\u{1F680}")),React.createElement("p",{style:{cursor:"pointer",textIndent:"12px",margin:"10px 0",whiteSpace:"nowrap"},onClick:()=>c(t)},e)):React.createElement("div",{style:{display:"flex",alignItems:"center",color:O?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"inherit"}},React.createElement("div",{style:{padding:"0.25em 0.5em"}},React.createElement("strong",null,t+1,".\xA0")),React.createElement("div",{style:{flex:1}},h&&React.createElement(be,{min:"150px",max:"250px",isResponsive:a},React.createElement(I5,{value:i,onChange:f=>s(f,t-1),options:n,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))||React.createElement("p",{style:{cursor:"pointer",textIndent:"12px",padding:"10px 30px 10px 0",whiteSpace:"nowrap",margin:0,border:t?"1px solid #d1cfcf":"none",overflow:"hidden",textOverflow:"ellipsis",position:"relative",width:"clamp(150px, 15vw, 250px)"},onClick:()=>c(t)},e,React.createElement("span",{style:{display:t?"block":"none",position:"absolute",top:"50%",right:"8px",width:"6px",height:"6px",borderBottom:"1px solid #d1cfcf",borderRight:"1px solid #d1cfcf",transform:"translate(-50%, -50%) rotate(45deg)"}}))),i!=="output"&&React.createElement("div",{style:{display:"inline-flex",alignItems:"center",gap:"0.45em",padding:"0 0.45em 0 0.75em"}},React.createElement(Nf,{size:"compact",variant:"secondary",disabled:!i||n.length<=1,onClick:()=>r(t-1),style:{width:"32px"},__next40pxDefaultSize:!0},"+"),React.createElement(Nf,{size:"compact",variant:"secondary",disabled:!i||i==="form",onClick:()=>o(t-1),style:{width:"32px"},isDestructive:!0,__next40pxDefaultSize:!0},"-")))}function tl(i,e=""){let t=e.match(/\[\](?=[^[])/g)?.length>=2;if(e!==""&&(e=Y.pointer(Y.parse(e))),i.type==="object"){let n=[{value:e,label:e}];return t&&n.push({value:e+"[]",label:e+"[]"}),n.concat(Object.keys(i.properties).reduce((r,s)=>{let o=e?`${e}.${s}`:s;return r.concat(tl(i.properties[s],o))},[]))}else if(i.type==="array"){let n=[{value:e,label:e}],r=Array.isArray(i.items)?i.items:[i.items],s=r.reduce((o,a)=>o||a.type!==r[0]?.type,!1);return s||n.push({value:e+"[]",label:e+"[]"}),n.concat(r.reduce((o,a)=>{if(s)return o;let l=`${e}[]`;return o.concat(tl(a,l).filter(c=>t||c.value!==l))},[])).concat(r.reduce((o,a,l)=>{if(i.additionalItems)return o;let c=`${e}[${l}]`;return o.concat(tl(a,c))},[]))}else{let n=[{label:e,value:e}];return t&&n.push({label:e+"[]",value:e+"[]"}),n}}function S0(i,e){let t=Ci(mn(gn(i),e));return tl(t)}var{BaseControl:F5,SelectControl:b0,Button:Hf}=wp.components,{useEffect:x0,useRef:v0,useMemo:H5,useState:K5}=wp.element,{__:ye}=wp.i18n,J5=[{value:"type-cast",label:ye("Type mutations","forms-bridge"),disabled:!0},{value:"string",label:ye("String","forms-bridge")},{value:"integer",label:ye("Integer","forms-bridge")},{value:"number",label:ye("Decimal","forms-bridge")},{value:"boolean",label:ye("Boolean","forms-bridge")},{value:"not",label:ye("Negation","forms-bridge")},{value:"implode",label:ye("Implode mutations","forms-bridge"),disabled:!0},{value:"json",label:"JSON"},{value:"pretty_json",label:"Pretty JSON"},{value:"csv",label:"CSV"},{value:"concat",label:ye("Spaced","forms-bridge")},{value:"join",label:ye("Join","forms-bridge")},{value:"sum",label:ye("Sum","forms-bridge")},{value:"count",label:ye("Count","forms-bridge")},{value:"and",label:ye("AND","forms-bridge")},{value:"or",label:ye("OR","forms-bridge")},{value:"xor",label:ye("XOR","forms-bridge")},{value:"structure",label:ye("Structure mutations","forms-bridge"),disabled:!0},{value:"inherit",label:ye("Rename","forms-bridge")},{value:"copy",label:ye("Copy","forms-bridge")},{value:"null",label:ye("Ignore","forms-bridge")}],eX=`.scrollbar-hide {
    7575  -ms-overflow-style: none;
    7676  scrollbar-width: none;
     
    9898.scrollbar-hide table tr:not(:last-child) td {
    9999  border-bottom: 1px solid #ccc;
    100 }`,H5={"--wp-components-color-accent":"#cc1818",color:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))",borderColor:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))"};function K5(i=""){let e={height:"40px",paddingLeft:"12px",paddingRight:"12px",fontSize:"13px",borderRadius:"2px",display:"block",width:"100%"};return i.length&&!Y.validate(i)?{...e,...H5}:e}function Ts({fields:i,mappers:e,setMappers:t}){let n=Hs(),r=G5(()=>n.map(f=>({value:f.name,label:`${f.name} | ${f.schema.type}`})),[n]),s=b0(),[o,a]=I5(-1),l=(f,u,d)=>{let p=e.map((m,g)=>(u===g&&(m[f]=d,f==="from"&&m.to!==d&&(m.to=d)),{...m}));t(p)},c=f=>{let u=e.slice(0,f).concat([{from:"",to:"",cast:"string"}]).concat(e.slice(f,e.length));f===e.length&&setTimeout(()=>{s.current&&s.current.scrollTo(0,s.current.children[0].offsetHeight)},100),t(u)},O=f=>{let u=e.slice(0,f).concat(e.slice(f+1));t(u)};S0(()=>{e.length||c(e.length)},[e]);let h=b0(document.createElement("style"));return S0(()=>(h.current.appendChild(document.createTextNode(F5)),document.head.appendChild(h.current),()=>{document.head.removeChild(h.current)}),[]),React.createElement(React.Fragment,null,React.createElement("div",{ref:s,className:"scrollbar-hide",style:{flex:1}},React.createElement("datalist",{id:"datalist-mutation-api-fields"},n.map(f=>React.createElement("option",{value:f.name}))),React.createElement("table",{style:{width:"calc(100% + 10px)",margin:"0 -5px",borderSpacing:"0px"}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{"aria-hidden":"true"}),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em",columnWidth:"200px"}},ye("From","forms-bridge")),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em",columnWidth:"200px"}},ye("To","forms-bridge")),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em",columnWidth:"100px"}},ye("Mutation","forms-bridge")),React.createElement("th",{"aria-hidden":"true"}))),React.createElement("tbody",null,e.map(({from:f,to:u,cast:d},p)=>{let m=y0(i,e.slice(0,p));return Y.isConditional(f)&&(f=f.replace(/^\?/,""),!m.find(g=>g.value===f))?null:React.createElement("tr",{key:p},React.createElement("td",null,p+1,"."),React.createElement("td",{style:{columnWidth:"200px"}},React.createElement(Q0,{value:f,onChange:g=>l("from",p,g),options:m,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",{style:{columnWidth:"200px"}},React.createElement("div",{style:{display:"flex"}},React.createElement("div",{style:{flex:1}},React.createElement(L5,{__nextHasNoMarginBottom:!0},React.createElement("input",{type:"text",value:u,onChange:g=>l("to",p,g.target.value),style:K5(u,f),list:"datalist-mutation-api-fields"}))),React.createElement(Hf,{style:{height:"40px",width:"40px",justifyContent:"center",marginLeft:"2px"},disabled:r.length===0,size:"compact",variant:"secondary",onClick:()=>a(p),__next40pxDefaultSize:!0},"{...}",o===p&&React.createElement(yn,{title:ye("Fields","forms-bridge"),tags:r,onChange:g=>{a(-1),l("to",p,g)},onFocusOutside:()=>a(-1)})))),React.createElement("td",{style:{columnWidth:"100px"}},React.createElement(Q0,{value:d||"string",onChange:g=>l("cast",p,g),options:N5,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",null,React.createElement("div",{style:{display:"flex",marginLeft:"0.45em",gap:"0.45em"}},React.createElement(Hf,{size:"compact",variant:"secondary",disabled:!u||!f,onClick:()=>c(p+1),style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(Hf,{size:"compact",variant:"secondary",onClick:()=>O(p),style:{width:"40px",height:"40px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},"-"))))})))))}var{useMemo:J5}=wp.element;function eX(i,e,t){return e?{display:t?"flex":"block",color:i.enter?"#4ab866":i.exit?"#cc1818":i.mutated?"#f0b849":"inherit"}:{color:"inherit",display:t?"flex":"block"}}function Pi({name:i,schema:e,showDiff:t,enter:n,mutated:r,exit:s,simple:o=!1}){let a=eX({enter:n,mutated:r,exit:s},t,o);return React.createElement("div",{style:a},React.createElement("span",null,React.createElement("span",{style:o?{paddingRight:"0.5em",margin:"1px 0.5em 1px 0",borderRight:"1px solid"}:{}},React.createElement("strong",null,i))),React.createElement(tX,{data:e,showDiff:t,enter:n,exit:s,mutated:r,simple:o}))}function tX({data:i,showDiff:e,enter:t,exit:n,mutated:r,simple:s}){return J5(()=>{switch(i.type){case"object":return React.createElement(x0,{properties:i.properties,showDiff:e,enter:t,exit:n,mutated:r,simple:s});case"array":return React.createElement(Kf,{items:i.items,showDiff:e,enter:t,exit:n,mutated:r,simple:s});default:return React.createElement("div",null,i.type)}},[i])}function x0({properties:i,showDiff:e,enter:t,exit:n,mutated:r,arrayItem:s=0,simple:o=!1}){let a=s?"object"+Array.apply(null,Array(s)).map(()=>"[]").join(""):"object";return o?React.createElement("div",null,a):React.createElement(React.Fragment,null,React.createElement("div",null,a),React.createElement("ul",{style:{paddingLeft:"25px",marginBottom:0,marginTop:"5px",marginLeft:"3px",paddingTop:"5px",borderLeft:"1px dashed"}},Object.keys(i).map(l=>React.createElement("li",{key:l},React.createElement(Pi,{name:l,schema:i[l],showDiff:e,enter:t,mutated:r,exit:n})))))}function Kf({items:i,showDiff:e,enter:t,exit:n,mutated:r,simple:s,arrayItem:o=0}){if(Array.isArray(i)){let l=i.reduce((O,{type:h})=>(O.includes(h)||O.push(h),O),[]),c=l.length>1?"mixed":l[0];return React.createElement(Kf,{items:{...i[0],type:c},showDiff:e,enter:t,exit:n,mutated:r,simple:s})}if(i.type==="object"&&!s)return React.createElement(x0,{properties:i.properties||{},showDiff:e,enter:t,exit:n,mutated:r,arrayItem:o+1});if(i.type==="array")return React.createElement(Kf,{items:i.items,showDiff:e,enter:t,exit:n,mutated:r,arrayItem:o+1,simple:s});let a=i.type+Array.apply(null,Array(o+1)).map(()=>"[]").join("");return React.createElement("div",null,a)}var{useState:v0,useEffect:iX,useRef:nX}=wp.element,{Tooltip:rX}=wp.components,{__:zs}=wp.i18n,sX={color:"#2f2f2f",background:"#f0f0f0",icon:null},oX={color:"#4ab866",background:"color-mix(in srgb, #fff 90%, #4ab866)",icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"16",height:"16",fill:"currentColor",className:"components-badge__icon","aria-hidden":"true",focusable:"false"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 18.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm11.53-1.47-1.06-1.06L11 12.94l-1.47-1.47-1.06 1.06L11 15.06l4.53-4.53Z"}))},aX={color:"#f0b849",background:"color-mix(in srgb, #fff 90%, #f0b849)",icon:React.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"components-badge__icon","aria-hidden":"true",focusable:"false"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.5 12a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0ZM12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-.75 12v-1.5h1.5V16h-1.5Zm0-8v5h1.5V8h-1.5Z"}))},lX={color:"#cc1818",background:"color-mix(in srgb, #fff 90%, #cc1818)",icon:React.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"components-badge__icon","aria-hidden":"true",focusable:"false"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.218 5.377a.25.25 0 0 0-.436 0l-7.29 12.96a.25.25 0 0 0 .218.373h14.58a.25.25 0 0 0 .218-.372l-7.29-12.96Zm-1.743-.735c.669-1.19 2.381-1.19 3.05 0l7.29 12.96a1.75 1.75 0 0 1-1.525 2.608H4.71a1.75 1.75 0 0 1-1.525-2.608l7.29-12.96ZM12.75 17.46h-1.5v-1.5h1.5v1.5Zm-1.5-3h1.5v-5h-1.5v5Z"}))};function OX({data:i}){let{name:e,schema:t,required:n,missing:r,mutated:s,optional:o}=i,a=r?lX:s?aX:o?sX:oX,l=r?zs("Field is required","forms-bridge"):s?zs("Field type mutation","forms-bridge"):o?zs("Field is optional","forms-bridge"):"",c=n?e+"\u2217":e;return React.createElement(rX,{text:l},React.createElement("span",{style:{cursor:"pointer",color:a.color,backgroundColor:a.background,padding:"0 8px",borderRadius:"2px",fontSize:"12px",lineHeight:"20px",alignItems:"center",display:"inline-flex",gap:"2px"}},a.icon,React.createElement(Pi,{name:c,schema:t,showDiff:!1,enter:!1,exit:!1,mutated:!1,simple:!0})))}function Jf({fields:i,collapsible:e=!0,inline:t=!1}){let n=nX(),[r,s]=v0(!1),[o,a]=v0(!1);return iX(()=>{n.current&&s(n.current.offsetHeight>20)},[i]),React.createElement("div",{style:{height:!e||o?"auto":"20px",overflow:"hidden",paddingRight:"10px",position:"relative"}},React.createElement("div",{ref:n,style:{display:t?"block":"flex",gap:"5px",flexWrap:"wrap"},onClick:()=>a(!o)},t&&React.createElement("strong",null,zs("Job interface","forms-bridge"),":\xA0")||React.createElement("p",{style:{margin:0}},zs("Job interface","forms-bridge"),":\xA0"),i.length&&i.map(l=>React.createElement(OX,{key:l.name,data:l}))||null),r&&e&&React.createElement("button",{style:{position:"absolute",top:"10px",right:"0px",height:"20px",width:"20px",transform:"translateY(-50%)",backgroundColor:"transparent",border:"none",cursor:"pointer"},onClick:()=>a(!o)},React.createElement("span",{style:{display:"block",width:"6px",height:"6px",borderRight:"2px solid",borderBottom:"2px solid",transition:"transform 200ms ease",transform:o?"translateY(1.5px) rotate(-135deg)":"translateY(-1.5px) rotate(45deg)"}}))||null)}var{useMemo:cX}=wp.element;function Xs({id:i,snippet:e}){let t=cX(()=>{let n=`function forms_bridge_job_${i.replace(/-/g,"_")}($payload, $bridge)
     100}`,tX={"--wp-components-color-accent":"#cc1818",color:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))",borderColor:"var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))"};function iX(i=""){let e={height:"40px",paddingLeft:"12px",paddingRight:"12px",fontSize:"13px",borderRadius:"2px",display:"block",width:"100%"};return i.length&&!Y.validate(i)?{...e,...tX}:e}function Ts({fields:i,mappers:e,setMappers:t}){let n=Hs(),r=H5(()=>n.map(f=>({value:f.name,label:`${f.name} | ${f.schema.type}`})),[n]),s=v0(),[o,a]=K5(-1),l=(f,u,d)=>{let p=e.map((m,g)=>(u===g&&(m[f]=d,f==="from"&&m.to!==d&&(m.to=d)),{...m}));t(p)},c=f=>{let u=e.slice(0,f).concat([{from:"",to:"",cast:"string"}]).concat(e.slice(f,e.length));f===e.length&&setTimeout(()=>{s.current&&s.current.scrollTo(0,s.current.children[0].offsetHeight)},100),t(u)},O=f=>{let u=e.slice(0,f).concat(e.slice(f+1));t(u)};x0(()=>{e.length||c(e.length)},[e]);let h=v0(document.createElement("style"));return x0(()=>(h.current.appendChild(document.createTextNode(eX)),document.head.appendChild(h.current),()=>{document.head.removeChild(h.current)}),[]),React.createElement(React.Fragment,null,React.createElement("div",{ref:s,className:"scrollbar-hide",style:{flex:1}},React.createElement("datalist",{id:"datalist-mutation-api-fields"},n.map(f=>React.createElement("option",{key:f.name,value:f.name}))),React.createElement("table",{style:{width:"calc(100% + 10px)",margin:"0 -5px",borderSpacing:"0px"}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{"aria-hidden":"true"}),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em",columnWidth:"200px"}},ye("From","forms-bridge")),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em",columnWidth:"200px"}},ye("To","forms-bridge")),React.createElement("th",{scope:"col",style:{textAlign:"left",padding:"1em 0 0 0.5em",columnWidth:"100px"}},ye("Mutation","forms-bridge")),React.createElement("th",{"aria-hidden":"true"}))),React.createElement("tbody",null,e.map(({from:f,to:u,cast:d},p)=>{let m=S0(i,e.slice(0,p));return Y.isConditional(f)&&(f=f.replace(/^\?/,""),!m.find(g=>g.value===f))?null:React.createElement("tr",{key:p},React.createElement("td",null,p+1,"."),React.createElement("td",{style:{columnWidth:"200px"}},React.createElement(b0,{value:f,onChange:g=>l("from",p,g),options:m,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",{style:{columnWidth:"200px"}},React.createElement("div",{style:{display:"flex"}},React.createElement("div",{style:{flex:1}},React.createElement(F5,{__nextHasNoMarginBottom:!0},React.createElement("input",{type:"text",value:u,onChange:g=>l("to",p,g.target.value),style:iX(u,f),list:"datalist-mutation-api-fields"}))),React.createElement(Hf,{style:{height:"40px",width:"40px",justifyContent:"center",marginLeft:"2px"},disabled:r.length===0,size:"compact",variant:"secondary",onClick:()=>a(p),__next40pxDefaultSize:!0},"{...}",React.createElement(yn,{open:o===p,title:ye("Fields","forms-bridge"),tags:r,onChange:g=>{a(-1),l("to",p,g)},onRequestClose:()=>a(-1)})))),React.createElement("td",{style:{columnWidth:"100px"}},React.createElement(b0,{value:d||"string",onChange:g=>l("cast",p,g),options:J5,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("td",null,React.createElement("div",{style:{display:"flex",marginLeft:"0.45em",gap:"0.45em"}},React.createElement(Hf,{size:"compact",variant:"secondary",disabled:!u||!f,onClick:()=>c(p+1),style:{width:"40px",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"+"),React.createElement(Hf,{size:"compact",variant:"secondary",onClick:()=>O(p),style:{width:"40px",height:"40px",justifyContent:"center"},isDestructive:!0,__next40pxDefaultSize:!0},"-"))))})))))}var{useMemo:nX}=wp.element;function rX(i,e,t){return e?{display:t?"flex":"block",color:i.enter?"#4ab866":i.exit?"#cc1818":i.mutated?"#f0b849":"inherit"}:{color:"inherit",display:t?"flex":"block"}}function Pi({name:i,schema:e,showDiff:t,enter:n,mutated:r,exit:s,simple:o=!1}){let a=rX({enter:n,mutated:r,exit:s},t,o);return React.createElement("div",{style:a},React.createElement("span",null,React.createElement("span",{style:o?{paddingRight:"0.5em",margin:"1px 0.5em 1px 0",borderRight:"1px solid"}:{}},React.createElement("strong",null,i))),React.createElement(sX,{data:e,showDiff:t,enter:n,exit:s,mutated:r,simple:o}))}function sX({data:i,showDiff:e,enter:t,exit:n,mutated:r,simple:s}){return nX(()=>{switch(i.type){case"object":return React.createElement(w0,{properties:i.properties,showDiff:e,enter:t,exit:n,mutated:r,simple:s});case"array":return React.createElement(Kf,{items:i.items,showDiff:e,enter:t,exit:n,mutated:r,simple:s});default:return React.createElement("div",null,i.type)}},[i])}function w0({properties:i,showDiff:e,enter:t,exit:n,mutated:r,arrayItem:s=0,simple:o=!1}){let a=s?"object"+Array.apply(null,Array(s)).map(()=>"[]").join(""):"object";return o?React.createElement("div",null,a):React.createElement(React.Fragment,null,React.createElement("div",null,a),React.createElement("ul",{style:{paddingLeft:"25px",marginBottom:0,marginTop:"5px",marginLeft:"3px",paddingTop:"5px",borderLeft:"1px dashed"}},Object.keys(i).map(l=>React.createElement("li",{key:l},React.createElement(Pi,{name:l,schema:i[l],showDiff:e,enter:t,mutated:r,exit:n})))))}function Kf({items:i,showDiff:e,enter:t,exit:n,mutated:r,simple:s,arrayItem:o=0}){if(Array.isArray(i)){let l=i.reduce((O,{type:h})=>(O.includes(h)||O.push(h),O),[]),c=l.length>1?"mixed":l[0];return React.createElement(Kf,{items:{...i[0],type:c},showDiff:e,enter:t,exit:n,mutated:r,simple:s})}if(i.type==="object"&&!s)return React.createElement(w0,{properties:i.properties||{},showDiff:e,enter:t,exit:n,mutated:r,arrayItem:o+1});if(i.type==="array")return React.createElement(Kf,{items:i.items,showDiff:e,enter:t,exit:n,mutated:r,arrayItem:o+1,simple:s});let a=i.type+Array.apply(null,Array(o+1)).map(()=>"[]").join("");return React.createElement("div",null,a)}var{useState:P0,useEffect:oX,useRef:aX}=wp.element,{Tooltip:lX}=wp.components,{__:zs}=wp.i18n,OX={color:"#2f2f2f",background:"#f0f0f0",icon:null},cX={color:"#4ab866",background:"color-mix(in srgb, #fff 90%, #4ab866)",icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"16",height:"16",fill:"currentColor",className:"components-badge__icon","aria-hidden":"true",focusable:"false"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 18.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm11.53-1.47-1.06-1.06L11 12.94l-1.47-1.47-1.06 1.06L11 15.06l4.53-4.53Z"}))},hX={color:"#f0b849",background:"color-mix(in srgb, #fff 90%, #f0b849)",icon:React.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"components-badge__icon","aria-hidden":"true",focusable:"false"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.5 12a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0ZM12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-.75 12v-1.5h1.5V16h-1.5Zm0-8v5h1.5V8h-1.5Z"}))},fX={color:"#cc1818",background:"color-mix(in srgb, #fff 90%, #cc1818)",icon:React.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"components-badge__icon","aria-hidden":"true",focusable:"false"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.218 5.377a.25.25 0 0 0-.436 0l-7.29 12.96a.25.25 0 0 0 .218.373h14.58a.25.25 0 0 0 .218-.372l-7.29-12.96Zm-1.743-.735c.669-1.19 2.381-1.19 3.05 0l7.29 12.96a1.75 1.75 0 0 1-1.525 2.608H4.71a1.75 1.75 0 0 1-1.525-2.608l7.29-12.96ZM12.75 17.46h-1.5v-1.5h1.5v1.5Zm-1.5-3h1.5v-5h-1.5v5Z"}))};function uX({data:i}){let{name:e,schema:t,required:n,missing:r,mutated:s,optional:o}=i,a=r?fX:s?hX:o?OX:cX,l=r?zs("Field is required","forms-bridge"):s?zs("Field type mutation","forms-bridge"):o?zs("Field is optional","forms-bridge"):"",c=n?e+"\u2217":e;return React.createElement(lX,{text:l},React.createElement("span",{style:{cursor:"pointer",color:a.color,backgroundColor:a.background,padding:"0 8px",borderRadius:"2px",fontSize:"12px",lineHeight:"20px",alignItems:"center",display:"inline-flex",gap:"2px"}},a.icon,React.createElement(Pi,{name:c,schema:t,showDiff:!1,enter:!1,exit:!1,mutated:!1,simple:!0})))}function Jf({fields:i,collapsible:e=!0,inline:t=!1}){let n=aX(),[r,s]=P0(!1),[o,a]=P0(!1);return oX(()=>{n.current&&s(n.current.offsetHeight>20)},[i]),React.createElement("div",{style:{height:!e||o?"auto":"20px",overflow:"hidden",paddingRight:"10px",position:"relative"}},React.createElement("div",{ref:n,style:{display:t?"block":"flex",gap:"5px",flexWrap:"wrap"},onClick:()=>a(!o)},t&&React.createElement("strong",null,zs("Job interface","forms-bridge"),":\xA0")||React.createElement("p",{style:{margin:0}},zs("Job interface","forms-bridge"),":\xA0"),i.length&&i.map(l=>React.createElement(uX,{key:l.name,data:l}))||null),r&&e&&React.createElement("button",{style:{position:"absolute",top:"10px",right:"0px",height:"20px",width:"20px",transform:"translateY(-50%)",backgroundColor:"transparent",border:"none",cursor:"pointer"},onClick:()=>a(!o)},React.createElement("span",{style:{display:"block",width:"6px",height:"6px",borderRight:"2px solid",borderBottom:"2px solid",transition:"transform 200ms ease",transform:o?"translateY(1.5px) rotate(-135deg)":"translateY(-1.5px) rotate(45deg)"}}))||null)}var{useMemo:dX}=wp.element;function Xs({id:i,snippet:e}){let t=dX(()=>{let n=`function forms_bridge_job_${i.replace(/-/g,"_")}($payload, $bridge)
    101101{
    102102${e.replace(/(\n|\t)+$/,"")}
    103103
    104104    return $payload;
    105 }`;return hljs?hljs.highlight(n,{language:"php"})?.value||"":"<p style='margin:0;color:#cc1818'><b>ERROR</b>: Highlight.js is unavailable</p>"},[i,e]);return React.createElement("code",{style:{padding:"calc(8px)",background:"transparent"}},React.createElement("pre",{style:{margin:0},dangerouslySetInnerHTML:{__html:t}}))}var{useMemo:w0}=wp.element,{__experimentalItemGroup:hX,__experimentalItem:fX}=wp.components;function tn({fields:i,mappers:e,showMutations:t=!1,showDiff:n=!1,diff:r}){let s=w0(()=>{if(!t)return r;let a=Object.fromEntries(Object.entries(r).map(([c,O])=>[c,new Set(O)])),l={};return e.map(c=>{let[O]=Y.parse(c.from),[h]=Y.parse(c.to);return O!==h&&(l[h]=O),c}).reverse().forEach(c=>{let[O]=Y.parse(c.from),[h]=Y.parse(c.to);if(h!==O)a.enter.add(h),a.enter.has(O)?a.enter.delete(O):a.exit.add(O);else if(a.mutated.has(O))a.mutated.delete(O),a.mutated.add(h);else{let f=O;for(;l[f]&&l[f]!==f;)f=l[f];let u=i.find(d=>d.name===f);if(!u)return;xt(u.type,br(u.type,c))||a.mutated.add(h)}}),a},[i,r,t,e]),o=w0(()=>{let a;return t?a=so(mn(gn(i),e)):a=i.map(l=>({...l})),n&&(a.forEach(l=>{l.enter=s.enter.has(l.name),l.mutated=s.mutated.has(l.name),l.exit=!1}),Array.from(s.exit).forEach(l=>{a.push({name:l,schema:{type:"null"},enter:!1,mutated:!1,exit:!0})})),a},[i,e,t,n,s]);return React.createElement(hX,{size:"large",isSeparated:!0},o.map((a,l)=>React.createElement(fX,{key:a.name+l},React.createElement(Pi,{...a,showDiff:n}))))}var{ToggleControl:P0,Button:eu,Spinner:uX}=wp.components,{useState:tu,useMemo:Rs,useEffect:k0,useCallback:dX,useRef:iu}=wp.element,{__:nn}=wp.i18n;function nu({mode:i,setMode:e,setEdit:t,setMappers:n}){let[r,,s]=Dt(),o=lo(),[a=[],l]=$n(),[c,O]=tu(!1),[h,f]=tu(!1),u=Rs(()=>Array.from(l.missing).length>0,[l]),d=Rs(()=>o?.mappers||[],[o]),[p,m]=tu(d);k0(()=>{m(d)},[d]);let g=Rs(()=>p.filter(w=>w.from&&w.to),[p]),y=iu(r);k0(()=>(y.current!==r&&i!=="payload"&&(i==="mappers"&&n(y.current,p.filter(w=>w.to&&w.from)),e("payload")),()=>{y.current=r}),[r,i]);let S=dX(w=>{e(i!==w?w:"payload")},[i]),v=iu(w=>{w.forEach(k=>{delete k.index}),m(w)}).current,b=Rs(()=>Array.isArray(o?.input)?o.input.map(({name:w,schema:k,required:V})=>({name:w,schema:k,required:V,missing:l.missing.has(w),mutated:l.mutated.has(w),optional:!V&&!l.exit.has(w)&&(!a.find(A=>A.name===w)||l.enter.has(w))})):[],[o]),x=Rs(()=>o?u?`${o.title} (${nn("Skipped","forms-bridge")})`:o.title:"",[u,o]),Q=iu(i);return i!==Q.current&&Q.current==="mappers"&&n(r,p.filter(({from:w,to:k})=>k&&w)),Q.current=i,!o&&r>0&&r<s?React.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},React.createElement(uX,null)):React.createElement("div",{style:{display:"flex",flexDirection:"column",height:"100%"}},React.createElement("div",{style:{borderBottom:"1px solid",paddingBottom:"1.5em"}},React.createElement("div",{style:{display:"inline-flex",width:"100%",alignItems:"center",justifyContent:"space-between"}},React.createElement("h3",{style:{margin:0,paddingRight:"1rem"}},x),r<s&&React.createElement("div",{style:{width:"max-content",flexShrink:0}},React.createElement(P0,{__nextHasNoMarginBottom:!0,checked:h&&!u&&i==="payload"&&g.length,label:nn("Show mutations","forms-bridge"),onChange:()=>f(!h),disabled:u||i==="mappers"||g.length===0}))),React.createElement("div",{style:{display:"inline-flex",width:"100%",justifyContent:"space-between"}},React.createElement("p",{style:{marginTop:"0.5em",paddingRight:"1rem"}},o?.description||""),r<s&&React.createElement("div",{style:{margin:"6.5px",width:"max-content",flexShrink:0}},React.createElement(P0,{__nextHasNoMarginBottom:!0,checked:c&&!u&&i==="payload",label:nn("Show diff","forms-bridge"),onChange:()=>O(!c),disabled:u||i==="mappers"}))),React.createElement(Jf,{fields:b})),React.createElement("div",{style:{flex:1,overflow:"hidden auto",display:"flex",flexDirection:"column",padding:"5px"}},i==="snippet"&&o?.snippet&&React.createElement(Xs,{...o})||null,i==="mappers"&&React.createElement(Ts,{title:nn("Stage mapper","forms-bridge"),fields:a,mappers:p.map((w,k)=>({...w,index:k})),setMappers:v})||null,i==="payload"&&React.createElement("div",{style:{overflowY:"auto"}},React.createElement(tn,{fields:a,mappers:p,showMutations:i!=="mappers"&&h,showDiff:c,diff:l}))||null),React.createElement("div",{style:{display:"flex",justifyContent:"space-between",padding:"1rem 0 1rem 6px",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5em"}},React.createElement(eu,{style:{width:"100px",justifyContent:"center"},disabled:r===0||r===s,variant:i==="snippet"?"primary":"secondary",onClick:()=>S("snippet"),__next40pxDefaultSize:!0},nn("Snippet","forms-bridge")),React.createElement(eu,{disabled:r===s,variant:i==="mappers"?"primary":"secondary",onClick:()=>S("mappers"),__next40pxDefaultSize:!0},nn("Mappers","forms-bridge")," (",g.length,")")),React.createElement(eu,{style:{width:"100px",justifyContent:"center"},variant:"secondary",disabled:r===0||r===s,onClick:()=>t(o.name),__next40pxDefaultSize:!0},nn("Edit","forms-bridge"))))}var{Button:pX,Modal:mX}=wp.components,{useState:T0,useRef:z0,useCallback:gX}=wp.element,{__:ru}=wp.i18n;function su({workflow:i=[],setWorkflow:e,setMutationMappers:t,open:n,setOpen:r}){let s=Pe(920),[,o]=un(),[a,l]=T0(null),[c,O]=T0("payload"),[,h,f]=Dt(),[u]=$n(),d=z0(()=>{h(0),r(!0)}).current,p=gX(()=>{O("payload"),setTimeout(()=>{h(f-1),l(!1),o(null),r(!1)})},[f]),m=z0(()=>{o(null),l(!1)}).current;return React.createElement(React.Fragment,null,React.createElement(pX,{disabled:!u.length,variant:"secondary",onClick:d,__next40pxDefaultSize:!0},ru("Workflow","forms-bridge")," (",i.length,")"),n&&React.createElement(mX,{title:ru("Submission workflow","forms-bridge"),onRequestClose:p},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},ru("Process the form submission before it is sent to the backend over the bridge","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"1280px",maxWidth:"80vw",height:"500px",maxHeight:"80vh",display:"flex",flexDirection:s?"column":"row"}},a&&React.createElement(ks,{close:m})||React.createElement(React.Fragment,null,React.createElement("div",{style:s?{flex:1,display:"flex",flexDirection:"column",borderBottom:"1px solid",paddingBottom:"1rem",marginBottom:"2rem"}:{flex:1,maxWidth:"400px",display:"flex",flexDirection:"column",height:"100%",borderRight:"1px solid",paddingRight:"1rem",marginRight:"1rem"}},React.createElement(Ff,{workflow:i,setWorkflow:e,setEdit:()=>l(!0)})),React.createElement("div",{style:{flex:2,display:"flex",flexDirection:"column",height:"100%"}},React.createElement(nu,{mode:c,setMode:O,setEdit:g=>{o(g),l(!0)},setMappers:(g,y)=>t(g,y)}))))))}var{useEffect:$X,useMemo:yX}=wp.element,{Spinner:QX}=wp.components,{__:X0}=wp.i18n,SX={enter:new Set,exit:new Set,mutated:new Set,missing:new Set};function qs({height:i,focus:e}){let[,t,n]=Dt(),r=lo(),s=yX(()=>r?.mappers||[],[r]),[o=[]]=$n();return $X(()=>{e&&t(n-1)},[e,n]),i?React.createElement("div",{style:{display:"flex",flexDirection:"column",height:`${i-56}px`}},React.createElement("div",{style:{borderBottom:"1px solid"}},React.createElement("h2",{style:{marginTop:"5px"}},X0("Payload","forms-bridge"))),React.createElement("div",{style:{flex:1,height:"100%",overflow:"hidden auto",padding:"5px"}},r&&React.createElement("div",{style:{overflowY:"auto"}},React.createElement(tn,{fields:o,mappers:s,showMutations:!0,diff:SX}))||React.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},React.createElement(QX,null)))):React.createElement("div",{style:{flex:1}},React.createElement("div",{style:{borderBottom:"1px solid"}},React.createElement("h2",{style:{marginTop:"5px"}},X0("Payload","forms-bridge"))))}var{Button:bX,Modal:xX}=wp.components,{useState:R0,useMemo:q0,useEffect:_0,useRef:C0,useCallback:vX}=wp.element,{__:ou}=wp.i18n,wX=`.components-modal__frame.no-scrollable .components-modal__content {
     105}`;return hljs?hljs.highlight(n,{language:"php"})?.value||"":"<p style='margin:0;color:#cc1818'><b>ERROR</b>: Highlight.js is unavailable</p>"},[i,e]);return React.createElement("code",{style:{padding:"calc(8px)",background:"transparent"}},React.createElement("pre",{style:{margin:0},dangerouslySetInnerHTML:{__html:t}}))}var{useMemo:k0}=wp.element,{__experimentalItemGroup:pX,__experimentalItem:mX}=wp.components;function tn({fields:i,mappers:e,showMutations:t=!1,showDiff:n=!1,diff:r}){let s=k0(()=>{if(!t)return r;let a=Object.fromEntries(Object.entries(r).map(([c,O])=>[c,new Set(O)])),l={};return e.map(c=>{let[O]=Y.parse(c.from),[h]=Y.parse(c.to);return O!==h&&(l[h]=O),c}).reverse().forEach(c=>{let[O]=Y.parse(c.from),[h]=Y.parse(c.to);if(h!==O)a.enter.add(h),a.enter.has(O)?a.enter.delete(O):a.exit.add(O);else if(a.mutated.has(O))a.mutated.delete(O),a.mutated.add(h);else{let f=O;for(;l[f]&&l[f]!==f;)f=l[f];let u=i.find(d=>d.name===f);if(!u)return;xt(u.type,br(u.type,c))||a.mutated.add(h)}}),a},[i,r,t,e]),o=k0(()=>{let a;return t?a=so(mn(gn(i),e)):a=i.map(l=>({...l})),n&&(a.forEach(l=>{l.enter=s.enter.has(l.name),l.mutated=s.mutated.has(l.name),l.exit=!1}),Array.from(s.exit).forEach(l=>{a.push({name:l,schema:{type:"null"},enter:!1,mutated:!1,exit:!0})})),a},[i,e,t,n,s]);return React.createElement(pX,{size:"large",isSeparated:!0},o.map((a,l)=>React.createElement(mX,{key:a.name+l},React.createElement(Pi,{...a,showDiff:n}))))}var{ToggleControl:T0,Button:eu,Spinner:gX}=wp.components,{useState:tu,useMemo:Rs,useEffect:z0,useCallback:$X,useRef:iu}=wp.element,{__:nn}=wp.i18n;function nu({mode:i,setMode:e,setEdit:t,setMappers:n}){let[r,,s]=Dt(),o=lo(),[a=[],l]=$n(),[c,O]=tu(!1),[h,f]=tu(!1),u=Rs(()=>Array.from(l.missing).length>0,[l]),d=Rs(()=>o?.mappers||[],[o]),[p,m]=tu(d);z0(()=>{m(d)},[d]);let g=Rs(()=>p.filter(w=>w.from&&w.to),[p]),Q=iu(r);z0(()=>(Q.current!==r&&i!=="payload"&&(i==="mappers"&&n(Q.current,p.filter(w=>w.to&&w.from)),e("payload")),()=>{Q.current=r}),[r,i]);let x=$X(w=>{e(i!==w?w:"payload")},[i]),v=iu(w=>{w.forEach(k=>{delete k.index}),m(w)}).current,S=Rs(()=>Array.isArray(o?.input)?o.input.map(({name:w,schema:k,required:V})=>({name:w,schema:k,required:V,missing:l.missing.has(w),mutated:l.mutated.has(w),optional:!V&&!l.exit.has(w)&&(!a.find(A=>A.name===w)||l.enter.has(w))})):[],[o]),b=Rs(()=>o?u?`${o.title} (${nn("Skipped","forms-bridge")})`:o.title:"",[u,o]),y=iu(i);return i!==y.current&&y.current==="mappers"&&n(r,p.filter(({from:w,to:k})=>k&&w)),y.current=i,!o&&r>0&&r<s?React.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},React.createElement(gX,null)):React.createElement("div",{style:{display:"flex",flexDirection:"column",height:"100%"}},React.createElement("div",{style:{borderBottom:"1px solid",paddingBottom:"1.5em"}},React.createElement("div",{style:{display:"inline-flex",width:"100%",alignItems:"center",justifyContent:"space-between"}},React.createElement("h3",{style:{margin:0,paddingRight:"1rem"}},b),r<s&&React.createElement("div",{style:{width:"max-content",flexShrink:0}},React.createElement(T0,{__nextHasNoMarginBottom:!0,checked:h&&!u&&i==="payload"&&g.length,label:nn("Show mutations","forms-bridge"),onChange:()=>f(!h),disabled:u||i==="mappers"||g.length===0}))),React.createElement("div",{style:{display:"inline-flex",width:"100%",justifyContent:"space-between"}},React.createElement("p",{style:{marginTop:"0.5em",paddingRight:"1rem"}},o?.description||""),r<s&&React.createElement("div",{style:{margin:"6.5px",width:"max-content",flexShrink:0}},React.createElement(T0,{__nextHasNoMarginBottom:!0,checked:c&&!u&&i==="payload",label:nn("Show diff","forms-bridge"),onChange:()=>O(!c),disabled:u||i==="mappers"}))),React.createElement(Jf,{fields:S})),React.createElement("div",{style:{flex:1,overflow:"hidden auto",display:"flex",flexDirection:"column",padding:"5px"}},i==="snippet"&&o?.snippet&&React.createElement(Xs,{...o})||null,i==="mappers"&&React.createElement(Ts,{title:nn("Stage mapper","forms-bridge"),fields:a,mappers:p.map((w,k)=>({...w,index:k})),setMappers:v})||null,i==="payload"&&React.createElement("div",{style:{overflowY:"auto"}},React.createElement(tn,{fields:a,mappers:p,showMutations:i!=="mappers"&&h,showDiff:c,diff:l}))||null),React.createElement("div",{style:{display:"flex",justifyContent:"space-between",padding:"1rem 0 1rem 6px",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5em"}},React.createElement(eu,{style:{width:"100px",justifyContent:"center"},disabled:r===0||r===s,variant:i==="snippet"?"primary":"secondary",onClick:()=>x("snippet"),__next40pxDefaultSize:!0},nn("Snippet","forms-bridge")),React.createElement(eu,{disabled:r===s,variant:i==="mappers"?"primary":"secondary",onClick:()=>x("mappers"),__next40pxDefaultSize:!0},nn("Mappers","forms-bridge")," (",g.length,")")),React.createElement(eu,{style:{width:"100px",justifyContent:"center"},variant:"secondary",disabled:r===0||r===s,onClick:()=>t(o.name),__next40pxDefaultSize:!0},nn("Edit","forms-bridge"))))}var{Button:yX,Modal:QX}=wp.components,{useState:X0,useRef:R0,useCallback:SX}=wp.element,{__:ru}=wp.i18n;function su({workflow:i=[],setWorkflow:e,setMutationMappers:t,open:n,setOpen:r}){let s=Pe(920),[,o]=un(),[a,l]=X0(null),[c,O]=X0("payload"),[,h,f]=Dt(),[u]=$n(),d=R0(()=>{h(0),r(!0)}).current,p=SX(()=>{O("payload"),setTimeout(()=>{h(f-1),l(!1),o(null),r(!1)})},[f]),m=R0(()=>{o(null),l(!1)}).current;return React.createElement(React.Fragment,null,React.createElement(yX,{disabled:!u.length,variant:"secondary",onClick:d,__next40pxDefaultSize:!0},ru("Workflow","forms-bridge")," (",i.length,")"),n&&React.createElement(QX,{title:ru("Submission workflow","forms-bridge"),onRequestClose:p},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},ru("Process the form submission before it is sent to the backend over the bridge","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"1280px",maxWidth:"80vw",height:"500px",maxHeight:"80vh",display:"flex",flexDirection:s?"column":"row"}},a&&React.createElement(ks,{close:m})||React.createElement(React.Fragment,null,React.createElement("div",{style:s?{flex:1,display:"flex",flexDirection:"column",borderBottom:"1px solid",paddingBottom:"1rem",marginBottom:"2rem"}:{flex:1,maxWidth:"400px",display:"flex",flexDirection:"column",height:"100%",borderRight:"1px solid",paddingRight:"1rem",marginRight:"1rem"}},React.createElement(Ff,{workflow:i,setWorkflow:e,setEdit:()=>l(!0)})),React.createElement("div",{style:{flex:2,display:"flex",flexDirection:"column",height:"100%"}},React.createElement(nu,{mode:c,setMode:O,setEdit:g=>{o(g),l(!0)},setMappers:(g,Q)=>t(g,Q)}))))))}var{useEffect:bX,useMemo:xX}=wp.element,{Spinner:vX}=wp.components,{__:q0}=wp.i18n,wX={enter:new Set,exit:new Set,mutated:new Set,missing:new Set};function qs({height:i,focus:e}){let[,t,n]=Dt(),r=lo(),s=xX(()=>r?.mappers||[],[r]),[o=[]]=$n();return bX(()=>{e&&t(n-1)},[e,n]),i?React.createElement("div",{style:{display:"flex",flexDirection:"column",height:`${i-56}px`}},React.createElement("div",{style:{borderBottom:"1px solid"}},React.createElement("h2",{style:{marginTop:"5px"}},q0("Payload","forms-bridge"))),React.createElement("div",{style:{flex:1,height:"100%",overflow:"hidden auto",padding:"5px"}},r&&React.createElement("div",{style:{overflowY:"auto"}},React.createElement(tn,{fields:o,mappers:s,showMutations:!0,diff:wX}))||React.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},React.createElement(vX,null)))):React.createElement("div",{style:{flex:1}},React.createElement("div",{style:{borderBottom:"1px solid"}},React.createElement("h2",{style:{marginTop:"5px"}},q0("Payload","forms-bridge"))))}var{Button:PX,Modal:kX}=wp.components,{useState:_0,useMemo:C0,useEffect:W0,useRef:Z0,useCallback:TX}=wp.element,{__:ou}=wp.i18n,zX=`.components-modal__frame.no-scrollable .components-modal__content {
    106106  overflow: hidden;
    107107}
    108108.components-modal__frame.no-scrollable .components-modal__content > .components-modal__header + div {
    109109  height: 100%;
    110 }`;function au({formId:i,mappers:e,setMappers:t,includeFiles:n,customFields:r}){let[s,o]=R0(!1),[a,l]=R0(e);_0(()=>{l(e)},[e]);let[c]=at(),O=q0(()=>c.find(p=>p._id===i),[c,i]),h=q0(()=>O?O.fields.filter(({is_file:p})=>n||!p).reduce((p,{name:m,label:g,is_file:y,schema:S})=>(n&&y?(p.push({name:m,label:g,schema:{type:"string"}}),p.push({name:m+"_filename",label:m+"_filename",schema:{type:"string"}})):p.push({name:m,label:g,schema:S}),p),[]).concat(r.map(({name:p})=>({name:p,label:p,schema:{type:"string"}}))):[],[O,r]),f=C0(p=>{let m=p.map(({from:g,to:y,cast:S})=>({from:g,to:y,cast:S}));l(m)}).current,u=vX(()=>{let p=a.filter(({from:m,to:g,cast:y})=>m&&g&&y);t(p),o(!1)},[a]),d=C0(document.createElement("style"));return _0(()=>(d.current.appendChild(document.createTextNode(wX)),document.head.appendChild(d.current),()=>{document.head.removeChild(d.current)}),[]),React.createElement(React.Fragment,null,React.createElement(bX,{disabled:!O,variant:"secondary",onClick:()=>o(!0),__next40pxDefaultSize:!0},ou("Mappers","forms-bridge")," (",e.length,")"),s&&React.createElement(xX,{title:ou("Field mappers","forms-bridge"),onRequestClose:u,className:"no-scrollable"},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},ou("Transform the form submission with field mappings and value mutations","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",minWidth:"575px",minHeight:"125px",height:"100%",display:"flex",flexDirection:"column",borderTop:"1px solid",borderBottom:"1px solid"}},React.createElement(Ts,{fields:h,mappers:a.map((p,m)=>({...p,index:m})),setMappers:f,done:()=>o(!1)}))))}var{Button:lu}=wp.components,{useState:il,useEffect:tr,useMemo:nl,useCallback:Ou,useRef:_s}=wp.element,PX=wp.apiFetch,{__:ki}=wp.i18n;function cu({data:i,update:e,remove:t,schema:n,copy:r,names:s}){let[o]=K(),[a,l]=ue(),[c,O]=N(),h=Pe(),f=_s(i.name),[u,d]=il({...i}),[p,m]=il(!1),g=_s(u);g.current=u;let y=U=>d({...g.current,...U}),S=(U,se)=>{let G=se+1,le=g.current.mutations.map(W=>W);g.current.workflow.length>U.length?le=le.slice(0,G).concat(le.slice(G+1)):g.current.workflow.length<U.length?le=le.slice(0,G).concat([[]]).concat(le.slice(G)):le=le.slice(0,G).concat([[]]).concat(le.slice(G+1)),y({workflow:U,mutations:le})},v=nl(()=>!u.name||u.name.trim()===f.current.trim()?!1:u.name!==f.current&&s.has(u.name.trim()),[s,u.name]),[b]=lt(),x=nl(()=>b.find(({name:U})=>U===u.backend),[b,u.backend]),Q=nl(()=>{let se=(b.find(({name:G})=>G===u.backend)?.headers||[]).find(G=>G.name==="Content-Type")?.value;return se!==void 0&&se!=="multipart/form-data"},[b,u.backend]),w=Ou(U=>!!Object.keys(n.properties).filter(se=>!dr.includes(se)).reduce((se,G)=>{if(!se)return se;let le=U[G];return n.required.includes(G)?(n.properties[G].pattern&&(se=se&&new RegExp(n.properties[G].pattern).test(le)),se&&(le||E(n.properties[G],"default"))):se},!0),[n]),k=nl(()=>w(u)&&!v,[u,v]);!k&&i.is_valid&&e({...i,is_valid:!1});let V=_s();tr(()=>{clearTimeout(V.current),k&&(i.name!==u.name?V.current=setTimeout(()=>{f.current=u.name,e({...u,is_valid:!0})},1e3):Se(i,u)&&e({...u,is_valid:!0}))},[k,u]),tr(()=>{i.name!==f.current&&(f.current=i.name,d(i),me(!1))},[i.name]),tr(()=>{d(i),me(!1)},[o]);let A=_s(!1);tr(()=>(!a&&A.current&&Se(i,u)&&(d(i),me(!1)),()=>{A.current=a}),[a,i,u]);let C=Ou(()=>{let U={...i};ln(U,U.name+" bridge config")},[i]),D=_s(),[B,L]=il(0);tr(()=>{L(0),D.current&&setTimeout(()=>L(D.current.offsetHeight),100)},[n]);let[re,me]=il(!1);tr(()=>{re&&me(!1)},[u.backend]);let Me=Ou(()=>{l(!0),PX({path:`forms-bridge/v1/${o}/backend/ping`,method:"POST",data:{backend:x}}).then(({success:U})=>{U?me(!0):O(ki("Backend is unreachable","forms-bridge"))}).catch(()=>{me(!1),O(ki("Backend is unreachable","forms-bridge"))}).finally(()=>l(!1))},[o,x]),Qe=k&&u.enabled;return React.createElement(vr,{formId:u.form_id,mutations:u.mutations,workflow:u.workflow,customFields:u.custom_fields,includeFiles:Q},React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:h?"column":"row",gap:"2rem"}},React.createElement("div",{ref:D,style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(pr,{data:u,setData:d,schema:n,errors:{name:v?ki("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ut,{label:ki("Delete","forms-bridge"),onClick:()=>t(i),icon:!0}),React.createElement(lu,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:r,label:ki("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(lu,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:C,__next40pxDefaultSize:!0,label:ki("Download bridge config","forms-bridge"),showTooltip:!0},React.createElement(Ri,{width:"12",height:"20",color:"gray"})),React.createElement(lu,{disabled:!!c||a||re,size:"compact",variant:"primary",onClick:Me,style:{background:re?"#4ab866":"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))",marginLeft:"auto",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"ping"))),React.createElement("div",{style:h?{}:{paddingLeft:"2rem",borderLeft:"1px solid",display:"flex",flexDirection:"column",flex:1}},React.createElement(qs,{height:B,focus:!p}),React.createElement("div",{style:{paddingTop:"16px",display:"flex",flexDirection:h?"column":"row",gap:"0.5rem",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(mO,{customFields:u.custom_fields||[],setCustomFields:U=>y({custom_fields:U})}),React.createElement(au,{formId:u.form_id,customFields:u.custom_fields,mappers:u.mutations[0],setMappers:U=>y({mutations:[U,...u.mutations.slice(1)]}),includeFiles:Q}),React.createElement(su,{workflow:u.workflow,setWorkflow:S,setMutationMappers:(U,se)=>y({mutations:u.mutations.slice(0,U).concat([se]).concat(u.mutations.slice(U+1))}),open:p,setOpen:m})),React.createElement("div",{style:{marginLeft:h?0:"auto",display:"flex",alignItems:"center"}},React.createElement(Jn,{disabled:!k,checked:u.enabled&&k,onChange:()=>y({enabled:!u.enabled}),__nextHasNoMarginBottom:!0}),React.createElement("span",{style:{width:"50px",marginLeft:"-10px",fontStyle:"normal",fontSize:"12px",color:Qe?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"rgb(117, 117, 117)"}},!k||!u.enabled?ki("Disabled","forms-bridge"):ki("Enabled","forms-bridge")))))))}var{__experimentalHeading:kX}=wp.components;function ti({name:i,description:e,children:t}){return React.createElement(React.Fragment,null,React.createElement(kX,{level:3},i),React.createElement("p",{style:{marginTop:0}},e),React.createElement("div",{style:{display:"flex",flexDirection:"column"}},t))}var{__:hu}=wp.i18n;function TX({data:i,error:e}){switch(i.type){case"boolean":return React.createElement(zX,{name:i.name,value:i.value,onChange:i.onChange});case"number":return React.createElement(RX,{required:!!i.required,name:i.name,value:i.value,onChange:i.onChange,min:i.min,max:i.max,error:e});case"select":return Array.isArray(i.options)?React.createElement(qX,{required:!!i.required,name:i.name,value:i.value,onChange:i.onChange,options:i.options,multiple:!!i.is_multi}):null;case"text":default:return React.createElement(XX,{type:i.type,required:!!i.required,name:i.name,value:i.value,onChange:i.onChange,error:e})}}function zX({name:i,value:e,onChange:t}){return Array.isArray(e)&&(e=!!e[0]),React.createElement("input",{type:"checkbox",name:i,onChange:()=>t(!e),checked:e})}function XX({type:i,name:e,value:t,onChange:n,required:r,error:s}){let o={};r&&(o.required=!0);let a={width:"100%"};return s&&(a.border="1px solid red"),React.createElement(React.Fragment,null,React.createElement("input",{type:i,name:e,value:t||"",onChange:({target:l})=>n(l.value),style:a,...o}),s&&React.createElement("p",{style:{margin:"5px 0 0",fontSize:"12px",color:"red"}},s))}function RX({name:i,value:e,onChange:t,required:n,min:r=null,max:s=null,error:o}){let a={};r&&(a.min=r),s&&(a.max=s),n&&(a.required=!0),!o&&e&&(isNaN(e)?o=hu("The value is not a number","forms-bridge"):r!==null&&!isNaN(r)&&e<r?o=hu("The value is too small","forms-bridge"):s!==null&&!isNaN(s)&&e>s&&(o=hu("The value is too large","forms-bridge")));let l={width:"100%"};return o&&(l.border="1px solid red"),React.createElement(React.Fragment,null,React.createElement("input",{type:"number",name:i,value:e||"",onChange:({target:c})=>t(c.value),style:l,...a}),o&&React.createElement("p",{style:{color:"red"}},o))}function qX({name:i,value:e,onChange:t,required:n,multiple:r,options:s=[],error:o}){let a={};n?a.required=!0:r||(s=[{label:"",value:""}].concat(s.filter(c=>c.value)));let l={width:"100%",maxWidth:"unset"};return o&&(l.border="1px solid red"),React.createElement(React.Fragment,null,React.createElement("select",{name:i,value:e||"",onChange:({target:c})=>{let O=Array.from(c.children).filter(h=>h.selected).map(h=>h.value);t(r?O:O[0])},style:l,multiple:!!r,...a},s.map(({label:c,value:O},h)=>React.createElement("option",{key:h,value:O},c))))}function jt({data:i,error:e}){let t=!!i.required;return React.createElement("label",{style:{margin:"0.5rem 0"},htmlFor:i.name},i.label,t&&React.createElement("span",{style:{marginLeft:"3px",color:"red"}},"*"),i.description&&React.createElement("p",{style:{marginTop:0,opacity:.8}},React.createElement("em",{dangerouslySetInnerHTML:{__html:i.description}}))||React.createElement("br",null),React.createElement(TX,{data:i,error:e}))}function Cs(i){return i.replace(/^#/,"").replace(/\/.*/,"")}function ir(i,e){return i.filter(({ref:t})=>new RegExp("^#"+e).test(t))}function Ws(i,e,t){return!i?.name||e?.schema&&e.schema!==i.schema?!1:t.reduce((n,{name:r,required:s})=>{if(!n||!s)return n;let o=i[r];return n&&o!==void 0&&o!==null&&o!==""},!0)}function Zs(i,e,t){if(!i?.name)return!1;let n=t.reduce((r,{name:s,ref:o,required:a})=>{if(!r||!a)return r;let l;return o==="#backend/headers[]"?l=i.headers.find(c=>c.name===s)?.value:l=i[s],r&&l!==void 0&&l!==null&&l!==""},!0);if(!n)return n;if(e.base_url&&i.base_url!==e.base_url){if(e.base_url!==i.base_url){let r=e.base_url.replace(/{\w+}/g,".+");if(new RegExp(r).test(i.base_url)===!1)return!1}}else if(!zi(i.base_url))return!1;return e.headers.reduce((r,{name:s,value:o})=>{if(!r)return r;let a=i.headers.find(l=>l.name===s);return a?a.value===o:!1},n)}function rl(i,e={},t){if(!i?.name||!i?.base_url)return;let n={name:i.name||e.name,base_url:i.base_url||e.base_url,credential:i.credential||"",headers:Object.keys(i).filter(r=>!["name","base_url","credential"].includes(r)).map(r=>({name:r,value:i[r]}))};return Array.isArray(e.headers)&&e.headers.forEach(({name:r,value:s})=>{n.headers.find(o=>o.name===r)||n.headers.push({name:r,value:s})}),t.forEach(r=>{if(r.value)if(r.ref==="#backend/headers[]"){let s=n.headers.find(o=>o.name===r.name);s?s.value=r.value:n.headers.push({name:r.name,value:r.value})}else n[r.name]=r.value}),n}var{SelectControl:_X}=wp.components,{useMemo:Ti,useState:W0,useEffect:Z0,useRef:CX}=wp.element,{__:Vs}=wp.i18n,WX=["name","base_url","headers"];function fu({fields:i,data:e,setData:t,wired:n,fetched:r,credential:s,fetchError:o}){let[a]=lt(),l=Yt(),[{backend:c}]=Ee(),O=Ti(()=>si(i,WX),[i]),[h,f]=W0({...e}),u=Ti(()=>{let Q=i.reduce((w,k)=>{let V=k.value||k.default||"";return!V&&k.type==="select"&&k.required&&(V=k.options[0].value),w[k.name]=V,w},{});return{base_url:c.base_url,name:c.name,credential:c.credential,...Q}},[i,c]),d=Ti(()=>a.filter(Q=>Zs(Q,c,i)).filter(Q=>s?Q.credential===s:Q),[a,c,i]),p=Ti(()=>Ce(d.map(({name:Q})=>({label:Q,value:Q}))).sort((Q,w)=>Q.label>w.label?1:-1),[d]),[m,g]=W0(()=>p.find(({value:Q})=>Q===e.name)?.value||""),y=Ti(()=>h.name&&l.has(h.name.trim()),[l,h.name]),S=Ti(()=>{if(y)return;let Q=rl(h,c,i);if(Zs(Q,c,i))return Q},[h,y,c,i]),v=Ti(()=>{let Q=d.find(w=>w.name===m);return Q||S},[d,m,S]);Z0(()=>{if(!v){t(null);return}m&&f({...u});let Q={name:v.name,base_url:v.base_url};v.headers.filter(({name:w})=>i.find(k=>k.name===w)).forEach(({name:w,value:k})=>Q[w]=k),v.authentication?.type&&(Q.client_id=v.authentication.client_id,Q.client_secret=v.authentication.client_secret),t(Q)},[m,v,i]);let b=CX(c);Z0(()=>(Se(c,b.current)&&g(""),()=>{b.current=c}),[c]);let x=Ti(()=>n===!0&&r===!0?"\u{1F44C}":n===!1||o?"\u{1F44E}":v?"\u23F3":null,[n,r,v,o]);return React.createElement(ti,{name:Vs("Backend","forms-bridge"),description:Vs("Configure the backend to bridge your form to","forms-bridge")},React.createElement("p",{style:{height:"30px",marginTop:0,display:"flex",alignItems:"center"}},React.createElement("strong",null,Vs("Connection status","forms-bridge"),":"),React.createElement("i",{style:{fontSize:"1.5em",marginLeft:"0.25em",fontStyle:"normal"}},x)),p.length>0&&React.createElement(_X,{label:Vs("Reuse an existing backend","forms-bridge"),value:m,options:p,onChange:g,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),!m&&O.map(Q=>React.createElement(jt,{key:Q.name,data:{...Q,value:h[Q.name]||"",onChange:w=>f({...h,[Q.name]:w})},error:Q.name==="name"&&y&&Vs("This name is already in use","forms-bridge")})))}var{useMemo:As,useState:ZX,useEffect:uu,useRef:VX}=wp.element,{__:du}=wp.i18n,{SelectControl:AX}=wp.components,jX=["title"];function YX(i,e,t,n){return i._id.indexOf(n)!==0?!1:e.fields.reduce((s,{name:o,label:a,type:l})=>{if(!s)return s;let c=i.fields.find(O=>o===O.name)||n==="wpforms"&&i.fields.find(O=>a===O.name);return c?s&&c.type===l:!1},!0)&&t.filter(s=>s.ref==="#form/fields[]").reduce((s,{name:o,required:a,type:l})=>{if(!s)return s;let c=i.fields.find(O=>O.name===o);return c?s&&l===c.type:a?!1:s},!0)}function pu({fields:i,data:e,setData:t,integration:n}){let[{form:r}]=Ee(),[s]=at(),o=As(()=>s.filter(d=>YX(d,r,i,n)),[s,n]),a=As(()=>Ce(o.map(({id:d,title:p})=>({label:p,value:d}))),[o]),[l,c]=ZX(""),O=VX("");uu(()=>{c("")},[n]),uu(()=>(l!==O.current&&t(),()=>{O.current=l}),[l]);let h=As(()=>s.find(({id:d})=>d==l),[s,l]);uu(()=>{if(!h)return;let d=r.fields.reduce((p,m)=>{switch(m.type){case"object":p[m.name]=[];break;case"boolean":p[m.name]=!1;break;default:p[m.name]=""}return p},{});d.id=h.id,d.title=h.title,t(d)},[h]);let f=As(()=>si(i,jX),[i]),u=As(()=>h?[]:f.filter(d=>d.name!=="id"),[h,f]);return React.createElement(ti,{name:du("Form","forms-bridge"),description:du("Populate the form default values","forms-bridge")},a.length>0&&React.createElement(AX,{label:du("Reuse an existing form","forms-bridge"),value:l,options:a,onChange:c,__nextHasNoMarginBottom:!0}),u.map(d=>React.createElement(jt,{key:d.name,data:{...d,value:e[d.name]||"",onChange:p=>t({[d.name]:p})}})))}var{useMemo:V0,useState:UX,useEffect:MX}=wp.element,{__:mu}=wp.i18n,EX=["name"];function gu({fields:i,data:e,setData:t}){let n=yr(),[r,s]=UX(""),o=V0(()=>si(i,EX),[i]),a=V0(()=>e.name!==r.trim()&&n.has(r.trim()),[n,r]);return MX(()=>{r&&!a&&t({name:r})},[r,a]),React.createElement(ti,{name:mu("Bridge","forms-bridge"),description:mu("Configure the bridge","forms-bridge")},React.createElement(jt,{data:{...o[0],value:r,onChange:s},error:a?mu("This name is already in use","forms-bridge"):!1}),o.slice(1).map(l=>React.createElement(jt,{key:l.name,data:{...l,value:e[l.name]||"",onChange:c=>t({[l.name]:c})}})))}var{useMemo:rn,useState:A0,useEffect:$u,useRef:DX}=wp.element,{SelectControl:BX}=wp.components,{__:sl}=wp.i18n,LX=["name"];function yu({fields:i,data:e,setData:t}){let[n]=ci(),[{credential:r}]=Ee(),s=rn(()=>new Set(n.map(({name:g})=>g)),[n]),o=rn(()=>si(i,LX),[i]),[a,l]=A0({...e}),c=rn(()=>{let g=i.reduce((y,S)=>{let v=S.default||r?.[S.name]||"";return!v&&S.type==="select"&&S.required&&(v=S.options[0].value),y[S.name]=v,y},{});return{...r,...g}},[i,r]),O=rn(()=>n.filter(g=>Ws(g,r,i)),[n,r,i]),h=rn(()=>Ce(O.map(({name:g})=>({label:g,value:g})).sort((g,y)=>g.label>y.label?1:-1)),[O]),[f,u]=A0(()=>h.find(({value:g})=>g===e.name)?.value||""),d=rn(()=>a.name&&s.has(a.name.trim()),[s,a.name]),p=rn(()=>{let g=O.find(y=>y.name===f);if(g)return g;if(Ws(a,r,i))return a},[O,f,a,r,d,i]);$u(()=>{if(!p){t(null);return}f&&l({...c}),t({...p})},[p]);let m=DX(r);return $u(()=>(Se(r,m.current)&&u(""),()=>{m.current=r}),[r]),$u(()=>{let g=O.find(y=>y.name===e.name);g&&u(g.name)},[e.name,O]),React.createElement(ti,{name:sl("Credential","forms-bridge"),description:sl("Configure the backend credentials","forms-bridge")},h.length>0&&React.createElement(BX,{label:sl("Reuse an existing credential","forms-bridge"),value:f,options:h,onChange:u,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),!f&&o.map(g=>React.createElement(jt,{key:g.name,data:{...g,value:a[g.name]||"",onChange:y=>l({...a,[g.name]:y})},error:g.name==="name"&&d&&sl("This name is already in use","forms-bridge")})))}var{useState:GX,useEffect:IX,useMemo:ol}=wp.element,NX=[{name:"credential",component:yu},{name:"backend",component:fu},{name:"form",component:pu},{name:"bridge",component:gu}];function Qu({fields:i,integration:e,data:t}){let{bridge:n}=ri(),r=ol(()=>NX.filter(f=>e==="woo"?f.name!=="form":!0),[e,n]),[s,o]=GX(0),{name:a,component:l}=ol(()=>r[s],[r,s]),c=ol(()=>ir(i,a),[s,r,i]);IX(()=>{i.length&&(c.length||setTimeout(()=>h(1)))},[i,c]);let O=ol(()=>c.length?c.reduce((f,u)=>{let d=t[a]?.[u.name];return f&&(!!d||!u.required)},!0):!0,[c,t,a]),h=f=>{let u=s+f,d=r[u].name,p=ir(i,d);for(;p.length===0&&u>0&&u<r.length-1;)u+=f,d=r[u],p=ir(i,d);o(u)};return{done:O,move:h,step:s,Step:l,name:a,reset:()=>o(0),trailing:s===r.length-1}}var{useState:FX,useEffect:Su,useMemo:HX,useCallback:KX,useRef:j0}=wp.element,JX=wp.apiFetch;function bu({step:i,data:e={},fields:t=[],credential:n,authorized:r}){let[s]=K(),{backend:o}=Ee()[0]||{},[a,l]=FX(null);Su(()=>{l(null)},[o,n,r]);let c=HX(()=>{if(!o)return;let u=rl(e,o,t);if(Zs(u,o,t))return u},[e,o,t]),O=j0();Su(()=>((!c||Se(c,O.current))&&l(null),()=>{O.current=c}),[c]);let h=KX((u,d={})=>{JX({path:`forms-bridge/v1/${s}/backend/ping`,method:"POST",data:{backend:u,credential:d}}).then(({success:p})=>l(p)).catch(()=>l(!1))},[s]),f=j0();return Su(()=>{clearTimeout(f.current),!(i!=="backend"||!c||!r||a!==null)&&(f.current=setTimeout(()=>h(c,n),500))},[i,o,a,c,n,r]),[c,a]}var{useState:Y0,useEffect:xu,useRef:eR,useMemo:U0,useCallback:tR}=wp.element,iR=wp.apiFetch;function vu({data:i={},fields:e=[]}){let[t]=K(),[n,r]=ue(),[s,o]=Y0(!1),a=eR(!0),[l,c]=Y0(!0);xu(()=>{let g=()=>c(!0),y=()=>c(!1);return window.addEventListener("focus",g),window.addEventListener("blur",y),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",y)}},[]);let{credential:O}=Ee()[0]||{},{credential:h}=ri(),f=U0(()=>{if(O&&Ws(i,O,e)){let g={...i},y=h?.oneOf.find(S=>S.properties.schema.const===g.schema||S.properties.schema.enum?.includes(g.schema));return y&&Object.keys(y.properties).forEach(S=>{E(y.properties[S],"default")&&(g[S]=g[S]||y.properties[S].default)}),g}},[h,i,O,e]);xu(()=>{o(!1)},[f]);let u=i.schema==="OAuth",d=U0(()=>{if(!u||i.refresh_token)return!0;if(!(i.access_token&&i.expires_at))return!1;let g=new Date(i.expires_at);return g.getFullYear()===1970&&(g=new Date(i.expires_at*1e3)),Date.now()<g.getTime()},[u,i.access_token,i.expires_at]),p=ot();xu(()=>(l&&!a.current&&!d&&p(),()=>{a.current=l}),[l]);let m=tR(()=>{if(!f)return;let g=f.oauth_url,y=g.match(/{(\w+)}/);y&&f[y[1]]&&(g=g.replace(/{\w+}/,f[y[1]])),f.oauth_url=g,r(!0),iR({path:"forms-bridge/v1/oauth/grant",method:"POST",data:{credential:f}}).then(({success:S,data:v})=>{if(!S)throw"error";let{url:b,params:x}=v,Q=document.createElement("form");Q.action=b,Q.method="GET",Q.target="_blank",Q.innerHTML=Object.keys(x).reduce((w,k)=>{let V=x[k];return V?w+`<input name="${k}" value="${V}" />`:w},""),Q.style.visibility="hidden",document.body.appendChild(Q),Q.submit(),document.body.removeChild(Q)}).catch(()=>o("")).finally(()=>r(!1))},[n,t,f]);return h?{credential:f,authorized:d,authorize:m,error:s}:[null,!0]}var{Button:wu,Notice:Pu}=wp.components,{useMemo:js,useState:Ys,useEffect:al,useCallback:ku,useRef:nR}=wp.element,rR=wp.apiFetch,{__:sn}=wp.i18n;function Tu({integration:i,onSubmit:e}){let[t]=K(),[n,r]=Ys(!1),[s,o]=Ys({}),[a,l]=Ys(!1),[c,O]=Ys([]),[h,f]=Ys(!1),[u,d]=Ee(),[p]=io(),m=js(()=>(u?.fields||[]).filter(te=>!E(te,"value")),[u]),{done:g,move:y,step:S,Step:v,name:b,reset:x,trailing:Q}=Qu({fields:m,integration:i,data:s}),w=js(()=>m.reduce((W,te)=>{let ce=Cs(te.ref);return{...W,[ce]:(W[ce]||[]).concat([te])}},{}),[m]),k=js(()=>w[b]?a?w[b].map(W=>{let te=c.find(ce=>ce.name===W.name&&ce.ref===W.ref)?.options;return te?{...W,type:"select",options:Ce(te)}:W}):w[b]:[],[w,b,c]),V=js(()=>{let W=Object.fromEntries(Object.keys(w).map(ce=>[ce,{}]));return(u?.fields||[]).reduce((ce,ze)=>{if(ze.default||ze.value){let ni=ze.value||ze.default,fl=Cs(ze.ref);ce[fl]=ce[fl]||{},ce[fl][ze.name]=ni}else if(ze.type==="select"&&ze.required){let ni=Cs(ze.ref);ce[ni]=ce[ni]||{},Array.isArray(ze.options)&&(ce[ni][ze.name]=ze.options[0]?.value)}return ce},W)},[u,w]);al(()=>{o(V),x()},[m,V]);let{credential:A,authorized:C,authorize:D,error:B}=vu({data:s.credential,fields:w.credential}),[L,re]=bu({step:b,data:s.backend,fields:w.backend,credential:A,authorized:C}),me=nR(h);me.current=h,al(()=>{!L||!re||!me.current||f(!1)},[L,re]),al(()=>{!re&&a&&(l(!1),O([]))},[re]),al(()=>{a||h||n||b==="backend"&&re&&C&&U(L,s.credential)},[n,b,re,C,a,h,L,s.credential]);let Me=ku(()=>{d({template:p,integration:i,fields:m.map(W=>{let te=Cs(W.ref);if(E(s[te],W.name)&&s[te][W.name]!==null)W.type==="boolean"&&Array.isArray(s[te][W.name])?W.value=!!s[te][W.name][0]:W.value=s[te][W.name];else if(W.default)W.value=W.default;else if(!W.required)switch(W.type){case"select":W.value=[];break;case"boolean":W.value=!1;break}return W})}).then(W=>e(W))},[p,i,m,s]),Qe=ku((W=null)=>{let te=V[b]||{},ce=s[b]||{};W!==null?W={...te,...ce,...W}:W={},o({...s,[b]:W})},[s,V,b]),U=ku((W,te={})=>{h||(r(!0),rR({path:`forms-bridge/v1/${t}/templates/${p}/options`,method:"POST",data:{backend:W,credential:te}}).then(ce=>{O(ce),f(!1),l(!0)}).catch(()=>{l(!1),f(!0)}).finally(()=>r(!1)))},[t,p]),se=js(()=>Object.keys(w).reduce((W,te)=>ir(m,te).reduce((ze,ni)=>ze&&(!!s[te]?.[ni.name]||!ni.required),W),!0),[s]),G=A&&!C,le=g&&(b!=="backend"||a)&&(b!=="credential"||A)&&!G;if(u?.fields.length&&s[b]!==void 0)return React.createElement("div",{style:{width:"575px",minHeight:"125px"}},React.createElement("hr",{style:{margin:"1rem 0"}}),b==="backend"&&h&&React.createElement("div",{style:{marginBottom:"10px"}},React.createElement(Pu,{status:"error",politeness:"assertive",isDismissible:!1},sn("Unable to fetch data from the backend","forms-bridge"))),React.createElement(v,{integration:i,fields:k,data:s[b]||{},setData:Qe,wired:re,fetched:a,fetchError:h,credential:A?.name}),B&&React.createElement("div",{style:{marginBottom:"10px"}},React.createElement(Pu,{status:"error",politeness:"assertive",isDismissible:!1},sn("The credential cannot be authorized","forms-bridge"))),G&&React.createElement("div",{style:{margin:"10px 0"}},React.createElement(Pu,{isDismissible:!1,status:"warning",actions:[{label:sn("Authorize","forms-bridge"),onClick:D,variant:"secondary",size:"compact"}]},React.createElement("p",null,sn("Send an authorization request to validate the credential","forms-bridge")))),React.createElement("div",{style:{padding:"1rem 0 0",display:"flex",justifyContent:"center",alignItems:"center",gap:"0.5rem"}},React.createElement(wu,{disabled:S<=0,variant:"secondary",onClick:()=>y(-1)},sn("Previous","forms-bridge")),Q?React.createElement(wu,{disabled:!se,variant:"primary",onClick:Me},sn("Submit","forms-bridge")):React.createElement(wu,{disabled:!le,variant:"secondary",onClick:()=>y(1)},sn("Next","forms-bridge"))))}var{Modal:sR,Button:M0,SelectControl:E0,__experimentalSpacer:oR}=wp.components,{useState:Us,useEffect:ll,useMemo:D0,useCallback:aR}=wp.element,{__:on}=wp.i18n;function zu(){let[i]=Hd(),[,e]=io(),[t]=Ee(),[n,r]=Us({}),[s,o]=Us(null),[a,l]=Us(!1),[c,O]=N(),[h]=li(),f=D0(()=>h.filter(({enabled:S})=>S).map(({name:S,title:v})=>({value:S,label:v})).sort((S,v)=>S.label>v.label?1:-1),[h]),[u,d]=Us(f[0]?.value||"");ll(()=>{!u&&f.length&&d(f[0].value)},[u,f]);let p=D0(()=>Ce(i.filter(({integrations:S})=>S.includes(u)).map(({name:S,title:v})=>({label:v,value:S}))).sort((S,v)=>S.label>v.label?1:-1),[i,u]),[m,g]=Us(!1);ll(()=>{a&&e(null)},[a]),ll(()=>{c&&g(!1)},[c]),ll(()=>{m||(e(null),r({}),l(!1))},[m]);let y=aR(S=>{S?l(!0):S===!1&&O(on("Unsuccessful template submit","forms-bridge"))});return i.length?React.createElement(React.Fragment,null,React.createElement(M0,{disabled:!!c||!h.length,variant:"primary",onClick:()=>g(!0),style:{width:"150px",marginTop:"auto",justifyContent:"center"},__next40pxDefaultSize:!0},on("Use a template","forms-bridge")),m&&React.createElement(sR,{title:on("Templates","forms-bridge"),onRequestClose:()=>{e(null),g(!1)}},a&&React.createElement(React.Fragment,null,React.createElement("p",{style:{fontSize:"1rem"}},on("Congratulations, you've created a new form bridge!","forms-bridge")),React.createElement(M0,{variant:"primary",onClick:()=>g(!1),style:{width:"150px",margin:"1.5rem auto 0",display:"block"},__next40pxDefaultSize:!0},on("Close","forms-bridge")))||React.createElement(React.Fragment,null,f.length>1&&React.createElement(React.Fragment,null,React.createElement(E0,{label:on("Target integration","forms-bridge"),options:f,value:u,onChange:d,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(oR,{paddingY:"calc(6px)"})),React.createElement(E0,{label:on("Select a template","forms-bridge"),options:p,onChange:e,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),t?.description&&React.createElement("p",{style:{maxWidth:"575px"},dangerouslySetInnerHTML:{__html:t.description}})||null,React.createElement(Tu,{integration:u,onSubmit:y,data:n,setData:r,wired:s,setWired:o}))):null}var{Button:Ms}=wp.components,{useState:B0,useEffect:lR,useMemo:Xu,useRef:OR,useCallback:L0}=wp.element,{__:ii}=wp.i18n;function Ru({add:i,schema:e,names:t}){let n=Pe(),[r,s]=B0({}),[o,a]=N(),l=Xu(()=>r.name?t.has(r.name.trim()):!1,[t,r.name]),[c]=lt(),O=Xu(()=>{let S=(c.find(({name:v})=>v===r.backend)?.headers||[]).find(v=>v.name==="Content-Type")?.value;return S!==void 0&&S!=="multipart/form-data"},[c,r.backend]),h=()=>{window.__wpfbInvalidated=!0,s({}),i({...r,name:r.name.trim()})},f=L0(y=>!!Object.keys(e.properties).filter(S=>!dr.includes(S)).reduce((S,v)=>{if(!S)return S;let b=y[v];return e.required.includes(v)?(e.properties[v].pattern&&(S=new RegExp(e.properties[v].pattern).test(b)),S&&(b||E(e.properties[v],"default"))):S},!0),[e]),u=Xu(()=>f(r),[r]),d=L0(()=>{oi().then(y=>{if(!f(y)){a(ii("Invalid bridge config","forms-bridge"));return}let v=1;for(;t.has(y.name);)y.name=y.name.replace(/ \([0-9]+\)/,"")+` (${v})`,v++;i(y)}).catch(y=>{y?.name==="SyntaxError"?a(ii("JSON syntax error","forms-bridge")):a(ii("An error has ocurred while uploading the bridge config","forms-bridge"))})},[t]),p=OR(),[m,g]=B0(0);return lR(()=>{g(0),setTimeout(()=>g(p.current.offsetHeight),100)},[e]),React.createElement(ur,{bridge:r},React.createElement(vr,{formId:r.form_id,mutations:[],workflow:[],customFields:[],includeFiles:O},React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:n?"column":"row",gap:"2rem"}},React.createElement("div",{ref:p,style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(pr,{data:r,setData:s,schema:e,optionals:!0,errors:{name:l?ii("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ms,{variant:"primary",onClick:h,style:{width:"100px",justifyContent:"center"},disabled:l||!u,__next40pxDefaultSize:!0},ii("Add","forms-bridge")),React.createElement(Ms,{variant:"tertiary",size:"compact",style:{width:"40px",height:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"grey"},disabled:!!o,onClick:d,__next40pxDefaultSize:!0,label:ii("Upload","forms-bridge"),showTooltip:!0},React.createElement(Et,{width:"12",height:"20",color:"gray"})))),React.createElement("div",{style:n?{paddingTop:"2rem",borderTop:"1px solid"}:{paddingLeft:"2rem",borderLeft:"1px solid",display:"flex",flexDirection:"column",flex:1}},React.createElement(qs,{height:m}),React.createElement("div",{style:{paddingTop:"16px",display:"flex",gap:"0.5rem",flexDirection:"row",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Ms,{variant:"secondary",disabled:!0,__next40pxDefaultSize:!0},ii("Custom fields","forms-bridge")," (0)"),React.createElement(Ms,{variant:"secondary",disabled:!0,__next40pxDefaultSize:!0},ii("Mappers","forms-bridge")," (0)"),React.createElement(Ms,{variant:"secondary",disabled:!0,__next40pxDefaultSize:!0},ii("Workflow","forms-bridge")," (0)")),React.createElement("div",{style:{marginLeft:n?0:"auto",display:"flex",alignItems:"center"}},React.createElement(zu,null)))))))}var{TabPanel:cR}=wp.components,{useEffect:hR,useMemo:fR,useRef:uR}=wp.element,{__:G0}=wp.i18n,dR=`.bridges-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
    111 .bridges-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`,pR={name:"bridge-"+Date.now(),backend:"",form_id:"",enabled:!0,workflow:[],is_valid:!0,mutations:[[]],custom_fields:[]};function qu(){let{bridge:i}=ri(),[e,t]=ro(),n=yr(),r=fR(()=>Array.from(n).map((O,h)=>({index:h,name:String(h),title:O,icon:React.createElement(qi,{name:O})})).concat([{index:-1,name:"new",title:G0("Add a bridge","forms-bridge"),icon:React.createElement("div",{style:{marginBottom:"-2px"}},React.createElement(_i,{width:"15",height:"15"}))}]),[n]),s=O=>{O={...pR,...O},O.mutations=O.mutations.slice(0,O.workflow.length+1);for(let h=O.mutations.length;h<O.workflow.length;h++)O.mutations.push([]);return O},o=(O,h)=>{O===-1&&(O=e.length),h.name=h.name.trim();let f=e.slice(0,O).concat([s(h)]).concat(e.slice(O+1,e.length));t(f)},a=({name:O})=>{let h=e.findIndex(u=>u.name===O),f=e.slice(0,h).concat(e.slice(h+1));t(f)},l=O=>{let h=e.findIndex(d=>d.name===O),f=e[h],u={...f,workflow:f.workflow.map(d=>d),mutations:JSON.parse(JSON.stringify(f.mutations||f.workflow.map(()=>[]))),custom_fields:JSON.parse(JSON.stringify(f.custom_fields||[]))};for(u.name=u.name.trim();n.has(u.name);)u.name+="-copy";window.__wpfbInvalidated=!0,t(e.concat(u))},c=uR(document.createElement("style"));return hR(()=>(c.current.appendChild(document.createTextNode(dR)),document.head.appendChild(c.current),()=>{document.head.removeChild(c.current)}),[]),i?React.createElement("div",{style:{width:"100%"}},React.createElement("h3",{style:{marginTop:0,fontSize:"13px"}},G0("Bridges","forms-bridge")),React.createElement(cR,{tabs:r,className:"bridges-tabs-panel"},O=>{let h=e[O.index];return React.createElement(ur,{bridge:h},!h&&React.createElement(Ru,{add:f=>o(O.index,f),schema:i,names:n})||React.createElement(cu,{data:h,schema:i,remove:a,update:f=>o(O.index,f),copy:()=>l(h.name),names:n}))})):null}var{useMemo:mR}=wp.element,{__experimentalItemGroup:gR,__experimentalItem:$R}=wp.components,{__:yR}=wp.i18n;function Ol({fields:i=[]}){let e=mR(()=>i.map(t=>{let n=t.name;return t.required?n+="\u2217":t.forward&&(n+="?"),{...t,name:n,mutated:t.touch}}),[i]);return e.length?React.createElement(gR,{size:"large",isSeparated:!0},e.map((t,n)=>React.createElement($R,{key:t.name+n},React.createElement(Pi,{...t,showDiff:!0})))):React.createElement("p",{style:{lineHeight:"2.65"}},yR("Empty interface","forms-bridge"))}var{Modal:QR}=wp.components,{__:I0}=wp.i18n;function _u({show:i,onClose:e}){if(i)return React.createElement(QR,{title:I0("Job editor","forms-bridge"),onRequestClose:e},React.createElement(React.Fragment,null,React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},I0("Process the form submission before it is sent to the backend over the bridge","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"1280px",maxWidth:"80vw",height:"500px",maxHeight:"80vh",display:"flex"}},React.createElement(ks,{close:e}))))}function Cu({width:i=50,height:e=50,color:t="#000000"}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 50 50"},React.createElement("g",{transform:"translate(-99.83567,-102)"},React.createElement("path",{style:{fill:t,strokeWidth:2},d:"m 101.18783,151.9575 c -0.47473,-0.11502 -0.9291,-0.48272 -1.14903,-0.92984 -0.06393,-0.12997 -0.134538,-0.32401 -0.156915,-0.43119 -0.06162,-0.29517 -0.06162,-39.2669 0,-39.56207 0.103548,-0.49601 0.463815,-0.9677 0.919875,-1.20436 0.42318,-0.2196 -0.56243,-0.20074 10.5121,-0.20119 11.04238,-4.6e-4 10.05513,-0.0186 10.48527,0.193 0.52151,0.25657 0.8704,0.75128 0.95922,1.3601 0.12078,0.82787 -0.40052,1.65228 -1.22311,1.93431 l -0.18056,0.0619 -8.96551,0.007 -8.96551,0.007 v 17.62315 17.62314 h 17.5696 17.5696 l 0.007,-8.97176 0.007,-8.97177 0.0773,-0.2287 c 0.18032,-0.5336 0.5824,-0.94202 1.12436,-1.14213 0.2529,-0.0934 0.71713,-0.11822 0.97896,-0.0524 0.25931,0.0652 0.59998,0.24188 0.78345,0.40635 0.21246,0.19047 0.41956,0.50786 0.5143,0.78818 l 0.0773,0.2287 v 10.00884 10.00884 l -0.0648,0.20881 c -0.1942,0.6261 -0.68212,1.09534 -1.28772,1.23843 -0.15439,0.0365 -2.51881,0.0412 -19.80083,0.0395 -17.02892,-0.002 -19.64751,-0.007 -19.79184,-0.0422 z"}),React.createElement("path",{d:"m 113.3661,139.87064 c -0.47978,-0.11635 -0.93124,-0.4844 -1.15795,-0.944 -0.18488,-0.37479 -0.23253,-0.7393 -0.1494,-1.14267 0.0555,-0.26951 4.26852,-10.14985 4.4309,-10.39144 0.0654,-0.0973 4.93557,-4.99683 12.53228,-12.60786 12.26692,-12.29004 12.42799,-12.45003 12.63367,-12.54891 0.28518,-0.1371 0.4922,-0.18452 0.80558,-0.18452 0.42184,0 0.78398,0.12207 1.10474,0.37237 0.0875,0.0683 1.45324,1.42507 3.03487,3.015 2.1079,2.11895 2.89972,2.93216 2.96568,3.04579 0.34214,0.5894 0.33288,1.28679 -0.025,1.87855 -0.11368,0.18798 -24.80529,24.94357 -25.02901,25.09386 -0.0804,0.054 -2.24081,0.99668 -4.84166,2.11261 -5.35245,2.29654 -5.23833,2.24831 -5.45159,2.30398 -0.19893,0.0519 -0.63343,0.0505 -0.85315,-0.003 z m 6.54526,-7.84097 c -0.59085,-0.59302 -1.08264,-1.0691 -1.09289,-1.05796 -0.0146,0.0159 -1.53238,3.55198 -1.59683,3.72032 -0.01,0.0249 0.75243,-0.28861 1.87395,-0.77108 l 1.89004,-0.81307 z m 19.21636,-19.27354 -1.51394,-1.51734 -8.76403,8.78378 -8.76403,8.78379 1.51382,1.51742 1.51382,1.51742 8.76414,-8.78387 8.76415,-8.78386 z m 4.79183,-1.76793 1.58319,-1.58693 -1.51375,-1.51734 -1.51374,-1.51734 -1.59041,1.59381 -1.59041,1.5938 1.50689,1.51047 c 0.82879,0.83076 1.51322,1.51047 1.52096,1.51047 0.008,0 0.72651,-0.71412 1.59727,-1.58694 z",style:{fill:t,strokeWidth:1}})))}var{useState:SR,useEffect:F0,useRef:cl,useMemo:N0,useCallback:bR}=wp.element,{PanelBody:xR,SelectControl:vR,Button:Wu,TabPanel:wR,Spinner:PR}=wp.components,{__:an}=wp.i18n,kR=[{name:"input",title:an("Input interface","forms-bridge")},{name:"output",title:an("Output interface","forms-bridge")},{name:"snippet",title:an("Job snippet","forms-bridge")}];function Zu(){let[i]=N(),e=ot(),[t]=pn(),[n,r]=un(),[s,o,a]=dn(),[l,c]=SR(!1),O=N0(()=>Ce(t.map(d=>({value:d.name,label:d.title})).sort((d,p)=>d.label>p.label?1:-1)),[t]);F0(()=>{i&&c(!1)},[i]);let h=N0(()=>new Set(t.map(d=>d.name)),[t]),f=bR(()=>{let d={...s};for(d.title+=" (copy)";h.has(d.name);)d.name+="-copy";o(d).then(()=>e())},[s,h]),u=n&&!s;return React.createElement(React.Fragment,null,React.createElement(xR,{title:an("Workflow jobs","forms-bridge"),initialOpen:!1},React.createElement("p",{style:{marginBottom:"2em"}},an("Manage and edit addon's jobs","forms-bridge")),React.createElement("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"2rem"}},React.createElement(be,null,React.createElement(vR,{value:n||"",onChange:r,options:O,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(Wu,{variant:"secondary",style:{width:"40px",justifyContent:"center"},onClick:()=>{r(null),c(!0)},__next40pxDefaultSize:!0},"+")),React.createElement(TR,{loading:u,config:s,setEdit:c,reset:a,copy:f})),React.createElement(_u,{show:l,onClose:()=>c(!1)}))}function TR({loading:i,config:e,setEdit:t,reset:n,copy:r}){let s=cl("input"),o=cl(c=>setTimeout(()=>s.current=c)).current,a=cl(),l=cl(()=>{setTimeout(()=>{a.current&&window.scrollY<a.current.offsetTop&&window.scrollTo({left:0,top:a.current.offsetTop,behavior:"smooth"})},100)}).current;if(F0(()=>{e&&l()},[e]),i)return React.createElement("div",{style:{height:"240px",backgroundColor:"rgb(245, 245, 245)",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement(PR,null));if(e)return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)"}},React.createElement("div",{ref:a,style:{display:"flex"}},React.createElement("div",{style:{flex:2}},React.createElement("h3",{style:{margin:0}},e.title),React.createElement("p",null,e.description)),React.createElement("div",{style:{flex:1,display:"flex",gap:"0.5em",justifyContent:"end",alignItems:"end"}},React.createElement(Wu,{variant:"secondary",onClick:()=>t(!0),style:{display:"flex",justifyContent:"center",width:"40px"},__next40pxDefaultSize:!0},React.createElement(Cu,{width:"20",height:"20",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(Wu,{variant:"primary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:r,label:an("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"white"})),React.createElement(Ut,{disabled:!e.post_id,label:an("Reset","forms-bridge"),onClick:()=>n(e.name),isDestructive:!1,icon:!0}))),React.createElement(wR,{tabs:kR,onSelect:o},({name:c})=>(c!==s.current&&l(),React.createElement("div",{style:{background:"white",padding:"calc(12px) calc(24px)",width:"calc(100% - 48px)"}},React.createElement(zR,{tab:c,config:e})))))}function zR({tab:i,config:e}){switch(i){case"input":return React.createElement(Ol,{fields:e.input});case"output":return React.createElement(Ol,{fields:e.output.map(t=>({...t,required:!t.requires?.length}))});case"snippet":return React.createElement(Xs,{id:e.id,snippet:e.snippet})}}var{PanelRow:XR,__experimentalSpacer:RR}=wp.components,{useEffect:qR,useMemo:_R}=wp.element;function Vu(){let[i]=K(),[e]=cn(),t=_R(()=>e.find(n=>n.name===i)?.logo,[i,e]);return qR(()=>{if(!t)return;let n=document.querySelector(`#${i} .addon-logo`);n&&(n.setAttribute("src",t),n.style.width="auto",n.style.height="25px")},[i,t]),React.createElement(cO,null,React.createElement(sO,null,React.createElement(XR,null,React.createElement(qu,null)),React.createElement(RR,{paddingY:"calc(8px)"}),React.createElement(Zu,null)))}var{useMemo:CR}=wp.element;function Au(){let[i,e]=Bs();return[CR(()=>Object.keys(i).reduce((r,s)=>{let o=i[s].bridges||[];return r.concat(o.map(a=>({...a,addon:s})))},[]),[i]),r=>{let s=Object.keys(i).reduce((o,a)=>{let l=r.filter(c=>c.addon===a).map(c=>{let O={...c};return delete O.addon,O});return o[a]={...i[a],bridges:l},o},{});e(s)}]}var{__:WR}=wp.i18n,ZR={enter:new Set,exit:new Set,mutated:new Set,missing:new Set};function ju({fields:i}){return React.createElement("div",{style:{display:"flex",flexDirection:"column",height:"340px"}},React.createElement("div",{style:{borderBottom:"1px solid"}},React.createElement("h2",{style:{marginTop:"5px"}},WR("Submission","forms-bridge"))),React.createElement("div",{style:{flex:1,height:"100%",overflow:"hidden auto",padding:"5px"}},React.createElement(tn,{fields:i.filter(e=>!e.is_file),mappers:[],showDiff:!1,diff:ZR})))}var{Button:Yu,Modal:VR,__experimentalItemGroup:AR,__experimentalItem:jR}=wp.components,{useState:YR,useMemo:UR}=wp.element,{__:nr}=wp.i18n;function Uu({bridges:i,setBridges:e}){let[t,n]=YR(!1),r=UR(()=>i.sort((a,l)=>isNaN(a.order)?1:isNaN(l.order)?-1:a.order-l.order),[i]),s=(a,l)=>{let c=r[a],O=r.slice(0,a).concat(r.slice(a+1)),h=O.slice(0,l).concat(c).concat(O.slice(l));h.forEach((f,u)=>f.order=u),e(h)},o=(a,l)=>{let c=i.map(O=>({...O}));c[a].allow_failure=!!l,e(c)};return React.createElement(React.Fragment,null,React.createElement(Yu,{variant:"secondary",onClick:()=>n(!0)},nr("Bridges","forms-bridge")),t&&React.createElement(VR,{title:nr("Form's bridges","forms-bridge"),onRequestClose:()=>n(!1)},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},nr("Manage the form's bridge chain order and its submission failure policies","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"680px",maxWidth:"80vw",minHeight:"125px",height:"calc(100% - 2rem)",display:"flex",flexDirection:"column",borderTop:"1px solid",borderBottom:"1px solid"}},React.createElement("div",{style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column"}},React.createElement(AR,{size:"large",isSeparated:!0,style:{maxHeight:"calc(100% - 68px)",overflowY:"auto"}},r.map((a,l)=>React.createElement(jR,{key:a.name+l},React.createElement(MR,{index:l,name:a.name,failure:a.allow_failure,setFailure:c=>o(l,c),move:c=>s(l,l+c),isLast:l===i.length-1}))))))))}function MR({index:i,name:e,failure:t,setFailure:n,move:r,isLast:s}){return React.createElement("div",{style:{display:"flex",alignItems:"center"}},React.createElement("div",{style:{flex:1}},i+1,". ",React.createElement("b",null,e)),React.createElement("div",{style:{marginRight:"1em",cursor:"pointer",minWidth:"180px"},onClick:()=>n(!t)},React.createElement("span",{"aria-role":"button",size:"compact",variant:"secondary",style:{fontSize:"1.25em",margin:"0 0.5em 0 1em",cursor:"pointer"},__next40pxDefaultSize:!0},t===!1?"\u{1F534}":"\u{1F7E2}"),t===!1?"Stop on failure":"Continue on failure"),React.createElement("div",{style:{display:"inline-flex",alignItems:"center",gap:"0.45em",padding:"0 0.45em 0 0.75em"}},React.createElement(Yu,{size:"compact",variant:"secondary",onClick:()=>r(-1),style:{width:"32px"},disabled:!i,__next40pxDefaultSize:!0},React.createElement("span",{title:nr("Move up","forms-bridge"),style:{fontSize:"1.35em",marginLeft:"-4px"}},"\u2B06")),React.createElement(Yu,{size:"compact",variant:"secondary",onClick:()=>r(1),style:{width:"32px"},disabled:s,label:nr("Move down","forms-bridge"),__next40pxDefaultSize:!0},React.createElement("span",{title:nr("Move down","forms-bridge"),style:{fontSize:"1.35em",marginLeft:"-4px"}},"\u2B07"))))}var{useMemo:ER}=wp.element;function Mu({data:i,setBridges:e}){let t=Pe(),[n]=li(),r=ER(()=>{let s=i._id.split(":")[0];return n.find(o=>o.name===s)},[n,i._id]);return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:t?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem",width:t?"auto":"201px"}},React.createElement("img",{src:r.logo,height:"40",style:{objectFit:"contain",objectPosition:"left",marginBottom:"5px"}}),React.createElement("h4",{style:{margin:0,fontSize:"1.3em"}},i.title),React.createElement("p",{style:{marginTop:"-5px"}},i._id)),React.createElement("div",{style:t?{}:{paddingLeft:"2rem",borderLeft:"1px solid",display:"flex",flexDirection:"column",flex:1}},React.createElement(ju,{fields:i.fields}),React.createElement("div",{style:{paddingTop:"16px",display:"flex",flexDirection:t?"column":"row",gap:"0.5rem",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Uu,{bridges:i.bridges,setBridges:e})))))}var{TabPanel:DR}=wp.components,{useEffect:H0,useMemo:K0,useRef:BR}=wp.element,{__:J0}=wp.i18n,LR=`.forms-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
    112 .forms-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`;function Eu(){let[i]=at(),[e,t]=Au(),n=K0(()=>i.reduce((a,l)=>{let c=e.filter(O=>O.form_id===l._id);return c.length?a.concat({...l,bridges:c}):a},[]),[i,e]),r=K0(()=>n.map(({title:a},l)=>({index:l,name:a,title:a})),[n]),s=BR(document.createElement("style"));H0(()=>(s.current.appendChild(document.createTextNode(LR)),document.head.appendChild(s.current),()=>{document.head.removeChild(s.current)}),[]),H0(()=>{let a=document.querySelector("#forms .addon-logo");a&&a.removeAttribute("src")},[]);let o=a=>{let l=a.map(({name:O})=>O),c=e.map(O=>{let h=l.findIndex(f=>f===O.name);return h!==-1?{...O,allow_failure:a[h].allow_failure,order:h}:O});t(c)};return React.createElement("div",{style:{width:"100%"}},React.createElement("h3",{style:{marginTop:0,fontSize:"13px"}},J0("Bridged forms","forms-bridge")),!r.length&&React.createElement("p",null,J0("You have no bridged forms yet. You can set up new form bridges using the add-on tabs","forms-bridge")),React.createElement(DR,{tabs:r,className:"forms-tabs-panel"},a=>{let l=n[a.index];return React.createElement(Mu,{data:l,setBridges:o})}))}var{Card:GR,CardHeader:IR,CardBody:NR,TabPanel:FR,__experimentalHeading:HR}=wp.components,{useEffect:eS,useMemo:KR,useRef:Du}=wp.element,{__:hl}=wp.i18n,JR=`.settings-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
    113 .settings-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`;function Bu(){let[i,e]=K(),[t]=cn(),n=Du(i),r=Du(),s=KR(()=>{let l=[{name:"general",title:hl("General","forms-bridge")},{name:"http",title:hl("HTTP","forms-bridge")},{name:"forms",title:hl("Forms","forms-bridge")}],c=t.filter(({enabled:O})=>O).map(({name:O,title:h})=>({name:O,title:h}));return l.concat(c)},[t]),o=l=>{n.current=l,e(l)};eS(()=>{if(i===n.current||!r.current)return;let l=s.findIndex(({name:O})=>i===O);r.current.querySelectorAll("button")[l].click()},[i,s]);let a=Du(document.createElement("style"));return eS(()=>(a.current.appendChild(document.createTextNode(JR)),document.head.appendChild(a.current),()=>{document.head.removeChild(a.current)}),[]),React.createElement("div",{style:{width:"100%"}},React.createElement(FR,{initialTabName:i,onSelect:o,tabs:s,className:"settings-tabs-panel",ref:r},l=>React.createElement("div",{id:l.name},React.createElement(GR,{size:"large",style:{height:"fit-content"}},React.createElement(IR,null,React.createElement(HR,{level:2,style:{fontSize:"1.5em"}},hl(l.title,"forms-bridge")),React.createElement("img",{style:{width:"auto",height:"25px",maxWidth:"90px",objectFit:"contain",objectPosition:"center"},className:"addon-logo"})),React.createElement(NR,null,l.name==="general"?React.createElement(Rl,null):l.name==="http"?React.createElement(tO,null):l.name==="forms"?React.createElement(Eu,null):React.createElement(Vu,null))))))}var{Button:e4}=wp.components,{__:t4}=wp.i18n;function Lu(){let[i]=ue(),[e]=N(),[t,n]=ai();return React.createElement("div",{style:{textAlign:"right"}},React.createElement(e4,{variant:"primary",onClick:()=>n(t),style:{minWidth:"100px",justifyContent:"center",marginLeft:"auto"},disabled:i||e,__next40pxDefaultSize:!0},t4("Save","forms-bridge")))}var{createRoot:i4,useRef:n4}=wp.element,{__experimentalHeading:r4}=wp.components;function s4(){let i=n4(document.getElementById("wpadminbar").offsetHeight).current;return React.createElement("div",{id:"forms-bridge",style:{position:"relative",minHeight:`calc(100vh - ${i}px)`}},React.createElement(Gu,{fallback:React.createElement("div",{style:{height:"50vh",paddingLeft:"1em",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement("h1",null,"Why do you do this to me? \u{1F629}"))},React.createElement(dl,null,React.createElement(ml,null,React.createElement(Ql,null,React.createElement(bl,null,React.createElement(gl,null,React.createElement("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:"calc(16px)",alignItems:"baseline"}},React.createElement(r4,{level:1},"Forms Bridge"),React.createElement(Lu,null)),React.createElement(Bu,null))))))))}wp.domReady(()=>{i4(document.getElementById("forms-bridge")).render(React.createElement(s4,null))});})();
     110}`;function au({formId:i,mappers:e,setMappers:t,includeFiles:n,customFields:r}){let[s,o]=_0(!1),[a,l]=_0(e);W0(()=>{l(e)},[e]);let[c]=at(),O=C0(()=>c.find(p=>p._id===i),[c,i]),h=C0(()=>O?O.fields.filter(({is_file:p})=>n||!p).reduce((p,{name:m,label:g,is_file:Q,schema:x})=>(n&&Q?(p.push({name:m,label:g,schema:{type:"string"}}),p.push({name:m+"_filename",label:m+"_filename",schema:{type:"string"}})):p.push({name:m,label:g,schema:x}),p),[]).concat(r.map(({name:p})=>({name:p,label:p,schema:{type:"string"}}))):[],[O,r]),f=Z0(p=>{let m=p.map(({from:g,to:Q,cast:x})=>({from:g,to:Q,cast:x}));l(m)}).current,u=TX(()=>{let p=a.filter(({from:m,to:g,cast:Q})=>m&&g&&Q);t(p),o(!1)},[a]),d=Z0(document.createElement("style"));return W0(()=>(d.current.appendChild(document.createTextNode(zX)),document.head.appendChild(d.current),()=>{document.head.removeChild(d.current)}),[]),React.createElement(React.Fragment,null,React.createElement(PX,{disabled:!O,variant:"secondary",onClick:()=>o(!0),__next40pxDefaultSize:!0},ou("Mappers","forms-bridge")," (",e.length,")"),s&&React.createElement(kX,{title:ou("Field mappers","forms-bridge"),onRequestClose:u,className:"no-scrollable"},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},ou("Transform the form submission with field mappings and value mutations","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",minWidth:"575px",minHeight:"125px",height:"100%",display:"flex",flexDirection:"column",borderTop:"1px solid",borderBottom:"1px solid"}},React.createElement(Ts,{fields:h,mappers:a.map((p,m)=>({...p,index:m})),setMappers:f,done:()=>o(!1)}))))}var{Button:lu}=wp.components,{useState:il,useEffect:tr,useMemo:nl,useCallback:Ou,useRef:_s}=wp.element,XX=wp.apiFetch,{__:ki}=wp.i18n;function cu({data:i,update:e,remove:t,schema:n,copy:r,names:s}){let[o]=I(),[a,l]=ue(),[c,O]=F(),h=Pe(),f=_s(i.name),[u,d]=il({...i}),[p,m]=il(!1),g=_s(u);g.current=u;let Q=U=>d({...g.current,...U}),x=(U,se)=>{let G=se+1,le=g.current.mutations.map(W=>W);g.current.workflow.length>U.length?le=le.slice(0,G).concat(le.slice(G+1)):g.current.workflow.length<U.length?le=le.slice(0,G).concat([[]]).concat(le.slice(G)):le=le.slice(0,G).concat([[]]).concat(le.slice(G+1)),Q({workflow:U,mutations:le})},v=nl(()=>!u.name||u.name.trim()===f.current.trim()?!1:u.name!==f.current&&s.has(u.name.trim()),[s,u.name]),[S]=lt(),b=nl(()=>S.find(({name:U})=>U===u.backend),[S,u.backend]),y=nl(()=>{let se=(S.find(({name:G})=>G===u.backend)?.headers||[]).find(G=>G.name==="Content-Type")?.value;return se!==void 0&&se!=="multipart/form-data"},[S,u.backend]),w=Ou(U=>!!Object.keys(n.properties).filter(se=>!dr.includes(se)).reduce((se,G)=>{if(!se)return se;let le=U[G];return n.required.includes(G)?(n.properties[G].pattern&&(se=se&&new RegExp(n.properties[G].pattern).test(le)),se&&(le||E(n.properties[G],"default"))):se},!0),[n]),k=nl(()=>w(u)&&!v,[u,v]);!k&&i.is_valid&&e({...i,is_valid:!1});let V=_s();tr(()=>{clearTimeout(V.current),k&&(i.name!==u.name?V.current=setTimeout(()=>{f.current=u.name,e({...u,is_valid:!0})},1e3):Se(i,u)&&e({...u,is_valid:!0}))},[k,u]),tr(()=>{i.name!==f.current&&(f.current=i.name,d(i),me(!1))},[i.name]),tr(()=>{d(i),me(!1)},[o]);let A=_s(!1);tr(()=>(!a&&A.current&&Se(i,u)&&(d(i),me(!1)),()=>{A.current=a}),[a,i,u]);let C=Ou(()=>{let U={...i};ln(U,U.name+" bridge config")},[i]),D=_s(),[L,B]=il(0);tr(()=>{B(0),D.current&&setTimeout(()=>B(D.current.offsetHeight),100)},[n]);let[re,me]=il(!1);tr(()=>{re&&me(!1)},[u.backend]);let Me=Ou(()=>{b&&(l(!0),XX({path:`forms-bridge/v1/${o}/backend/ping`,method:"POST",data:{backend:b}}).then(({success:U})=>{U?me(!0):O(ki("Backend is unreachable","forms-bridge"))}).catch(()=>{me(!1),O(ki("Backend is unreachable","forms-bridge"))}).finally(()=>l(!1)))},[o,b]),Qe=k&&u.enabled;return React.createElement(vr,{formId:u.form_id,mutations:u.mutations,workflow:u.workflow,customFields:u.custom_fields,includeFiles:y},React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:h?"column":"row",gap:"2rem"}},React.createElement("div",{ref:D,style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(pr,{data:u,setData:d,schema:n,errors:{name:v?ki("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ut,{label:ki("Delete","forms-bridge"),onClick:()=>t(i),icon:!0}),React.createElement(lu,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:r,label:ki("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(lu,{variant:"tertiary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"gray"},onClick:C,__next40pxDefaultSize:!0,label:ki("Download bridge config","forms-bridge"),showTooltip:!0},React.createElement(Ri,{width:"12",height:"20",color:"gray"})),React.createElement(lu,{disabled:!!c||a||re,size:"compact",variant:"primary",onClick:Me,style:{background:re?"#4ab866":"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))",marginLeft:"auto",height:"40px",justifyContent:"center"},__next40pxDefaultSize:!0},"ping"))),React.createElement("div",{style:h?{}:{paddingLeft:"2rem",borderLeft:"1px solid",display:"flex",flexDirection:"column",flex:1}},React.createElement(qs,{height:L,focus:!p}),React.createElement("div",{style:{paddingTop:"16px",display:"flex",flexDirection:h?"column":"row",gap:"0.5rem",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(mO,{customFields:u.custom_fields||[],setCustomFields:U=>Q({custom_fields:U})}),React.createElement(au,{formId:u.form_id,customFields:u.custom_fields,mappers:u.mutations[0],setMappers:U=>Q({mutations:[U,...u.mutations.slice(1)]}),includeFiles:y}),React.createElement(su,{workflow:u.workflow,setWorkflow:x,setMutationMappers:(U,se)=>Q({mutations:u.mutations.slice(0,U).concat([se]).concat(u.mutations.slice(U+1))}),open:p,setOpen:m})),React.createElement("div",{style:{marginLeft:h?0:"auto",display:"flex",alignItems:"center"}},React.createElement(Jn,{disabled:!k,checked:u.enabled&&k,onChange:()=>Q({enabled:!u.enabled}),__nextHasNoMarginBottom:!0}),React.createElement("span",{style:{width:"50px",marginLeft:"-10px",fontStyle:"normal",fontSize:"12px",color:Qe?"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))":"rgb(117, 117, 117)"}},!k||!u.enabled?ki("Disabled","forms-bridge"):ki("Enabled","forms-bridge")))))))}var{__experimentalHeading:RX}=wp.components;function ti({name:i,description:e,children:t}){return React.createElement(React.Fragment,null,React.createElement(RX,{level:3},i),React.createElement("p",{style:{marginTop:0}},e),React.createElement("div",{style:{display:"flex",flexDirection:"column"}},t))}var{__:hu}=wp.i18n;function qX({data:i,error:e}){switch(i.type){case"boolean":return React.createElement(_X,{name:i.name,value:i.value,onChange:i.onChange});case"number":return React.createElement(WX,{required:!!i.required,name:i.name,value:i.value,onChange:i.onChange,min:i.min,max:i.max,error:e});case"select":return Array.isArray(i.options)?React.createElement(ZX,{required:!!i.required,name:i.name,value:i.value,onChange:i.onChange,options:i.options,multiple:!!i.is_multi}):null;case"text":default:return React.createElement(CX,{type:i.type,required:!!i.required,name:i.name,value:i.value,onChange:i.onChange,error:e})}}function _X({name:i,value:e,onChange:t}){return Array.isArray(e)&&(e=!!e[0]),React.createElement("input",{type:"checkbox",name:i,onChange:()=>t(!e),checked:e})}function CX({type:i,name:e,value:t,onChange:n,required:r,error:s}){let o={};r&&(o.required=!0);let a={width:"100%"};return s&&(a.border="1px solid red"),React.createElement(React.Fragment,null,React.createElement("input",{type:i,name:e,value:t||"",onChange:({target:l})=>n(l.value),style:a,...o}),s&&React.createElement("p",{style:{margin:"5px 0 0",fontSize:"12px",color:"red"}},s))}function WX({name:i,value:e,onChange:t,required:n,min:r=null,max:s=null,error:o}){let a={};r&&(a.min=r),s&&(a.max=s),n&&(a.required=!0),!o&&e&&(isNaN(e)?o=hu("The value is not a number","forms-bridge"):r!==null&&!isNaN(r)&&e<r?o=hu("The value is too small","forms-bridge"):s!==null&&!isNaN(s)&&e>s&&(o=hu("The value is too large","forms-bridge")));let l={width:"100%"};return o&&(l.border="1px solid red"),React.createElement(React.Fragment,null,React.createElement("input",{type:"number",name:i,value:e||"",onChange:({target:c})=>t(c.value),style:l,...a}),o&&React.createElement("p",{style:{color:"red"}},o))}function ZX({name:i,value:e,onChange:t,required:n,multiple:r,options:s=[],error:o}){let a={};n?a.required=!0:r||(s=[{label:"",value:""}].concat(s.filter(c=>c.value)));let l={width:"100%",maxWidth:"unset"};return o&&(l.border="1px solid red"),React.createElement(React.Fragment,null,React.createElement("select",{name:i,value:e||"",onChange:({target:c})=>{let O=Array.from(c.children).filter(h=>h.selected).map(h=>h.value);t(r?O:O[0])},style:l,multiple:!!r,...a},s.map(({label:c,value:O},h)=>React.createElement("option",{key:h,value:O},c))))}function jt({data:i,error:e}){let t=!!i.required;return React.createElement("label",{style:{margin:"0.5rem 0"},htmlFor:i.name},i.label,t&&React.createElement("span",{style:{marginLeft:"3px",color:"red"}},"*"),i.description&&React.createElement("p",{style:{marginTop:0,opacity:.8}},React.createElement("em",{dangerouslySetInnerHTML:{__html:i.description}}))||React.createElement("br",null),React.createElement(qX,{data:i,error:e}))}function Cs(i){return i.replace(/^#/,"").replace(/\/.*/,"")}function ir(i,e){return i.filter(({ref:t})=>new RegExp("^#"+e).test(t))}function Ws(i,e,t){return!i?.name||e?.schema&&e.schema!==i.schema?!1:t.reduce((n,{name:r,required:s})=>{if(!n||!s)return n;let o=i[r];return n&&o!==void 0&&o!==null&&o!==""},!0)}function Zs(i,e,t){if(!i?.name)return!1;let n=t.reduce((r,{name:s,ref:o,required:a})=>{if(!r||!a)return r;let l;return o==="#backend/headers[]"?l=i.headers.find(c=>c.name===s)?.value:l=i[s],r&&l!==void 0&&l!==null&&l!==""},!0);if(!n)return n;if(e.base_url&&i.base_url!==e.base_url){if(e.base_url!==i.base_url){let r=e.base_url.replace(/{\w+}/g,".+");if(new RegExp(r).test(i.base_url)===!1)return!1}}else if(!zi(i.base_url))return!1;return e.headers.reduce((r,{name:s,value:o})=>{if(!r)return r;let a=i.headers.find(l=>l.name===s);return a?a.value===o:!1},n)}function rl(i,e={},t){if(!i?.name||!i?.base_url)return;let n={name:i.name||e.name,base_url:i.base_url||e.base_url,credential:i.credential||"",headers:Object.keys(i).filter(r=>!["name","base_url","credential"].includes(r)).map(r=>({name:r,value:i[r]}))};return Array.isArray(e.headers)&&e.headers.forEach(({name:r,value:s})=>{n.headers.find(o=>o.name===r)||n.headers.push({name:r,value:s})}),t.forEach(r=>{if(r.value)if(r.ref==="#backend/headers[]"){let s=n.headers.find(o=>o.name===r.name);s?s.value=r.value:n.headers.push({name:r.name,value:r.value})}else n[r.name]=r.value}),n}var{SelectControl:VX}=wp.components,{useMemo:Ti,useState:V0,useEffect:A0,useRef:AX}=wp.element,{__:Vs}=wp.i18n,jX=["name","base_url","headers"];function fu({fields:i,data:e,setData:t,wired:n,fetched:r,credential:s,fetchError:o}){let[a]=lt(),l=Yt(),[{backend:c}]=Ee(),O=Ti(()=>si(i,jX),[i]),[h,f]=V0({...e}),u=Ti(()=>{let y=i.reduce((w,k)=>{let V=k.value||k.default||"";return!V&&k.type==="select"&&k.required&&(V=k.options[0].value),w[k.name]=V,w},{});return{base_url:c.base_url,name:c.name,credential:c.credential,...y}},[i,c]),d=Ti(()=>a.filter(y=>Zs(y,c,i)).filter(y=>s?y.credential===s:y),[a,c,i]),p=Ti(()=>Ce(d.map(({name:y})=>({label:y,value:y}))).sort((y,w)=>y.label>w.label?1:-1),[d]),[m,g]=V0(()=>p.find(({value:y})=>y===e.name)?.value||""),Q=Ti(()=>h.name&&l.has(h.name.trim()),[l,h.name]),x=Ti(()=>{if(Q)return;let y=rl(h,c,i);if(Zs(y,c,i))return y},[h,Q,c,i]),v=Ti(()=>{let y=d.find(w=>w.name===m);return y||x},[d,m,x]);A0(()=>{if(!v){t(null);return}m&&f({...u});let y={name:v.name,base_url:v.base_url};v.headers.filter(({name:w})=>i.find(k=>k.name===w)).forEach(({name:w,value:k})=>y[w]=k),v.authentication?.type&&(y.client_id=v.authentication.client_id,y.client_secret=v.authentication.client_secret),t(y)},[m,v,i]);let S=AX(c);A0(()=>(Se(c,S.current)&&g(""),()=>{S.current=c}),[c]);let b=Ti(()=>n===!0&&r===!0?"\u{1F44C}":n===!1||o?"\u{1F44E}":v?"\u23F3":null,[n,r,v,o]);return React.createElement(ti,{name:Vs("Backend","forms-bridge"),description:Vs("Configure the backend to bridge your form to","forms-bridge")},React.createElement("p",{style:{height:"30px",marginTop:0,display:"flex",alignItems:"center"}},React.createElement("strong",null,Vs("Connection status","forms-bridge"),":"),React.createElement("i",{style:{fontSize:"1.5em",marginLeft:"0.25em",fontStyle:"normal"}},b)),p.length>0&&React.createElement(VX,{label:Vs("Reuse an existing backend","forms-bridge"),value:m,options:p,onChange:g,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),!m&&O.map(y=>React.createElement(jt,{key:y.name,data:{...y,value:h[y.name]||"",onChange:w=>f({...h,[y.name]:w})},error:y.name==="name"&&Q&&Vs("This name is already in use","forms-bridge")})))}var{useMemo:As,useState:YX,useEffect:uu,useRef:UX}=wp.element,{__:du}=wp.i18n,{SelectControl:MX}=wp.components,EX=["title"];function DX(i,e,t,n){return i._id.indexOf(n)!==0?!1:e.fields.reduce((s,{name:o,label:a,type:l})=>{if(!s)return s;let c=i.fields.find(O=>o===O.name)||n==="wpforms"&&i.fields.find(O=>a===O.name);return c?s&&c.type===l:!1},!0)&&t.filter(s=>s.ref==="#form/fields[]").reduce((s,{name:o,required:a,type:l})=>{if(!s)return s;let c=i.fields.find(O=>O.name===o);return c?s&&l===c.type:a?!1:s},!0)}function pu({fields:i,data:e,setData:t,integration:n}){let[{form:r}]=Ee(),[s]=at(),o=As(()=>s.filter(d=>DX(d,r,i,n)),[s,n]),a=As(()=>Ce(o.map(({id:d,title:p})=>({label:p,value:d}))),[o]),[l,c]=YX(""),O=UX("");uu(()=>{c("")},[n]),uu(()=>(l!==O.current&&t(),()=>{O.current=l}),[l]);let h=As(()=>s.find(({id:d})=>d==l),[s,l]);uu(()=>{if(!h)return;let d=r.fields.reduce((p,m)=>{switch(m.type){case"object":p[m.name]=[];break;case"boolean":p[m.name]=!1;break;default:p[m.name]=""}return p},{});d.id=h.id,d.title=h.title,t(d)},[h]);let f=As(()=>si(i,EX),[i]),u=As(()=>h?[]:f.filter(d=>d.name!=="id"),[h,f]);return React.createElement(ti,{name:du("Form","forms-bridge"),description:du("Populate the form default values","forms-bridge")},a.length>0&&React.createElement(MX,{label:du("Reuse an existing form","forms-bridge"),value:l,options:a,onChange:c,__nextHasNoMarginBottom:!0}),u.map(d=>React.createElement(jt,{key:d.name,data:{...d,value:e[d.name]||"",onChange:p=>t({[d.name]:p})}})))}var{useMemo:j0,useState:LX,useEffect:BX}=wp.element,{__:mu}=wp.i18n,GX=["name"];function gu({fields:i,data:e,setData:t}){let n=yr(),[r,s]=LX(""),o=j0(()=>si(i,GX),[i]),a=j0(()=>e.name!==r.trim()&&n.has(r.trim()),[n,r]);return BX(()=>{r&&!a&&t({name:r})},[r,a]),React.createElement(ti,{name:mu("Bridge","forms-bridge"),description:mu("Configure the bridge","forms-bridge")},React.createElement(jt,{data:{...o[0],value:r,onChange:s},error:a?mu("This name is already in use","forms-bridge"):!1}),o.slice(1).map(l=>React.createElement(jt,{key:l.name,data:{...l,value:e[l.name]||"",onChange:c=>t({[l.name]:c})}})))}var{useMemo:rn,useState:Y0,useEffect:$u,useRef:IX}=wp.element,{SelectControl:NX}=wp.components,{__:sl}=wp.i18n,FX=["name"];function yu({fields:i,data:e,setData:t}){let[n]=ci(),[{credential:r}]=Ee(),s=rn(()=>new Set(n.map(({name:g})=>g)),[n]),o=rn(()=>si(i,FX),[i]),[a,l]=Y0({...e}),c=rn(()=>{let g=i.reduce((Q,x)=>{let v=x.default||r?.[x.name]||"";return!v&&x.type==="select"&&x.required&&(v=x.options[0].value),Q[x.name]=v,Q},{});return{...r,...g}},[i,r]),O=rn(()=>n.filter(g=>Ws(g,r,i)),[n,r,i]),h=rn(()=>Ce(O.map(({name:g})=>({label:g,value:g})).sort((g,Q)=>g.label>Q.label?1:-1)),[O]),[f,u]=Y0(()=>h.find(({value:g})=>g===e.name)?.value||""),d=rn(()=>a.name&&s.has(a.name.trim()),[s,a.name]),p=rn(()=>{let g=O.find(Q=>Q.name===f);if(g)return g;if(Ws(a,r,i))return a},[O,f,a,r,d,i]);$u(()=>{if(!p){t(null);return}f&&l({...c}),t({...p})},[p]);let m=IX(r);return $u(()=>(Se(r,m.current)&&u(""),()=>{m.current=r}),[r]),$u(()=>{let g=O.find(Q=>Q.name===e.name);g&&u(g.name)},[e.name,O]),React.createElement(ti,{name:sl("Credential","forms-bridge"),description:sl("Configure the backend credentials","forms-bridge")},h.length>0&&React.createElement(NX,{label:sl("Reuse an existing credential","forms-bridge"),value:f,options:h,onChange:u,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),!f&&o.map(g=>React.createElement(jt,{key:g.name,data:{...g,value:a[g.name]||"",onChange:Q=>l({...a,[g.name]:Q})},error:g.name==="name"&&d&&sl("This name is already in use","forms-bridge")})))}var{useState:HX,useEffect:KX,useMemo:ol}=wp.element,JX=[{name:"credential",component:yu},{name:"backend",component:fu},{name:"form",component:pu},{name:"bridge",component:gu}];function Qu({fields:i,integration:e,data:t}){let{bridge:n}=ri(),r=ol(()=>JX.filter(f=>e==="woo"?f.name!=="form":!0),[e,n]),[s,o]=HX(0),{name:a,component:l}=ol(()=>r[s],[r,s]),c=ol(()=>ir(i,a),[s,r,i]);KX(()=>{i.length&&(c.length||setTimeout(()=>h(1)))},[i,c]);let O=ol(()=>c.length?c.reduce((f,u)=>{let d=t[a]?.[u.name];return f&&(!!d||!u.required)},!0):!0,[c,t,a]),h=f=>{let u=s+f,d=r[u].name,p=ir(i,d);for(;p.length===0&&u>0&&u<r.length-1;)u+=f,d=r[u],p=ir(i,d);o(u)};return{done:O,move:h,step:s,Step:l,name:a,reset:()=>o(0),trailing:s===r.length-1}}var{useState:eR,useEffect:Su,useMemo:tR,useCallback:iR,useRef:U0}=wp.element,nR=wp.apiFetch;function bu({step:i,data:e={},fields:t=[],credential:n,authorized:r}){let[s]=I(),{backend:o}=Ee()[0]||{},[a,l]=eR(null);Su(()=>{l(null)},[o,n,r]);let c=tR(()=>{if(!o)return;let u=rl(e,o,t);if(Zs(u,o,t))return u},[e,o,t]),O=U0();Su(()=>((!c||Se(c,O.current))&&l(null),()=>{O.current=c}),[c]);let h=iR((u,d={})=>{nR({path:`forms-bridge/v1/${s}/backend/ping`,method:"POST",data:{backend:u,credential:d}}).then(({success:p})=>l(p)).catch(()=>l(!1))},[s]),f=U0();return Su(()=>{clearTimeout(f.current),!(i!=="backend"||!c||!r||a!==null)&&(f.current=setTimeout(()=>h(c,n),500))},[i,o,a,c,n,r]),[c,a]}var{useState:M0,useEffect:xu,useRef:rR,useMemo:E0,useCallback:sR}=wp.element,oR=wp.apiFetch;function vu({data:i={},fields:e=[]}){let[t]=I(),[n,r]=ue(),[s,o]=M0(!1),a=rR(!0),[l,c]=M0(!0);xu(()=>{let g=()=>c(!0),Q=()=>c(!1);return window.addEventListener("focus",g),window.addEventListener("blur",Q),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",Q)}},[]);let{credential:O}=Ee()[0]||{},{credential:h}=ri(),f=E0(()=>{if(O&&Ws(i,O,e)){let g={...i},Q=h?.oneOf.find(x=>x.properties.schema.const===g.schema||x.properties.schema.enum?.includes(g.schema));return Q&&Object.keys(Q.properties).forEach(x=>{E(Q.properties[x],"default")&&(g[x]=g[x]||Q.properties[x].default)}),g}},[h,i,O,e]);xu(()=>{o(!1)},[f]);let u=i.schema==="OAuth",d=E0(()=>{if(!u||i.refresh_token)return!0;if(!(i.access_token&&i.expires_at))return!1;let g=new Date(i.expires_at);return g.getFullYear()===1970&&(g=new Date(i.expires_at*1e3)),Date.now()<g.getTime()},[u,i.access_token,i.expires_at]),p=ot();xu(()=>(l&&!a.current&&!d&&p(),()=>{a.current=l}),[l]);let m=sR(()=>{if(!f)return;let g=f.oauth_url,Q=g.match(/{(\w+)}/);Q&&f[Q[1]]&&(g=g.replace(/{\w+}/,f[Q[1]])),f.oauth_url=g,r(!0),oR({path:"forms-bridge/v1/oauth/grant",method:"POST",data:{credential:f}}).then(({success:x,data:v})=>{if(!x)throw"error";let{url:S,params:b}=v,y=document.createElement("form");y.action=S,y.method="GET",y.target="_blank",y.innerHTML=Object.keys(b).reduce((w,k)=>{let V=b[k];return V?w+`<input name="${k}" value="${V}" />`:w},""),y.style.visibility="hidden",document.body.appendChild(y),y.submit(),document.body.removeChild(y)}).catch(()=>o("")).finally(()=>r(!1))},[n,t,f]);return h?{credential:f,authorized:d,authorize:m,error:s}:[null,!0]}var{Button:wu,Notice:Pu}=wp.components,{useMemo:js,useState:Ys,useEffect:al,useCallback:ku,useRef:aR}=wp.element,lR=wp.apiFetch,{__:sn}=wp.i18n;function Tu({integration:i,onSubmit:e}){let[t]=I(),[n,r]=Ys(!1),[s,o]=Ys({}),[a,l]=Ys(!1),[c,O]=Ys([]),[h,f]=Ys(!1),[u,d]=Ee(),[p]=io(),m=js(()=>(u?.fields||[]).filter(te=>!E(te,"value")),[u]),{done:g,move:Q,step:x,Step:v,name:S,reset:b,trailing:y}=Qu({fields:m,integration:i,data:s}),w=js(()=>m.reduce((W,te)=>{let ce=Cs(te.ref);return{...W,[ce]:(W[ce]||[]).concat([te])}},{}),[m]),k=js(()=>w[S]?a?w[S].map(W=>{let te=c.find(ce=>ce.name===W.name&&ce.ref===W.ref)?.options;return te?{...W,type:"select",options:Ce(te)}:W}):w[S]:[],[w,S,c]),V=js(()=>{let W=Object.fromEntries(Object.keys(w).map(ce=>[ce,{}]));return(u?.fields||[]).reduce((ce,ze)=>{if(ze.default||ze.value){let ni=ze.value||ze.default,fl=Cs(ze.ref);ce[fl]=ce[fl]||{},ce[fl][ze.name]=ni}else if(ze.type==="select"&&ze.required){let ni=Cs(ze.ref);ce[ni]=ce[ni]||{},Array.isArray(ze.options)&&(ce[ni][ze.name]=ze.options[0]?.value)}return ce},W)},[u,w]);al(()=>{o(V),b()},[m,V]);let{credential:A,authorized:C,authorize:D,error:L}=vu({data:s.credential,fields:w.credential}),[B,re]=bu({step:S,data:s.backend,fields:w.backend,credential:A,authorized:C}),me=aR(h);me.current=h,al(()=>{!B||!re||!me.current||f(!1)},[B,re]),al(()=>{!re&&a&&(l(!1),O([]))},[re]),al(()=>{a||h||n||S==="backend"&&re&&C&&U(B,s.credential)},[n,S,re,C,a,h,B,s.credential]);let Me=ku(()=>{d({template:p,integration:i,fields:m.map(W=>{let te=Cs(W.ref);if(E(s[te],W.name)&&s[te][W.name]!==null)W.type==="boolean"&&Array.isArray(s[te][W.name])?W.value=!!s[te][W.name][0]:W.value=s[te][W.name];else if(W.default)W.value=W.default;else if(!W.required)switch(W.type){case"select":W.value=[];break;case"boolean":W.value=!1;break}return W})}).then(W=>e(W))},[p,i,m,s]),Qe=ku((W=null)=>{let te=V[S]||{},ce=s[S]||{};W!==null?W={...te,...ce,...W}:W={},o({...s,[S]:W})},[s,V,S]),U=ku((W,te={})=>{h||(r(!0),lR({path:`forms-bridge/v1/${t}/templates/${p}/options`,method:"POST",data:{backend:W,credential:te}}).then(ce=>{O(ce),f(!1),l(!0)}).catch(()=>{l(!1),f(!0)}).finally(()=>r(!1)))},[t,p]),se=js(()=>Object.keys(w).reduce((W,te)=>ir(m,te).reduce((ze,ni)=>ze&&(!!s[te]?.[ni.name]||!ni.required),W),!0),[s]),G=A&&!C,le=g&&(S!=="backend"||a)&&(S!=="credential"||A)&&!G;if(u?.fields.length&&s[S]!==void 0)return React.createElement("div",{style:{width:"575px",minHeight:"125px"}},React.createElement("hr",{style:{margin:"1rem 0"}}),S==="backend"&&h&&React.createElement("div",{style:{marginBottom:"10px"}},React.createElement(Pu,{status:"error",politeness:"assertive",isDismissible:!1},sn("Unable to fetch data from the backend","forms-bridge"))),React.createElement(v,{integration:i,fields:k,data:s[S]||{},setData:Qe,wired:re,fetched:a,fetchError:h,credential:A?.name}),L&&React.createElement("div",{style:{marginBottom:"10px"}},React.createElement(Pu,{status:"error",politeness:"assertive",isDismissible:!1},sn("The credential cannot be authorized","forms-bridge"))),G&&React.createElement("div",{style:{margin:"10px 0"}},React.createElement(Pu,{isDismissible:!1,status:"warning",actions:[{label:sn("Authorize","forms-bridge"),onClick:D,variant:"secondary",size:"compact"}]},React.createElement("p",null,sn("Send an authorization request to validate the credential","forms-bridge")))),React.createElement("div",{style:{padding:"1rem 0 0",display:"flex",justifyContent:"center",alignItems:"center",gap:"0.5rem"}},React.createElement(wu,{disabled:x<=0,variant:"secondary",onClick:()=>Q(-1)},sn("Previous","forms-bridge")),y?React.createElement(wu,{disabled:!se,variant:"primary",onClick:Me},sn("Submit","forms-bridge")):React.createElement(wu,{disabled:!le,variant:"secondary",onClick:()=>Q(1)},sn("Next","forms-bridge"))))}var{Modal:OR,Button:D0,SelectControl:L0,__experimentalSpacer:cR}=wp.components,{useState:Us,useEffect:ll,useMemo:B0,useCallback:hR}=wp.element,{__:on}=wp.i18n;function zu(){let[i]=Hd(),[,e]=io(),[t]=Ee(),[n,r]=Us({}),[s,o]=Us(null),[a,l]=Us(!1),[c,O]=F(),[h]=li(),f=B0(()=>h.filter(({enabled:x})=>x).map(({name:x,title:v})=>({value:x,label:v})).sort((x,v)=>x.label>v.label?1:-1),[h]),[u,d]=Us(f[0]?.value||"");ll(()=>{!u&&f.length&&d(f[0].value)},[u,f]);let p=B0(()=>Ce(i.filter(({integrations:x})=>x.includes(u)).map(({name:x,title:v})=>({label:v,value:x}))).sort((x,v)=>x.label>v.label?1:-1),[i,u]),[m,g]=Us(!1);ll(()=>{a&&e(null)},[a]),ll(()=>{c&&g(!1)},[c]),ll(()=>{m||(e(null),r({}),l(!1))},[m]);let Q=hR(x=>{x?l(!0):x===!1&&O(on("Unsuccessful template submit","forms-bridge"))});return i.length?React.createElement(React.Fragment,null,React.createElement(D0,{disabled:!!c||!h.length,variant:"primary",onClick:()=>g(!0),style:{width:"150px",marginTop:"auto",justifyContent:"center"},__next40pxDefaultSize:!0},on("Use a template","forms-bridge")),m&&React.createElement(OR,{title:on("Templates","forms-bridge"),onRequestClose:()=>{e(null),g(!1)}},a&&React.createElement(React.Fragment,null,React.createElement("p",{style:{fontSize:"1rem"}},on("Congratulations, you've created a new form bridge!","forms-bridge")),React.createElement(D0,{variant:"primary",onClick:()=>g(!1),style:{width:"150px",margin:"1.5rem auto 0",display:"block"},__next40pxDefaultSize:!0},on("Close","forms-bridge")))||React.createElement(React.Fragment,null,f.length>1&&React.createElement(React.Fragment,null,React.createElement(L0,{label:on("Target integration","forms-bridge"),options:f,value:u,onChange:d,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(cR,{paddingY:"calc(6px)"})),React.createElement(L0,{label:on("Select a template","forms-bridge"),options:p,onChange:e,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),t?.description&&React.createElement("p",{style:{maxWidth:"575px"},dangerouslySetInnerHTML:{__html:t.description}})||null,React.createElement(Tu,{integration:u,onSubmit:Q,data:n,setData:r,wired:s,setWired:o}))):null}var{Button:Ms}=wp.components,{useState:G0,useEffect:fR,useMemo:Xu,useRef:I0,useCallback:N0}=wp.element,{__:ii}=wp.i18n;function Ru({add:i,schema:e,names:t}){let n=Pe(),[r]=I(),s=I0(r),[o,a]=G0({});s.current!==r&&a({}),s.current=r;let[l,c]=F(),O=Xu(()=>o.name?t.has(o.name.trim()):!1,[t,o.name]),[h]=lt(),f=Xu(()=>{let S=(h.find(({name:b})=>b===o.backend)?.headers||[]).find(b=>b.name==="Content-Type")?.value;return S!==void 0&&S!=="multipart/form-data"},[h,o.backend]),u=()=>{window.__wpfbInvalidated=!0,a({}),i({...o,name:o.name.trim()})},d=N0(v=>!!Object.keys(e.properties).filter(S=>!dr.includes(S)).reduce((S,b)=>{if(!S)return S;let y=v[b];return e.required.includes(b)?(e.properties[b].pattern&&(S=new RegExp(e.properties[b].pattern).test(y)),S&&(y||E(e.properties[b],"default"))):S},!0),[e]),p=Xu(()=>d(o),[o]),m=N0(()=>{oi().then(v=>{if(!d(v)){c(ii("Invalid bridge config","forms-bridge"));return}let b=1;for(;t.has(v.name);)v.name=v.name.replace(/ \([0-9]+\)/,"")+` (${b})`,b++;i(v)}).catch(v=>{v?.name==="SyntaxError"?c(ii("JSON syntax error","forms-bridge")):c(ii("An error has ocurred while uploading the bridge config","forms-bridge"))})},[t]),g=I0(),[Q,x]=G0(0);return fR(()=>{x(0),setTimeout(()=>x(g.current.offsetHeight),100)},[e]),React.createElement(ur,{bridge:o},React.createElement(vr,{formId:o.form_id,mutations:[],workflow:[],customFields:[],includeFiles:f},React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:n?"column":"row",gap:"2rem"}},React.createElement("div",{ref:g,style:{display:"flex",flexDirection:"column",gap:"0.5rem"}},React.createElement(pr,{data:o,setData:a,schema:e,optionals:!0,errors:{name:O?ii("This name is already in use","forms-bridge"):!1}}),React.createElement("div",{style:{marginTop:"0.5rem",display:"flex",gap:"0.5rem"}},React.createElement(Ms,{variant:"primary",onClick:u,style:{width:"100px",justifyContent:"center"},disabled:O||!p,__next40pxDefaultSize:!0},ii("Add","forms-bridge")),React.createElement(Ms,{variant:"tertiary",size:"compact",style:{width:"40px",height:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",color:"grey"},disabled:!!l,onClick:m,__next40pxDefaultSize:!0,label:ii("Upload","forms-bridge"),showTooltip:!0},React.createElement(Et,{width:"12",height:"20",color:"gray"})))),React.createElement("div",{style:n?{paddingTop:"2rem",borderTop:"1px solid"}:{paddingLeft:"2rem",borderLeft:"1px solid",display:"flex",flexDirection:"column",flex:1}},React.createElement(qs,{height:Q}),React.createElement("div",{style:{paddingTop:"16px",display:"flex",gap:"0.5rem",flexDirection:"row",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Ms,{variant:"secondary",disabled:!0,__next40pxDefaultSize:!0},ii("Custom fields","forms-bridge")," (0)"),React.createElement(Ms,{variant:"secondary",disabled:!0,__next40pxDefaultSize:!0},ii("Mappers","forms-bridge")," (0)"),React.createElement(Ms,{variant:"secondary",disabled:!0,__next40pxDefaultSize:!0},ii("Workflow","forms-bridge")," (0)")),React.createElement("div",{style:{marginLeft:n?0:"auto",display:"flex",alignItems:"center"}},React.createElement(zu,null)))))))}var{TabPanel:uR}=wp.components,{useEffect:dR,useMemo:pR,useRef:mR}=wp.element,{__:F0}=wp.i18n,gR=`.bridges-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
     111.bridges-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`,$R={name:"bridge-"+Date.now(),backend:"",form_id:"",enabled:!0,workflow:[],is_valid:!0,mutations:[[]],custom_fields:[]};function qu(){let{bridge:i}=ri(),[e,t]=ro(),n=yr(),r=pR(()=>Array.from(n).map((O,h)=>({index:h,name:String(h),title:O,icon:React.createElement(qi,{name:O})})).concat([{index:-1,name:"new",title:F0("Add a bridge","forms-bridge"),icon:React.createElement("div",{style:{marginBottom:"-2px"}},React.createElement(_i,{width:"15",height:"15"}))}]),[n]),s=O=>{O={...$R,...O},O.mutations=O.mutations.slice(0,O.workflow.length+1);for(let h=O.mutations.length;h<O.workflow.length;h++)O.mutations.push([]);return O},o=(O,h)=>{O===-1&&(O=e.length),h.name=h.name.trim();let f=e.slice(0,O).concat([s(h)]).concat(e.slice(O+1,e.length));t(f)},a=({name:O})=>{let h=e.findIndex(u=>u.name===O),f=e.slice(0,h).concat(e.slice(h+1));t(f)},l=O=>{let h=e.findIndex(d=>d.name===O),f=e[h],u={...f,workflow:f.workflow.map(d=>d),mutations:JSON.parse(JSON.stringify(f.mutations||f.workflow.map(()=>[]))),custom_fields:JSON.parse(JSON.stringify(f.custom_fields||[]))};for(u.name=u.name.trim();n.has(u.name);)u.name+="-copy";window.__wpfbInvalidated=!0,t(e.concat(u))},c=mR(document.createElement("style"));return dR(()=>(c.current.appendChild(document.createTextNode(gR)),document.head.appendChild(c.current),()=>{document.head.removeChild(c.current)}),[]),i?React.createElement("div",{style:{width:"100%"}},React.createElement("h3",{style:{marginTop:0,fontSize:"13px"}},F0("Bridges","forms-bridge")),React.createElement(uR,{tabs:r,className:"bridges-tabs-panel"},O=>{let h=e[O.index];return React.createElement(ur,{bridge:h},!h&&React.createElement(Ru,{add:f=>o(O.index,f),schema:i,names:n})||React.createElement(cu,{data:h,schema:i,remove:a,update:f=>o(O.index,f),copy:()=>l(h.name),names:n}))})):null}var{useMemo:yR}=wp.element,{__experimentalItemGroup:QR,__experimentalItem:SR}=wp.components,{__:bR}=wp.i18n;function Ol({fields:i=[]}){let e=yR(()=>i.map(t=>{let n=t.name;return t.required?n+="\u2217":t.forward&&(n+="?"),{...t,name:n,mutated:t.touch}}),[i]);return e.length?React.createElement(QR,{size:"large",isSeparated:!0},e.map((t,n)=>React.createElement(SR,{key:t.name+n},React.createElement(Pi,{...t,showDiff:!0})))):React.createElement("p",{style:{lineHeight:"2.65"}},bR("Empty interface","forms-bridge"))}var{Modal:xR}=wp.components,{__:H0}=wp.i18n;function _u({show:i,onClose:e}){if(i)return React.createElement(xR,{title:H0("Job editor","forms-bridge"),onRequestClose:e},React.createElement(React.Fragment,null,React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},H0("Process the form submission before it is sent to the backend over the bridge","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"1280px",maxWidth:"80vw",height:"500px",maxHeight:"80vh",display:"flex"}},React.createElement(ks,{close:e}))))}function Cu({width:i=50,height:e=50,color:t="#000000"}){return React.createElement("svg",{width:i,height:e,viewBox:"0 0 50 50"},React.createElement("g",{transform:"translate(-99.83567,-102)"},React.createElement("path",{style:{fill:t,strokeWidth:2},d:"m 101.18783,151.9575 c -0.47473,-0.11502 -0.9291,-0.48272 -1.14903,-0.92984 -0.06393,-0.12997 -0.134538,-0.32401 -0.156915,-0.43119 -0.06162,-0.29517 -0.06162,-39.2669 0,-39.56207 0.103548,-0.49601 0.463815,-0.9677 0.919875,-1.20436 0.42318,-0.2196 -0.56243,-0.20074 10.5121,-0.20119 11.04238,-4.6e-4 10.05513,-0.0186 10.48527,0.193 0.52151,0.25657 0.8704,0.75128 0.95922,1.3601 0.12078,0.82787 -0.40052,1.65228 -1.22311,1.93431 l -0.18056,0.0619 -8.96551,0.007 -8.96551,0.007 v 17.62315 17.62314 h 17.5696 17.5696 l 0.007,-8.97176 0.007,-8.97177 0.0773,-0.2287 c 0.18032,-0.5336 0.5824,-0.94202 1.12436,-1.14213 0.2529,-0.0934 0.71713,-0.11822 0.97896,-0.0524 0.25931,0.0652 0.59998,0.24188 0.78345,0.40635 0.21246,0.19047 0.41956,0.50786 0.5143,0.78818 l 0.0773,0.2287 v 10.00884 10.00884 l -0.0648,0.20881 c -0.1942,0.6261 -0.68212,1.09534 -1.28772,1.23843 -0.15439,0.0365 -2.51881,0.0412 -19.80083,0.0395 -17.02892,-0.002 -19.64751,-0.007 -19.79184,-0.0422 z"}),React.createElement("path",{d:"m 113.3661,139.87064 c -0.47978,-0.11635 -0.93124,-0.4844 -1.15795,-0.944 -0.18488,-0.37479 -0.23253,-0.7393 -0.1494,-1.14267 0.0555,-0.26951 4.26852,-10.14985 4.4309,-10.39144 0.0654,-0.0973 4.93557,-4.99683 12.53228,-12.60786 12.26692,-12.29004 12.42799,-12.45003 12.63367,-12.54891 0.28518,-0.1371 0.4922,-0.18452 0.80558,-0.18452 0.42184,0 0.78398,0.12207 1.10474,0.37237 0.0875,0.0683 1.45324,1.42507 3.03487,3.015 2.1079,2.11895 2.89972,2.93216 2.96568,3.04579 0.34214,0.5894 0.33288,1.28679 -0.025,1.87855 -0.11368,0.18798 -24.80529,24.94357 -25.02901,25.09386 -0.0804,0.054 -2.24081,0.99668 -4.84166,2.11261 -5.35245,2.29654 -5.23833,2.24831 -5.45159,2.30398 -0.19893,0.0519 -0.63343,0.0505 -0.85315,-0.003 z m 6.54526,-7.84097 c -0.59085,-0.59302 -1.08264,-1.0691 -1.09289,-1.05796 -0.0146,0.0159 -1.53238,3.55198 -1.59683,3.72032 -0.01,0.0249 0.75243,-0.28861 1.87395,-0.77108 l 1.89004,-0.81307 z m 19.21636,-19.27354 -1.51394,-1.51734 -8.76403,8.78378 -8.76403,8.78379 1.51382,1.51742 1.51382,1.51742 8.76414,-8.78387 8.76415,-8.78386 z m 4.79183,-1.76793 1.58319,-1.58693 -1.51375,-1.51734 -1.51374,-1.51734 -1.59041,1.59381 -1.59041,1.5938 1.50689,1.51047 c 0.82879,0.83076 1.51322,1.51047 1.52096,1.51047 0.008,0 0.72651,-0.71412 1.59727,-1.58694 z",style:{fill:t,strokeWidth:1}})))}var{useState:vR,useEffect:J0,useRef:cl,useMemo:K0,useCallback:wR}=wp.element,{PanelBody:PR,SelectControl:kR,Button:Wu,TabPanel:TR,Spinner:zR}=wp.components,{__:an}=wp.i18n,XR=[{name:"input",title:an("Input interface","forms-bridge")},{name:"output",title:an("Output interface","forms-bridge")},{name:"snippet",title:an("Job snippet","forms-bridge")}];function Zu(){let[i]=F(),e=ot(),[t]=pn(),[n,r]=un(),[s,o,a]=dn(),[l,c]=vR(!1),O=K0(()=>Ce(t.map(d=>({value:d.name,label:d.title})).sort((d,p)=>d.label>p.label?1:-1)),[t]);J0(()=>{i&&c(!1)},[i]);let h=K0(()=>new Set(t.map(d=>d.name)),[t]),f=wR(()=>{let d={...s};for(d.title+=" (copy)";h.has(d.name);)d.name+="-copy";o(d).then(()=>e())},[s,h]),u=n&&!s;return React.createElement(React.Fragment,null,React.createElement(PR,{title:an("Workflow jobs","forms-bridge"),initialOpen:!1},React.createElement("p",{style:{marginBottom:"2em"}},an("Manage and edit addon's jobs","forms-bridge")),React.createElement("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"2rem"}},React.createElement(be,null,React.createElement(kR,{value:n||"",onChange:r,options:O,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(Wu,{variant:"secondary",style:{width:"40px",justifyContent:"center"},onClick:()=>{r(null),c(!0)},__next40pxDefaultSize:!0},"+")),React.createElement(RR,{loading:u,config:s,setEdit:c,reset:a,copy:f})),React.createElement(_u,{show:l,onClose:()=>c(!1)}))}function RR({loading:i,config:e,setEdit:t,reset:n,copy:r}){let s=cl("input"),o=cl(c=>setTimeout(()=>s.current=c)).current,a=cl(),l=cl(()=>{setTimeout(()=>{a.current&&window.scrollY<a.current.offsetTop&&window.scrollTo({left:0,top:a.current.offsetTop,behavior:"smooth"})},100)}).current;if(J0(()=>{e&&l()},[e]),i)return React.createElement("div",{style:{height:"240px",backgroundColor:"rgb(245, 245, 245)",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement(zR,null));if(e)return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)"}},React.createElement("div",{ref:a,style:{display:"flex"}},React.createElement("div",{style:{flex:2}},React.createElement("h3",{style:{margin:0}},e.title),React.createElement("p",null,e.description)),React.createElement("div",{style:{flex:1,display:"flex",gap:"0.5em",justifyContent:"end",alignItems:"end"}},React.createElement(Wu,{variant:"secondary",onClick:()=>t(!0),style:{display:"flex",justifyContent:"center",width:"40px"},__next40pxDefaultSize:!0},React.createElement(Cu,{width:"20",height:"20",color:"var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))"})),React.createElement(Wu,{variant:"primary",style:{height:"40px",width:"40px",justifyContent:"center",fontSize:"1.5em",border:"1px solid",padding:"6px 6px"},onClick:r,label:an("Duplicate","forms-bridge"),showTooltip:!0,__next40pxDefaultSize:!0},React.createElement(Mt,{width:"25",height:"25",color:"white"})),React.createElement(Ut,{disabled:!e.post_id,label:an("Reset","forms-bridge"),onClick:()=>n(e.name),isDestructive:!1,icon:!0}))),React.createElement(TR,{tabs:XR,onSelect:o},({name:c})=>(c!==s.current&&l(),React.createElement("div",{style:{background:"white",padding:"calc(12px) calc(24px)",width:"calc(100% - 48px)"}},React.createElement(qR,{tab:c,config:e})))))}function qR({tab:i,config:e}){switch(i){case"input":return React.createElement(Ol,{fields:e.input});case"output":return React.createElement(Ol,{fields:e.output.map(t=>({...t,required:!t.requires?.length}))});case"snippet":return React.createElement(Xs,{id:e.id,snippet:e.snippet})}}var{PanelRow:_R,__experimentalSpacer:CR}=wp.components,{useEffect:WR,useMemo:ZR}=wp.element;function Vu(){let[i]=I(),[e]=cn(),t=ZR(()=>e.find(n=>n.name===i)?.logo,[i,e]);return WR(()=>{if(!t)return;let n=document.querySelector(`#${i} .addon-logo`);n&&(n.setAttribute("src",t),n.style.width="auto",n.style.height="25px")},[i,t]),React.createElement(cO,null,React.createElement(sO,null,React.createElement(_R,null,React.createElement(qu,null)),React.createElement(CR,{paddingY:"calc(8px)"}),React.createElement(Zu,null)))}var{useMemo:VR}=wp.element;function Au(){let[i,e]=Ls();return[VR(()=>Object.keys(i).reduce((r,s)=>{let o=i[s].bridges||[];return r.concat(o.map(a=>({...a,addon:s})))},[]),[i]),r=>{let s=Object.keys(i).reduce((o,a)=>{let l=r.filter(c=>c.addon===a).map(c=>{let O={...c};return delete O.addon,O});return o[a]={...i[a],bridges:l},o},{});e(s)}]}var{__:AR}=wp.i18n,jR={enter:new Set,exit:new Set,mutated:new Set,missing:new Set};function ju({fields:i}){return React.createElement("div",{style:{display:"flex",flexDirection:"column",height:"340px"}},React.createElement("div",{style:{borderBottom:"1px solid"}},React.createElement("h2",{style:{marginTop:"5px"}},AR("Submission","forms-bridge"))),React.createElement("div",{style:{flex:1,height:"100%",overflow:"hidden auto",padding:"5px"}},React.createElement(tn,{fields:i.filter(e=>!e.is_file),mappers:[],showDiff:!1,diff:jR})))}var{Button:Yu,Modal:YR,__experimentalItemGroup:UR,__experimentalItem:MR}=wp.components,{useState:ER,useMemo:DR}=wp.element,{__:nr}=wp.i18n;function Uu({bridges:i,setBridges:e}){let[t,n]=ER(!1),r=DR(()=>i.sort((a,l)=>isNaN(a.order)?1:isNaN(l.order)?-1:a.order-l.order),[i]),s=(a,l)=>{let c=r[a],O=r.slice(0,a).concat(r.slice(a+1)),h=O.slice(0,l).concat(c).concat(O.slice(l));h.forEach((f,u)=>f.order=u),e(h)},o=(a,l)=>{let c=i.map(O=>({...O}));c[a].allow_failure=!!l,e(c)};return React.createElement(React.Fragment,null,React.createElement(Yu,{variant:"secondary",onClick:()=>n(!0)},nr("Bridges","forms-bridge")),t&&React.createElement(YR,{title:nr("Form's bridges","forms-bridge"),onRequestClose:()=>n(!1)},React.createElement("p",{style:{marginTop:"-3rem",position:"absolute",zIndex:1}},nr("Manage the form's bridge chain order and its submission failure policies","forms-bridge")),React.createElement("div",{style:{marginTop:"2rem",width:"680px",maxWidth:"80vw",minHeight:"125px",height:"calc(100% - 2rem)",display:"flex",flexDirection:"column",borderTop:"1px solid",borderBottom:"1px solid"}},React.createElement("div",{style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column"}},React.createElement(UR,{size:"large",isSeparated:!0,style:{maxHeight:"calc(100% - 68px)",overflowY:"auto"}},r.map((a,l)=>React.createElement(MR,{key:a.name+l},React.createElement(LR,{index:l,name:a.name,failure:a.allow_failure,setFailure:c=>o(l,c),move:c=>s(l,l+c),isLast:l===i.length-1}))))))))}function LR({index:i,name:e,failure:t,setFailure:n,move:r,isLast:s}){return React.createElement("div",{style:{display:"flex",alignItems:"center"}},React.createElement("div",{style:{flex:1}},i+1,". ",React.createElement("b",null,e)),React.createElement("div",{style:{marginRight:"1em",cursor:"pointer",minWidth:"180px"},onClick:()=>n(!t)},React.createElement("span",{role:"button",size:"compact",style:{fontSize:"1.25em",margin:"0 0.5em 0 1em",cursor:"pointer"}},t===!1?"\u{1F534}":"\u{1F7E2}"),t===!1?"Stop on failure":"Continue on failure"),React.createElement("div",{style:{display:"inline-flex",alignItems:"center",gap:"0.45em",padding:"0 0.45em 0 0.75em"}},React.createElement(Yu,{size:"compact",variant:"secondary",onClick:()=>r(-1),style:{width:"32px"},disabled:!i,__next40pxDefaultSize:!0},React.createElement("span",{title:nr("Move up","forms-bridge"),style:{fontSize:"1.35em",marginLeft:"-4px"}},"\u2B06")),React.createElement(Yu,{size:"compact",variant:"secondary",onClick:()=>r(1),style:{width:"32px"},disabled:s,label:nr("Move down","forms-bridge"),__next40pxDefaultSize:!0},React.createElement("span",{title:nr("Move down","forms-bridge"),style:{fontSize:"1.35em",marginLeft:"-4px"}},"\u2B07"))))}var{useMemo:BR}=wp.element;function Mu({data:i,setBridges:e}){let t=Pe(),[n]=li(),r=BR(()=>{let s=i._id.split(":")[0];return n.find(o=>o.name===s)},[n,i._id]);return React.createElement("div",{style:{padding:"calc(24px) calc(32px)",width:"calc(100% - 64px)",backgroundColor:"rgb(245, 245, 245)",display:"flex",flexDirection:t?"column":"row",gap:"2rem"}},React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem",width:t?"auto":"201px"}},React.createElement("img",{src:r.logo,height:"40",style:{objectFit:"contain",objectPosition:"left",marginBottom:"5px"}}),React.createElement("h4",{style:{margin:0,fontSize:"1.3em"}},i.title),React.createElement("p",{style:{marginTop:"-5px"}},i._id)),React.createElement("div",{style:t?{}:{paddingLeft:"2rem",borderLeft:"1px solid",display:"flex",flexDirection:"column",flex:1}},React.createElement(ju,{fields:i.fields}),React.createElement("div",{style:{paddingTop:"16px",display:"flex",flexDirection:t?"column":"row",gap:"0.5rem",borderTop:"1px solid"}},React.createElement("div",{style:{display:"flex",gap:"0.5rem"}},React.createElement(Uu,{bridges:i.bridges,setBridges:e})))))}var{TabPanel:GR}=wp.components,{useEffect:eS,useMemo:tS,useRef:IR}=wp.element,{__:iS}=wp.i18n,NR=`.forms-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
     112.forms-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`;function Eu(){let[i]=at(),[e,t]=Au(),n=tS(()=>i.reduce((a,l)=>{let c=e.filter(O=>O.form_id===l._id);return c.length?a.concat({...l,bridges:c}):a},[]),[i,e]),r=tS(()=>n.map(({title:a},l)=>({index:l,name:a,title:a})),[n]),s=IR(document.createElement("style"));eS(()=>(s.current.appendChild(document.createTextNode(NR)),document.head.appendChild(s.current),()=>{document.head.removeChild(s.current)}),[]),eS(()=>{let a=document.querySelector("#forms .addon-logo");a&&a.removeAttribute("src")},[]);let o=a=>{let l=a.map(({name:O})=>O),c=e.map(O=>{let h=l.findIndex(f=>f===O.name);return h!==-1?{...O,allow_failure:a[h].allow_failure,order:h}:O});t(c)};return React.createElement("div",{style:{width:"100%"}},React.createElement("h3",{style:{marginTop:0,fontSize:"13px"}},iS("Bridged forms","forms-bridge")),!r.length&&React.createElement("p",null,iS("You have no bridged forms yet. You can set up new form bridges using the add-on tabs","forms-bridge")),React.createElement(GR,{tabs:r,className:"forms-tabs-panel"},a=>{let l=n[a.index];return React.createElement(Mu,{data:l,setBridges:o})}))}var{Card:FR,CardHeader:HR,CardBody:KR,TabPanel:JR,__experimentalHeading:e4}=wp.components,{useEffect:nS,useMemo:t4,useRef:Du}=wp.element,{__:hl}=wp.i18n,i4=`.settings-tabs-panel>.components-tab-panel__tabs{overflow-x:auto;}
     113.settings-tabs-panel>.components-tab-panel__tabs>button{flex-shrink:0;}`;function Lu(){let[i,e]=I(),[t]=cn(),n=Du(i),r=Du(),s=t4(()=>{let l=[{name:"general",title:hl("General","forms-bridge")},{name:"http",title:hl("HTTP","forms-bridge")},{name:"forms",title:hl("Forms","forms-bridge")}],c=t.filter(({enabled:O})=>O).map(({name:O,title:h})=>({name:O,title:h}));return l.concat(c)},[t]),o=l=>{n.current=l,e(l)};nS(()=>{if(i===n.current||!r.current)return;let l=s.findIndex(({name:O})=>i===O);r.current.querySelectorAll("button")[l].click()},[i,s]);let a=Du(document.createElement("style"));return nS(()=>(a.current.appendChild(document.createTextNode(i4)),document.head.appendChild(a.current),()=>{document.head.removeChild(a.current)}),[]),React.createElement("div",{style:{width:"100%"}},React.createElement(JR,{initialTabName:i,onSelect:o,tabs:s,className:"settings-tabs-panel",ref:r},l=>React.createElement("div",{id:l.name},React.createElement(FR,{size:"large",style:{height:"fit-content"}},React.createElement(HR,null,React.createElement(e4,{level:2,style:{fontSize:"1.5em"}},hl(l.title,"forms-bridge")),React.createElement("img",{style:{width:"auto",height:"25px",maxWidth:"90px",objectFit:"contain",objectPosition:"center"},className:"addon-logo"})),React.createElement(KR,null,l.name==="general"?React.createElement(Rl,null):l.name==="http"?React.createElement(tO,null):l.name==="forms"?React.createElement(Eu,null):React.createElement(Vu,null))))))}var{Button:n4}=wp.components,{__:r4}=wp.i18n;function Bu(){let[i]=ue(),[e]=F(),[t,n]=ai();return React.createElement("div",{style:{textAlign:"right"}},React.createElement(n4,{variant:"primary",onClick:()=>n(t),style:{minWidth:"100px",justifyContent:"center",marginLeft:"auto"},disabled:i||e,__next40pxDefaultSize:!0},r4("Save","forms-bridge")))}var{createRoot:s4,useRef:o4}=wp.element,{__experimentalHeading:a4}=wp.components;function l4(){let i=o4(document.getElementById("wpadminbar").offsetHeight).current;return React.createElement("div",{id:"forms-bridge",style:{position:"relative",minHeight:`calc(100vh - ${i}px)`}},React.createElement(Gu,{fallback:React.createElement("div",{style:{height:"50vh",paddingLeft:"1em",display:"flex",justifyContent:"center",alignItems:"center"}},React.createElement("h1",null,"Why do you do this to me? \u{1F629}"))},React.createElement(dl,null,React.createElement(ml,null,React.createElement(Ql,null,React.createElement(bl,null,React.createElement(gl,null,React.createElement("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:"calc(16px)",alignItems:"baseline"}},React.createElement(a4,{level:1},"Forms Bridge"),React.createElement(Bu,null)),React.createElement(Lu,null))))))))}wp.domReady(()=>{s4(document.getElementById("forms-bridge")).render(React.createElement(l4,null))});})();
    114114//# sourceMappingURL=plugin.bundle.js.map
  • forms-bridge/trunk/deps/http/includes/class-backend.php

    r3395992 r3455079  
    210210     */
    211211    public function url( $path = '' ) {
    212         if ( ! $this->is_valid ) {
    213             return;
    214         }
    215 
    216         $base_url = preg_replace( '/\/+$/', '', $this->base_url ?? '' );
     212        $base_url = rtrim( trim( $this->base_url ?? '' ), '/' );
    217213
    218214        $url_parsed = wp_parse_url( $base_url );
    219215
    220216        if ( isset( $url_parsed['path'] ) ) {
    221             $base_path = preg_replace( '/^\/+/', '', $url_parsed['path'] );
     217            $base_path = ltrim( $url_parsed['path'], '/' );
    222218            $path      = preg_replace(
    223219                '/^\/*' . preg_quote( $base_path, '/' ) . '/',
     
    249245
    250246        if ( isset( $path_parsed['path'] ) ) {
    251             $path = preg_replace( '/^\/+/', '', $path_parsed['path'] );
     247            $path = ltrim( $path_parsed['path'], '/' );
    252248        } else {
    253249            $path = '';
  • forms-bridge/trunk/deps/http/includes/class-http-client.php

    r3395308 r3455079  
    307307                continue;
    308308            }
     309
    309310            $filename = basename( $path );
    310             $filetype = wp_check_filetype( $filename );
    311             if ( ! $filetype['type'] ) {
    312                 $filetype['type'] = mime_content_type( $path );
    313             }
    314 
    315             $multipart->add_file( $name, $path, $filetype['type'] );
     311            $filetype = mime_content_type( $filename ) ?: 'application/octet-stream';
     312
     313            $multipart->add_file( $name, $path, $filetype );
    316314        }
    317315
     
    331329     */
    332330    private static function do_request( $url, $args ) {
    333         if ( ! filter_var( $url, FILTER_VALIDATE_URL ) ) {
    334             return new WP_Error(
    335                 'invalid_url',
    336                 __( 'Invalid request URL', 'forms-bridge' ),
    337                 array(
    338                     'url' => $url,
    339                 )
    340             );
    341         }
    342 
    343331        $args = static::default_args( $args );
    344332        $url  = static::add_query_str( $url, $args['params'] );
  • forms-bridge/trunk/forms-bridge.php

    r3451313 r3455079  
    33 * Plugin Name:         Forms Bridge
    44 * Plugin URI:          https://formsbridge.codeccoop.org
    5  * Description:         Bridge your WordPress forms without code, add custom fields, use mappers, set up a workflow and make your data flow seamlessly to your backend
     5 * Description:         Seamlessly connect WordPress forms to CRMs, ERPs, and APIs — no coding required. Automate data flow with field mappers, custom fields, and workflows.
    66 * Author:              codeccoop
    77 * Author URI:          https://www.codeccoop.org
     
    1010 * Text Domain:         forms-bridge
    1111 * Domain Path:         /languages
    12  * Version:             4.3.2
     12 * Version:             4.3.3
    1313 * Requires PHP:        8.0
    1414 * Requires at least:   6.7
  • forms-bridge/trunk/includes/class-addon.php

    r3446693 r3455079  
    660660            $ext  = pathinfo( $file )['extension'] ?? null;
    661661
    662             if ( ! in_array( $ext, $extensions ) ) {
     662            if ( ! in_array( $ext, $extensions, true ) ) {
    663663                continue;
    664664            }
     
    824824
    825825        return $loaded;
     826    }
     827
     828    /**
     829     * Expand an endpoint schema to a plain list of fields with json-schema
     830     * finger pointers as names.
     831     *
     832     * @param array $fields Array of API fields.
     833     *
     834     * @return array
     835     */
     836    protected static function expand_endpoint_schema( $fields ) {
     837        $schema = array();
     838        foreach ( $fields as $field ) {
     839            $finger = array( $field['name'] );
     840
     841            $type = $field['schema']['type'] ?? null;
     842            if ( 'array' === $type ) {
     843                $items                    = $field['schema']['items'] ?? array( 'type' => 'string' );
     844                $field['schema']['items'] = $items;
     845                $field['schema']['type']  = $items['type'] . '[]';
     846
     847                $finger[] = 0;
     848                $schema[] = $field;
     849
     850                $field['schema'] = $field['schema']['items'];
     851            } else {
     852                $schema[] = $field;
     853            }
     854
     855            if ( 'object' === $type ) {
     856                $props = $field['schema']['properties'] ?? array();
     857                $queue = array();
     858
     859                if ( true === ( $field['schema']['additionalProperties'] ?? false ) ) {
     860                    $schema[] = array(
     861                        'name'   => JSON_Finger::pointer( array_merge( $finger, array( '*' ) ) ),
     862                        'schema' => array( 'type' => 'mixed' ),
     863                    );
     864                }
     865
     866                while ( $props ) {
     867                    foreach ( $props as $key => $prop_schema ) {
     868                        $schema[] = array(
     869                            'name'   => JSON_Finger::pointer( array_merge( $finger, array( $key ) ) ),
     870                            'schema' => $prop_schema,
     871                        );
     872
     873                        if ( 'object' === $prop_schema['type'] ) {
     874                            $finger[] = $key;
     875                            $queue[]  = $prop_schema['properties'];
     876                        }
     877                    }
     878
     879                    $finger = array_slice( $finger, 0, -1 );
     880                    $props  = array_shift( $queue );
     881                }
     882            }
     883        }
     884
     885        return $schema;
    826886    }
    827887
  • forms-bridge/trunk/includes/class-form-bridge-template.php

    r3451059 r3455079  
    7171            'properties'           => array(
    7272                'name'         => array(
    73                     'title'       => _x(
    74                         'Name',
    75                         'Bridge template schema',
    76                         'forms-bridge'
    77                     ),
    78                     'description' => __(
    79                         'Internal and unique name of the template',
    80                         'forms-bridge'
    81                     ),
     73                    'title'       => _x( 'Name', 'Bridge template schema', 'forms-bridge' ),
     74                    'description' => __( 'Internal and unique name of the template', 'forms-bridge' ),
    8275                    'type'        => 'string',
    8376                    'minLength'   => 1,
    8477                ),
    8578                'title'        => array(
    86                     'title'       => _x(
    87                         'Title',
    88                         'Bridge template schema',
    89                         'forms-bridge'
    90                     ),
    91                     'description' => __(
    92                         'Public title of the template',
    93                         'forms-bridge'
    94                     ),
     79                    'title'       => _x( 'Title', 'Bridge template schema', 'forms-bridge' ),
     80                    'description' => __( 'Public title of the template', 'forms-bridge' ),
    9581                    'type'        => 'string',
    9682                    'minLength'   => 1,
    9783                ),
    9884                'description'  => array(
    99                     'title'       => _x(
    100                         'Description',
    101                         'Bridge template schema',
    102                         'forms-bridge'
    103                     ),
    104                     'description' => __(
    105                         'Short description of the template purpose',
    106                         'forms-bridge'
    107                     ),
     85                    'title'       => _x( 'Description', 'Bridge template schema', 'forms-bridge' ),
     86                    'description' => __( 'Short description of the template purpose', 'forms-bridge' ),
    10887                    'type'        => 'string',
    10988                    'default'     => '',
    11089                ),
    11190                'integrations' => array(
    112                     'title'       => _x(
    113                         'Integrations',
    114                         'Bridge template schema',
    115                         'forms-bridge'
    116                     ),
    117                     'description' => __(
    118                         'Template\'s supported integrations',
    119                         'forms-bridge'
    120                     ),
     91                    'title'       => _x( 'Integrations', 'Bridge template schema', 'forms-bridge' ),
     92                    'description' => __( 'Template\'s supported integrations', 'forms-bridge' ),
    12193                    'type'        => 'array',
    12294                    'items'       => array( 'type' => 'string' ),
     
    12597                ),
    12698                'fields'       => array(
    127                     'title'       => _x(
    128                         'Fields',
    129                         'Bridge template schema',
    130                         'forms-bridge'
    131                     ),
    132                     'description' => __(
    133                         'Template fields to be filled by the user',
    134                         'forms-bridge'
    135                     ),
     99                    'title'       => _x( 'Fields', 'Bridge template schema', 'forms-bridge' ),
     100                    'description' => __( 'Template fields to be filled by the user', 'forms-bridge' ),
    136101                    'type'        => 'array',
    137102                    'items'       => array(
     
    184149                                'anyOf' => array(
    185150                                    array(
    186                                         'description' => __(
    187                                             'List of field options',
    188                                             'forms-bridge'
    189                                         ),
     151                                        'description' => __( 'List of field options', 'forms-bridge' ),
    190152                                        'type'        => 'array',
    191153                                        'items'       => array(
    192154                                            'type'       => 'object',
    193155                                            'properties' => array(
    194                                                 'label' => array(
    195                                                     'type' => 'string',
    196                                                 ),
    197                                                 'value' => array(
    198                                                     'type' => 'string',
    199                                                 ),
     156                                                'label' => array( 'type' => 'string' ),
     157                                                'value' => array( 'type' => 'string' ),
    200158                                            ),
    201159                                            'required'   => array( 'value', 'label' ),
     
    204162                                    ),
    205163                                    array(
    206                                         'description' => __(
    207                                             'How to get options from the addon API',
    208                                             'forms-bridge'
    209                                         ),
     164                                        'description' => __( 'How to get options from the addon API', 'forms-bridge' ),
    210165                                        'type'        => 'object',
    211166                                        'properties'  => array(
    212167                                            'endpoint' => array(
    213                                                 'description' => __(
    214                                                     'Endpoint to get values from',
    215                                                     'forms-bridge'
    216                                                 ),
     168                                                'description' => __( 'Endpoint to get values from', 'forms-bridge' ),
    217169                                                'type' => 'string',
    218170                                            ),
    219171                                            'finger'   => array(
    220                                                 'description' => __(
    221                                                     'Fingers to get values from the endpoint response',
    222                                                     'forms-bridge'
    223                                                 ),
     172                                                'description' => __( 'Fingers to get values from the endpoint response', 'forms-bridge' ),
    224173                                                'oneOf' => array(
    225174                                                    array(
    226175                                                        'type' => 'object',
    227176                                                        'properties' => array(
    228                                                             'value' => array(
    229                                                                 'type' =>
    230                                                                     'string',
    231                                                             ),
    232                                                             'label' => array(
    233                                                                 'type' =>
    234                                                                     'string',
    235                                                             ),
     177                                                            'value' => array( 'type' => 'string' ),
     178                                                            'label' => array( 'type' => 'string' ),
    236179                                                        ),
    237180                                                        'required' => array( 'value' ),
    238181                                                    ),
    239                                                     array(
    240                                                         'type' => 'string',
    241                                                     ),
     182                                                    array( 'type' => 'string' ),
    242183                                                ),
    243184                                            ),
     
    249190                            'enum'        => array(
    250191                                'type'        => 'array',
    251                                 'items'       => array(
    252                                     'type' => array( 'integer', 'number', 'string' ),
    253                                 ),
     192                                'items'       => array( 'type' => array( 'integer', 'number', 'string' ) ),
    254193                                'uniqueItems' => true,
    255194                            ),
     
    257196                            'max'         => array( 'type' => 'integer' ),
    258197                            'multiple'    => array( 'type' => 'boolean' ),
     198                            'pattern'     => array( 'type' => 'string' ),
    259199                        ),
    260200                        'required'             => array( 'ref', 'name', 'type' ),
     
    263203                ),
    264204                'form'         => array(
    265                     'title'                => _x(
    266                         'Form',
    267                         'Bridge template schema',
    268                         'forms-bridge'
    269                     ),
    270                     'description'          => __(
    271                         'Form title and fields settings',
    272                         'forms-bridge'
    273                     ),
     205                    'title'                => _x( 'Form', 'Bridge template schema', 'forms-bridge' ),
     206                    'description'          => __( 'Form title and fields settings', 'forms-bridge' ),
    274207                    'type'                 => 'object',
    275208                    'properties'           => array(
     
    318251                                                    ),
    319252                                                ),
    320                                                 'label' => array(
    321                                                     'type' => 'string',
    322                                                 ),
     253                                                'label' => array( 'type' => 'string' ),
    323254                                            ),
    324255                                            'required'   => array( 'value', 'label' ),
     
    397328        if ( isset( $schema['oneOf'] ) ) {
    398329            $schema['oneOf'] = array_map(
    399                 static function ( $schema ) use (
    400                     $title
    401                 ) {
     330                static function ( $schema ) use ( $title ) {
    402331                    $title = $schema['title'] ?? $title;
    403332                    return self::child_schema_to_template( $schema, $title );
     
    405334                $schema['oneOf']
    406335            );
     336
    407337            return $schema;
    408338        } elseif ( isset( $schema['anyOf'] ) ) {
    409339            $schema['anyOf'] = array_map(
    410                 static function ( $schema ) use (
    411                     $title
    412                 ) {
     340                static function ( $schema ) use ( $title ) {
    413341                    $title = $schema['title'] ?? $title;
    414342                    return self::child_schema_to_template( $schema, $title );
     
    416344                $schema['anyOf']
    417345            );
     346
    418347            return $schema;
    419348        }
     
    567496            'title'       => $post->post_title,
    568497            'description' => $post->post_excerpt,
    569             'fields'      =>
    570                 (array) ( get_post_meta( $post->ID, '_template-fields', true ) ?:
    571                 array() ),
    572             'form'        =>
    573                 (array) ( get_post_meta( $post->ID, '_template-form', true ) ?:
    574                 array() ),
    575             'bridge'      =>
    576                 (array) ( get_post_meta( $post->ID, '_template-bridge', true ) ?:
    577                 array() ),
    578             'backend'     =>
    579                 (array) ( get_post_meta( $post->ID, '_template-backend', true ) ?:
    580                 array() ),
    581             'credential'  =>
    582                 (array) ( get_post_meta(
    583                     $post->ID,
    584                     '_template-credential',
    585                     true
    586                 ) ?:
    587                 array() ),
     498            'fields'      => (array) ( get_post_meta( $post->ID, '_template-fields', true ) ?: array() ),
     499            'form'        => (array) ( get_post_meta( $post->ID, '_template-form', true ) ?: array() ),
     500            'bridge'      => (array) ( get_post_meta( $post->ID, '_template-bridge', true ) ?: array() ),
     501            'backend'     => (array) ( get_post_meta( $post->ID, '_template-backend', true ) ?: array() ),
     502            'credential'  => (array) ( get_post_meta( $post->ID, '_template-credential', true ) ?: array() ),
    588503        );
    589504    }
     
    734649            update_post_meta( $post_id, '_template-bridge', $this->bridge );
    735650            update_post_meta( $post_id, '_template-backend', $this->backend );
    736             update_post_meta(
    737                 $post_id,
    738                 '_template-credential',
    739                 $this->credential
    740             );
     651            update_post_meta( $post_id, '_template-credential', $this->credential );
    741652        }
    742653
     
    823734                    sprintf(
    824735                        /* translators: %s: Field name */
    825                         __(
    826                             'Field `%s` does not match the schema',
    827                             'forms-bridge'
    828                         ),
     736                        __( 'Field `%s` does not match the schema', 'forms-bridge' ),
    829737                        $field['name']
    830738                    )
     
    887795                        sprintf(
    888796                            /* translators: %s: ref value */
    889                             __(
    890                                 'Invalid template field ref `%s`',
    891                                 'forms-bridge'
    892                             ),
     797                            __( 'Invalid template field ref `%s`', 'forms-bridge' ),
    893798                            $field['ref']
    894799                        )
     
    910815        }
    911816
    912         $data = apply_filters(
    913             'forms_bridge_template_data',
    914             $data,
    915             $this->id,
    916             $this
    917         );
     817        $data = apply_filters( 'forms_bridge_template_data', $data, $this->id, $this );
    918818
    919819        if ( is_wp_error( $data ) ) {
     
    942842            }
    943843
    944             $data['bridge']['mutations'][0] = array_merge(
    945                 $mappers,
    946                 $data['bridge']['mutations'][0] ?? array()
    947             );
     844            $data['bridge']['mutations'][0] = array_merge( $mappers, $data['bridge']['mutations'][0] ?? array() );
    948845        }
    949846
     
    959856                do_action_ref_array(
    960857                    'forms_bridge_before_template_form',
    961                     array(
    962                         $data['form'],
    963                         $this->name,
    964                         $this,
    965                     )
     858                    array( $data['form'], $this->name, $this ),
    966859                );
    967860
     
    981874                $data['form']['id'] = $form_id;
    982875
    983                 do_action(
    984                     'forms_bridge_template_form',
    985                     $data['form'],
    986                     $this->id,
    987                     $this
    988                 );
     876                do_action( 'forms_bridge_template_form', $data['form'], $this->id, $this );
    989877            }
    990878
     
    993881            $create_credential = false;
    994882            if ( ! empty( $data['credential']['name'] ) ) {
    995                 $create_credential = ! $this->credential_exists(
    996                     $data['credential']['name']
    997                 );
     883                $create_credential = ! $this->credential_exists( $data['credential']['name'] );
    998884
    999885                if ( $create_credential ) {
     
    1007893                        return new WP_Error(
    1008894                            'credential_creation_error',
    1009                             __(
    1010                                 'Forms bridge can\'t create the credential',
    1011                                 'forms-bridge',
    1012                             ),
     895                            __( 'Forms bridge can\'t create the credential', 'forms-bridge' ),
    1013896                            array(
    1014897                                'status' => 400,
     
    1037920                    return new WP_Error(
    1038921                        'backend_creation_error',
    1039                         __(
    1040                             'Forms bridge can\'t create the backend',
    1041                             'forms-bridge',
    1042                         ),
     922                        __( 'Forms bridge can\'t create the backend', 'forms-bridge' ),
    1043923                        array(
    1044924                            'status' => 400,
     
    1068948                return new WP_Error(
    1069949                    'bridge_creation_error',
    1070                     __(
    1071                         'Forms bridge can\'t create the form bridge',
    1072                         'forms-bridge',
    1073                     ),
     950                    __( 'Forms bridge can\'t create the form bridge', 'forms-bridge' ),
    1074951                    array(
    1075952                        'status' => 400,
     
    1098975                'internal_server_error',
    1099976                $e->getMessage(),
    1100                 array(
    1101                     'status' => 500,
    1102                 )
     977                array( 'status' => 500 )
    1103978            );
    1104979        }
     
    11451020        do_action_ref_array(
    11461021            'forms_bridge_before_template_backend',
    1147             array(
    1148                 $data,
    1149                 $this->name,
    1150                 $this,
    1151             )
     1022            array( $data, $this->name, $this ),
    11521023        );
    11531024
     
    11751046        $setting->backends = array_filter(
    11761047            $backends,
    1177             static function (
    1178                 $backend
    1179             ) use ( $name ) {
     1048            static function ( $backend ) use ( $name ) {
    11801049                return $backend['name'] !== $name;
    11811050            }
     
    12131082        do_action_ref_array(
    12141083            'forms_bridge_before_template_bridge',
    1215             array(
    1216                 $data,
    1217                 $this->name,
    1218                 $this,
    1219             )
     1084            array( $data, $this->name, $this ),
    12201085        );
    12211086
  • forms-bridge/trunk/includes/class-form-bridge.php

    r3446693 r3455079  
    8989                    'description' => __( 'Backend name', 'forms-bridge' ),
    9090                    'type'        => 'string',
    91                     // 'default' => '',
     91                    'default'    => '',
    9292                ),
    9393                'endpoint'      => array(
     
    433433        }
    434434
    435         $schema = $this->schema();
    436 
    437         if (
    438             ! in_array(
    439                 $this->method,
    440                 $schema['properties']['method']['enum'],
    441                 true
    442             )
    443         ) {
     435        $schema = $this->schema( $this->addon );
     436
     437        $allowed_methods = $schema['properties']['method']['enum'] ?? array( $this->method );
     438        if ( ! in_array( $this->method, $allowed_methods, true ) ) {
    444439            return new WP_Error(
    445440                'method_not_allowed',
     
    487482
    488483        foreach ( $mutation as $mapper ) {
    489             $is_valid =
    490                 JSON_Finger::validate( $mapper['from'] ) &&
    491                 JSON_Finger::validate( $mapper['to'] );
     484            $is_valid = JSON_Finger::validate( $mapper['from'] ) && JSON_Finger::validate( $mapper['to'] );
    492485
    493486            if ( ! $is_valid ) {
     
    509502
    510503            if ( 'copy' !== $mapper['cast'] ) {
    511                 $unset =
    512                     $unset ||
    513                     preg_replace( '/^\?/', '', $mapper['from'] ) !==
    514                         $mapper['to'];
     504                $unset = $unset || preg_replace( '/^\?/', '', $mapper['from'] ) !== $mapper['to'];
    515505            }
    516506
     
    781771
    782772                    for ( $j = 2; $j < 10; $j++ ) {
    783                         $from =
    784                             strstr( $mapper['from'], '?' ) ?:
    785                             '?' . $mapper['from'];
     773                        $from = strstr( $mapper['from'], '?' ) ?: '?' . $mapper['from'];
    786774
    787775                        $this->data['mutations'][0][] = array(
     
    819807            case 'ip_address':
    820808                if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
    821                     return sanitize_text_field(
    822                         wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] )
    823                     );
     809                    return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) );
    824810                } elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
    825811                    return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) );
  • forms-bridge/trunk/includes/class-json-finger.php

    r3411530 r3455079  
    410410            $key = array_pop( $keys );
    411411            if ( $unset ) {
    412                 if ( wp_is_numeric_array( $partial ) ) {
     412                if ( ! empty( $partial ) && wp_is_numeric_array( $partial ) ) {
    413413                    array_splice( $partial, $key, 1 );
    414414                } elseif ( is_array( $partial ) ) {
  • forms-bridge/trunk/includes/class-logger.php

    r3438962 r3455079  
    5858
    5959        if ( ! is_dir( $dir ) ) {
    60             if ( ! mkdir( $dir ) ) {
     60            if ( ! wp_mkdir_p( $dir ) ) {
    6161                return;
    6262            }
  • forms-bridge/trunk/includes/class-menu.php

    r3395308 r3455079  
    2121    /**
    2222     * Renders the plugin menu page.
     23     *
     24     * @param bool $echo Ignored.
    2325     */
    2426    protected static function render_page( $echo = true ) {
  • forms-bridge/trunk/includes/class-openapi.php

    r3400031 r3455079  
    178178        $c = count( $parameters );
    179179        for ( $i = 0; $i < $c; $i++ ) {
     180            $parameters[ $i ] = $this->expand_refs( $parameters[ $i ] );
     181
    180182            $param = &$parameters[ $i ];
    181 
    182183            if ( ! isset( $param['in'] ) || 'formData' === $param['in'] ) {
    183184                $param['in'] = 'body';
     
    185186
    186187            if ( 'body' === $param['in'] && isset( $param['schema'] ) ) {
    187                 if ( isset( $param['schema']['$ref'] ) ) {
    188                     $param['schema'] = array_merge( $param['schema'], $this->get_ref( $param['schema']['$ref'] ) );
    189                 }
    190 
    191                 if ( isset( $param['schema']['properties'] ) && is_array( $param['schema']['properties'] ) ) {
     188                if ( isset( $param['schema']['properties'] ) ) {
    192189                    array_splice( $parameters, $i, 1 );
    193190
    194                     foreach ( $param['schema']['properties'] as $prop => $prop_schema ) {
    195                         $parameters[] = array_merge(
    196                             $prop_schema,
    197                             array(
    198                                 'name' => $prop,
    199                                 'in'   => 'body',
    200                             ),
     191                    $properties = $param['schema']['properties'] ?? array();
     192                    foreach ( $properties as $prop => $prop_schema ) {
     193                        $parameters[] = array(
     194                            'name'   => $prop,
     195                            'in'     => 'body',
     196                            'schema' => $prop_schema,
    201197                        );
    202198                    }
    203199                }
     200            }
     201        }
     202
     203        $l = count( $parameters );
     204        for ( $i = 0; $i < $l; ++$i ) {
     205            $param = &$parameters[ $i ];
     206            if ( isset( $param['type'] ) && ! isset( $param['schema'] ) ) {
     207                $param['schema'] = array( 'type' => $param['type'] );
     208                unset( $param['type'] );
    204209            }
    205210        }
     
    208213        if ( $body ) {
    209214            $parameters = array_merge( $parameters, $this->body_to_params( $body ) );
    210         }
    211 
    212         $l = count( $parameters );
    213         for ( $i = 0; $i < $l; $i++ ) {
    214             $param = &$parameters[ $i ];
    215 
    216             if ( isset( $param['$ref'] ) ) {
    217                 $parameters[ $i ] = array_merge( $param, $this->get_ref( $param['$ref'] ) );
    218                 $param            = &$parameters[ $i ];
    219             } elseif ( isset( $param['schema']['$ref'] ) ) {
    220                 $param['schema'] = array_merge( $param['schema'], $this->get_ref( $param['schema']['$ref'] ) );
    221             }
    222 
    223             if ( isset( $param['anyOf'] ) ) {
    224                 $param['schema'] = $param['anyOf'][0];
    225             } elseif ( isset( $param['oneOf'] ) ) {
    226                 $param['schema'] = $param['oneOf'][0];
    227             }
    228 
    229             if ( isset( $param['type'] ) && ! isset( $param['schema'] ) ) {
    230                 $param['schema'] = array( 'type' => $param['type'] );
    231                 unset( $param['type'] );
    232             }
    233215        }
    234216
     
    254236
    255237    /**
     238     * Retrives response fields for a path and an HTTP method.
     239     *
     240     * @param string $path Target path.
     241     * @param string $method HTTP method.
     242     *
     243     * @return array|null
     244     */
     245    public function response( $path, $method = null ) {
     246        $path = self::parse_path( $path );
     247
     248        $path_obj = $this->path_obj( $path );
     249        if ( ! $path_obj ) {
     250            return;
     251        }
     252
     253        $response_obj = $path_obj[ $method ]['responses'][200] ?? null;
     254        if ( ! $response_obj ) {
     255            return;
     256        }
     257
     258        $parameters = $this->body_to_params( $response_obj );
     259
     260        $l = count( $parameters );
     261        for ( $i = 0; $i < $l; ++$i ) {
     262            $param = &$parameters[ $i ];
     263            if ( isset( $param['type'] ) && ! isset( $param['schema'] ) ) {
     264                $param['schema'] = array( 'type' => $param['type'] );
     265                unset( $param['type'] );
     266            }
     267        }
     268
     269        return $parameters;
     270    }
     271
     272    /**
     273     * Checks if an object has a composition policy declared.
     274     *
     275     * @param array $obj Target object.
     276     *
     277     * @return string|null Composition policy.
     278     */
     279    private function is_composite( $obj ) {
     280        return isset( $obj['anyOf'] )
     281            ? 'anyOf'
     282            : (
     283                isset( $obj['oneOf'] )
     284                ? 'oneOf'
     285                    : (
     286                        isset( $obj['allOf'] )
     287                        ? 'allOf'
     288                        : null
     289                    )
     290            );
     291    }
     292
     293    /**
     294     * Resolve the object composition based on the compoisition policy.
     295     *
     296     * @param array  $obj Target object.
     297     * @param string $policy Composition policy.
     298     *
     299     * @return array
     300     */
     301    private function compose( $obj, $policy ) {
     302        switch ( $policy ) {
     303            case 'oneOf':
     304            case 'anyOf':
     305                $obj = $this->expand_refs( $obj[ $policy ][0] );
     306                unset( $obj[ $policy ] );
     307                return $obj;
     308            case 'allOf':
     309                $schema = array();
     310                foreach ( $obj[ $policy ] as $partial ) {
     311                    $schema = array_merge( $schema, $partial );
     312                }
     313
     314                unset( $schema[ $policy ] );
     315                $obj = $this->expand_refs( $schema );
     316                return $obj;
     317        }
     318
     319        return $obj;
     320    }
     321
     322    /**
     323     * Replace refs and non deterministic schemas.
     324     *
     325     * @param array $obj Schema of the param.
     326     *
     327     * @return array
     328     */
     329    private function expand_refs( $obj ) {
     330        if ( isset( $obj['$ref'] ) ) {
     331            $obj = array_merge( $obj, $this->get_ref( $obj['$ref'] ) );
     332            unset( $obj['$ref'] );
     333        }
     334
     335        $compose_policy = $this->is_composite( $obj );
     336        if ( $compose_policy ) {
     337            return $this->compose( $obj, $compose_policy );
     338        }
     339
     340        if ( isset( $obj['schema'] ) ) {
     341            $obj['schema'] = $this->expand_refs( $obj['schema'] );
     342            return $obj;
     343        }
     344
     345        if ( ! isset( $obj['type'] ) ) {
     346            return $obj;
     347        }
     348
     349        if ( 'object' === $obj['type'] ) {
     350            $properties = $obj['properties'] ?? array();
     351            foreach ( $properties as $name => $prop_schema ) {
     352                $properties[ $name ] = $this->expand_refs( $prop_schema );
     353            }
     354
     355            if ( isset( $obj['additionalProperties'] ) && is_array( $obj['additionalProperties'] ) ) {
     356                $additionals = $this->expand_refs( $obj['additionalProperties'] );
     357
     358                if ( isset( $additionals['type'] ) ) {
     359                    $properties['*'] = $additionals;
     360                }
     361
     362                $obj['additionalProperties'] = false;
     363            } elseif ( empty( $properties ) ) {
     364                $obj['additionalProperties'] = true;
     365            } else {
     366                $obj['additionalProperties'] = false;
     367            }
     368
     369            $obj['properties'] = $properties;
     370        } elseif ( 'array' === $obj['type'] ) {
     371            $items = $obj['items'] ?? array();
     372            if ( wp_is_numeric_array( $items ) ) {
     373                return $obj;
     374            }
     375
     376            $obj['items'] = $this->expand_refs( $items );
     377        }
     378
     379        return $obj;
     380    }
     381
     382    /**
    256383     * Retrives the value of a ref in the swagger data.
    257384     *
     
    286413
    287414        foreach ( $body['content'] as $encoding => $obj ) {
    288             if ( isset( $obj['schema']['$ref'] ) ) {
    289                 $obj['schema'] = array_merge( $obj['schema'], $this->get_ref( $obj['schema']['$ref'] ) );
    290             }
    291 
    292             if ( isset( $obj['schema']['oneOf'] ) ) {
    293                 $obj['schema'] = $obj['schema']['oneOf'][0];
    294             } elseif ( isset( $obj['schema']['anyOf'] ) ) {
    295                 $obj['schema'] = $obj['schema']['anyOf'][0];
    296             }
    297 
    298             foreach ( $obj['schema']['properties'] as $name => $defn ) {
    299                 $parameters[] = array_merge(
    300                     array(
     415            $obj = $this->expand_refs( $obj );
     416
     417            if ( 'object' === $obj['schema']['type'] ) {
     418                $properties = $obj['schema']['properties'] ?? array();
     419                foreach ( $properties as $name => $prop_schema ) {
     420                    $parameters[] = array(
    301421                        'name'     => $name,
    302422                        'encoding' => $encoding,
    303423                        'in'       => 'body',
    304                     ),
    305                     $defn
     424                        'schema'   => $prop_schema,
     425                    );
     426                }
     427            } elseif ( 'array' === $obj['schema']['type'] ) {
     428                $items = $obj['schema']['items'] ?? array();
     429                if ( wp_is_numeric_array( $items ) ) {
     430                    continue;
     431                }
     432
     433                $obj['schema']['items'] = $items;
     434                $parameters[]           = array(
     435                    'name'     => '',
     436                    'encoding' => $encoding,
     437                    'in'       => 'body',
     438                    'schema'   => $obj['schema'],
    306439                );
    307440            }
  • forms-bridge/trunk/includes/class-settings-store.php

    r3395308 r3455079  
    11<?php
     2/**
     3 * Class Settings_Store
     4 *
     5 * @package formsbridge
     6 */
    27
    38namespace FORMS_BRIDGE;
  • forms-bridge/trunk/readme.txt

    r3451313 r3455079  
    11=== Forms Bridge - Infinite integrations ===
    22
    3 
    4 
    53Contributors: codeccoop
    6 
    74Tags: form integration, erp, crm, api integration, automation
    8 
    95Donate link: https://buymeacoffee.com/codeccoop
    10 
    116License: GPLv2 or later
    12 
    137License URI: http://www.gnu.org/licenses/gpl-2.0.html
    14 
    15 Stable Tag: 4.3.2
    16 
     8Stable Tag: 4.3.
    179Tested up to: 6.9
    1810
    19 
    20 
    2111Seamlessly connect WordPress forms to CRMs, ERPs, and APIs — no coding required. Automate data flow with field mappers, custom fields, and workflows.
    2212
    23 
    24 
    2513== Description ==
    2614
    27 
    28 
    2915**Struggling to connect your WordPress forms to your CRM, ERP, or other business tools?**
    3016
    31 
    32 
    3317Forms Bridge lets you automate data flow from WordPress forms to any API-powered system—without writing a single line of code.
    3418
    35 
    36 
    3719Whether you use Zoho, Odoo, Dolibarr, Zulip, or a custom backend, Forms Bridge makes it easy to map fields, add custom data, and set up workflows so your form submissions go exactly where you need them. **If it has an API, it can be bridged!**
    3820
    39 
    40 
    4121**Why use Forms Bridge**
    4222
    43 
    44 
    4523✅ No code required – Set up integrations with a user-friendly interface.
    46 
    4724✅ Works with your favorite form plugins – Contact Form 7, Gravity Forms, WPForms, Ninja Forms, WooCommerce, and Formidable Forms.
    48 
    4925✅ 20+ ready-to-use add-ons – Connect to Zoho, Odoo, Dolibarr, Google Sheets, Slack, Listmonk, and more.
    50 
    5126✅ Advanced data mapping – Rename, transform, and enrich form data before sending it.
    52 
    5327✅ Workflow automation – Pre-process submissions with custom jobs.
    54 
    5528✅ Reusable templates – Get started in minutes with pre-built blueprints.
    5629
    57 
    58 
    5930**Try Forms Bridge today and say goodbye to manual data entry!**
    6031
    61 
    62 
    6332== Form builders ==
    6433
    65 
    66 
    6734Form builders are well known plugins that add forms to WordPress. We do bridges, let them do the forms and then work together to make your business work with ease.
    6835
    69 
    70 
    7136Forms Bridge supports the following form builders:
    7237
    73 
    74 
    7538* [Contact Form 7](https://wordpress.org/plugins/contact-form-7/)
    76 
    7739* [Formidable Forms](https://wordpress.org/plugins/formidable/)
    78 
    7940* [GravityForms](https://www.gravityforms.com)
    80 
    8141* [WP Forms](https://wordpress.org/plugins/wpforms-lite/)
    82 
    8342* [Ninja Forms](https://wordpress.org/plugins/ninja-forms/)
    84 
    8543* [WooCommerce](https://wordpress.org/plugins/woocommerce)
    8644
    87 
    88 
    8945== Add-ons ==
    9046
    91 
    92 
    9347Forms Bridge comes with free add-ons. Each add-on add to the plugin new bridges to work with specific APIs, new workflow jobs and bridge templates.
    9448
    95 
    96 
    9749Forms Bridge has the following add-ons:
    9850
    99 
    100 
    10151**📊 CRM & Sales**
    10252
    103 
    104 
    10553* [Bigin](https://formsbridge.codeccoop.org/documentation/bigin/)
    106 
    10754* [SuiteCRM](https://formsbridge.codeccoop.org/documentation/suitecrm/)
    108 
    10955* [Vtiger](https://formsbridge.codeccoop.org/documentation/vtiger/)
    110 
    11156* [Zoho CRM](https://formsbridge.codeccoop.org/documentation/zoho-crm/)
    11257
    113 
    114 
    11558**📦 ERP & Accounting**
    11659
    117 
    118 
    11960* [Dolibarr](https://formsbridge.codeccoop.org/documentation/dolibarr/)
    120 
    12161* [FinanCoop](https://formsbridge.codeccoop.org/documentation/financoop/)
    122 
    12362* [Holded](https://formsbridge.codeccoop.org/documentation/holded/)
    124 
    12563* [Odoo](https://formsbridge.codeccoop.org/documentation/odoo/)
    12664
    127 
    128 
    12965**📧 Marketing & Email**
    13066
    131 
    132 
    13367* [Brevo](https://formsbridge.codeccoop.org/documentation/brevo/)
    134 
    13568* [Mailchimp](https://formsbridge.codeccoop.org/documentation/mailchimp/)
    136 
    13769* [Listmonk](https://formsbridge.codeccoop.org/documentation/listmonk/)
    13870
    139 
    140 
    14171**🗓️ Productivity**
    14272
    143 
    144 
    14573* [Airtable](https://formsbridge.codeccoop.org/documentation/airtable/)
    146 
    14774* [Google Calendar](https://formsbridge.codeccoop.org/documentation/google-calendar/)
    148 
    14975* [Google Sheets](https://formsbridge.codeccoop.org/documentation/google-sheets/)
    150 
    15176* [Grist](https://formsbridge.codeccoop.org/documentation/grist/)
    152 
    15377* [Nextcloud](https://formsbridge.codeccoop.org/documentation/nextcloud/)
    15478
    155 
    156 
    15779**📨 Messaging & Collaboration**
    15880
    159 
    160 
    16181* [Rocket.Chat](https://formsbridge.codeccoop.org/documentation/rocket-chat/)
    162 
    16382* [Slack](https://formsbridge.codeccoop.org/documentation/slack/)
    164 
    16583* [Zulip](https://formsbridge.codeccoop.org/documentation/zulip/)
    16684
    167 
    168 
    16985**Need a custom integration?**
    17086
    171 
    172 
    17387Connect to any custom API using standard HTTP methods and authentication using the abstract **REST API** add-on. Perfect for integrating with proprietary or less common systems.
    17488
    175 
    176 
    17789== Features ==
    17890
    179 
    180 
    18191**Bridges**
    182 
    18392Think of a bridge as a pipeline through which your form submissions data flows to your backend or service.
    18493
    185 
    186 
    18794**Backends**
    188 
    18995Think of it as a "connection profile" for your API. Save your API URL, headers, and credentials once, then reuse them across all your bridges. No need to re-enter details every time!
    19096
    191 
    192 
    19397**Credentials**
    194 
    19598Authenticate your HTTP requests using API keys, Basic Auth, Bearer Tokens, OAuth, RPC credentials and Digest Auth.
    19699
    197 
    198 
    199100**Custom fields & mappers**
    200 
    201101Add hidden data (like user IDs or product codes) and rename/transform fields to match your API’s requirements.
    202102
    203 
    204 
    205103**Workflows**
    206 
    207104Chain together jobs to pre-process data before it’s sent. Filter, validate, and enrich submissions automatically.
    208105
    209 
    210 
    211106**Templates**
    212 
    213107Use pre-built templates to integrate WooCommerce orders, CRM leads, or calendar events in minutes.
    214108
    215 
    216 
    217109**Debugging console**
    218 
    219110Monitor requests, responses, and errors in real time.
    220111
    221 
    222 
    223112== Links ==
    224113
    225 
    226 
    227114* [🌐 Official website](https://formsbridge.codeccoop.org/)
    228 
    229115* [📚 Documentation](https://formsbridge.codeccoop.org/documentation/)
    230 
    231116* [💻 GitHub](https://github.com/codeccoop/forms-bridge/)
    232 
    233117* [🏢 Còdec](https://www.codeccoop.org)
    234 
    235118* [⭐ Rate Forms Bridge](https://wordpress.org/plugins/forms-bridge/#reviews)
    236119
    237 
    238 
    239120== Frequently Asked Questions ==
    240121
    241 
    242 
    243122= Does Forms Bridge work with my form plugin? =
    244123
    245 
    246 
    247124Yes! We support Contact Form 7, Gravity Forms, WPForms, Ninja Forms, Formidable Forms, and WooCommerce. These are the most popular form builders in WordPress.
    248125
    249 
    250 
    251126At the same time, we are currently working on support for new WordPress form builders. Get in touch with us if you want a new form builder integration for Forms Bridge.
    252127
    253 
    254 
    255128= Do I need to know how to code? =
    256129
    257 
    258 
    259130Nope! Forms Bridge is designed to set up complex HTTP configurations and pipelines of data transformation without the need to write code.
    260131
    261 
    262 
    263132In addition, you can extend Forms Bridge with code using its hooks and PHP APIs.
    264133
    265 
    266 
    267134= Can I connect to my custom API? =
    268135
    269 
    270 
    271136Absolutely! Forms Bridge supports any HTTP API, whether it’s a cloud service or a self-hosted solution (like a Dockerized API on your VPS). If your API uses standard HTTP methods (GET, POST, PUT, etc.), Forms Bridge can connect to it.
    272137
    273 
    274 
    275138Maybe a little understanding about how HTTP and HTTP-like APIs works will be required to set up your custom integrations.
    276139
    277 
    278 
    279140= What if my API requires authentication? =
    280141
    281 
    282 
    283142Forms Bridge supports API keys, Basic Auth, Bearer Tokens, OAuth, RPC credentials, Digest Auth and custom headers.
    284143
    285 
    286 
    287144= Is there a free trial? =
    288145
    289 
    290 
    291146Forms Bridge, including all its add-ons, is free to use.
    292147
    293 
    294 
    295148= How can I get support? =
    296149
    297 
    298 
    299150You can get support from Còdec using the [Forms Bridge support forum](https://wordpress.org/support/plugin/forms-bridge/) for free. We aim to respond to all inquiries within 24-48 hours.
    300151
    301 
    302 
    303152== Screenshots ==
    304153
    305 
    306 
    3071541. Settings page – Configure global plugin options.
    308 
    3091552. Backends – Save and reuse API connection details.
    310 
    3111563. Bridges – Create pipelines for your form data.
    312 
    3131574. Custom fields – Add hidden data to your submissions.
    314 
    3151585. Field mappers – Rename and transform form fields.
    316 
    3171596. Workflows – Automate data processing with jobs.
    318 
    3191607. Job editor– Customize how data is prepared.
    320 
    3211618. Template wizard – Set up integrations in minutes.
    322 
    3231629. Debug console – Monitor and troubleshoot requests.
    324163
    325 
    326 
    327164== Changelog ==
    328165
    329 
     166= 4.3.3 =
     167feat: fallback openapi json static files
     168fix: nextcloud template endpoint field definition
     169fix: brevo default endpoints list
    330170
    331171= 4.3.2 =
    332 
    333172* feat: fetch endpoints in new bridge form
    334 
    335173* feat: api fields datalists
    336 
    337174* feat: api fields datalists
    338 
    339175* fix: workflow pipeline mutation updates
    340176
    341 
    342 
    343177= 4.3.1 =
    344 
    345178* feat: airtable add-on
    346 
    347179* feat: grist add-on
    348 
    349180* feat: dynamic form field templates for google sheets, airtable and nextcloud
    350 
    351181* feat: nextcloud get endpoints method
    352 
    353182* feat: rename bearer to oauth and new support for bearer tokens
    354 
    355183* feat: support for oauth pkce flow
    356 
    357184* fix: skip internal field attributes in wpcf7 form creation
    358185
    359 
    360 
    361186= 4.3.0 =
    362 
    363187* feat: form's bridge chain order
    364 
    365188* feat: bridge failure policy
    366 
    367189* feat: zoho and bigin add-on test cases
    368 
    369190* fix: inherit state between bridges with the same name
    370 
    371191* fix: xss vulnerability on financoop add-on shortcodes
    372 
    373192* fix: autoload option to false
    374 
    375193* fix: defer forms ajax loading
    376 
    377194* fix: brevo endpoint schema introspection
    378195
    379 
    380 
    381196= 4.2.5 =
    382 
    383197* feat: integrations pro support check and polyfills
    384 
    385198* feat: backends endpoints introspection
    386 
    387199* fix: use tel inputs for phone fields
    388200
    389 
    390 
    391201= 4.2.4 =
    392 
    393202* feat: formidable forms integration
    394 
    395203* feat: wpforms lite support
    396 
    397204* feat: dolibarr next code client api flag
    398 
    399205* feat: prettify json logs
    400206
    401 
    402 
    403207= 4.2.3 =
    404 
    405208* feat: tested up to 6.9
    406 
    407209* fix: zoho addons introspection
    408 
    409210* fix: cast double expansions
    410 
    411211* fix: expansion pointers to new attributes
    412 
    413212* fix: update bridge mutations on workflow updates
    414213
    415 
    416 
    417214= 4.2.2 =
    418 
    419215* feat: suitecrm addon
    420 
    421216* feat: vtiger addon
    422 
    423217* feat: google calendar addon
    424 
    425218* feat: woo chat templates
    426219
    427 
    428 
    429220= 4.2.1 =
    430 
    431221* fix: zoho owners by zuid
    432 
    433222* fix: dolibarr users by login
    434 
    435223* fix: wizard links to new windows
    436224
    437 
    438 
    439225= 4.2.0 =
    440 
    441226* feat: zulip addon
    442 
    443227* feat: slack addon
    444 
    445228* feat: rocketchat addon
    446 
    447229* feat: openapi explorer
    448 
    449230* feat: use openapi explorer on api introspection
    450 
    451231* feat: pretty json cast
    452232
    453 
    454 
    455233= 4.1.2 =
    456 
    457234* feat: increase logs coverage
    458 
    459235* feat: debug console follow logs
    460 
    461236* feat: template wizard wired invalidation on credential updates
    462 
    463237* feat: lazy loading of tag values
    464 
    465238* fix: credential authorization for non bearer credentials
    466 
    467239* fix: bigin bridge constructor inheritance
    468240
    469 
    470 
    471241= 4.1.1 =
    472 
    473242* feat: bearer credential authorization based on access tokens + expiration date
    474 
    475243* fix: gravityforms subfields serialization
    476 
    477244* fix: theme space jobs loading
    478 
    479245* fix: misleading nextcloud wizard fields descriptions
    480246
    481 
    482 
    483247= 4.1.0 =
    484 
    485248* feat: php unit testing
    486 
    487249* feat: wordpress conding standards
    488 
    489250* feat: http bridge refactor
    490 
    491251* feat: repository directory refactor
    492 
    493252* feat: test and lint ci jobs
    494 
    495253* feat: github actions workflows
    496254
    497 
    498 
    499255= 4.0.6 =
    500 
    501256* fix: field serialization based on field type
    502 
    503257* feat: add accpet-language http header on odoo's rpc api calls
    504 
    505258* feat: new odoo job position and helpdesk ticket templates
    506 
    507259* feat: new odoo workflow jobs
    508 
    509260* feat: include textarea to the standard field types
    510 
    511261= 4.0.5 =
    512 
    513262* fix: prepare mappers loop introduced in 4.0.4
    514263
    515 
    516 
    517264= 4.0.4 =
    518 
    519265* feat: add remuneration_type form field on financoop subscription request template
    520 
    521266* fix: minnor frontend fixes and improvements
    522 
    523267* fix: financoop shortcode, templates and jobs
    524 
    525268* fix: template config loading race conditions
    526269
    527 
    528 
    529270= 4.0.3 =
    530 
    531271* fix: load text domain warnings
    532272
    533 
    534 
    535273= 4.0.2 =
    536 
    537274* feat: mailchimp api url selector
    538275
    539 
    540 
    541276= 4.0.1 =
    542 
    543277* feat: rename form integrations to form builders
    544 
    545278* feat: oauth grant as GET requests
    546 
    547279* feat: dolibarr, odoo and holded sync products templates
    548 
    549280* feat: brevo woo orders template
    550 
    551281* fix: migrations enqueuement loop
    552282
    553 
    554 
    555283= 4.0.0 =
    556 
    557284* feat: Workflow jobs editor
    558 
    559285* feat: Nextcloud addon
    560 
    561286* fix: Edge case of mutations and fingers
    562 
    563287* feat: HTTP authentication
    564 
    565288* feat: Admin UI refactor
    566 
    567289* feat: Wipe config button
    568 
    569290* feat: Settings API refactor
    570 
    571291* feat: Zoho and Google Oauth web based credentials
    572 
    573292* feat: drop support for Google service credentials
    574 
    575293* feat: drop support for Zoho Self Client credentials
    576294
    577 
    578 
    579295= 3.5.4 =
    580 
    581296* fix: use conditional mappers on stringify attachments
    582 
    583297* fix: cast value type for join mutations
    584298
    585 
    586 
    587299= 3.5.3 =
    588 
    589300* feat: nename gsheet default backend
    590 
    591301* fix: bridge request filter callback removal
    592302
    593 
    594 
    595303= 3.5.2 =
    596 
    597304* feat: new google sheets woocomerce orders template
    598 
    599305* feat: disable default payload prune for gsheet bridges
    600 
    601306* feat: update gsheet composer dependencies
    602 
    603307* fix: remove php warnings on zoho and listmonk addons
    604308
    605 
    606 
    607309= 3.5.1 =
    608 
    609310* feat: improve dolibarr next code and product search api calls
    610 
    611311* feat: add is_bridged woocommerce order meta data
    612 
    613312* feat: new validate order job and template for the dolibarr addon
    614 
    615313* feat: new delivered order template for the odoo addon
    616 
    617314* feat: changes on the holded woocommerce template
    618315
    619 
    620 
    621316= 3.5.0 =
    622 
    623317* fix: woocommerce payload schema
    624 
    625318* feat: woocommerce bridge templates support
    626 
    627319* feat: woocommerce templates for odoo, dolibarr, holded, bigin, brevo, mailchimp and zoho
    628 
    629320* feat: jon finger expansions
    630 
    631321* feat: conditional json finger pointers
    632 
    633322* feat: improvements on the workflows panel UI
    634 
    635323* feat: backend and bridges json exports
    636324
    637 
    638 
    639325= 3.4.3 =
    640 
    641326* feat: bridge template descriptions
    642 
    643327* feat: listmonk skip subscription job
    644328
    645 
    646 
    647329= 3.4.2 =
    648 
    649330* fix: holded appointments template jobs
    650 
    651331* fix: typos from odoo workflow job descriptions
    652 
    653332* feat: add new chapters to the plugin's readme
    654 
    655333* feat: settings sanitization with defaults recovery
    656334
    657 
    658 
    659335= 3.4.1 =
    660 
    661336* feat: holded quotation templates
    662 
    663337* feat: holded API introspection based on swagger data
    664 
    665338* fix: bridge api schema invalidation
    666 
    667339* feat: api fields button with disabled state
    668340
    669 
    670 
    671341= 3.4.0 =
    672 
    673342* feat: odoo quotation templates
    674 
    675343* feat: dolibarr quotation templates
    676 
    677344* feat: country id odoo workflow job
    678 
    679345* feat: gmt date tags
    680 
    681346* feat: addons data autoload
    682 
    683347* feat: odoo state id job
    684 
    685348* feat: skip email list subscription jobs
    686 
    687349* fix: firefox backend state updates on firefox
    688350
    689 
    690 
    691351= 3.3.5 =
    692 
    693352* feat: support for ninja file fields and conditionals
    694353
    695 
    696 
    697354= 3.3.4 =
    698 
    699355* fix: does not skip empty array submissions on submission filter
    700 
    701356* feat: remove gf private uploads module
    702 
    703357* fix: scroll to bottom on mutations/custom fields tables
    704358
    705 
    706 
    707359= 3.3.3 =
    708 
    709360* feat: remove minLength constraint from bridge schema
    710 
    711361* feat: set null value on mappers with nowhere jsonfinger pointers
    712362
    713 
    714 
    715363= 3.3.2 =
    716 
    717364* feat: update plugin urls and readme
    718 
    719365* feat: remote assets from gitlab
    720 
    721366* fix: mailchimp template wizard
    722 
    723367* feat: update credits, donation link and screenshots
    724368
    725 
    726 
    727369= 3.3.1 =
    728 
    729370* fix: odoo api function bridge patches
    730 
    731371* feat: plugin screenshots
    732 
    733372* feat: update readme and plugin official url
    734373
    735 
    736 
    737374= 3.3.0 =
    738 
    739375* feat: introspection api
    740 
Note: See TracChangeset for help on using the changeset viewer.