
{"id":12839,"date":"2026-03-13T10:27:40","date_gmt":"2026-03-13T10:27:40","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=12839"},"modified":"2026-03-13T10:43:26","modified_gmt":"2026-03-13T10:43:26","slug":"epon-manager-system-architecture","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/","title":{"rendered":"EPON Manager &#8211; System Architecture"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">High-Level Architecture<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-SystemContext\">System Context<\/h3>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph TB\n    subgraph RDK\n        User[RDK Components\/Users]\n        WM[WanManager]\n        T2[Telemetry System ]\n    end\n    \n    subgraph RdkEponManager\n        EPM[EPON Manager]\n    end\n    \n    HAL[EPON HAL]\n    HW[EPON ONU Hardware]\n    \n    User &lt;-->|TR-181 Get\/Set| EPM\n    WM &lt;-->|PHY Status Updates| EPM\n    T2 &lt;-->|Statistics\/Events| EPM\n    EPM &lt;-->|HAL API Calls| HAL\n    HAL &lt;-->|Hardware Control| HW\n    \n    style EPM fill:#4A90E2,stroke:#2E5C8A,color:#fff\n    style HAL fill:#50C878,stroke:#2E7D4E,color:#fff\n    style HW fill:#FF6B6B,stroke:#C92A2A,color:#fff<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-ComponentArchitecture\">Component Architecture<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-BlockDiagram\">Block Diagram<\/h3>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph TB\n    subgraph RdkEponManager\n        subgraph Support[\"Support Modules\"]\n            Logger[Logger&lt;br\/>Module]\n            Telemetry[Telemetry&lt;br\/>Module]\n            RBus[RBus\/DBus&lt;br\/>Thread]\n        end\n        \n        Controller[EPON Controller&lt;br\/>Main Thread]\n        \n        subgraph Workers[\"Worker Threads &amp; Storage\"]\n            EventListener[HAL Event&lt;br\/>Listener Thread]\n            StatsPoller[Stats Polling&lt;br\/>Thread]\n            HALWrapper[HAL Wrapper&lt;br\/>with Cache]\n            EventQ[Events&lt;br\/>Queue]\n        end\n        \n        Support --- Controller\n        Controller --- Workers\n    end\n    \n    subgraph EPONHAL[\"EPON HAL\"]\n        StatsAPI[Stats&lt;br\/>API]\n        CallbackReg[Callback&lt;br\/>Registration]\n        InterfaceAPI[Interface&lt;br\/>List API]\n    end\n    \n    HW[Hardware&lt;br\/>EPON ONU]\n    WanMgr[WanManager&lt;br\/>EPON PHY Status&lt;br\/>Virtual Interface List]\n    \n    Controller &lt;--> EPONHAL\n    Controller -->|Register Callbacks| CallbackReg\n    CallbackReg -->|ONU Status Events| EventQ\n    CallbackReg -->|Interface Status Events| EventQ\n    CallbackReg -->|Interface Alarm Events| EventQ\n    EventListener -->|Poll Events| EventQ\n    StatsPoller -->|Query Stats| HALWrapper\n    HALWrapper -->|HAL Calls| StatsAPI\n    EPONHAL &lt;--> HW\n    RBus -.->|Updates via RBus| WanMgr\n    \n    style RdkEponManager fill:#E3F2FD,stroke:#1976D2,stroke-width:3px\n    style Support fill:#FFF3E0,stroke:#F57C00\n    style Workers fill:#F3E5F5,stroke:#7B1FA2\n    style EPONHAL fill:#E8F5E9,stroke:#388E3C\n    style Controller fill:#4A90E2,stroke:#2E5C8A,color:#fff\n    style HW fill:#FFEBEE,stroke:#C62828\n    style HALWrapper fill:#FFD700,stroke:#B8860B<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-C4ModelDiagrams\">C4 Model Diagrams<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-Level1:SystemContext\">Level 1: System Context<\/h3>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph TB\n    subgraph External Systems\n        User[RDK Components&lt;br\/>Web UI, CLI, Other Services]\n        WanMgr[WanManager]\n        T2[T2 Telemetry]\n    end\n    \n    EPONMgr[EPON Manager&lt;br\/>Manages EPON Configuration&lt;br\/>and Status]\n    \n    subgraph Hardware Layer\n        HAL[EPON HAL]\n        ONU[EPON ONU&lt;br\/>Hardware]\n    end\n    \n    User -->|TR-181 Get\/Set&lt;br\/>via RBus| EPONMgr\n    EPONMgr -->|Link Status&lt;br\/>Interface Updates| WanMgr\n    EPONMgr -->|Metrics &amp; Events| T2\n    EPONMgr &lt;-->|HAL API| HAL\n    HAL &lt;-->|Driver Calls| ONU\n    \n    style EPONMgr fill:#1168bd,stroke:#0b4884,color:#ffffff\n    style HAL fill:#438dd5,stroke:#2e6295,color:#ffffff\n    style ONU fill:#85bbf0,stroke:#5d8ab8,color:#000000<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-Level2:ContainerDiagram\">Level 2: Container Diagram<\/h3>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph TB\n    subgraph RDK\n        User[RDK Components]\n        WanMgr[WanManager]\n        T2[T2 System]\n    end\n    HAL[EPON HAL]\n    \n    subgraph RdkEponManager Process\n        RBusThread[RBus Thread&lt;br\/>TR-181 Handler]\n        Logger[Logger Module&lt;br\/>RDK Logger Wrapper]\n        Controller[EPON Controller&lt;br\/>Main Thread]\n        EventListener[Event Listener&lt;br\/>HAL Event Handler]\n        StatsPoller[Stats Poller&lt;br\/>Harvester]\n        Telemetry[Telemetry Module&lt;br\/>T2 Wrapper]\n        HALWrapper[HAL Wrapper + Cache]\n    end\n    \n    User -->|RBus Messages| RBusThread\n    RBusThread -->|Get\/Set Requests| Controller\n    RBusThread -->|Read Cache| HALWrapper\n    WanMgr &lt;-->|Notify| RBusThread\n    \n    Controller -->|Init\/Control| EventListener\n    Controller -->|Init\/Control| StatsPoller\n    Controller -->|HAL Calls| HAL\n    \n    EventListener &lt;-->|Receive Events| HAL\n    EventListener -->|Update Status| RBusThread\n    \n    StatsPoller -->|Poll Stats| HALWrapper\n    Telemetry -->|Report| StatsPoller\n    \n    T2 -->|Send Events| Telemetry\n    \n    HALWrapper -->|Forward Calls| HAL\n    \n    Controller -.->|Log| Logger\n    RBusThread -.->|Log| Logger\n    EventListener -.->|Log| Logger\n    StatsPoller -.->|Log| Logger\n    \n    style Controller fill:#1168bd,stroke:#0b4884,color:#ffffff\n    style RBusThread fill:#438dd5,stroke:#2e6295,color:#ffffff\n    style EventListener fill:#438dd5,stroke:#2e6295,color:#ffffff\n    style StatsPoller fill:#438dd5,stroke:#2e6295,color:#ffffff\n    style HALWrapper fill:#FFD700,stroke:#B8860B,color:#000000\n    style Telemetry fill:#438dd5,stroke:#2e6295,color:#ffffff\n    style Logger fill:#F5F5F5,stroke:#999999,stroke-dasharray: 1 1<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-\">\u00a0\u00a0<br>Controller State Machine<\/h3>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">stateDiagram-v2\n    [*] --> Uninitialized\n    Uninitialized --> Initializing: Start\n    Initializing --> Ready: Init Success\n    Initializing --> Error: Init Failed\n    Ready --> Running: All Threads Started\n    Running --> Ready: Pause\n    Running --> Shutdown: Stop Request\n    Error --> Uninitialized: Reset\n    Shutdown --> [*]<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-TR-181DataModel\">TR-181 Data Model<\/h2>\n\n\n\n<p>The EPON Manager implements TR-181 Device.Optical.Interface data model parameters via RBus\/DBus. See the HAL Proposal document for detailed parameter mappings.<\/p>\n\n\n\n<p><strong>Key Objects:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Device.Optical.Interface.{i}.Status<\/code>&nbsp;&#8211; Mapped from ONU status callback<\/li>\n\n\n\n<li><code>Device.Optical.Interface.{i}.Name<\/code>&nbsp;&#8211; Mapped from interface status callback<\/li>\n\n\n\n<li><code>Device.Optical.Interface.{i}.Stats<\/code>&nbsp;&#8211; Queried via HAL stats APIs<\/li>\n\n\n\n<li><code>Device.Optical.Interface.{i}.X_RDK_*<\/code>&nbsp;&#8211; Extended EPON-specific parameters<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-SystemLayers\">System Layers<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Layer<\/td><td>Components<\/td><td>Responsibility<\/td><\/tr><tr><td><strong>Application Layer<\/strong><\/td><td>RDK Components, WebUI, CLI<\/td><td>User interaction and high-level control<\/td><\/tr><tr><td><strong>Service Layer<\/strong><\/td><td>WanManager, Telemetry (T2)<\/td><td>System services and coordination<\/td><\/tr><tr><td><strong>Manager Layer<\/strong><\/td><td>RdkEponManager<\/td><td>EPON-specific management and orchestration<\/td><\/tr><tr><td><strong>Abstraction Layer<\/strong><\/td><td>EPON HAL<\/td><td>Hardware abstraction and driver interface<\/td><\/tr><tr><td><strong>Hardware Layer<\/strong><\/td><td>EPON ONU<\/td><td>Physical EPON hardware<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-CommunicationPatterns\">Communication Patterns<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-BusCommunication(RBus)\">Bus Communication (RBus)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pattern<\/strong>: Request-Response, Publish-Subscribe<\/li>\n\n\n\n<li><strong>Protocol<\/strong>: RBus\/DBus<\/li>\n\n\n\n<li><strong>Usage<\/strong>: TR-181 GET\/SET, Event notifications<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-EventQueue\">Event Queue<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pattern<\/strong>: Producer-Consumer<\/li>\n\n\n\n<li><strong>Implementation<\/strong>: Thread-safe queue<\/li>\n\n\n\n<li><strong>Usage<\/strong>: HAL events to Event Listener<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"EPONManagerSystemArchitecture-SharedMemory\">Shared Memory<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pattern<\/strong>: Cache with TTL<\/li>\n\n\n\n<li><strong>Synchronization<\/strong>: Mutex-protected<\/li>\n\n\n\n<li><strong>Usage<\/strong>: Statistics caching<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>High-Level Architecture System Context Component Architecture Block Diagram C4 Model Diagrams Level 1: System Context [&hellip;]<\/p>\n","protected":false},"author":659,"featured_media":0,"parent":12819,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-12839","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>EPON Manager - System Architecture - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EPON Manager - System Architecture - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"High-Level Architecture System Context Component Architecture Block Diagram C4 Model Diagrams Level 1: System Context [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-13T10:43:26+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/\",\"name\":\"EPON Manager - System Architecture - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2026-03-13T10:27:40+00:00\",\"dateModified\":\"2026-03-13T10:43:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Broadband\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"EPON Manager\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"EPON Manager &#8211; System Architecture\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EPON Manager - System Architecture - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/","og_locale":"en_US","og_type":"article","og_title":"EPON Manager - System Architecture - RDK Documentation Portal | Documentation","og_description":"High-Level Architecture System Context Component Architecture Block Diagram C4 Model Diagrams Level 1: System Context [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-03-13T10:43:26+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/","name":"EPON Manager - System Architecture - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2026-03-13T10:27:40+00:00","dateModified":"2026-03-13T10:43:26+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/epon-manager-system-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Broadband","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"EPON Manager","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/epon-manager\/"},{"@type":"ListItem","position":6,"name":"EPON Manager &#8211; System Architecture"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/659"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=12839"}],"version-history":[{"count":2,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12839\/revisions"}],"predecessor-version":[{"id":12841,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12839\/revisions\/12841"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12819"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=12839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}