PageSourceSearch

https://freeflarum.com/extensions

html freeflarum.com collected 2026-09-24 09:09:30 UTC 28,731 bytes, 337 lines download raw bytes

1<!doctype html>
2
3
4
5
6<html lang="en" class="dark">
7<head>
8    <title>FreeFlarum | Extensions</title>
9
10    <meta charset="utf-8"/>
11    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
12    <meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1"/>
13    <meta name="description" content="Create your own Flarum forum in under 1 minute with 1-click installation!">
14    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
15
16    
17    <link rel="icon" type="image/png" href="/favicon.png">
18    <link rel="apple-touch-icon" sizes="180x180" href="/favicon.png">
19    <link rel="mask-icon" href="/favicon.png" color="#000000">
20
21    
22    <meta name="robots" content="index, follow">
23    <meta name="googlebot" content="index, follow">
24
25    
26    <link rel="stylesheet" type="text/css" href="/css/freeflarum.css"/>
27    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/hint.css/2.7.0/hint.min.css" integrity="sha512-gnj0WGxmbeTgYXck9CyFjrdkEFcZE4xwnJb/nG3bcl5OlWHJ9ixRkJK0MDPtCytnO3IBIh0Omqawv0UPpl0LoA==" crossorigin="anonymous" referrerpolicy="no-referrer"/>
28
29    
30    
30<script src="https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.10.3/cdn.min.js" integrity="sha512-P0Ms+SM3w8aSbPa5U/nFoprxlUzG2FSz9h/A+2xhhE1hcH6RmGYK3dImFCvcSYuioM3UbbAtMbAopAuHLr94pA==" crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
30
31    
31<script src="//d3plfjw9uod7ab.cloudfront.net/9e9525f2-1f29-42cf-ae6d-a0c7b4a98c04.js" type="text/javascript"></script>
31
32</head>
33
34<body class="font-sans bg-gray-100 height-screen dark:bg-gray-800">
35    <div id="content">
36        
37        <main class="font-medium text-gray-800 bg-gray-100 dark:bg-gray-900 dark:text-gray-200">
38            <header x-data="{ mobile_menu_open : false }" class="relative flex flex-row flex-wrap justify-between px-6 py-6 md:items-center md:space-x-4 bg-gradient-to-b from-gray-100 to-white dark:from-gray-800 dark:to-gray-900">
39                <div class="flex flex-row">
40                    <a class="self-center" href="/">
41                        <span class="sr-only">FreeFlarum.com</span>
42                        <img src="/logo.svg" width="139" height="32" class="w-auto h-8" alt="FreeFlarum Logo">
43                    </a>
44                </div>
45
46                <button x-on:click.prevent="mobile_menu_open = !mobile_menu_open;" x-on:click.outside="mobile_menu_open = false;" class="self-center inline-block w-8 h-8 p-1 text-gray-600 bg-gray-200 focus:outline-none md:hidden dark:bg-gray-800 dark:text-gray-400 hover:text-gray-500" aria-label="Open Mobile Menu">
47                    <svg fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" clip-rule="evenodd"></path></svg>
48                </button>
49
50                <nav x-cloak class="absolute left-0 z-50 flex-col w-full px-6 py-4 mt-4 font-semibold rounded-lg shadow-md md:relative top-16 md:top-0 md:flex md:flex-row md:space-x-6 md:w-auto md:rounded-none md:shadow-none md:bg-transparent md:p-0" x-bind:class="mobile_menu_open ? 'flex bg-gray-100 dark:bg-gray-900' : 'hidden'">
51                  
52                    <a href="/" id="nav_signup" class="flex py-2 space-x-2 items-center hover:text-yellow-500 ">
53                        <svg class="icon icon-user text-yellow-500"><use xlink:href="#icon-user"></use></svg>
54                      <span>Sign Up</span>
55                    </a>
56                  
57                    <a href="/extensions" id="nav_extensions" class="flex py-2 space-x-2 items-center hover:text-yellow-500 text-yellow-500">
58                        <svg class="icon icon-puzzle-piece text-yellow-500"><use xlink:href="#icon-puzzle-piece"></use></svg>
59                      <span>Extensions</span>
60                    </a>
61                  
62                    <a href="https://docs.freeflarum.com/" id="nav_docs" class="flex py-2 space-x-2 items-center hover:text-yellow-500 ">
63                        <svg class="icon icon-book text-yellow-500"><use xlink:href="#icon-book"></use></svg>
64                      <span>Docs</span>
65                    </a>
66                  
67                    <a href="/settings/login" id="nav_settings" class="flex py-2 space-x-2 items-center hover:text-yellow-500 ">
68                        <svg class="icon icon-cog text-yellow-500"><use xlink:href="#icon-cog"></use></svg>
69                      <span>Settings</span>
70                    </a>
71                  
72                    <a href="/support" id="nav_support" class="flex py-2 space-x-2 items-center hover:text-yellow-500 ">
73                        <svg class="icon icon-life-bouy text-yellow-500"><use xlink:href="#icon-life-bouy"></use></svg>
74                      <span>Support</span>
75                    </a>
76                  
77                </nav>
78            </header>
79
80            <div id="page-content">
81                
82<div x-data="{ available_extensions: [] }" x-init="available_extensions = await (await (await fetch('https://api.freeflarum.com/extensions')).json())['data']" class="mx-2 my-6 md:mx-6 lg:mx-12">
83    <h1 class="py-4 text-3xl font-extrabold text-center text-yellow-500">Extension list</h1>
84    <p class="mb-6 text-center text-gray-700 dark:text-gray-300">There are currently <b class="text-gray-700 dark:text-gray-300" x-text="Object.values(available_extensions).flat().length || '...'">...</b> extensions available at FreeFlarum. Missing something? <a class="text-yellow-500 hover:text-yellow-600 dark:hover:text-yellow-400 transition-color duration-500 underline " href="https://support.freeflarum.com/d/71" >Request an extension</a>.</p>
85    
86    <template x-if="available_extensions.length < 1">
87        <p class="py-4 text-center text-gray-500">Loading extensions...</p>
88    </template>
89
90    <template x-for="[category, extensions] in Object.entries(available_extensions)">
91        <div>
92            <h2 class="p-4 text-xl font-bold" x-text="category"></h2>
93            <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3">
94                <template x-for="extension in extensions" x-key="extension['id']">
95                    <a x-bind:href="extension['url']" class="flex flex-row p-4 m-4 text-gray-800 rounded-lg dark:text-gray-200 bg-gradient-to-tr from-gray-100 to-gray-300 dark:from-gray-900 dark:to-gray-700 hover:to-gray-400 dark:hover:to-gray-600">
96                        <div class="flex flex-row items-center justify-center w-16 h-full mx-4">
97                            <template x-if="extension['icon_name'] === null">
98                                <img width="64" height="64" x-bind:src="`https://api.freeflarum.com/extensions/icon?extension_
98id=${extension['id']}`" x-on:error="extension['icon_name'] = 'fas fa-question-circle'">
99                            </template>
100
101                            <template x-if="extension['icon_name'] !== null">
102                                <i x-bind:class="`${extension['icon_name']} fa-4x`">
103                            </template>
104                        </div>
105
106                        <div class="p-4">
107                            <div class="flex flex-col mb-4">
108                                <h3 x-text="extension['title']" class="text-lg font-semibold text-yellow-500"></h3>
109
110                                <template x-if="extension['author'] !== 'Unknown' && extension['author'] !== 'Your Name'">
111                                    <span class="text-xs"><b>By:</b> <span x-text="extension['author']"></span></span>
112                                </template>
113                            </div>
114
115                            <template x-if="extension['description'] !== 'No description.'">
116                                <p x-text="extension['description']" class="font-light text-gray-700 dark:text-gray-300"></p>
117                            </template>
118                        </div>
119                    </a>
120                </template>
121            </div>
122        </div>
123    </template>
124
125    
125<script type="text/javascript" src="https://kit.fontawesome.com/0f3f9f2c7f.js" crossorigin="anonymous" referrerpolicy="no-referrer" async defer></script>
125
126</div>
127
128            </div>
129
130              
131
132              <footer class="relative bottom-0 w-full py-12 mt-24 text-gray-500 bg-gradient-to-b from-white to-gray-100 dark:from-gray-900 dark:to-gray-800 xl:pb-24">
133                <div class="grid max-w-screen-xl grid-cols-2 gap-6 px-8 mx-auto md:grid-cols-4 lg:gap-x-8">
134                    
135                        <div>
136                            <h1 class="text-xl font-bold text-yellow-500">Flarum</h1>
137                            <nav class="mt-4">
138                                <ul class="space-y-2">
139                                    
140                                    <li>
141                                        <a href="https://flarum.org" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Flarum.org</a>
142                                    </li>
143                                    
144                                    <li>
145                                        <a href="https://discuss.flarum.org" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Discuss</a>
146                                    </li>
147                                    
148                                    <li>
149                                        <a href="https://extiverse.com" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Extiverse</a>
150                                    </li>
151                                    
152                                </ul>
153                            </nav>
154                        </div>
155                    
156                        <div>
157                            <h1 class="text-xl font-bold text-yellow-500">FreeFlarum</h1>
158                            <nav class="mt-4">
159                                <ul class="space-y-2">
160                                    
161                                    <li>
162                                        <a href="/discuss" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Support Forum</a>
163                                    </li>
164                                    
165                                    <li>
166                                        <a href="/github" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">GitHub</a>
167                                    </li>
168                                    
169                                    <li>
170                                        <a href="/donate" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Donate</a>
171                                    </li>
172                                    
173                                </ul>
174                            </nav>
175                        </div>
176                    
177                        <div>
178                            <h1 class="text-xl font-bold text-yellow-500">About</h1>
179                            <nav class="mt-4">
180                                <ul class="space-y-2">
181                                    
182                                    <li>
183                                        <a href="https://docs.freeflarum.com/en/about" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">About FreeFlarum</a>
184                                    </li>
185                                    
186                                    <li>
187                                        <a href="https://status.freeflarum.com" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Status</a>
188                                    </li>
189                                    
190                                    <li>
191                                        <a href="https://docs.freeflarum.com/en/faq" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">FaQ</a>
192                                    </li>
193                                    
194                                </ul>
195                            </nav>
196                        </div>
197                    
198                        <div>
199                            <h1 class="text-xl font-bold text-yellow-500">Legal</h1>
200                            <nav class="mt-4">
201                                <ul class="space-y-2">
202                                    
203                                    <li>
204                                        <a href="/privacy" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Privacy Policy</a>
205                                    </li>
206                                    
207                                    <li>
208                                        <a href="/terms" class="text-base text-gray-900 dark:text-gray-100 hover:text-gray-500">Terms of Service</a>
209                                    </li>
210                                    
211                                </ul>
212                            </nav>
213                        </div>
214                    
215                </div>
216
217                <div class="flex flex-col items-center justify-center max-w-screen-xl px-8 mx-auto mt-16 space-y-4 md:flex-row lg:mt-20">
218                    <div class="flex flex-col space-y-4 text-sm text-center">
219                        <div>
220                            <p>
220Copyright &copy; 2017 &dash; <span x-data x-text="new Date().getFullYear()"></span> FreeFlarum.</p>
221                            <p class="italic">FreeFlarum is a community provided service and is not affiliated with Flarum, its project or the Flarum Foundation.</p>
222                        </div>
223
224                        <div class="flex items-center justify-center gap-4 my-4">
225                            <p class="flex flex-row items-center justify-center gap-2 text-center text-yellow-500">Made with <span class="text-3xl text-red-500">♥</span> in <span title="Slovakia">🇸🇰</span></p>
226                            
227                            <button 
228                                x-data="{ darkMode: localStorage.getItem('darkMode') === 'true' || localStorage.getItem('darkMode') === null }"
229                                x-init="$watch('darkMode', val => { localStorage.setItem('darkMode', val); document.documentElement.classList.toggle('dark', val) })"
230                                @click="darkMode = !darkMode"
231                                class="flex items-center justify-center w-10 h-10 text-gray-600 bg-gray-200 rounded-full hover:bg-gray-300 dark:bg-gray-700 dark:text-gray-300 dark:hover:bg-gray-600 transition-colors duration-200"
232                                :title="darkMode ? 'Switch to light mode' : 'Switch to dark mode'"
233                            >
234                                <svg x-show="!darkMode" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
235                                    <path fill-rule="evenodd" d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" clip-rule="evenodd"></path>
236                                </svg>
237                                <svg x-show="darkMode" class="w-5 h-5" fill="black" viewBox="0 0 20 20">
238                                    <path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path>
239                                </svg>
240                            </button>
241                        </div>
242                    </div>
243                </div>
244              </footer>
245            </main>
246        </div>
247    </div>
248
249
250    <div id="scripts">
251        
251<script type="text/javascript">
252            (function() {
253                const darkMode = localStorage.getItem('darkMode');
254                if (darkMode === 'false') {
255                    document.documentElement.classList.remove('dark');
256                } else if (darkMode === 'true' || darkMode === null) {
257                    document.documentElement.classList.add('dark');
258                }
259            })();
260
261            globalThis.window.document.addEventListener('alpine:init', () => {
262                Alpine.store('currentForum', {
263                    async init() {
264                        this.data = await this.getForumData();
265
266                        if (this.data !== null) {
267                            globalThis.window.document.getElementById("nav_settings").href = '/settings/overview';
268                        };
269                    },
270
271                    async getForumData() {
272                        response = await fetch(`https://api.freeflarum.com/settings/`, { credentials: 'include' });
273                        response_json = await response.json();
274                        data = await response_json['data'];
275
276                        return data !== undefined ? data : null
277                    }
278                })
279            })
280        </script>
280
281    </div>
282
283    <div>
284    <svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
285    <defs>
286    <symbol id="icon-keyboard_arrow_right" viewBox="0 0 24 24">
287    <path d="M8.578 16.594l4.594-4.594-4.594-4.594 1.406-1.406 6 6-6 6z"></path>
288    </symbol>
289    <symbol id="icon-keyboard_arrow_left" viewBox="0 0 24 24">
290    <path d="M15.422 16.594l-1.406 1.406-6-6 6-6 1.406 1.406-4.594 4.594z"></path>
291    </symbol>
292    <symbol id="icon-file-text" viewBox="0 0 32 32">
293    <path d="M27 0h-24c-1.65 0-3 1.35-3 3v26c0 1.65 1.35 3 3 3h24c1.65 0 3-1.35 3-3v-26c0-1.65-1.35-3-3-3zM26 28h-22v-24h22v24zM8 14h14v2h-14zM8 18h14v2h-14zM8 22h14v2h-14zM8 10h14v2h-14z"></path>
294    </symbol>
295    <symbol id="icon-user" viewBox="0 0 32 32">
296    <path d="M18 22.082v-1.649c2.203-1.241 4-4.337 4-7.432 0-4.971 0-9-6-9s-6 4.029-6 9c0 3.096 1.797 6.191 4 7.432v1.649c-6.784 0.555-12 3.888-12 7.918h28c0-4.030-5.216-7.364-12-7.918z"></path>
297    </symbol>
298    <symbol id="icon-paper-plane" viewBox="0 0 28 28">
299    <path d="M27.563 0.172c0.328 0.234 0.484 0.609 0.422 1l-4 24c-0.047 0.297-0.234 0.547-0.5 0.703-0.141 0.078-0.313 0.125-0.484 0.125-0.125 0-0.25-0.031-0.375-0.078l-7.078-2.891-3.781 4.609c-0.187 0.234-0.469 0.359-0.766 0.359-0.109 0-0.234-0.016-0.344-0.063-0.391-0.141-0.656-0.516-0.656-0.938v-5.453l13.5-16.547-16.703 14.453-6.172-2.531c-0.359-0.141-0.594-0.469-0.625-0.859-0.016-0.375 0.172-0.734 0.5-0.922l26-15c0.156-0.094 0.328-0.141 0.5-0.141 0.203 0 0.406 0.063 0.562 0.172z"></path>
300    </symbol>
301    <symbol id="icon-envelope" viewBox="0 0 28 28">
302    <path d="M28 11.094v12.406c0 1.375-1.125 2.5-2.5 2.5h-23c-1.375 0-2.5-1.125-2.5-2.5v-12.406c0.469 0.516 1 0.969 1.578 1.359 2.594 1.766 5.219 3.531 7.766 5.391 1.313 0.969 2.938 2.156 4.641 2.156h0.031c1.703 0 3.328-1.188 4.641-2.156 2.547-1.844 5.172-3.625 7.781-5.391 0.562-0.391 1.094-0.844 1.563-1.359zM28 6.5c0 1.75-1.297 3.328-2.672 4.281-2.438 1.687-4.891 3.375-7.313 5.078-1.016 0.703-2.734 2.141-4 2.141h-0.031c-1.266 0-2.984-1.437-4-2.141-2.422-1.703-4.875-3.391-7.297-5.078-1.109-0.75-2.688-2.516-2.688-3.938 0-1.531 0.828-2.844 2.5-2.844h23c1.359 0 2.5 1.125 2.5 2.5z"></path>
303    </symbol>
304    <symbol id="icon-trash" viewBox="0 0 22 28">
305    <path d="M8 21.5v-11c0-0.281-0.219-0.5-0.5-0.5h-1c-0.281 0-0.5 0.219-0.5 0.5v11c0 0.281 0.219 0.5 0.5 0.5h1c0.281 0 0.5-0.219 0.5-0.5zM12 21.5v-11c0-0.281-0.219-0.5-0.5-0.5h-1c-0.281 0-0.5 0.219-0.5 0.5v11c0 0.281 0.219 0.5 0.5 0.5h1c0.281 0 0.5-0.219 0.5-0.5zM16 21.5v-11c0-0.281-0.219-0.5-0.5-0.5h-1c-0.281 0-0.5 0.219-0.5 0.5v11c0 0.281 0.219 0.5 0.5 0.5h1c0.281 0 0.5-0.219 0.5-0.5zM7.5 6h7l-0.75-1.828c-0.047-0.063-0.187-0.156-0.266-0.172h-4.953c-0.094 0.016-0.219 0.109-0.266 0.172zM22 6.5v1c0 0.281-0.219 0.5-0.5 0.5h-1.5v14.812c0 1.719-1.125 3.187-2.5 3.187h-13c-1.375 0-2.5-1.406-2.5-3.125v-14.875h-1.5c-0.281 0-0.5-0.219-0.5-0.5v-1c0-0.281 0.219-0.5 0.5-0.5h4.828l1.094-2.609c0.313-0.766 1.25-1.391 2.078-1.391h5c0.828 0 1.766 0.625 2.078 1.391l1.094 2.609h4.828c0.281 0 0.5 0.219 0.5 0.5z"></path>
306    </symbol>
307    <symbol id="icon-sign-out" viewBox="0 0 25 28">
308    <path d="M10 22.5c0 0.438 0.203 1.5-0.5 1.5h-5c-2.484 0-4.5-2.016-4.5-4.5v-11c0-2.484 2.016-4.5 4.5-4.5h5c0.266 0 0.5 0.234 0.5 0.5 0 0.438 0.203 1.5-0.5 1.5h-5c-1.375 0-2.5 1.125-2.5 2.5v11c0 1.375 1.125 2.5 2.5 2.5h4.5c0.391 0 1-0.078 1 0.5zM24.5 14c0 0.266-0.109 0.516-0.297 0.703l-8.5 8.5c-0.187 0.187-0.438 0.297-0.703 0.297-0.547 0-1-0.453-1-1v-4.5h-7c-0.547 0-1-0.453-1-1v-6c0-0.547 0.453-1 1-1h7v-4.5c0-0.547 0.453-1 1-1 0.266 0 0.516 0.109 0.703 0.297l8.5 8.5c0.187 0.187 0.297 0.438 0.297 0.703z"></path>
309    </symbol>
310    <symbol id="icon-pencil-square" viewBox="0 0 24 28">
311    <path d="M6.312 17.313l2.375 2.375-0.812 0.812h-0.875v-1.5h-1.5v-0.875zM12.781 11.219c0.125 0.109 0.094 0.328-0.047 0.469l-4.547 4.547c-0.141 0.141-0.359 0.172-0.469 0.047-0.125-0.109-0.094-0.328 0.047-0.469l4.547-4.547c0.141-0.141 0.359-0.172 0.469-0.047zM8.5 22l8.5-8.5-4.5-4.5-8.5 8.5v4.5h4.5zM18 12.5l1.437-1.437c0.578-0.578 0.578-1.547 0-2.125l-2.375-2.375c-0.578-0.578-1.547-0.578-2.125 0l-1.437 1.437zM24 6.5v15c0 2.484-2.016 4.5-4.5 4.5h-15c-2.484 0-4.5-2.016-4.5-4.5v-15c0-2.484 2.016-4.5 4.5-4.5h15c2.484 0 4.5 2.016 4.5 4.5z"></path>
312    </symbol>
313    <symbol id="icon-commenting" viewBox="0 0 28 28">
314    <path d="M10 14c0-1.109-0.891-2-2-2s-2 0.891-2 2 0.891 2 2 2 2-0.891 2-2zM16 14c0-1.109-0.891-2-2-2s-2 0.891-2 2 0.891 2 2 2 2-0.891 2-2zM22 14c0-1.109-0.891-2-2-2s-2 0.891-2 2 0.891 2 2 2 2-0.891 2-2zM28 14c0 5.531-6.266 10-14 10-1.141 0-2.25-0.094-3.297-0.281-1.781 1.781-4.109 3-6.797 3.578-0.422 0.078-0.875 0.156-1.344 0.203-0.25 0.031-0.484-0.141-0.547-0.375v0c-0.063-0.25 0.125-0.406 0.313-0.578 0.984-0.922 2.156-1.656 2.562-4.953-2.984-1.828-4.891-4.547-4.891-7.594 0-5.531 6.266-10 14-10s14 4.469 14 10z"></path>
315    </symbol>
316    <symbol id="icon-leaf" viewBox="0 0 28 28">
317    <path d="M20 11c0-0.547-0.453-1-1-1-5.531 0-9.094 2.312-12.703 6.297-0.187 0.203-0.297 0.422-0.297 0.703 0 0.547 0.453 1 1 1 0.281 0 0.5-0.109 0.703-0.297 0.766-0.688 1.453-1.437 2.203-2.141 2.828-2.547 5.25-3.563 9.094-3.563 0.547 0 1-0.453 1-1zM28 7.906c0 1-0.109 2.016-0.313 3.016-1 4.859-4.125 8.016-8.469 10.172-2.109 1.062-4.469 1.687-6.844 1.687-1.5 0-3.047-0.25-4.469-0.734-0.75-0.25-2.25-1.234-2.875-1.234-0.781 0-1.719 3.187-3.078 3.187-0.984 0-1.281-0.484-1.703-1.203-0.141-0.266-0.25-0.359-0.25-0.688 0-1.625 3.094-2.891 3.094-3.797 0-0.141-0.406-0.969-0.469-1.281-0.094-0.531-0.141-1.078-0.141-1.625 0-4.969 3.953-8.516 8.391-9.984 3.203-1.062 10.016 0.172 12.187-1.891 0.859-0.797 1.281-1.531 2.594-1.531 1.766 0 2.344 4.578 2.344 5.906z"></path>
318    </symbol>
319    <symbol id="icon-life-bouy" viewBox="0 0 28 28">
320    <path d="M14 0c7.734 0 14 6.266 14 14s-6.266 14-14 14-14-6.266-14-14 6.266-14 14-14zM14 2c-2.031 0-3.953 0.516-5.641 1.406l3.031 3.031c0.828-0.281 1.703-0.438 2.609-0.438 0.922 0 1.781 0.156 2.609 0.438l3.031-3.031c-1.687-0.891-3.609-1.406-5.641-1.406zM3.406 19.641l3.031-3.031c-0.281-0.828-0.438-1.703-0.438-2.609 0-0.922 0.156-1.781 0.438-2.609l-3.031-3.031c-0.891 1.687-1.406 3.609-1.406 5.641s0.516 3.953 1.406 5.641zM14 26c2.031 0 3.953-0.516 5.
320641-1.406l-3.031-3.031c-0.828 0.281-1.687 0.438-2.609 0.438-0.906 0-1.781-0.156-2.609-0.438l-3.031 3.031c1.687 0.891 3.609 1.406 5.641 1.406zM14 20c3.313 0 6-2.688 6-6s-2.688-6-6-6-6 2.688-6 6 2.688 6 6 6zM21.562 16.609l3.031 3.031c0.891-1.687 1.406-3.609 1.406-5.641s-0.516-3.953-1.406-5.641l-3.031 3.031c0.281 0.828 0.438 1.703 0.438 2.609s-0.156 1.781-0.438 2.609z"></path>
321    </symbol>
322    <symbol id="icon-puzzle-piece" viewBox="0 0 26 28">
323    <path d="M26 17.156c0 1.609-0.922 2.953-2.625 2.953-1.906 0-2.406-1.734-4.125-1.734-1.25 0-1.719 0.781-1.719 1.937 0 1.219 0.5 2.391 0.484 3.594v0.078c-0.172 0-0.344 0-0.516 0.016-1.609 0.156-3.234 0.469-4.859 0.469-1.109 0-2.266-0.438-2.266-1.719 0-1.719 1.734-2.219 1.734-4.125 0-1.703-1.344-2.625-2.953-2.625-1.641 0-3.156 0.906-3.156 2.703 0 1.984 1.516 2.844 1.516 3.922 0 0.547-0.344 1.031-0.719 1.391-0.484 0.453-1.172 0.547-1.828 0.547-1.281 0-2.562-0.172-3.828-0.375-0.281-0.047-0.578-0.078-0.859-0.125l-0.203-0.031c-0.031-0.016-0.078-0.016-0.078-0.031v-16c0.063 0.047 0.984 0.156 1.141 0.187 1.266 0.203 2.547 0.375 3.828 0.375 0.656 0 1.344-0.094 1.828-0.547 0.375-0.359 0.719-0.844 0.719-1.391 0-1.078-1.516-1.937-1.516-3.922 0-1.797 1.516-2.703 3.172-2.703 1.594 0 2.938 0.922 2.938 2.625 0 1.906-1.734 2.406-1.734 4.125 0 1.281 1.156 1.719 2.266 1.719 1.797 0 3.578-0.406 5.359-0.5v0.031c-0.047 0.063-0.156 0.984-0.187 1.141-0.203 1.266-0.375 2.547-0.375 3.828 0 0.656 0.094 1.344 0.547 1.828 0.359 0.375 0.844 0.719 1.391 0.719 1.078 0 1.937-1.516 3.922-1.516 1.797 0 2.703 1.516 2.703 3.156z"></path>
324    </symbol>
325    <symbol id="icon-book" viewBox="0 0 26 28">
326    <path d="M25.609 7.469c0.391 0.562 0.5 1.297 0.281 2.016l-4.297 14.156c-0.391 1.328-1.766 2.359-3.109 2.359h-14.422c-1.594 0-3.297-1.266-3.875-2.891-0.25-0.703-0.25-1.391-0.031-1.984 0.031-0.313 0.094-0.625 0.109-1 0.016-0.25-0.125-0.453-0.094-0.641 0.063-0.375 0.391-0.641 0.641-1.062 0.469-0.781 1-2.047 1.172-2.859 0.078-0.297-0.078-0.641 0-0.906 0.078-0.297 0.375-0.516 0.531-0.797 0.422-0.719 0.969-2.109 1.047-2.844 0.031-0.328-0.125-0.688-0.031-0.938 0.109-0.359 0.453-0.516 0.688-0.828 0.375-0.516 1-2 1.094-2.828 0.031-0.266-0.125-0.531-0.078-0.812 0.063-0.297 0.438-0.609 0.688-0.969 0.656-0.969 0.781-3.109 2.766-2.547l-0.016 0.047c0.266-0.063 0.531-0.141 0.797-0.141h11.891c0.734 0 1.391 0.328 1.781 0.875 0.406 0.562 0.5 1.297 0.281 2.031l-4.281 14.156c-0.734 2.406-1.141 2.938-3.125 2.938h-13.578c-0.203 0-0.453 0.047-0.594 0.234-0.125 0.187-0.141 0.328-0.016 0.672 0.313 0.906 1.391 1.094 2.25 1.094h14.422c0.578 0 1.25-0.328 1.422-0.891l4.688-15.422c0.094-0.297 0.094-0.609 0.078-0.891 0.359 0.141 0.688 0.359 0.922 0.672zM8.984 7.5c-0.094 0.281 0.063 0.5 0.344 0.5h9.5c0.266 0 0.562-0.219 0.656-0.5l0.328-1c0.094-0.281-0.063-0.5-0.344-0.5h-9.5c-0.266 0-0.562 0.219-0.656 0.5zM7.688 11.5c-0.094 0.281 0.063 0.5 0.344 0.5h9.5c0.266 0 0.562-0.219 0.656-0.5l0.328-1c0.094-0.281-0.063-0.5-0.344-0.5h-9.5c-0.266 0-0.562 0.219-0.656 0.5z"></path>
327    </symbol>
328    <symbol id="icon-cog" viewBox="0 0 24 28">
329    <path d="M16 14c0-2.203-1.797-4-4-4s-4 1.797-4 4 1.797 4 4 4 4-1.797 4-4zM24 12.297v3.469c0 0.234-0.187 0.516-0.438 0.562l-2.891 0.438c-0.172 0.5-0.359 0.969-0.609 1.422 0.531 0.766 1.094 1.453 1.672 2.156 0.094 0.109 0.156 0.25 0.156 0.391s-0.047 0.25-0.141 0.359c-0.375 0.5-2.484 2.797-3.016 2.797-0.141 0-0.281-0.063-0.406-0.141l-2.156-1.687c-0.453 0.234-0.938 0.438-1.422 0.594-0.109 0.953-0.203 1.969-0.453 2.906-0.063 0.25-0.281 0.438-0.562 0.438h-3.469c-0.281 0-0.531-0.203-0.562-0.469l-0.438-2.875c-0.484-0.156-0.953-0.344-1.406-0.578l-2.203 1.672c-0.109 0.094-0.25 0.141-0.391 0.141s-0.281-0.063-0.391-0.172c-0.828-0.75-1.922-1.719-2.578-2.625-0.078-0.109-0.109-0.234-0.109-0.359 0-0.141 0.047-0.25 0.125-0.359 0.531-0.719 1.109-1.406 1.641-2.141-0.266-0.5-0.484-1.016-0.641-1.547l-2.859-0.422c-0.266-0.047-0.453-0.297-0.453-0.562v-3.469c0-0.234 0.187-0.516 0.422-0.562l2.906-0.438c0.156-0.5 0.359-0.969 0.609-1.437-0.531-0.75-1.094-1.453-1.672-2.156-0.094-0.109-0.156-0.234-0.156-0.375s0.063-0.25 0.141-0.359c0.375-0.516 2.484-2.797 3.016-2.797 0.141 0 0.281 0.063 0.406 0.156l2.156 1.672c0.453-0.234 0.938-0.438 1.422-0.594 0.109-0.953 0.203-1.969 0.453-2.906 0.063-0.25 0.281-0.438 0.562-0.438h3.469c0.281 0 0.531 0.203 0.562 0.469l0.438 2.875c0.484 0.156 0.953 0.344 1.406 0.578l2.219-1.672c0.094-0.094 0.234-0.141 0.375-0.141s0.281 0.063 0.391 0.156c0.828 0.766 1.922 1.734 2.578 2.656 0.078 0.094 0.109 0.219 0.109 0.344 0 0.141-0.047 0.25-0.125 0.359-0.531 0.719-1.109 1.406-1.641 2.141 0.266 0.5 0.484 1.016 0.641 1.531l2.859 0.438c0.266 0.047 0.453 0.297 0.453 0.562z"></path>
330    </symbol>
331    </defs>
332</svg>
333          
334    </div>
335<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"01539c5929b54e52ab496423d3136715","r":1,"spa":2}' crossorigin="anonymous"></script>
335
336</body>
337</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.