Compare commits

..

2 Commits

Author SHA1 Message Date
Sourabh Desai cd24ebf926 fix instantiation 2023-07-17 22:32:53 +00:00
Sourabh Desai 52f8ca133c small improvements to listindex instantiation 2023-07-17 22:31:46 +00:00
372 changed files with 3478 additions and 27782 deletions
-8
View File
@@ -1,8 +0,0 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
-11
View File
@@ -1,11 +0,0 @@
{
"$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
-11
View File
@@ -1,11 +0,0 @@
name: Bugfix
title: "Sweep: "
description: Write something like "We notice ... behavior when ... happens instead of ...""
labels: sweep
body:
- type: textarea
id: description
attributes:
label: Details
description: More details about the bug
placeholder: The bug might be in ... file
-11
View File
@@ -1,11 +0,0 @@
name: Feature Request
title: "Sweep: "
description: Write something like "Write an api endpoint that does "..." in the "..." file"
labels: sweep
body:
- type: textarea
id: description
attributes:
label: Details
description: More details for Sweep
placeholder: The new endpoint should use the ... class from ... file because it contains ... logic
-11
View File
@@ -1,11 +0,0 @@
name: Refactor
title: "Sweep: "
description: Write something like "Modify the ... api endpoint to use ... version and ... framework"
labels: sweep
body:
- type: textarea
id: description
attributes:
label: Details
description: More details for Sweep
placeholder: We are migrating this function to ... version because ...
@@ -1,25 +0,0 @@
name: Lint on push or pull request
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install pnpm
run: npm install -g pnpm
- name: Install dependencies
run: pnpm install
- name: Run lint
run: pnpm run lint
-24
View File
@@ -1,24 +0,0 @@
name: Run Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: "18"
- name: Install dependencies
run: |
npm i -g pnpm
pnpm install
- name: Run tests
run: pnpm run test
+1 -5
View File
@@ -3,7 +3,6 @@
# dependencies
node_modules
.pnp
.pnpm-store
.pnp.js
# testing
@@ -36,7 +35,4 @@ yarn-error.log*
# vercel
.vercel
dist/
# vs code
.vscode/launch.json
storage/
-1
View File
@@ -2,4 +2,3 @@
. "$(dirname -- "$0")/_/husky.sh"
pnpm lint
npx lint-staged
+1 -4
View File
@@ -1,8 +1,5 @@
{
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml"
}
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
-80
View File
@@ -1,80 +0,0 @@
# Contributing
## Structure
This is a monorepo built with Turborepo
Right now there are two packages of importance:
packages/core which is the main NPM library llamaindex
apps/simple is where the demo code lives
### Turborepo docs
You can checkout how Turborepo works using the default [README-turborepo.md](/README-turborepo.md)
## Getting Started
Install NodeJS. Preferably v18 using nvm or n.
Inside the LlamaIndexTS directory:
```
npm i -g pnpm ts-node
pnpm install
```
Note: we use pnpm in this repo, which has a lot of the same functionality and CLI options as npm but it does do some things better in a monorepo, like centralizing dependencies and caching.
PNPM's has documentation on its [workspace feature](https://pnpm.io/workspaces) and Turborepo had some [useful documentation also](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks).
### Running Typescript
When we publish to NPM we will have a tsc compiled version of the library in JS. For now, the easiest thing to do is use ts-node.
### Test cases
To run them, run
```
pnpm run test
```
To write new test cases write them in [packages/core/src/tests](/packages/core/src/tests)
We use Jest https://jestjs.io/ to write our test cases. Jest comes with a bunch of built in assertions using the expect function: https://jestjs.io/docs/expect
### Demo applications
There is an existing ["simple"](/apps/simple/README.md) demos folder with mainly NodeJS scripts. Feel free to add additional demos to that folder. If you would like to try out your changes in the core package with a new demo, you need to run the build command in the README.
You can create new demo applications in the apps folder. Just run pnpm init in the folder after you create it to create its own package.json
### Installing packages
To install packages for a specific package or demo application, run
```
pnpm add [NPM Package] --filter [package or application i.e. core or simple]
```
To install packages for every package or application run
```
pnpm add -w [NPM Package]
```
### Docs
To contribute to the docs, go to the docs website folder and run the Docusaurus instance.
```bash
cd apps/docs
pnpm install
pnpm start
```
That should start a webserver which will serve the docs on https://localhost:3000
Any changes you make should be reflected in the browser. If you need to regenerate the API docs and find that your TSDoc isn't getting the updates, feel free to remove apps/docs/api. It will automatically regenerate itself when you run pnpm start again.
+39 -94
View File
@@ -1,119 +1,64 @@
# LlamaIndex.TS
# LlamaScript: LlamaIndex for TS/JS
LlamaIndex is a data framework for your LLM application.
## Structure
Use your own data with large language models (LLMs, OpenAI ChatGPT and others) in Typescript and Javascript.
This is a monorepo built with Turborepo
Documentation: https://ts.llamaindex.ai/
Right now there are two packages of importance:
## What is LlamaIndex.TS?
packages/core which is the main NPM library @llamaindex/core
LlamaIndex.TS aims to be a lightweight, easy to use set of libraries to help you integrate large language models into your applications with your own data.
apps/simple is where the demo code lives
## Getting started with an example:
### Turborepo docs
LlamaIndex.TS requries Node v18 or higher. You can download it from https://nodejs.org or use https://nvm.sh (our preferred option).
You can checkout how Turborepo works using the built in [README-turborepo.md](README-turborepo.md)
In a new folder:
## Getting Started
```bash
export OPENAI_API_KEY="sk-......" # Replace with your key from https://platform.openai.com/account/api-keys
pnpm init
pnpm install typescript
pnpm exec tsc --init # if needed
pnpm install llamaindex
pnpm install @types/node
Install NodeJS. Preferably v18 using nvm or n.
Inside the llamascript directory:
```
npm i -g pnpm ts-node
pnpm install
```
Create the file example.ts
Note: we use pnpm in this repo, which has a lot of the same functionality and CLI options as npm but it does do some things better in a monorepo, like centralizing dependencies and caching.
```ts
// example.ts
import fs from "fs/promises";
import { Document, VectorStoreIndex } from "llamaindex";
PNPM's has documentation on its [workspace feature](https://pnpm.io/workspaces) and Turborepo had some [useful documentation also](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks).
async function main() {
// Load essay from abramov.txt in Node
const essay = await fs.readFile(
"node_modules/llamaindex/examples/abramov.txt",
"utf-8",
);
### Running Typescript
// Create Document object with essay
const document = new Document({ text: essay });
When we publish to NPM we will have a tsc compiled version of the library in JS. For now, the easiest thing to do is use ts-node.
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments([document]);
### Test cases
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
To run them, run
// Output response
console.log(response.toString());
}
main();
```
pnpm run test
```
Then you can run it using
To write new test cases write them in packages/core/src/tests
```bash
pnpx ts-node example.ts
We use Jest https://jestjs.io/ to write our test cases. Jest comes with a bunch of built in assertions using the expect function: https://jestjs.io/docs/expect
### Demo applications
You can create new demo applications in the apps folder. Just run pnpm init in the folder after you create it to create its own package.json
### Installing packages
To install packages for a specific package or demo application, run
```
pnpm add [NPM Package] --filter [package or application i.e. core or simple]
```
## Playground
To install packages for every package or application run
Check out our NextJS playground at https://llama-playground.vercel.app/. The source is available at https://github.com/run-llama/ts-playground
## Core concepts for getting started:
- [Document](/packages/core/src/Node.ts): A document represents a text file, PDF file or other contiguous piece of data.
- [Node](/packages/core/src/Node.ts): The basic data building block. Most commonly, these are parts of the document split into manageable pieces that are small enough to be fed into an embedding model and LLM.
- [Embedding](/packages/core/src/Embedding.ts): Embeddings are sets of floating point numbers which represent the data in a Node. By comparing the similarity of embeddings, we can derive an understanding of the similarity of two pieces of data. One use case is to compare the embedding of a question with the embeddings of our Nodes to see which Nodes may contain the data needed to answer that quesiton.
- [Indices](/packages/core/src/indices/): Indices store the Nodes and the embeddings of those nodes. QueryEngines retrieve Nodes from these Indices using embedding similarity.
- [QueryEngine](/packages/core/src/QueryEngine.ts): Query engines are what generate the query you put in and give you back the result. Query engines generally combine a pre-built prompt with selected Nodes from your Index to give the LLM the context it needs to answer your query.
- [ChatEngine](/packages/core/src/ChatEngine.ts): A ChatEngine helps you build a chatbot that will interact with your Indices.
- [SimplePrompt](/packages/core/src/Prompt.ts): A simple standardized function call definition that takes in inputs and formats them in a template literal. SimplePrompts can be specialized using currying and combined using other SimplePrompt functions.
## Note: NextJS:
If you're using NextJS App Router, you'll need to use the NodeJS runtime (default) and add the follow config to your next.config.js to have it use imports/exports in the same way Node does.
```js
export const runtime = "nodejs"; // default
```
```js
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
serverComponentsExternalPackages: ["pdf-parse"], // Puts pdf-parse in actual NodeJS mode with NextJS App Router
},
};
module.exports = nextConfig;
pnpm add -w [NPM Package]
```
## Supported LLMs:
- OpenAI GPT-3.5-turbo and GPT-4
- Anthropic Claude Instant and Claude 2
- Llama2 Chat LLMs (70B, 13B, and 7B parameters)
## Contributing:
We are in the very early days of LlamaIndex.TS. If youre interested in hacking on it with us check out our [contributing guide](/CONTRIBUTING.md)
## Bugs? Questions?
Please join our Discord! https://discord.com/invite/eN6D2HQ4aX
+4
View File
@@ -0,0 +1,4 @@
module.exports = {
root: true,
extends: ["custom"],
};
+25 -11
View File
@@ -1,20 +1,34 @@
# Dependencies
/node_modules
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# Production
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# vercel
.vercel
-47
View File
@@ -1,47 +0,0 @@
# Website
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
### Installation
```
$ pnpm
```
### Local Development
```
$ pnpm start
```
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
However, the searchbar may not function with `yarn start`. Instead, run `yarn build` and launch a server:
```
$ npx http-server ./build
```
### Build
```
$ pnpm build
```
This command generates static content into the `build` directory and can be served using any static contents hosting service.
### Deployment
Using SSH:
```
$ USE_SSH=true pnpm deploy
```
Not using SSH:
```
$ GIT_USER=<Your GitHub username> pnpm deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
+30
View File
@@ -0,0 +1,30 @@
## Getting Started
First, run the development server:
```bash
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
+11
View File
@@ -0,0 +1,11 @@
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
);
}
+10
View File
@@ -0,0 +1,10 @@
import { Button, Header } from "ui";
export default function Page() {
return (
<>
<Header text="Docs" />
<Button />
</>
);
}
-3
View File
@@ -1,3 +0,0 @@
module.exports = {
presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
};
-1
View File
@@ -1 +0,0 @@
api/
Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

-78
View File
@@ -1,78 +0,0 @@
---
sidebar_position: 3
---
# High-Level Concepts
LlamaIndex.TS helps you build LLM-powered applications (e.g. Q&A, chatbot) over custom data.
In this high-level concepts guide, you will learn:
- how an LLM can answer questions using your own data.
- key concepts and modules in LlamaIndex.TS for composing your own query pipeline.
## Answering Questions Across Your Data
LlamaIndex uses a two stage method when using an LLM with your data:
1. **indexing stage**: preparing a knowledge base, and
2. **querying stage**: retrieving relevant context from the knowledge to assist the LLM in responding to a question
![](./_static/concepts/rag.jpg)
This process is also known as Retrieval Augmented Generation (RAG).
LlamaIndex.TS provides the essential toolkit for making both steps super easy.
Let's explore each stage in detail.
### Indexing Stage
LlamaIndex.TS help you prepare the knowledge base with a suite of data connectors and indexes.
![](./_static/concepts/indexing.jpg)
[**Data Loaders**](./modules/high_level/data_loader.md):
A data connector (i.e. `Reader`) ingest data from different data sources and data formats into a simple `Document` representation (text and simple metadata).
[**Documents / Nodes**](./modules/high_level/documents_and_nodes.md): A `Document` is a generic container around any data source - for instance, a PDF, an API output, or retrieved data from a database. A `Node` is the atomic unit of data in LlamaIndex and represents a "chunk" of a source `Document`. It's a rich representation that includes metadata and relationships (to other nodes) to enable accurate and expressive retrieval operations.
[**Data Indexes**](./modules/high_level/data_index.md):
Once you've ingested your data, LlamaIndex helps you index data into a format that's easy to retrieve.
Under the hood, LlamaIndex parses the raw documents into intermediate representations, calculates vector embeddings, and stores your data in-memory or to disk.
### Querying Stage
In the querying stage, the query pipeline retrieves the most relevant context given a user query,
and pass that to the LLM (along with the query) to synthesize a response.
This gives the LLM up-to-date knowledge that is not in its original training data,
(also reducing hallucination).
The key challenge in the querying stage is retrieval, orchestration, and reasoning over (potentially many) knowledge bases.
LlamaIndex provides composable modules that help you build and integrate RAG pipelines for Q&A (query engine), chatbot (chat engine), or as part of an agent.
These building blocks can be customized to reflect ranking preferences, as well as composed to reason over multiple knowledge bases in a structured way.
![](./_static/concepts/querying.jpg)
#### Building Blocks
[**Retrievers**](./modules/low_level/retriever.md):
A retriever defines how to efficiently retrieve relevant context from a knowledge base (i.e. index) when given a query.
The specific retrieval logic differs for difference indices, the most popular being dense retrieval against a vector index.
[**Response Synthesizers**](./modules/low_level/response_synthesizer.md):
A response synthesizer generates a response from an LLM, using a user query and a given set of retrieved text chunks.
#### Pipelines
[**Query Engines**](./modules/high_level/query_engine.md):
A query engine is an end-to-end pipeline that allow you to ask question over your data.
It takes in a natural language query, and returns a response, along with reference context retrieved and passed to the LLM.
[**Chat Engines**](./modules/high_level/chat_engine.md):
A chat engine is an end-to-end pipeline for having a conversation with your data
(multiple back-and-forth instead of a single question & answer).
-45
View File
@@ -1,45 +0,0 @@
---
sidebar_position: 4
---
# End to End Examples
We include several end-to-end examples using LlamaIndex.TS in the repository
Check out the examples below or try them out and complete them in minutes with interactive Github Codespace tutorials provided by Dev-Docs [here](https://codespaces.new/team-dev-docs/lits-dev-docs-playground?devcontainer_path=.devcontainer%2Fjavascript_ltsquickstart%2Fdevcontainer.json):
## [Chat Engine](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/chatEngine.ts)
Read a file and chat about it with the LLM.
## [Vector Index](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/vectorIndex.ts)
Create a vector index and query it. The vector index will use embeddings to fetch the top k most relevant nodes. By default, the top k is 2.
## [Summary Index](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/summaryIndex.ts)
Create a list index and query it. This example also use the `LLMRetriever`, which will use the LLM to select the best nodes to use when generating answer.
## [Save / Load an Index](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/storageContext.ts)
Create and load a vector index. Persistance to disk in LlamaIndex.TS happens automatically once a storage context object is created.
## [Customized Vector Index](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/vectorIndexCustomize.ts)
Create a vector index and query it, while also configuring the the `LLM`, the `ServiceContext`, and the `similarity_top_k`.
## [OpenAI LLM](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/openai.ts)
Create an OpenAI LLM and directly use it for chat.
## [Llama2 DeuceLLM](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/llamadeuce.ts)
Create a Llama-2 LLM and directly use it for chat.
## [SubQuestionQueryEngine](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/subquestion.ts)
Uses the `SubQuestionQueryEngine`, which breaks complex queries into multiple questions, and then aggreates a response across the answers to all sub-questions.
## [Low Level Modules](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/lowlevel.ts)
This example uses several low-level components, which removes the need for an actual query engine. These components can be used anywhere, in any application, or customized and sub-classed to meet your own needs.
-29
View File
@@ -1,29 +0,0 @@
---
sidebar_position: 5
---
# Environments
LlamaIndex currently officially supports NodeJS 18 and NodeJS 20.
## NextJS App Router
If you're using NextJS App Router route handlers/serverless functions, you'll need to use the NodeJS mode:
```js
export const runtime = "nodejs"; // default
```
and you'll need to add an exception for pdf-parse in your next.config.js
```js
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
serverComponentsExternalPackages: ["pdf-parse"], // Puts pdf-parse in actual NodeJS mode with NextJS App Router
},
};
module.exports = nextConfig;
```
-25
View File
@@ -1,25 +0,0 @@
---
sidebar_position: 1
---
# Installation and Setup
## Installation from NPM
Make sure you have NodeJS v18 or higher.
```bash npm2yarn
npm install llamaindex
```
## Environment variables
Our examples use OpenAI by default. You'll need to set up your Open AI key like so:
```bash
export OPENAI_API_KEY="sk-......" # Replace with your key from https://platform.openai.com/account/api-keys
```
If you want to have it automatically loaded every time, add it to your .zshrc/.bashrc.
WARNING: do not check in your OpenAI key into version control.
-56
View File
@@ -1,56 +0,0 @@
---
sidebar_position: 0
slug: /
---
# What is LlamaIndex.TS?
LlamaIndex.TS is a data framework for LLM applications to ingest, structure, and access private or domain-specific data. While a python package is also available (see [here](https://gpt-index.readthedocs.io/en/latest/)), LlamaIndex.TS offers core features in a simple package, optimized for usage with TypeScript.
## 🚀 Why LlamaIndex.TS?
At their core, LLMs offer a natural language interface between humans and inferred data. Widely available models come pre-trained on huge amounts of publicly available data, from Wikipedia and mailing lists to textbooks and source code.
Applications built on top of LLMs often require augmenting these models with private or domain-specific data. Unfortunately, that data can be distributed across siloed applications and data stores. It's behind APIs, in SQL databases, or trapped in PDFs and slide decks.
That's where **LlamaIndex.TS** comes in.
## 🦙 How can LlamaIndex.TS help?
LlamaIndex.TS provides the following tools:
- **Data loading** ingest your existing `.txt`, `.pdf`, `.csv`, `.md` and `.docx` data directly
- **Data indexes** structure your data in intermediate representations that are easy and performant for LLMs to consume.
- **Engines** provide natural language access to your data. For example:
- Query engines are powerful retrieval interfaces for knowledge-augmented output.
- Chat engines are conversational interfaces for multi-message, "back and forth" interactions with your data.
## 👨‍👩‍👧‍👦 Who is LlamaIndex for?
LlamaIndex.TS provides a core set of tools, essential for anyone building LLM apps with JavaScript and TypeScript.
Our high-level API allows beginner users to use LlamaIndex.TS to ingest and query their data.
For more complex applications, our lower-level APIs allow advanced users to customize and extend any module—data connectors, indices, retrievers, and query engines, to fit their needs.
## Getting Started
`npm install llamaindex`
Our documentation includes [Installation Instructions](./installation.md) and a [Starter Tutorial](./starter.md) to build your first application.
Once you're up and running, [High-Level Concepts](./concepts.md) has an overview of LlamaIndex's modular architecture. For more hands-on practical examples, look through our [End-to-End Tutorials](./end_to_end.md).
## 🗺️ Ecosystem
To download or contribute, find LlamaIndex on:
- Github: https://github.com/run-llama/LlamaIndexTS
- NPM: https://www.npmjs.com/package/llamaindex
## Community
Need help? Have a feature suggestion? Join the LlamaIndex community:
- Twitter: https://twitter.com/llama_index
- Discord https://discord.gg/dGcwcsnxhU
-3
View File
@@ -1,3 +0,0 @@
label: "Modules"
collapsed: false
position: 5
@@ -1 +0,0 @@
label: High-Level Modules
@@ -1,20 +0,0 @@
---
sidebar_position: 4
---
# ChatEngine
The chat engine is a quick and simple way to chat with the data in your index.
```typescript
const retriever = index.asRetriever();
const chatEngine = new ContextChatEngine({ retriever });
// start chatting
const response = await chatEngine.chat(query);
```
## Api References
- [ContextChatEngine](../../api/classes/ContextChatEngine.md)
- [CondenseQuestionChatEngine](../../api/classes/ContextChatEngine.md)
@@ -1,23 +0,0 @@
---
sidebar_position: 2
---
# Index
An index is the basic container and organization for your data. LlamaIndex.TS supports two indexes:
- `VectorStoreIndex` - will send the top-k `Node`s to the LLM when generating a response. The default top-k is 2.
- `SummaryIndex` - will send every `Node` in the index to the LLM in order to generate a response
```typescript
import { Document, VectorStoreIndex } from "llamaindex";
const document = new Document({ text: "test" });
const index = await VectorStoreIndex.fromDocuments([document]);
```
## API Reference
- [SummaryIndex](../../api/classes/SummaryIndex.md)
- [VectorStoreIndex](../../api/classes/VectorStoreIndex.md)
@@ -1,17 +0,0 @@
---
sidebar_position: 1
---
# Reader / Loader
LlamaIndex.TS supports easy loading of files from folders using the `SimpleDirectoryReader` class. Currently, `.txt`, `.pdf`, `.csv`, `.md` and `.docx` files are supported, with more planned in the future!
```typescript
import { SimpleDirectoryReader } from "llamaindex";
documents = new SimpleDirectoryReader().loadData("./data");
```
## API Reference
- [SimpleDirectoryReader](../../api/classes/SimpleDirectoryReader.md)
@@ -1,18 +0,0 @@
---
sidebar_position: 0
---
# Documents and Nodes
`Document`s and `Node`s are the basic building blocks of any index. While the API for these objects is similar, `Document` objects represent entire files, while `Node`s are smaller pieces of that original document, that are suitable for an LLM and Q&A.
```typescript
import { Document } from "llamaindex";
document = new Document({ text: "text", metadata: { key: "val" } });
```
## API Reference
- [Document](../../api/classes/Document.md)
- [TextNode](../../api/classes/TextNode.md)
@@ -1,36 +0,0 @@
---
sidebar_position: 3
---
# QueryEngine
A query engine wraps a `Retriever` and a `ResponseSynthesizer` into a pipeline, that will use the query string to fetech nodes and then send them to the LLM to generate a response.
```typescript
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query("query string");
```
## Sub Question Query Engine
The basic concept of the Sub Question Query Engine is that it splits a single query into multiple queries, gets an answer for each of those queries, and then combines those different answers into a single coherent response for the user. You can think of it as the "think this through step by step" prompt technique but iterating over your data sources!
### Getting Started
The easiest way to start trying the Sub Question Query Engine is running the subquestion.ts file in [apps/simple](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/subquestion.ts).
```bash
npx ts-node subquestion.ts
```
### Tools
SubQuestionQueryEngine is implemented with Tools. The basic idea of Tools is that they are executable options for the large language model. In this case, our SubQuestionQueryEngine relies on QueryEngineTool, which as you guessed it is a tool to run queries on a QueryEngine. This allows us to give the model an option to query different documents for different questions for example. You could also imagine that the SubQuestionQueryEngine could use a Tool that searches for something on the web or gets an answer using Wolfram Alpha.
You can learn more about Tools by taking a look at the LlamaIndex Python documentation https://gpt-index.readthedocs.io/en/latest/core_modules/agent_modules/tools/root.html
## API Reference
- [RetrieverQueryEngine](../../api/classes/RetrieverQueryEngine.md)
- [SubQuestionQueryEngine](../../api/classes/SubQuestionQueryEngine.md)
- [QueryEngineTool](../../api/interfaces/QueryEngineTool.md)
-31
View File
@@ -1,31 +0,0 @@
# Core Modules
LlamaIndex.TS offers several core modules, seperated into high-level modules for quickly getting started, and low-level modules for customizing key components as you need.
## High-Level Modules
- [**Document**](./high_level/documents_and_nodes.md): A document represents a text file, PDF file or other contiguous piece of data.
- [**Node**](./high_level/documents_and_nodes.md): The basic data building block. Most commonly, these are parts of the document split into manageable pieces that are small enough to be fed into an embedding model and LLM.
- [**Reader/Loader**](./high_level/data_loader.md): A reader or loader is something that takes in a document in the real world and transforms into a Document class that can then be used in your Index and queries. We currently support plain text files and PDFs with many many more to come.
- [**Indexes**](./high_level/data_index.md): indexes store the Nodes and the embeddings of those nodes.
- [**QueryEngine**](./high_level/query_engine.md): Query engines are what generate the query you put in and give you back the result. Query engines generally combine a pre-built prompt with selected nodes from your Index to give the LLM the context it needs to answer your query.
- [**ChatEngine**](./high_level/chat_engine.md): A ChatEngine helps you build a chatbot that will interact with your Indexes.
## Low Level Module
- [**LLM**](./low_level/llm.md): The LLM class is a unified interface over a large language model provider such as OpenAI GPT-4, Anthropic Claude, or Meta LLaMA. You can subclass it to write a connector to your own large language model.
- [**Embedding**](./low_level/embedding.md): An embedding is represented as a vector of floating point numbers. OpenAI's text-embedding-ada-002 is our default embedding model and each embedding it generates consists of 1,536 floating point numbers. Another popular embedding model is BERT which uses 768 floating point numbers to represent each Node. We provide a number of utilities to work with embeddings including 3 similarity calculation options and Maximum Marginal Relevance
- [**TextSplitter/NodeParser**](./low_level/node_parser.md): Text splitting strategies are incredibly important to the overall efficacy of the embedding search. Currently, while we do have a default, there's no one size fits all solution. Depending on the source documents, you may want to use different splitting sizes and strategies. Currently we support spliltting by fixed size, splitting by fixed size with overlapping sections, splitting by sentence, and splitting by paragraph. The text splitter is used by the NodeParser when splitting `Document`s into `Node`s.
- [**Retriever**](./low_level/retriever.md): The Retriever is what actually chooses the Nodes to retrieve from the index. Here, you may wish to try retrieving more or fewer Nodes per query, changing your similarity function, or creating your own retriever for each individual use case in your application. For example, you may wish to have a separate retriever for code content vs. text content.
- [**ResponseSynthesizer**](./low_level/response_synthesizer.md): The ResponseSynthesizer is responsible for taking a query string, and using a list of `Node`s to generate a response. This can take many forms, like iterating over all the context and refining an answer, or building a tree of summaries and returning the root summary.
- [**Storage**](./low_level/storage.md): At some point you're going to want to store your indexes, data and vectors instead of re-running the embedding models every time. IndexStore, DocStore, VectorStore, and KVStore are abstractions that let you do that. Combined, they form the StorageContext. Currently, we allow you to persist your embeddings in files on the filesystem (or a virtual in memory file system), but we are also actively adding integrations to Vector Databases.
@@ -1 +0,0 @@
label: Low-Level Modules
@@ -1,22 +0,0 @@
---
sidebar_position: 1
---
# Embedding
The embedding model in LlamaIndex is responsible for creating numerical representations of text. By default, LlamaIndex will use the `text-embedding-ada-002` model from OpenAI.
This can be explicitly set in the `ServiceContext` object.
```typescript
import { OpenAIEmbedding, serviceContextFromDefaults } from "llamaindex";
const openaiEmbeds = new OpenAIEmbedding();
const serviceContext = serviceContextFromDefaults({ embedModel: openaiEmbeds });
```
## API Reference
- [OpenAIEmbedding](../../api/classes/OpenAIEmbedding.md)
- [ServiceContext](../../api/interfaces/ServiceContext.md)
-22
View File
@@ -1,22 +0,0 @@
---
sidebar_position: 0
---
# LLM
The LLM is responsible for reading text and generating natural language responses to queries. By default, LlamaIndex.TS uses `gpt-3.5-turbo`.
The LLM can be explicitly set in the `ServiceContext` object.
```typescript
import { OpenAI, serviceContextFromDefaults } from "llamaindex";
const openaiLLM = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0 });
const serviceContext = serviceContextFromDefaults({ llm: openaiLLM });
```
## API Reference
- [OpenAI](../../api/classes/OpenAI.md)
- [ServiceContext](../../api/interfaces/ServiceContext.md)
@@ -1,33 +0,0 @@
---
sidebar_position: 3
---
# NodeParser
The `NodeParser` in LlamaIndex is responbile for splitting `Document` objects into more manageable `Node` objects. When you call `.fromDocuments()`, the `NodeParser` from the `ServiceContext` is used to do this automatically for you. Alternatively, you can use it to split documents ahead of time.
```typescript
import { Document, SimpleNodeParser } from "llamaindex";
const nodeParser = new SimpleNodeParser();
const nodes = nodeParser.getNodesFromDocuments([
new Document({ text: "I am 10 years old. John is 20 years old." }),
]);
```
## TextSplitter
The underlying text splitter will split text by sentences. It can also be used as a standalone module for splitting raw text.
```typescript
import { SentenceSplitter } from "llamaindex";
const splitter = new SentenceSplitter({ chunkSize: 1 });
const textSplits = splitter.splitText("Hello World");
```
## API Reference
- [SimpleNodeParser](../../api/classes/SimpleNodeParser.md)
- [SentenceSplitter](../../api/classes/SentenceSplitter.md)
@@ -1,51 +0,0 @@
---
sidebar_position: 6
---
# ResponseSynthesizer
The ResponseSynthesizer is responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. There are a few key modes for generating a response:
- `Refine`: "create and refine" an answer by sequentially going through each retrieved text chunk.
This makes a separate LLM call per Node. Good for more detailed answers.
- `CompactAndRefine` (default): "compact" the prompt during each LLM call by stuffing as
many text chunks that can fit within the maximum prompt size. If there are
too many chunks to stuff in one prompt, "create and refine" an answer by going through
multiple compact prompts. The same as `refine`, but should result in less LLM calls.
- `TreeSummarize`: Given a set of text chunks and the query, recursively construct a tree
and return the root node as the response. Good for summarization purposes.
- `SimpleResponseBuilder`: Given a set of text chunks and the query, apply the query to each text
chunk while accumulating the responses into an array. Returns a concatenated string of all
responses. Good for when you need to run the same query separately against each text
chunk.
```typescript
import { NodeWithScore, ResponseSynthesizer, TextNode } from "llamaindex";
const responseSynthesizer = new ResponseSynthesizer();
const nodesWithScore: NodeWithScore[] = [
{
node: new TextNode({ text: "I am 10 years old." }),
score: 1,
},
{
node: new TextNode({ text: "John is 20 years old." }),
score: 0.5,
},
];
const response = await responseSynthesizer.synthesize(
"What age am I?",
nodesWithScore,
);
console.log(response.response);
```
## API Reference
- [ResponseSynthesizer](../../api/classes/ResponseSynthesizer.md)
- [Refine](../../api/classes/Refine.md)
- [CompactAndRefine](../../api/classes/CompactAndRefine.md)
- [TreeSummarize](../../api/classes/TreeSummarize.md)
- [SimpleResponseBuilder](../../api/classes/SimpleResponseBuilder.md)
@@ -1,21 +0,0 @@
---
sidebar_position: 5
---
# Retriever
A retriever in LlamaIndex is what is used to fetch `Node`s from an index using a query string. Aa `VectorIndexRetriever` will fetch the top-k most similar nodes. Meanwhile, a `SummaryIndexRetriever` will fetch all nodes no matter the query.
```typescript
const retriever = vector_index.asRetriever();
retriever.similarityTopK = 3;
// Fetch nodes!
const nodesWithScore = await retriever.retrieve("query string");
```
## API Reference
- [SummaryIndexRetriever](../../api/classes/SummaryIndexRetriever.md)
- [SummaryIndexLLMRetriever](../../api/classes/SummaryIndexLLMRetriever.md)
- [VectorIndexRetriever](../../api/classes/VectorIndexRetriever.md)
@@ -1,26 +0,0 @@
---
sidebar_position: 7
---
# Storage
Storage in LlamaIndex.TS works automatically once you've configured a `StorageContext` object. Just configure the `persistDir` and attach it to an index.
Right now, only saving and loading from disk is supported, with future integrations planned!
```typescript
import { Document, VectorStoreIndex, storageContextFromDefaults } from "./src";
const storageContext = await storageContextFromDefaults({
persistDir: "./storage",
});
const document = new Document({ text: "Test Text" });
const index = await VectorStoreIndex.fromDocuments([document], {
storageContext,
});
```
## API Reference
- [StorageContext](../../api/interfaces/StorageContext.md)
-56
View File
@@ -1,56 +0,0 @@
---
sidebar_position: 2
---
# Starter Tutorial
Once you have [installed LlamaIndex.TS using NPM](installation.md) and set up your OpenAI key, you're ready to start your first app:
In a new folder:
```bash npm2yarn
npm install typescript
npm install @types/node
npx tsc --init # if needed
```
Create the file `example.ts`. This code will load some example data, create a document, index it (which creates embeddings using OpenAI), and then creates query engine to answer questions about the data.
```ts
// example.ts
import fs from "fs/promises";
import { Document, VectorStoreIndex } from "llamaindex";
async function main() {
// Load essay from abramov.txt in Node
const essay = await fs.readFile(
"node_modules/llamaindex/examples/abramov.txt",
"utf-8",
);
// Create Document object with essay
const document = new Document({ text: essay });
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments([document]);
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
// Output response
console.log(response.toString());
}
main();
```
Then you can run it using
```bash
npx ts-node example.ts
```
Ready to learn more? Check out our NextJS playground at https://llama-playground.vercel.app/. The source is available at https://github.com/run-llama/ts-playground
-152
View File
@@ -1,152 +0,0 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
/** @type {import('@docusaurus/types').Config} */
const config = {
title: "LlamaIndex.TS",
tagline: "Unleash the power of LLMs over your data in TypeScript",
favicon: "img/favicon.png",
// Set the production url of your site here
url: "https://ts.llamaindex.ai",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "run-llama", // Usually your GitHub org/user name.
projectName: "LlamaIndex.TS", // Usually your repo name.
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
},
presets: [
[
"classic",
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
routeBasePath: "/",
sidebarPath: require.resolve("./sidebars.js"),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
// editUrl:
// "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
remarkPlugins: [
[require("@docusaurus/remark-plugin-npm2yarn"), { sync: true }],
],
},
blog: false,
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: "img/favicon.png", // TODO change this
navbar: {
title: "LlamaIndex.TS",
logo: {
alt: "LlamaIndex.TS",
src: "img/favicon.png",
},
items: [
{
type: "docSidebar",
sidebarId: "mySidebar",
position: "left",
label: "Docs",
},
{
href: "https://github.com/run-llama/LlamaIndexTS",
label: "GitHub",
position: "right",
},
],
},
footer: {
style: "dark",
links: [
{
title: "Docs",
items: [
{
label: "API",
to: "/api",
},
],
},
{
title: "Community",
items: [
{
label: "Discord",
href: "https://discord.com/invite/eN6D2HQ4aX",
},
{
label: "Twitter",
href: "https://twitter.com/LlamaIndex",
},
],
},
{
title: "More",
items: [
{
label: "GitHub",
href: "https://github.com/run-llama/LlamaIndexTS",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} LlamaIndex. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
algolia: {
// The application ID provided by Algolia
appId: "DYKPM6G4CX",
// Public API key: it is safe to commit it
apiKey: "c4ff3789f20bb72a5d735082aef17719",
indexName: "ts-llamaindex",
// Optional: see doc section below
contextualSearch: true,
},
}),
plugins: [
[
"docusaurus-plugin-typedoc",
{
entryPoints: ["../../packages/core/src/index.ts"],
tsconfig: "../../packages/core/tsconfig.json",
readme: "none",
sourceLinkTemplate:
"https://github.com/run-llama/LlamaIndexTS/blob/{gitRevision}/{path}#L{line}",
sidebar: {
position: 6,
},
},
],
],
};
module.exports = config;
+4
View File
@@ -0,0 +1,4 @@
module.exports = {
reactStrictMode: true,
transpilePackages: ["ui"],
};
+15 -43
View File
@@ -1,53 +1,25 @@
{
"name": "docs",
"version": "0.0.0",
"version": "1.0.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
"dev": "next dev --port 3001",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/preset-classic": "2.4.3",
"@docusaurus/remark-plugin-npm2yarn": "^2.4.3",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"postcss": "^8.4.31",
"prism-react-renderer": "^1.3.5",
"raw-loader": "^4.0.2",
"react": "^17.0.2",
"react-dom": "^17.0.2"
"next": "^13.4.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"ui": "workspace:*"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.3",
"@docusaurus/types": "^2.4.3",
"@tsconfig/docusaurus": "^2.0.1",
"docusaurus-plugin-typedoc": "^0.19.2",
"typedoc": "^0.24.8",
"typedoc-plugin-markdown": "^3.16.0",
"typescript": "^4.9.5"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"engines": {
"node": ">=16.14"
"@types/node": "^17.0.12",
"@types/react": "^18.0.22",
"@types/react-dom": "^18.0.7",
"eslint-config-custom": "workspace:*",
"tsconfig": "workspace:*",
"typescript": "^4.5.3"
}
}
-33
View File
@@ -1,33 +0,0 @@
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
mySidebar: [{ type: "autogenerated", dirName: "." }],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
module.exports = sidebars;
@@ -1,59 +0,0 @@
import clsx from "clsx";
import React from "react";
import styles from "./styles.module.css";
type FeatureItem = {
title: string;
Svg: React.ComponentType<React.ComponentProps<"svg">>;
description: JSX.Element;
};
const FeatureList: FeatureItem[] = [
{
title: "Data Driven",
Svg: require("@site/static/img/undraw_docusaurus_mountain.svg").default,
description: <>LlamaIndex.TS is all about using your data with LLMs.</>,
},
{
title: "Typescript Native",
Svg: require("@site/static/img/undraw_docusaurus_tree.svg").default,
description: <>We Typescript, and so do our users.</>,
},
{
title: "Built by the Community",
Svg: require("@site/static/img/undraw_docusaurus_react.svg").default,
description: (
<>
LlamaIndex.TS is a community project, and we welcome your contributions!
</>
),
},
];
function Feature({ title, Svg, description }: FeatureItem) {
return (
<div className={clsx("col col--4")}>
<div className="text--center">
<Svg className={styles.featureSvg} role="img" />
</div>
<div className="text--center padding-horiz--md">
<h3>{title}</h3>
<p>{description}</p>
</div>
</div>
);
}
export default function HomepageFeatures(): JSX.Element {
return (
<section className={styles.features}>
<div className="container">
<div className="row">
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}
@@ -1,11 +0,0 @@
.features {
display: flex;
align-items: center;
padding: 2rem 0;
width: 100%;
}
.featureSvg {
height: 200px;
width: 200px;
}
-30
View File
@@ -1,30 +0,0 @@
/**
* Any CSS included here will be global. The classic template
* bundles Infima by default. Infima is a CSS framework designed to
* work well for content-centric websites.
*/
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #2e8555;
--ifm-color-primary-dark: #29784c;
--ifm-color-primary-darker: #277148;
--ifm-color-primary-darkest: #205d3b;
--ifm-color-primary-light: #33925d;
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme="dark"] {
--ifm-color-primary: #25c2a0;
--ifm-color-primary-dark: #21af90;
--ifm-color-primary-darker: #1fa588;
--ifm-color-primary-darkest: #1a8870;
--ifm-color-primary-light: #29d5b0;
--ifm-color-primary-lighter: #32d8b4;
--ifm-color-primary-lightest: #4fddbf;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
-23
View File
@@ -1,23 +0,0 @@
/**
* CSS files with the .module.css suffix will be treated as CSS modules
* and scoped locally.
*/
.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
}
@media screen and (max-width: 996px) {
.heroBanner {
padding: 2rem;
}
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
}
-7
View File
@@ -1,7 +0,0 @@
---
title: Markdown page example
---
# Markdown page example
You don't need React to write simple standalone pages.
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

-37
View File
@@ -1,37 +0,0 @@
<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<g fill="none" fill-rule="evenodd">
<path fill="#FFF" d="M99 52h84v34H99z" />
<path
d="M23 163c-7.398 0-13.843-4.027-17.303-10A19.886 19.886 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20H23z"
fill="#3ECC5F" />
<path
d="M112.98 57.376L183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23c-.022 0-.042.003-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142c0 .021-.003.042-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624"
fill="#3ECC5F" />
<path fill="#3ECC5F" d="M143 183h30v-40h-30z" />
<path
d="M193 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5"
fill="#44D860" />
<path fill="#3ECC5F" d="M153 123h30v-20h-30z" />
<path
d="M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032"
fill="#44D860" />
<path
d="M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5"
fill="#000" />
<path d="M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20v70z" fill="#FFFF50" />
<path
d="M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773v-2z"
fill="#000" />
<path fill="#3ECC5F" d="M83 183h40v-40H83z" />
<path
d="M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5"
fill="#44D860" />
<path fill="#3ECC5F" d="M83 123h40v-20H83z" />
<path
d="M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032"
fill="#44D860" />
<path
d="M143 41.75c-.16 0-.33-.02-.49-.05a2.52 2.52 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.16.02-.33.05-.49.03-.16.08-.31.139-.47.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.65-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a3.802 3.802 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.66-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49-.03.16-.08.32-.14.47-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19"
fill="#000" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

-171
View File
@@ -1,171 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1088" height="687.962" viewBox="0 0 1088 687.962">
<title>Easy to Use</title>
<g id="Group_12" data-name="Group 12" transform="translate(-57 -56)">
<g id="Group_11" data-name="Group 11" transform="translate(57 56)">
<path id="Path_83" data-name="Path 83" d="M1017.81,560.461c-5.27,45.15-16.22,81.4-31.25,110.31-20,38.52-54.21,54.04-84.77,70.28a193.275,193.275,0,0,1-27.46,11.94c-55.61,19.3-117.85,14.18-166.74,3.99a657.282,657.282,0,0,0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07,5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12,52.29-235.46,134.74-296.47,155.97-115.41,369.76-110.57,523.43,7.88C941.15,276.621,1036.99,396.031,1017.81,560.461Z" transform="translate(-56 -106.019)" fill="#3f3d56"/>
<path id="Path_84" data-name="Path 84" d="M986.56,670.771c-20,38.52-47.21,64.04-77.77,80.28a193.272,193.272,0,0,1-27.46,11.94c-55.61,19.3-117.85,14.18-166.74,3.99a657.3,657.3,0,0,0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25,1.72c-100.17,7.36-253.82-6.43-321.42-143.29L382,283.981,444.95,445.6l20.09,51.59,55.37-75.98L549,381.981l130.2,149.27,36.8-81.27L970.78,657.9l14.21,11.59Z" transform="translate(-56 -106.019)" fill="#f2f2f2"/>
<path id="Path_85" data-name="Path 85" d="M302,282.962l26-57,36,83-31-60Z" opacity="0.1"/>
<path id="Path_86" data-name="Path 86" d="M610.5,753.821q-14.97-.675-29.97-.67L465.04,497.191Z" transform="translate(-56 -106.019)" opacity="0.1"/>
<path id="Path_87" data-name="Path 87" d="M464.411,315.191,493,292.962l130,150-132-128Z" opacity="0.1"/>
<path id="Path_88" data-name="Path 88" d="M908.79,751.051a193.265,193.265,0,0,1-27.46,11.94L679.2,531.251Z" transform="translate(-56 -106.019)" opacity="0.1"/>
<circle id="Ellipse_11" data-name="Ellipse 11" cx="3" cy="3" r="3" transform="translate(479 98.962)" fill="#f2f2f2"/>
<circle id="Ellipse_12" data-name="Ellipse 12" cx="3" cy="3" r="3" transform="translate(396 201.962)" fill="#f2f2f2"/>
<circle id="Ellipse_13" data-name="Ellipse 13" cx="2" cy="2" r="2" transform="translate(600 220.962)" fill="#f2f2f2"/>
<circle id="Ellipse_14" data-name="Ellipse 14" cx="2" cy="2" r="2" transform="translate(180 265.962)" fill="#f2f2f2"/>
<circle id="Ellipse_15" data-name="Ellipse 15" cx="2" cy="2" r="2" transform="translate(612 96.962)" fill="#f2f2f2"/>
<circle id="Ellipse_16" data-name="Ellipse 16" cx="2" cy="2" r="2" transform="translate(736 192.962)" fill="#f2f2f2"/>
<circle id="Ellipse_17" data-name="Ellipse 17" cx="2" cy="2" r="2" transform="translate(858 344.962)" fill="#f2f2f2"/>
<path id="Path_89" data-name="Path 89" d="M306,121.222h-2.76v-2.76h-1.48v2.76H299V122.7h2.76v2.759h1.48V122.7H306Z" fill="#f2f2f2"/>
<path id="Path_90" data-name="Path 90" d="M848,424.222h-2.76v-2.76h-1.48v2.76H841V425.7h2.76v2.759h1.48V425.7H848Z" fill="#f2f2f2"/>
<path id="Path_91" data-name="Path 91" d="M1144,719.981c0,16.569-243.557,74-544,74s-544-57.431-544-74,243.557,14,544,14S1144,703.413,1144,719.981Z" transform="translate(-56 -106.019)" fill="#3f3d56"/>
<path id="Path_92" data-name="Path 92" d="M1144,719.981c0,16.569-243.557,74-544,74s-544-57.431-544-74,243.557,14,544,14S1144,703.413,1144,719.981Z" transform="translate(-56 -106.019)" opacity="0.1"/>
<ellipse id="Ellipse_18" data-name="Ellipse 18" cx="544" cy="30" rx="544" ry="30" transform="translate(0 583.962)" fill="#3f3d56"/>
<path id="Path_93" data-name="Path 93" d="M624,677.981c0,33.137-14.775,24-33,24s-33,9.137-33-24,33-96,33-96S624,644.844,624,677.981Z" transform="translate(-56 -106.019)" fill="#ff6584"/>
<path id="Path_94" data-name="Path 94" d="M606,690.66c0,15.062-6.716,10.909-15,10.909s-15,4.153-15-10.909,15-43.636,15-43.636S606,675.6,606,690.66Z" transform="translate(-56 -106.019)" opacity="0.1"/>
<rect id="Rectangle_97" data-name="Rectangle 97" width="92" height="18" rx="9" transform="translate(489 604.962)" fill="#2f2e41"/>
<rect id="Rectangle_98" data-name="Rectangle 98" width="92" height="18" rx="9" transform="translate(489 586.962)" fill="#2f2e41"/>
<path id="Path_95" data-name="Path 95" d="M193,596.547c0,55.343,34.719,100.126,77.626,100.126" transform="translate(-56 -106.019)" fill="#3f3d56"/>
<path id="Path_96" data-name="Path 96" d="M270.626,696.673c0-55.965,38.745-101.251,86.626-101.251" transform="translate(-56 -106.019)" fill="#6c63ff"/>
<path id="Path_97" data-name="Path 97" d="M221.125,601.564c0,52.57,22.14,95.109,49.5,95.109" transform="translate(-56 -106.019)" fill="#6c63ff"/>
<path id="Path_98" data-name="Path 98" d="M270.626,696.673c0-71.511,44.783-129.377,100.126-129.377" transform="translate(-56 -106.019)" fill="#3f3d56"/>
<path id="Path_99" data-name="Path 99" d="M254.3,697.379s11.009-.339,14.326-2.7,16.934-5.183,17.757-1.395,16.544,18.844,4.115,18.945-28.879-1.936-32.19-3.953S254.3,697.379,254.3,697.379Z" transform="translate(-56 -106.019)" fill="#a8a8a8"/>
<path id="Path_100" data-name="Path 100" d="M290.716,710.909c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7,8.879,4.009,10.9,19.761,4.053,32.19,3.953c3.588-.029,4.827-1.305,4.759-3.2C294.755,710.174,293.386,710.887,290.716,710.909Z" transform="translate(-56 -106.019)" opacity="0.2"/>
<path id="Path_101" data-name="Path 101" d="M777.429,633.081c0,38.029,23.857,68.8,53.341,68.8" transform="translate(-56 -106.019)" fill="#3f3d56"/>
<path id="Path_102" data-name="Path 102" d="M830.769,701.882c0-38.456,26.623-69.575,59.525-69.575" transform="translate(-56 -106.019)" fill="#6c63ff"/>
<path id="Path_103" data-name="Path 103" d="M796.755,636.528c0,36.124,15.213,65.354,34.014,65.354" transform="translate(-56 -106.019)" fill="#6c63ff"/>
<path id="Path_104" data-name="Path 104" d="M830.769,701.882c0-49.139,30.773-88.9,68.8-88.9" transform="translate(-56 -106.019)" fill="#3f3d56"/>
<path id="Path_105" data-name="Path 105" d="M819.548,702.367s7.565-.233,9.844-1.856,11.636-3.562,12.2-.958,11.368,12.949,2.828,13.018-19.844-1.33-22.119-2.716S819.548,702.367,819.548,702.367Z" transform="translate(-56 -106.019)" fill="#a8a8a8"/>
<path id="Path_106" data-name="Path 106" d="M844.574,711.664c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479,6.1,2.755,7.487,13.579,2.785,22.119,2.716c2.465-.02,3.317-.9,3.27-2.2C847.349,711.159,846.409,711.649,844.574,711.664Z" transform="translate(-56 -106.019)" opacity="0.2"/>
<path id="Path_107" data-name="Path 107" d="M949.813,724.718s11.36-1.729,14.5-4.591,16.89-7.488,18.217-3.667,19.494,17.447,6.633,19.107-30.153,1.609-33.835-.065S949.813,724.718,949.813,724.718Z" transform="translate(-56 -106.019)" fill="#a8a8a8"/>
<path id="Path_108" data-name="Path 108" d="M989.228,734.173c-12.86,1.659-30.153,1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833,9.109,5.516,10.783,20.975,1.725,33.835.065c3.712-.479,4.836-1.956,4.529-3.906C993.319,732.907,991.991,733.817,989.228,734.173Z" transform="translate(-56 -106.019)" opacity="0.2"/>
<path id="Path_109" data-name="Path 109" d="M670.26,723.9s9.587-1.459,12.237-3.875,14.255-6.32,15.374-3.095,16.452,14.725,5.6,16.125-25.448,1.358-28.555-.055S670.26,723.9,670.26,723.9Z" transform="translate(-56 -106.019)" fill="#a8a8a8"/>
<path id="Path_110" data-name="Path 110" d="M703.524,731.875c-10.853,1.4-25.448,1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547,7.687,4.655,9.1,17.7,1.456,28.555.055c3.133-.4,4.081-1.651,3.822-3.3C706.977,730.807,705.856,731.575,703.524,731.875Z" transform="translate(-56 -106.019)" opacity="0.2"/>
<path id="Path_111" data-name="Path 111" d="M178.389,719.109s7.463-1.136,9.527-3.016,11.1-4.92,11.969-2.409,12.808,11.463,4.358,12.553-19.811,1.057-22.23-.043S178.389,719.109,178.389,719.109Z" transform="translate(-56 -106.019)" fill="#a8a8a8"/>
<path id="Path_112" data-name="Path 112" d="M204.285,725.321c-8.449,1.09-19.811,1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2,5.984,3.624,7.085,13.781,1.133,22.23.043c2.439-.315,3.177-1.285,2.976-2.566C206.973,724.489,206.1,725.087,204.285,725.321Z" transform="translate(-56 -106.019)" opacity="0.2"/>
<path id="Path_113" data-name="Path 113" d="M439.7,707.337c0,30.22-42.124,20.873-93.7,20.873s-93.074,9.347-93.074-20.873,42.118-36.793,93.694-36.793S439.7,677.117,439.7,707.337Z" transform="translate(-56 -106.019)" opacity="0.1"/>
<path id="Path_114" data-name="Path 114" d="M439.7,699.9c0,30.22-42.124,20.873-93.7,20.873s-93.074,9.347-93.074-20.873S295.04,663.1,346.616,663.1,439.7,669.676,439.7,699.9Z" transform="translate(-56 -106.019)" fill="#3f3d56"/>
</g>
<g id="docusaurus_keytar" transform="translate(312.271 493.733)">
<path id="Path_40" data-name="Path 40" d="M99,52h91.791V89.153H99Z" transform="translate(5.904 -14.001)" fill="#fff" fill-rule="evenodd"/>
<path id="Path_41" data-name="Path 41" d="M24.855,163.927A21.828,21.828,0,0,1,5.947,153a21.829,21.829,0,0,0,18.908,32.782H46.71V163.927Z" transform="translate(-3 -4.634)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_42" data-name="Path 42" d="M121.861,61.1l76.514-4.782V45.39A21.854,21.854,0,0,0,176.52,23.535H78.173L75.441,18.8a3.154,3.154,0,0,0-5.464,0l-2.732,4.732L64.513,18.8a3.154,3.154,0,0,0-5.464,0l-2.732,4.732L53.586,18.8a3.154,3.154,0,0,0-5.464,0L45.39,23.535c-.024,0-.046,0-.071,0l-4.526-4.525a3.153,3.153,0,0,0-5.276,1.414l-1.5,5.577-5.674-1.521a3.154,3.154,0,0,0-3.863,3.864L26,34.023l-5.575,1.494a3.155,3.155,0,0,0-1.416,5.278l4.526,4.526c0,.023,0,.046,0,.07L18.8,48.122a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,59.05a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,69.977a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,80.9a3.154,3.154,0,0,0,0,5.464L23.535,89.1,18.8,91.832a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,102.76a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,113.687a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,124.615a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,135.542a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,146.469a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,157.4a3.154,3.154,0,0,0,0,5.464l4.732,2.732L18.8,168.324a3.154,3.154,0,0,0,0,5.464l4.732,2.732A21.854,21.854,0,0,0,45.39,198.375H176.52a21.854,21.854,0,0,0,21.855-21.855V89.1l-76.514-4.782a11.632,11.632,0,0,1,0-23.219" transform="translate(-1.681 -17.226)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_43" data-name="Path 43" d="M143,186.71h32.782V143H143Z" transform="translate(9.984 -5.561)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_44" data-name="Path 44" d="M196.71,159.855a5.438,5.438,0,0,0-.7.07c-.042-.164-.081-.329-.127-.493a5.457,5.457,0,1,0-5.4-9.372q-.181-.185-.366-.367a5.454,5.454,0,1,0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467,5.467,0,1,0-10.788,0c-.162.042-.325.08-.486.126a5.457,5.457,0,1,0-9.384,5.4,21.843,21.843,0,1,0,36.421,21.02,5.452,5.452,0,1,0,.7-10.858" transform="translate(10.912 -6.025)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_45" data-name="Path 45" d="M153,124.855h32.782V103H153Z" transform="translate(10.912 -9.271)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_46" data-name="Path 46" d="M194.855,116.765a2.732,2.732,0,1,0,0-5.464,2.811,2.811,0,0,0-.349.035c-.022-.082-.04-.164-.063-.246a2.733,2.733,0,0,0-1.052-5.253,2.7,2.7,0,0,0-1.648.566q-.09-.093-.184-.184a2.7,2.7,0,0,0,.553-1.633,2.732,2.732,0,0,0-5.245-1.07,10.928,10.928,0,1,0,0,21.031,2.732,2.732,0,0,0,5.245-1.07,2.7,2.7,0,0,0-.553-1.633q.093-.09.184-.184a2.7,2.7,0,0,0,1.648.566,2.732,2.732,0,0,0,1.052-5.253c.023-.081.042-.164.063-.246a2.814,2.814,0,0,0,.349.035" transform="translate(12.767 -9.377)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_47" data-name="Path 47" d="M65.087,56.891a2.732,2.732,0,0,1-2.732-2.732,8.2,8.2,0,0,0-16.391,0,2.732,2.732,0,0,1-5.464,0,13.659,13.659,0,0,1,27.319,0,2.732,2.732,0,0,1-2.732,2.732" transform="translate(0.478 -15.068)" fill-rule="evenodd"/>
<path id="Path_48" data-name="Path 48" d="M103,191.347h65.565a21.854,21.854,0,0,0,21.855-21.855V93H124.855A21.854,21.854,0,0,0,103,114.855Z" transform="translate(6.275 -10.199)" fill="#ffff50" fill-rule="evenodd"/>
<path id="Path_49" data-name="Path 49" d="M173.216,129.787H118.535a1.093,1.093,0,1,1,0-2.185h54.681a1.093,1.093,0,0,1,0,2.185m0,21.855H118.535a1.093,1.093,0,1,1,0-2.186h54.681a1.093,1.093,0,0,1,0,2.186m0,21.855H118.535a1.093,1.093,0,1,1,0-2.185h54.681a1.093,1.093,0,0,1,0,2.185m0-54.434H118.535a1.093,1.093,0,1,1,0-2.185h54.681a1.093,1.093,0,0,1,0,2.185m0,21.652H118.535a1.093,1.093,0,1,1,0-2.186h54.681a1.093,1.093,0,0,1,0,2.186m0,21.855H118.535a1.093,1.093,0,1,1,0-2.186h54.681a1.093,1.093,0,0,1,0,2.186M189.585,61.611c-.013,0-.024-.007-.037-.005-3.377.115-4.974,3.492-6.384,6.472-1.471,3.114-2.608,5.139-4.473,5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932,3.053-6.346,5.646-1.5,2.762-2.529,4.442-4.5,4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879,2.606-6.3,4.808-1.5,2.328-2.552,3.746-4.551,3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807,2.153-6.224,3.954-1.346,1.709-2.4,3.062-4.621,2.977a1.093,1.093,0,0,0-.079,2.186c3.3.11,4.967-1.967,6.417-3.81,1.286-1.635,2.4-3.045,4.582-3.12,2.1-.09,3.091,1.218,4.584,3.327,1.417,2,3.026,4.277,6.263,4.394,3.391.114,5.022-2.42,6.467-4.663,1.292-2,2.406-3.734,4.535-3.807,1.959-.073,3.026,1.475,4.529,4.022,1.417,2.4,3.023,5.121,6.324,5.241,3.415.118,5.064-2.863,6.5-5.5,1.245-2.282,2.419-4.437,4.5-4.509,1.959-.046,2.981,1.743,4.492,4.732,1.412,2.79,3.013,5.95,6.365,6.071l.185,0c3.348,0,4.937-3.36,6.343-6.331,1.245-2.634,2.423-5.114,4.444-5.216Z" transform="translate(7.109 -13.11)" fill-rule="evenodd"/>
<path id="Path_50" data-name="Path 50" d="M83,186.71h43.71V143H83Z" transform="translate(4.42 -5.561)" fill="#3ecc5f" fill-rule="evenodd"/>
<g id="Group_8" data-name="Group 8" transform="matrix(0.966, -0.259, 0.259, 0.966, 109.327, 91.085)">
<rect id="Rectangle_3" data-name="Rectangle 3" width="92.361" height="36.462" rx="2" transform="translate(0 0)" fill="#d8d8d8"/>
<g id="Group_2" data-name="Group 2" transform="translate(1.531 23.03)">
<rect id="Rectangle_4" data-name="Rectangle 4" width="5.336" height="5.336" rx="1" transform="translate(16.797 0)" fill="#4a4a4a"/>
<rect id="Rectangle_5" data-name="Rectangle 5" width="5.336" height="5.336" rx="1" transform="translate(23.12 0)" fill="#4a4a4a"/>
<rect id="Rectangle_6" data-name="Rectangle 6" width="5.336" height="5.336" rx="1" transform="translate(29.444 0)" fill="#4a4a4a"/>
<rect id="Rectangle_7" data-name="Rectangle 7" width="5.336" height="5.336" rx="1" transform="translate(35.768 0)" fill="#4a4a4a"/>
<rect id="Rectangle_8" data-name="Rectangle 8" width="5.336" height="5.336" rx="1" transform="translate(42.091 0)" fill="#4a4a4a"/>
<rect id="Rectangle_9" data-name="Rectangle 9" width="5.336" height="5.336" rx="1" transform="translate(48.415 0)" fill="#4a4a4a"/>
<rect id="Rectangle_10" data-name="Rectangle 10" width="5.336" height="5.336" rx="1" transform="translate(54.739 0)" fill="#4a4a4a"/>
<rect id="Rectangle_11" data-name="Rectangle 11" width="5.336" height="5.336" rx="1" transform="translate(61.063 0)" fill="#4a4a4a"/>
<rect id="Rectangle_12" data-name="Rectangle 12" width="5.336" height="5.336" rx="1" transform="translate(67.386 0)" fill="#4a4a4a"/>
<path id="Path_51" data-name="Path 51" d="M1.093,0H14.518a1.093,1.093,0,0,1,1.093,1.093V4.243a1.093,1.093,0,0,1-1.093,1.093H1.093A1.093,1.093,0,0,1,0,4.243V1.093A1.093,1.093,0,0,1,1.093,0ZM75,0H88.426a1.093,1.093,0,0,1,1.093,1.093V4.243a1.093,1.093,0,0,1-1.093,1.093H75a1.093,1.093,0,0,1-1.093-1.093V1.093A1.093,1.093,0,0,1,75,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
</g>
<g id="Group_3" data-name="Group 3" transform="translate(1.531 10.261)">
<path id="Path_52" data-name="Path 52" d="M1.093,0H6.218A1.093,1.093,0,0,1,7.31,1.093V4.242A1.093,1.093,0,0,1,6.218,5.335H1.093A1.093,1.093,0,0,1,0,4.242V1.093A1.093,1.093,0,0,1,1.093,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<rect id="Rectangle_13" data-name="Rectangle 13" width="5.336" height="5.336" rx="1" transform="translate(8.299 0)" fill="#4a4a4a"/>
<rect id="Rectangle_14" data-name="Rectangle 14" width="5.336" height="5.336" rx="1" transform="translate(14.623 0)" fill="#4a4a4a"/>
<rect id="Rectangle_15" data-name="Rectangle 15" width="5.336" height="5.336" rx="1" transform="translate(20.947 0)" fill="#4a4a4a"/>
<rect id="Rectangle_16" data-name="Rectangle 16" width="5.336" height="5.336" rx="1" transform="translate(27.271 0)" fill="#4a4a4a"/>
<rect id="Rectangle_17" data-name="Rectangle 17" width="5.336" height="5.336" rx="1" transform="translate(33.594 0)" fill="#4a4a4a"/>
<rect id="Rectangle_18" data-name="Rectangle 18" width="5.336" height="5.336" rx="1" transform="translate(39.918 0)" fill="#4a4a4a"/>
<rect id="Rectangle_19" data-name="Rectangle 19" width="5.336" height="5.336" rx="1" transform="translate(46.242 0)" fill="#4a4a4a"/>
<rect id="Rectangle_20" data-name="Rectangle 20" width="5.336" height="5.336" rx="1" transform="translate(52.565 0)" fill="#4a4a4a"/>
<rect id="Rectangle_21" data-name="Rectangle 21" width="5.336" height="5.336" rx="1" transform="translate(58.888 0)" fill="#4a4a4a"/>
<rect id="Rectangle_22" data-name="Rectangle 22" width="5.336" height="5.336" rx="1" transform="translate(65.212 0)" fill="#4a4a4a"/>
<rect id="Rectangle_23" data-name="Rectangle 23" width="5.336" height="5.336" rx="1" transform="translate(71.536 0)" fill="#4a4a4a"/>
<rect id="Rectangle_24" data-name="Rectangle 24" width="5.336" height="5.336" rx="1" transform="translate(77.859 0)" fill="#4a4a4a"/>
<rect id="Rectangle_25" data-name="Rectangle 25" width="5.336" height="5.336" rx="1" transform="translate(84.183 0)" fill="#4a4a4a"/>
</g>
<g id="Group_4" data-name="Group 4" transform="translate(91.05 9.546) rotate(180)">
<path id="Path_53" data-name="Path 53" d="M1.093,0H6.219A1.093,1.093,0,0,1,7.312,1.093v3.15A1.093,1.093,0,0,1,6.219,5.336H1.093A1.093,1.093,0,0,1,0,4.243V1.093A1.093,1.093,0,0,1,1.093,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<rect id="Rectangle_26" data-name="Rectangle 26" width="5.336" height="5.336" rx="1" transform="translate(8.299 0)" fill="#4a4a4a"/>
<rect id="Rectangle_27" data-name="Rectangle 27" width="5.336" height="5.336" rx="1" transform="translate(14.623 0)" fill="#4a4a4a"/>
<rect id="Rectangle_28" data-name="Rectangle 28" width="5.336" height="5.336" rx="1" transform="translate(20.947 0)" fill="#4a4a4a"/>
<rect id="Rectangle_29" data-name="Rectangle 29" width="5.336" height="5.336" rx="1" transform="translate(27.271 0)" fill="#4a4a4a"/>
<rect id="Rectangle_30" data-name="Rectangle 30" width="5.336" height="5.336" rx="1" transform="translate(33.594 0)" fill="#4a4a4a"/>
<rect id="Rectangle_31" data-name="Rectangle 31" width="5.336" height="5.336" rx="1" transform="translate(39.918 0)" fill="#4a4a4a"/>
<rect id="Rectangle_32" data-name="Rectangle 32" width="5.336" height="5.336" rx="1" transform="translate(46.242 0)" fill="#4a4a4a"/>
<rect id="Rectangle_33" data-name="Rectangle 33" width="5.336" height="5.336" rx="1" transform="translate(52.565 0)" fill="#4a4a4a"/>
<rect id="Rectangle_34" data-name="Rectangle 34" width="5.336" height="5.336" rx="1" transform="translate(58.889 0)" fill="#4a4a4a"/>
<rect id="Rectangle_35" data-name="Rectangle 35" width="5.336" height="5.336" rx="1" transform="translate(65.213 0)" fill="#4a4a4a"/>
<rect id="Rectangle_36" data-name="Rectangle 36" width="5.336" height="5.336" rx="1" transform="translate(71.537 0)" fill="#4a4a4a"/>
<rect id="Rectangle_37" data-name="Rectangle 37" width="5.336" height="5.336" rx="1" transform="translate(77.86 0)" fill="#4a4a4a"/>
<rect id="Rectangle_38" data-name="Rectangle 38" width="5.336" height="5.336" rx="1" transform="translate(84.183 0)" fill="#4a4a4a"/>
<rect id="Rectangle_39" data-name="Rectangle 39" width="5.336" height="5.336" rx="1" transform="translate(8.299 0)" fill="#4a4a4a"/>
<rect id="Rectangle_40" data-name="Rectangle 40" width="5.336" height="5.336" rx="1" transform="translate(14.623 0)" fill="#4a4a4a"/>
<rect id="Rectangle_41" data-name="Rectangle 41" width="5.336" height="5.336" rx="1" transform="translate(20.947 0)" fill="#4a4a4a"/>
<rect id="Rectangle_42" data-name="Rectangle 42" width="5.336" height="5.336" rx="1" transform="translate(27.271 0)" fill="#4a4a4a"/>
<rect id="Rectangle_43" data-name="Rectangle 43" width="5.336" height="5.336" rx="1" transform="translate(33.594 0)" fill="#4a4a4a"/>
<rect id="Rectangle_44" data-name="Rectangle 44" width="5.336" height="5.336" rx="1" transform="translate(39.918 0)" fill="#4a4a4a"/>
<rect id="Rectangle_45" data-name="Rectangle 45" width="5.336" height="5.336" rx="1" transform="translate(46.242 0)" fill="#4a4a4a"/>
<rect id="Rectangle_46" data-name="Rectangle 46" width="5.336" height="5.336" rx="1" transform="translate(52.565 0)" fill="#4a4a4a"/>
<rect id="Rectangle_47" data-name="Rectangle 47" width="5.336" height="5.336" rx="1" transform="translate(58.889 0)" fill="#4a4a4a"/>
<rect id="Rectangle_48" data-name="Rectangle 48" width="5.336" height="5.336" rx="1" transform="translate(65.213 0)" fill="#4a4a4a"/>
<rect id="Rectangle_49" data-name="Rectangle 49" width="5.336" height="5.336" rx="1" transform="translate(71.537 0)" fill="#4a4a4a"/>
<rect id="Rectangle_50" data-name="Rectangle 50" width="5.336" height="5.336" rx="1" transform="translate(77.86 0)" fill="#4a4a4a"/>
<rect id="Rectangle_51" data-name="Rectangle 51" width="5.336" height="5.336" rx="1" transform="translate(84.183 0)" fill="#4a4a4a"/>
</g>
<g id="Group_6" data-name="Group 6" transform="translate(1.531 16.584)">
<path id="Path_54" data-name="Path 54" d="M1.093,0h7.3A1.093,1.093,0,0,1,9.485,1.093v3.15A1.093,1.093,0,0,1,8.392,5.336h-7.3A1.093,1.093,0,0,1,0,4.243V1.094A1.093,1.093,0,0,1,1.093,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<g id="Group_5" data-name="Group 5" transform="translate(10.671 0)">
<rect id="Rectangle_52" data-name="Rectangle 52" width="5.336" height="5.336" rx="1" fill="#4a4a4a"/>
<rect id="Rectangle_53" data-name="Rectangle 53" width="5.336" height="5.336" rx="1" transform="translate(6.324 0)" fill="#4a4a4a"/>
<rect id="Rectangle_54" data-name="Rectangle 54" width="5.336" height="5.336" rx="1" transform="translate(12.647 0)" fill="#4a4a4a"/>
<rect id="Rectangle_55" data-name="Rectangle 55" width="5.336" height="5.336" rx="1" transform="translate(18.971 0)" fill="#4a4a4a"/>
<rect id="Rectangle_56" data-name="Rectangle 56" width="5.336" height="5.336" rx="1" transform="translate(25.295 0)" fill="#4a4a4a"/>
<rect id="Rectangle_57" data-name="Rectangle 57" width="5.336" height="5.336" rx="1" transform="translate(31.619 0)" fill="#4a4a4a"/>
<rect id="Rectangle_58" data-name="Rectangle 58" width="5.336" height="5.336" rx="1" transform="translate(37.942 0)" fill="#4a4a4a"/>
<rect id="Rectangle_59" data-name="Rectangle 59" width="5.336" height="5.336" rx="1" transform="translate(44.265 0)" fill="#4a4a4a"/>
<rect id="Rectangle_60" data-name="Rectangle 60" width="5.336" height="5.336" rx="1" transform="translate(50.589 0)" fill="#4a4a4a"/>
<rect id="Rectangle_61" data-name="Rectangle 61" width="5.336" height="5.336" rx="1" transform="translate(56.912 0)" fill="#4a4a4a"/>
<rect id="Rectangle_62" data-name="Rectangle 62" width="5.336" height="5.336" rx="1" transform="translate(63.236 0)" fill="#4a4a4a"/>
</g>
<path id="Path_55" data-name="Path 55" d="M1.094,0H8A1.093,1.093,0,0,1,9.091,1.093v3.15A1.093,1.093,0,0,1,8,5.336H1.093A1.093,1.093,0,0,1,0,4.243V1.094A1.093,1.093,0,0,1,1.093,0Z" transform="translate(80.428 0)" fill="#4a4a4a" fill-rule="evenodd"/>
</g>
<g id="Group_7" data-name="Group 7" transform="translate(1.531 29.627)">
<rect id="Rectangle_63" data-name="Rectangle 63" width="5.336" height="5.336" rx="1" transform="translate(0 0)" fill="#4a4a4a"/>
<rect id="Rectangle_64" data-name="Rectangle 64" width="5.336" height="5.336" rx="1" transform="translate(6.324 0)" fill="#4a4a4a"/>
<rect id="Rectangle_65" data-name="Rectangle 65" width="5.336" height="5.336" rx="1" transform="translate(12.647 0)" fill="#4a4a4a"/>
<rect id="Rectangle_66" data-name="Rectangle 66" width="5.336" height="5.336" rx="1" transform="translate(18.971 0)" fill="#4a4a4a"/>
<path id="Path_56" data-name="Path 56" d="M1.093,0H31.515a1.093,1.093,0,0,1,1.093,1.093V4.244a1.093,1.093,0,0,1-1.093,1.093H1.093A1.093,1.093,0,0,1,0,4.244V1.093A1.093,1.093,0,0,1,1.093,0ZM34.687,0h3.942a1.093,1.093,0,0,1,1.093,1.093V4.244a1.093,1.093,0,0,1-1.093,1.093H34.687a1.093,1.093,0,0,1-1.093-1.093V1.093A1.093,1.093,0,0,1,34.687,0Z" transform="translate(25.294 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<rect id="Rectangle_67" data-name="Rectangle 67" width="5.336" height="5.336" rx="1" transform="translate(66.003 0)" fill="#4a4a4a"/>
<rect id="Rectangle_68" data-name="Rectangle 68" width="5.336" height="5.336" rx="1" transform="translate(72.327 0)" fill="#4a4a4a"/>
<rect id="Rectangle_69" data-name="Rectangle 69" width="5.336" height="5.336" rx="1" transform="translate(84.183 0)" fill="#4a4a4a"/>
<path id="Path_57" data-name="Path 57" d="M5.336,0V1.18A1.093,1.093,0,0,1,4.243,2.273H1.093A1.093,1.093,0,0,1,0,1.18V0Z" transform="translate(83.59 2.273) rotate(180)" fill="#4a4a4a"/>
<path id="Path_58" data-name="Path 58" d="M5.336,0V1.18A1.093,1.093,0,0,1,4.243,2.273H1.093A1.093,1.093,0,0,1,0,1.18V0Z" transform="translate(78.255 3.063)" fill="#4a4a4a"/>
</g>
<rect id="Rectangle_70" data-name="Rectangle 70" width="88.927" height="2.371" rx="1.085" transform="translate(1.925 1.17)" fill="#4a4a4a"/>
<rect id="Rectangle_71" data-name="Rectangle 71" width="4.986" height="1.581" rx="0.723" transform="translate(4.1 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_72" data-name="Rectangle 72" width="4.986" height="1.581" rx="0.723" transform="translate(10.923 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_73" data-name="Rectangle 73" width="4.986" height="1.581" rx="0.723" transform="translate(16.173 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_74" data-name="Rectangle 74" width="4.986" height="1.581" rx="0.723" transform="translate(21.421 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_75" data-name="Rectangle 75" width="4.986" height="1.581" rx="0.723" transform="translate(26.671 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_76" data-name="Rectangle 76" width="4.986" height="1.581" rx="0.723" transform="translate(33.232 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_77" data-name="Rectangle 77" width="4.986" height="1.581" rx="0.723" transform="translate(38.48 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_78" data-name="Rectangle 78" width="4.986" height="1.581" rx="0.723" transform="translate(43.73 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_79" data-name="Rectangle 79" width="4.986" height="1.581" rx="0.723" transform="translate(48.978 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_80" data-name="Rectangle 80" width="4.986" height="1.581" rx="0.723" transform="translate(55.54 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_81" data-name="Rectangle 81" width="4.986" height="1.581" rx="0.723" transform="translate(60.788 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_82" data-name="Rectangle 82" width="4.986" height="1.581" rx="0.723" transform="translate(66.038 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_83" data-name="Rectangle 83" width="4.986" height="1.581" rx="0.723" transform="translate(72.599 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_84" data-name="Rectangle 84" width="4.986" height="1.581" rx="0.723" transform="translate(77.847 1.566)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_85" data-name="Rectangle 85" width="4.986" height="1.581" rx="0.723" transform="translate(83.097 1.566)" fill="#d8d8d8" opacity="0.136"/>
</g>
<path id="Path_59" data-name="Path 59" d="M146.71,159.855a5.439,5.439,0,0,0-.7.07c-.042-.164-.081-.329-.127-.493a5.457,5.457,0,1,0-5.4-9.372q-.181-.185-.366-.367a5.454,5.454,0,1,0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467,5.467,0,1,0-10.788,0c-.162.042-.325.08-.486.126a5.457,5.457,0,1,0-9.384,5.4,21.843,21.843,0,1,0,36.421,21.02,5.452,5.452,0,1,0,.7-10.858" transform="translate(6.275 -6.025)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_60" data-name="Path 60" d="M83,124.855h43.71V103H83Z" transform="translate(4.42 -9.271)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_61" data-name="Path 61" d="M134.855,116.765a2.732,2.732,0,1,0,0-5.464,2.811,2.811,0,0,0-.349.035c-.022-.082-.04-.164-.063-.246a2.733,2.733,0,0,0-1.052-5.253,2.7,2.7,0,0,0-1.648.566q-.09-.093-.184-.184a2.7,2.7,0,0,0,.553-1.633,2.732,2.732,0,0,0-5.245-1.07,10.928,10.928,0,1,0,0,21.031,2.732,2.732,0,0,0,5.245-1.07,2.7,2.7,0,0,0-.553-1.633q.093-.09.184-.184a2.7,2.7,0,0,0,1.648.566,2.732,2.732,0,0,0,1.052-5.253c.023-.081.042-.164.063-.246a2.811,2.811,0,0,0,.349.035" transform="translate(7.202 -9.377)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_62" data-name="Path 62" d="M143.232,42.33a2.967,2.967,0,0,1-.535-.055,2.754,2.754,0,0,1-.514-.153,2.838,2.838,0,0,1-.471-.251,4.139,4.139,0,0,1-.415-.339,3.2,3.2,0,0,1-.338-.415A2.7,2.7,0,0,1,140.5,39.6a2.968,2.968,0,0,1,.055-.535,3.152,3.152,0,0,1,.152-.514,2.874,2.874,0,0,1,.252-.47,2.633,2.633,0,0,1,.753-.754,2.837,2.837,0,0,1,.471-.251,2.753,2.753,0,0,1,.514-.153,2.527,2.527,0,0,1,1.071,0,2.654,2.654,0,0,1,.983.4,4.139,4.139,0,0,1,.415.339,4.019,4.019,0,0,1,.339.415,2.786,2.786,0,0,1,.251.47,2.864,2.864,0,0,1,.208,1.049,2.77,2.77,0,0,1-.8,1.934,4.139,4.139,0,0,1-.415.339,2.722,2.722,0,0,1-1.519.459m21.855-1.366a2.789,2.789,0,0,1-1.935-.8,4.162,4.162,0,0,1-.338-.415,2.7,2.7,0,0,1-.459-1.519,2.789,2.789,0,0,1,.8-1.934,4.139,4.139,0,0,1,.415-.339,2.838,2.838,0,0,1,.471-.251,2.752,2.752,0,0,1,.514-.153,2.527,2.527,0,0,1,1.071,0,2.654,2.654,0,0,1,.983.4,4.139,4.139,0,0,1,.415.339,2.79,2.79,0,0,1,.8,1.934,3.069,3.069,0,0,1-.055.535,2.779,2.779,0,0,1-.153.514,3.885,3.885,0,0,1-.251.47,4.02,4.02,0,0,1-.339.415,4.138,4.138,0,0,1-.415.339,2.722,2.722,0,0,1-1.519.459" transform="translate(9.753 -15.532)" fill-rule="evenodd"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 31 KiB

-170
View File
@@ -1,170 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1041.277" height="554.141" viewBox="0 0 1041.277 554.141">
<title>Powered by React</title>
<g id="Group_24" data-name="Group 24" transform="translate(-440 -263)">
<g id="Group_23" data-name="Group 23" transform="translate(439.989 262.965)">
<path id="Path_299" data-name="Path 299" d="M1040.82,611.12q-1.74,3.75-3.47,7.4-2.7,5.67-5.33,11.12c-.78,1.61-1.56,3.19-2.32,4.77-8.6,17.57-16.63,33.11-23.45,45.89A73.21,73.21,0,0,1,942.44,719l-151.65,1.65h-1.6l-13,.14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107,1.16-95.51,1-11.11.12-69,.75H429l-44.75.48h-.48l-141.5,1.53-42.33.46a87.991,87.991,0,0,1-10.79-.54h0c-1.22-.14-2.44-.3-3.65-.49a87.38,87.38,0,0,1-51.29-27.54C116,678.37,102.75,655,93.85,629.64q-1.93-5.49-3.6-11.12C59.44,514.37,97,380,164.6,290.08q4.25-5.64,8.64-11l.07-.08c20.79-25.52,44.1-46.84,68.93-62,44-26.91,92.75-34.49,140.7-11.9,40.57,19.12,78.45,28.11,115.17,30.55,3.71.24,7.42.42,11.11.53,84.23,2.65,163.17-27.7,255.87-47.29,3.69-.78,7.39-1.55,11.12-2.28,66.13-13.16,139.49-20.1,226.73-5.51a189.089,189.089,0,0,1,26.76,6.4q5.77,1.86,11.12,4c41.64,16.94,64.35,48.24,74,87.46q1.37,5.46,2.37,11.11C1134.3,384.41,1084.19,518.23,1040.82,611.12Z" transform="translate(-79.34 -172.91)" fill="#f2f2f2"/>
<path id="Path_300" data-name="Path 300" d="M576.36,618.52a95.21,95.21,0,0,1-1.87,11.12h93.7V618.52Zm-78.25,62.81,11.11-.09V653.77c-3.81-.17-7.52-.34-11.11-.52ZM265.19,618.52v11.12h198.5V618.52ZM1114.87,279h-74V191.51q-5.35-2.17-11.12-4V279H776.21V186.58c-3.73.73-7.43,1.5-11.12,2.28V279H509.22V236.15c-3.69-.11-7.4-.29-11.11-.53V279H242.24V217c-24.83,15.16-48.14,36.48-68.93,62h-.07v.08q-4.4,5.4-8.64,11h8.64V618.52h-83q1.66,5.63,3.6,11.12h79.39v93.62a87,87,0,0,0,12.2,2.79c1.21.19,2.43.35,3.65.49h0a87.991,87.991,0,0,0,10.79.54l42.33-.46v-97H498.11v94.21l11.11-.12V629.64H765.09V721l11.12-.12V629.64H1029.7v4.77c.76-1.58,1.54-3.16,2.32-4.77q2.63-5.45,5.33-11.12,1.73-3.64,3.47-7.4v-321h76.42Q1116.23,284.43,1114.87,279ZM242.24,618.52V290.08H498.11V618.52Zm267,0V290.08H765.09V618.52Zm520.48,0H776.21V290.08H1029.7Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_301" data-name="Path 301" d="M863.09,533.65v13l-151.92,1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99L349.77,551.4h-.15l-44.65.42-.48.01-198.4,1.82v-15l46.65-28,93.6-.78,2-.01.66-.01,2-.03,44.94-.37,2.01-.01.64-.01,2-.01L315,509.3l.38-.01,35.55-.3h.29l277.4-2.34,6.79-.05h.68l5.18-.05,37.65-.31,2-.03,1.85-.02h.96l11.71-.09,2.32-.03,3.11-.02,9.75-.09,15.47-.13,2-.02,3.48-.02h.65l74.71-.64Z" fill="#65617d"/>
<path id="Path_302" data-name="Path 302" d="M863.09,533.65v13l-151.92,1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99L349.77,551.4h-.15l-44.65.42-.48.01-198.4,1.82v-15l46.65-28,93.6-.78,2-.01.66-.01,2-.03,44.94-.37,2.01-.01.64-.01,2-.01L315,509.3l.38-.01,35.55-.3h.29l277.4-2.34,6.79-.05h.68l5.18-.05,37.65-.31,2-.03,1.85-.02h.96l11.71-.09,2.32-.03,3.11-.02,9.75-.09,15.47-.13,2-.02,3.48-.02h.65l74.71-.64Z" opacity="0.2"/>
<path id="Path_303" data-name="Path 303" d="M375.44,656.57v24.49a6.13,6.13,0,0,1-3.5,5.54,6,6,0,0,1-2.5.6l-34.9.74a6,6,0,0,1-2.7-.57,6.12,6.12,0,0,1-3.57-5.57V656.57Z" transform="translate(-79.34 -172.91)" fill="#3f3d56"/>
<path id="Path_304" data-name="Path 304" d="M375.44,656.57v24.49a6.13,6.13,0,0,1-3.5,5.54,6,6,0,0,1-2.5.6l-34.9.74a6,6,0,0,1-2.7-.57,6.12,6.12,0,0,1-3.57-5.57V656.57Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_305" data-name="Path 305" d="M377.44,656.57v24.49a6.13,6.13,0,0,1-3.5,5.54,6,6,0,0,1-2.5.6l-34.9.74a6,6,0,0,1-2.7-.57,6.12,6.12,0,0,1-3.57-5.57V656.57Z" transform="translate(-79.34 -172.91)" fill="#3f3d56"/>
<rect id="Rectangle_137" data-name="Rectangle 137" width="47.17" height="31.5" transform="translate(680.92 483.65)" fill="#3f3d56"/>
<rect id="Rectangle_138" data-name="Rectangle 138" width="47.17" height="31.5" transform="translate(680.92 483.65)" opacity="0.1"/>
<rect id="Rectangle_139" data-name="Rectangle 139" width="47.17" height="31.5" transform="translate(678.92 483.65)" fill="#3f3d56"/>
<path id="Path_306" data-name="Path 306" d="M298.09,483.65v4.97l-47.17,1.26v-6.23Z" opacity="0.1"/>
<path id="Path_307" data-name="Path 307" d="M460.69,485.27v168.2a4,4,0,0,1-3.85,3.95l-191.65,5.1h-.05a4,4,0,0,1-3.95-3.95V485.27a4,4,0,0,1,3.95-3.95h191.6a4,4,0,0,1,3.95,3.95Z" transform="translate(-79.34 -172.91)" fill="#65617d"/>
<path id="Path_308" data-name="Path 308" d="M265.19,481.32v181.2h-.05a4,4,0,0,1-3.95-3.95V485.27a4,4,0,0,1,3.95-3.95Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_309" data-name="Path 309" d="M194.59,319.15h177.5V467.4l-177.5,4Z" fill="#39374d"/>
<path id="Path_310" data-name="Path 310" d="M726.09,483.65v6.41l-47.17-1.26v-5.15Z" opacity="0.1"/>
<path id="Path_311" data-name="Path 311" d="M867.69,485.27v173.3a4,4,0,0,1-4,3.95h0L672,657.42a4,4,0,0,1-3.85-3.95V485.27a4,4,0,0,1,3.95-3.95H863.7a4,4,0,0,1,3.99,3.95Z" transform="translate(-79.34 -172.91)" fill="#65617d"/>
<path id="Path_312" data-name="Path 312" d="M867.69,485.27v173.3a4,4,0,0,1-4,3.95h0V481.32h0a4,4,0,0,1,4,3.95Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_313" data-name="Path 313" d="M775.59,319.15H598.09V467.4l177.5,4Z" fill="#39374d"/>
<path id="Path_314" data-name="Path 314" d="M663.19,485.27v168.2a4,4,0,0,1-3.85,3.95l-191.65,5.1h0a4,4,0,0,1-4-3.95V485.27a4,4,0,0,1,3.95-3.95h191.6A4,4,0,0,1,663.19,485.27Z" transform="translate(-79.34 -172.91)" fill="#65617d"/>
<path id="Path_315" data-name="Path 315" d="M397.09,319.15h177.5V467.4l-177.5,4Z" fill="#4267b2"/>
<path id="Path_316" data-name="Path 316" d="M863.09,533.65v13l-151.92,1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99L349.77,551.4h-.15l-44.65.42-.48.01-198.4,1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5,4.4-.02.98-.01Z" opacity="0.1"/>
<circle id="Ellipse_111" data-name="Ellipse 111" cx="51.33" cy="51.33" r="51.33" transform="translate(435.93 246.82)" fill="#fbbebe"/>
<path id="Path_317" data-name="Path 317" d="M617.94,550.07s-99.5,12-90,0c3.44-4.34,4.39-17.2,4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41,77-8.5c-4,13.13-2.69,31.57.35,48.88.89,5.05,1.92,10,3,14.7a344.66,344.66,0,0,0,9.65,33.92Z" transform="translate(-79.34 -172.91)" fill="#fbbebe"/>
<path id="Path_318" data-name="Path 318" d="M585.47,546c11.51-2.13,23.7-6,34.53-1.54,2.85,1.17,5.47,2.88,8.39,3.86s6.12,1.22,9.16,1.91c10.68,2.42,19.34,10.55,24.9,20s8.44,20.14,11.26,30.72l6.9,25.83c6,22.45,12,45.09,13.39,68.3a2437.506,2437.506,0,0,1-250.84,1.43c5.44-10.34,11-21.31,10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34,6.57-13.39,9.64-20.22,8.75-19.52,1.94-45.79,17.32-60.65,6.92-6.68,17-9.21,26.63-8.89,12.28.41,24.85,4.24,37,6.11C555.09,547.48,569.79,548.88,585.47,546Z" transform="translate(-79.34 -172.91)" fill="#ff6584"/>
<path id="Path_319" data-name="Path 319" d="M716.37,657.17l-.1,1.43v.1l-.17,2.3-1.33,18.51-1.61,22.3-.46,6.28-1,13.44v.17l-107,1-175.59,1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53,10.53,0,0,1,11.42-10.17c4.72.4,10.85.89,18.18,1.41l3,.22c42.33,2.94,120.56,6.74,199.5,2,1.66-.09,3.33-.19,5-.31,12.24-.77,24.47-1.76,36.58-3a10.53,10.53,0,0,1,11.6,11.23Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_320" data-name="Path 320" d="M429.08,725.44v-.84l175.62-1.91,107-1h.3v-.17l1-13.44.43-6,1.64-22.61,1.29-17.9v-.44a10.617,10.617,0,0,0-.11-2.47.3.3,0,0,0,0-.1,10.391,10.391,0,0,0-2-4.64,10.54,10.54,0,0,0-9.42-4c-12.11,1.24-24.34,2.23-36.58,3-1.67.12-3.34.22-5,.31-78.94,4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54,10.54,0,0,0-11.24,8.53,11,11,0,0,0-.18,1.64l-.68,22.16L429.54,710l-.44,14.36v1.12Z" transform="translate(-79.34 -172.91)" fill="#3f3d56"/>
<path id="Path_321" data-name="Path 321" d="M716.67,664.18l-1.23,15.33-1.83,22.85-.46,5.72-1,12.81-.06.64v.17h0l-.15,1.48.11-1.48h-.29l-107,1-175.65,1.9v-.28l.49-14.36,1-28.06.64-18.65A6.36,6.36,0,0,1,434.3,658a6.25,6.25,0,0,1,3.78-.9c2.1.17,4.68.37,7.69.59,4.89.36,10.92.78,17.94,1.22,13,.82,29.31,1.7,48,2.42,52,2,122.2,2.67,188.88-3.17,3-.26,6.1-.55,9.13-.84a6.26,6.26,0,0,1,3.48.66,5.159,5.159,0,0,1,.86.54,6.14,6.14,0,0,1,2,2.46,3.564,3.564,0,0,1,.25.61A6.279,6.279,0,0,1,716.67,664.18Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_322" data-name="Path 322" d="M377.44,677.87v3.19a6.13,6.13,0,0,1-3.5,5.54l-40.1.77a6.12,6.12,0,0,1-3.57-5.57v-3Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_323" data-name="Path 323" d="M298.59,515.57l-52.25,1V507.9l52.25-1Z" fill="#3f3d56"/>
<path id="Path_324" data-name="Path 324" d="M298.59,515.57l-52.25,1V507.9l52.25-1Z" opacity="0.1"/>
<path id="Path_325" data-name="Path 325" d="M300.59,515.57l-52.25,1V507.9l52.25-1Z" fill="#3f3d56"/>
<path id="Path_326" data-name="Path 326" d="M758.56,679.87v3.19a6.13,6.13,0,0,0,3.5,5.54l40.1.77a6.12,6.12,0,0,0,3.57-5.57v-3Z" transform="translate(-79.34 -172.91)" opacity="0.1"/>
<path id="Path_327" data-name="Path 327" d="M678.72,517.57l52.25,1V509.9l-52.25-1Z" opacity="0.1"/>
<path id="Path_328" data-name="Path 328" d="M676.72,517.57l52.25,1V509.9l-52.25-1Z" fill="#3f3d56"/>
<path id="Path_329" data-name="Path 329" d="M534.13,486.79c.08,7-3.16,13.6-5.91,20.07a163.491,163.491,0,0,0-12.66,74.71c.73,11,2.58,22,.73,32.9s-8.43,21.77-19,24.9c17.53,10.45,41.26,9.35,57.76-2.66,8.79-6.4,15.34-15.33,21.75-24.11a97.86,97.86,0,0,1-13.31,44.75A103.43,103.43,0,0,0,637,616.53c4.31-5.81,8.06-12.19,9.72-19.23,3.09-13-1.22-26.51-4.51-39.5a266.055,266.055,0,0,1-6.17-33c-.43-3.56-.78-7.22.1-10.7,1-4.07,3.67-7.51,5.64-11.22,5.6-10.54,5.73-23.3,2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47,1.48-16.14,8.32-22,15.34-4.59,5.46-15.81,15.71-16.6,22.86-.72,6.59,5.1,17.63,6.09,24.58,1.3,9,2.22,6,7.3,11.52C532,478.05,534.07,482,534.13,486.79Z" transform="translate(-79.34 -172.91)" fill="#3f3d56"/>
</g>
<g id="docusaurus_keytar" transform="translate(670.271 615.768)">
<path id="Path_40" data-name="Path 40" d="M99,52h43.635V69.662H99Z" transform="translate(-49.132 -33.936)" fill="#fff" fill-rule="evenodd"/>
<path id="Path_41" data-name="Path 41" d="M13.389,158.195A10.377,10.377,0,0,1,4.4,153a10.377,10.377,0,0,0,8.988,15.584H23.779V158.195Z" transform="translate(-3 -82.47)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_42" data-name="Path 42" d="M66.967,38.083l36.373-2.273V30.615A10.389,10.389,0,0,0,92.95,20.226H46.2l-1.3-2.249a1.5,1.5,0,0,0-2.6,0L41,20.226l-1.3-2.249a1.5,1.5,0,0,0-2.6,0l-1.3,2.249-1.3-2.249a1.5,1.5,0,0,0-2.6,0l-1.3,2.249-.034,0-2.152-2.151a1.5,1.5,0,0,0-2.508.672L25.21,21.4l-2.7-.723a1.5,1.5,0,0,0-1.836,1.837l.722,2.7-2.65.71a1.5,1.5,0,0,0-.673,2.509l2.152,2.152c0,.011,0,.022,0,.033l-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6L20.226,41l-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3-2.249,1.3a1.5,1.5,0,0,0,0,2.6l2.249,1.3A10.389,10.389,0,0,0,30.615,103.34H92.95A10.389,10.389,0,0,0,103.34,92.95V51.393L66.967,49.12a5.53,5.53,0,0,1,0-11.038" transform="translate(-9.836 -17.226)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_43" data-name="Path 43" d="M143,163.779h15.584V143H143Z" transform="translate(-70.275 -77.665)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_44" data-name="Path 44" d="M173.779,148.389a2.582,2.582,0,0,0-.332.033c-.02-.078-.038-.156-.06-.234a2.594,2.594,0,1,0-2.567-4.455q-.086-.088-.174-.175a2.593,2.593,0,1,0-4.461-2.569c-.077-.022-.154-.04-.231-.06a2.6,2.6,0,1,0-5.128,0c-.077.02-.154.038-.231.06a2.594,2.594,0,1,0-4.461,2.569,10.384,10.384,0,1,0,17.314,9.992,2.592,2.592,0,1,0,.332-5.161" transform="translate(-75.08 -75.262)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_45" data-name="Path 45" d="M153,113.389h15.584V103H153Z" transform="translate(-75.08 -58.444)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_46" data-name="Path 46" d="M183.389,108.944a1.3,1.3,0,1,0,0-2.6,1.336,1.336,0,0,0-.166.017c-.01-.039-.019-.078-.03-.117a1.3,1.3,0,0,0-.5-2.5,1.285,1.285,0,0,0-.783.269q-.043-.044-.087-.087a1.285,1.285,0,0,0,.263-.776,1.3,1.3,0,0,0-2.493-.509,5.195,5.195,0,1,0,0,10,1.3,1.3,0,0,0,2.493-.509,1.285,1.285,0,0,0-.263-.776q.044-.043.087-.087a1.285,1.285,0,0,0,.783.269,1.3,1.3,0,0,0,.5-2.5c.011-.038.02-.078.03-.117a1.337,1.337,0,0,0,.166.017" transform="translate(-84.691 -57.894)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_47" data-name="Path 47" d="M52.188,48.292a1.3,1.3,0,0,1-1.3-1.3,3.9,3.9,0,0,0-7.792,0,1.3,1.3,0,1,1-2.6,0,6.493,6.493,0,0,1,12.987,0,1.3,1.3,0,0,1-1.3,1.3" transform="translate(-21.02 -28.41)" fill-rule="evenodd"/>
<path id="Path_48" data-name="Path 48" d="M103,139.752h31.168a10.389,10.389,0,0,0,10.389-10.389V93H113.389A10.389,10.389,0,0,0,103,103.389Z" transform="translate(-51.054 -53.638)" fill="#ffff50" fill-rule="evenodd"/>
<path id="Path_49" data-name="Path 49" d="M141.1,94.017H115.106a.519.519,0,1,1,0-1.039H141.1a.519.519,0,0,1,0,1.039m0,10.389H115.106a.519.519,0,1,1,0-1.039H141.1a.519.519,0,0,1,0,1.039m0,10.389H115.106a.519.519,0,1,1,0-1.039H141.1a.519.519,0,0,1,0,1.039m0-25.877H115.106a.519.519,0,1,1,0-1.039H141.1a.519.519,0,0,1,0,1.039m0,10.293H115.106a.519.519,0,1,1,0-1.039H141.1a.519.519,0,0,1,0,1.039m0,10.389H115.106a.519.519,0,1,1,0-1.039H141.1a.519.519,0,0,1,0,1.039m7.782-47.993c-.006,0-.011,0-.018,0-1.605.055-2.365,1.66-3.035,3.077-.7,1.48-1.24,2.443-2.126,2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344,1.451-3.017,2.684-.715,1.313-1.2,2.112-2.141,2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319,1.239-2.994,2.286-.713,1.106-1.213,1.781-2.164,1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.815,3.815,0,0,0-2.959,1.879c-.64.812-1.14,1.456-2.2,1.415a.52.52,0,0,0-.037,1.039,3.588,3.588,0,0,0,3.05-1.811c.611-.777,1.139-1.448,2.178-1.483,1-.043,1.47.579,2.179,1.582.674.953,1.438,2.033,2.977,2.089,1.612.054,2.387-1.151,3.074-2.217.614-.953,1.144-1.775,2.156-1.81.931-.035,1.438.7,2.153,1.912.674,1.141,1.437,2.434,3.006,2.491,1.623.056,2.407-1.361,3.09-2.616.592-1.085,1.15-2.109,2.14-2.143.931-.022,1.417.829,2.135,2.249.671,1.326,1.432,2.828,3.026,2.886l.088,0c1.592,0,2.347-1.6,3.015-3.01.592-1.252,1.152-2.431,2.113-2.479Z" transform="translate(-55.378 -38.552)" fill-rule="evenodd"/>
<path id="Path_50" data-name="Path 50" d="M83,163.779h20.779V143H83Z" transform="translate(-41.443 -77.665)" fill="#3ecc5f" fill-rule="evenodd"/>
<g id="Group_8" data-name="Group 8" transform="matrix(0.966, -0.259, 0.259, 0.966, 51.971, 43.3)">
<rect id="Rectangle_3" data-name="Rectangle 3" width="43.906" height="17.333" rx="2" transform="translate(0 0)" fill="#d8d8d8"/>
<g id="Group_2" data-name="Group 2" transform="translate(0.728 10.948)">
<rect id="Rectangle_4" data-name="Rectangle 4" width="2.537" height="2.537" rx="1" transform="translate(7.985 0)" fill="#4a4a4a"/>
<rect id="Rectangle_5" data-name="Rectangle 5" width="2.537" height="2.537" rx="1" transform="translate(10.991 0)" fill="#4a4a4a"/>
<rect id="Rectangle_6" data-name="Rectangle 6" width="2.537" height="2.537" rx="1" transform="translate(13.997 0)" fill="#4a4a4a"/>
<rect id="Rectangle_7" data-name="Rectangle 7" width="2.537" height="2.537" rx="1" transform="translate(17.003 0)" fill="#4a4a4a"/>
<rect id="Rectangle_8" data-name="Rectangle 8" width="2.537" height="2.537" rx="1" transform="translate(20.009 0)" fill="#4a4a4a"/>
<rect id="Rectangle_9" data-name="Rectangle 9" width="2.537" height="2.537" rx="1" transform="translate(23.015 0)" fill="#4a4a4a"/>
<rect id="Rectangle_10" data-name="Rectangle 10" width="2.537" height="2.537" rx="1" transform="translate(26.021 0)" fill="#4a4a4a"/>
<rect id="Rectangle_11" data-name="Rectangle 11" width="2.537" height="2.537" rx="1" transform="translate(29.028 0)" fill="#4a4a4a"/>
<rect id="Rectangle_12" data-name="Rectangle 12" width="2.537" height="2.537" rx="1" transform="translate(32.034 0)" fill="#4a4a4a"/>
<path id="Path_51" data-name="Path 51" d="M.519,0H6.9A.519.519,0,0,1,7.421.52v1.5a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,2.017V.519A.519.519,0,0,1,.519,0ZM35.653,0h6.383a.519.519,0,0,1,.519.519v1.5a.519.519,0,0,1-.519.519H35.652a.519.519,0,0,1-.519-.519V.519A.519.519,0,0,1,35.652,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
</g>
<g id="Group_3" data-name="Group 3" transform="translate(0.728 4.878)">
<path id="Path_52" data-name="Path 52" d="M.519,0H2.956a.519.519,0,0,1,.519.519v1.5a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,2.017V.519A.519.519,0,0,1,.519,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<rect id="Rectangle_13" data-name="Rectangle 13" width="2.537" height="2.537" rx="1" transform="translate(3.945 0)" fill="#4a4a4a"/>
<rect id="Rectangle_14" data-name="Rectangle 14" width="2.537" height="2.537" rx="1" transform="translate(6.951 0)" fill="#4a4a4a"/>
<rect id="Rectangle_15" data-name="Rectangle 15" width="2.537" height="2.537" rx="1" transform="translate(9.958 0)" fill="#4a4a4a"/>
<rect id="Rectangle_16" data-name="Rectangle 16" width="2.537" height="2.537" rx="1" transform="translate(12.964 0)" fill="#4a4a4a"/>
<rect id="Rectangle_17" data-name="Rectangle 17" width="2.537" height="2.537" rx="1" transform="translate(15.97 0)" fill="#4a4a4a"/>
<rect id="Rectangle_18" data-name="Rectangle 18" width="2.537" height="2.537" rx="1" transform="translate(18.976 0)" fill="#4a4a4a"/>
<rect id="Rectangle_19" data-name="Rectangle 19" width="2.537" height="2.537" rx="1" transform="translate(21.982 0)" fill="#4a4a4a"/>
<rect id="Rectangle_20" data-name="Rectangle 20" width="2.537" height="2.537" rx="1" transform="translate(24.988 0)" fill="#4a4a4a"/>
<rect id="Rectangle_21" data-name="Rectangle 21" width="2.537" height="2.537" rx="1" transform="translate(27.994 0)" fill="#4a4a4a"/>
<rect id="Rectangle_22" data-name="Rectangle 22" width="2.537" height="2.537" rx="1" transform="translate(31 0)" fill="#4a4a4a"/>
<rect id="Rectangle_23" data-name="Rectangle 23" width="2.537" height="2.537" rx="1" transform="translate(34.006 0)" fill="#4a4a4a"/>
<rect id="Rectangle_24" data-name="Rectangle 24" width="2.537" height="2.537" rx="1" transform="translate(37.012 0)" fill="#4a4a4a"/>
<rect id="Rectangle_25" data-name="Rectangle 25" width="2.537" height="2.537" rx="1" transform="translate(40.018 0)" fill="#4a4a4a"/>
</g>
<g id="Group_4" data-name="Group 4" transform="translate(43.283 4.538) rotate(180)">
<path id="Path_53" data-name="Path 53" d="M.519,0H2.956a.519.519,0,0,1,.519.519v1.5a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,2.017V.519A.519.519,0,0,1,.519,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<rect id="Rectangle_26" data-name="Rectangle 26" width="2.537" height="2.537" rx="1" transform="translate(3.945 0)" fill="#4a4a4a"/>
<rect id="Rectangle_27" data-name="Rectangle 27" width="2.537" height="2.537" rx="1" transform="translate(6.951 0)" fill="#4a4a4a"/>
<rect id="Rectangle_28" data-name="Rectangle 28" width="2.537" height="2.537" rx="1" transform="translate(9.958 0)" fill="#4a4a4a"/>
<rect id="Rectangle_29" data-name="Rectangle 29" width="2.537" height="2.537" rx="1" transform="translate(12.964 0)" fill="#4a4a4a"/>
<rect id="Rectangle_30" data-name="Rectangle 30" width="2.537" height="2.537" rx="1" transform="translate(15.97 0)" fill="#4a4a4a"/>
<rect id="Rectangle_31" data-name="Rectangle 31" width="2.537" height="2.537" rx="1" transform="translate(18.976 0)" fill="#4a4a4a"/>
<rect id="Rectangle_32" data-name="Rectangle 32" width="2.537" height="2.537" rx="1" transform="translate(21.982 0)" fill="#4a4a4a"/>
<rect id="Rectangle_33" data-name="Rectangle 33" width="2.537" height="2.537" rx="1" transform="translate(24.988 0)" fill="#4a4a4a"/>
<rect id="Rectangle_34" data-name="Rectangle 34" width="2.537" height="2.537" rx="1" transform="translate(27.994 0)" fill="#4a4a4a"/>
<rect id="Rectangle_35" data-name="Rectangle 35" width="2.537" height="2.537" rx="1" transform="translate(31.001 0)" fill="#4a4a4a"/>
<rect id="Rectangle_36" data-name="Rectangle 36" width="2.537" height="2.537" rx="1" transform="translate(34.007 0)" fill="#4a4a4a"/>
<rect id="Rectangle_37" data-name="Rectangle 37" width="2.537" height="2.537" rx="1" transform="translate(37.013 0)" fill="#4a4a4a"/>
<rect id="Rectangle_38" data-name="Rectangle 38" width="2.537" height="2.537" rx="1" transform="translate(40.018 0)" fill="#4a4a4a"/>
<rect id="Rectangle_39" data-name="Rectangle 39" width="2.537" height="2.537" rx="1" transform="translate(3.945 0)" fill="#4a4a4a"/>
<rect id="Rectangle_40" data-name="Rectangle 40" width="2.537" height="2.537" rx="1" transform="translate(6.951 0)" fill="#4a4a4a"/>
<rect id="Rectangle_41" data-name="Rectangle 41" width="2.537" height="2.537" rx="1" transform="translate(9.958 0)" fill="#4a4a4a"/>
<rect id="Rectangle_42" data-name="Rectangle 42" width="2.537" height="2.537" rx="1" transform="translate(12.964 0)" fill="#4a4a4a"/>
<rect id="Rectangle_43" data-name="Rectangle 43" width="2.537" height="2.537" rx="1" transform="translate(15.97 0)" fill="#4a4a4a"/>
<rect id="Rectangle_44" data-name="Rectangle 44" width="2.537" height="2.537" rx="1" transform="translate(18.976 0)" fill="#4a4a4a"/>
<rect id="Rectangle_45" data-name="Rectangle 45" width="2.537" height="2.537" rx="1" transform="translate(21.982 0)" fill="#4a4a4a"/>
<rect id="Rectangle_46" data-name="Rectangle 46" width="2.537" height="2.537" rx="1" transform="translate(24.988 0)" fill="#4a4a4a"/>
<rect id="Rectangle_47" data-name="Rectangle 47" width="2.537" height="2.537" rx="1" transform="translate(27.994 0)" fill="#4a4a4a"/>
<rect id="Rectangle_48" data-name="Rectangle 48" width="2.537" height="2.537" rx="1" transform="translate(31.001 0)" fill="#4a4a4a"/>
<rect id="Rectangle_49" data-name="Rectangle 49" width="2.537" height="2.537" rx="1" transform="translate(34.007 0)" fill="#4a4a4a"/>
<rect id="Rectangle_50" data-name="Rectangle 50" width="2.537" height="2.537" rx="1" transform="translate(37.013 0)" fill="#4a4a4a"/>
<rect id="Rectangle_51" data-name="Rectangle 51" width="2.537" height="2.537" rx="1" transform="translate(40.018 0)" fill="#4a4a4a"/>
</g>
<g id="Group_6" data-name="Group 6" transform="translate(0.728 7.883)">
<path id="Path_54" data-name="Path 54" d="M.519,0h3.47a.519.519,0,0,1,.519.519v1.5a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,2.017V.52A.519.519,0,0,1,.519,0Z" transform="translate(0 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<g id="Group_5" data-name="Group 5" transform="translate(5.073 0)">
<rect id="Rectangle_52" data-name="Rectangle 52" width="2.537" height="2.537" rx="1" transform="translate(0 0)" fill="#4a4a4a"/>
<rect id="Rectangle_53" data-name="Rectangle 53" width="2.537" height="2.537" rx="1" transform="translate(3.006 0)" fill="#4a4a4a"/>
<rect id="Rectangle_54" data-name="Rectangle 54" width="2.537" height="2.537" rx="1" transform="translate(6.012 0)" fill="#4a4a4a"/>
<rect id="Rectangle_55" data-name="Rectangle 55" width="2.537" height="2.537" rx="1" transform="translate(9.018 0)" fill="#4a4a4a"/>
<rect id="Rectangle_56" data-name="Rectangle 56" width="2.537" height="2.537" rx="1" transform="translate(12.025 0)" fill="#4a4a4a"/>
<rect id="Rectangle_57" data-name="Rectangle 57" width="2.537" height="2.537" rx="1" transform="translate(15.031 0)" fill="#4a4a4a"/>
<rect id="Rectangle_58" data-name="Rectangle 58" width="2.537" height="2.537" rx="1" transform="translate(18.037 0)" fill="#4a4a4a"/>
<rect id="Rectangle_59" data-name="Rectangle 59" width="2.537" height="2.537" rx="1" transform="translate(21.042 0)" fill="#4a4a4a"/>
<rect id="Rectangle_60" data-name="Rectangle 60" width="2.537" height="2.537" rx="1" transform="translate(24.049 0)" fill="#4a4a4a"/>
<rect id="Rectangle_61" data-name="Rectangle 61" width="2.537" height="2.537" rx="1" transform="translate(27.055 0)" fill="#4a4a4a"/>
<rect id="Rectangle_62" data-name="Rectangle 62" width="2.537" height="2.537" rx="1" transform="translate(30.061 0)" fill="#4a4a4a"/>
</g>
<path id="Path_55" data-name="Path 55" d="M.52,0H3.8a.519.519,0,0,1,.519.519v1.5a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,2.017V.52A.519.519,0,0,1,.519,0Z" transform="translate(38.234 0)" fill="#4a4a4a" fill-rule="evenodd"/>
</g>
<g id="Group_7" data-name="Group 7" transform="translate(0.728 14.084)">
<rect id="Rectangle_63" data-name="Rectangle 63" width="2.537" height="2.537" rx="1" transform="translate(0 0)" fill="#4a4a4a"/>
<rect id="Rectangle_64" data-name="Rectangle 64" width="2.537" height="2.537" rx="1" transform="translate(3.006 0)" fill="#4a4a4a"/>
<rect id="Rectangle_65" data-name="Rectangle 65" width="2.537" height="2.537" rx="1" transform="translate(6.012 0)" fill="#4a4a4a"/>
<rect id="Rectangle_66" data-name="Rectangle 66" width="2.537" height="2.537" rx="1" transform="translate(9.018 0)" fill="#4a4a4a"/>
<path id="Path_56" data-name="Path 56" d="M.519,0H14.981A.519.519,0,0,1,15.5.519v1.5a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,2.018V.519A.519.519,0,0,1,.519,0Zm15.97,0h1.874a.519.519,0,0,1,.519.519v1.5a.519.519,0,0,1-.519.519H16.489a.519.519,0,0,1-.519-.519V.519A.519.519,0,0,1,16.489,0Z" transform="translate(12.024 0)" fill="#4a4a4a" fill-rule="evenodd"/>
<rect id="Rectangle_67" data-name="Rectangle 67" width="2.537" height="2.537" rx="1" transform="translate(31.376 0)" fill="#4a4a4a"/>
<rect id="Rectangle_68" data-name="Rectangle 68" width="2.537" height="2.537" rx="1" transform="translate(34.382 0)" fill="#4a4a4a"/>
<rect id="Rectangle_69" data-name="Rectangle 69" width="2.537" height="2.537" rx="1" transform="translate(40.018 0)" fill="#4a4a4a"/>
<path id="Path_57" data-name="Path 57" d="M2.537,0V.561a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,.561V0Z" transform="translate(39.736 1.08) rotate(180)" fill="#4a4a4a"/>
<path id="Path_58" data-name="Path 58" d="M2.537,0V.561a.519.519,0,0,1-.519.519H.519A.519.519,0,0,1,0,.561V0Z" transform="translate(37.2 1.456)" fill="#4a4a4a"/>
</g>
<rect id="Rectangle_70" data-name="Rectangle 70" width="42.273" height="1.127" rx="0.564" transform="translate(0.915 0.556)" fill="#4a4a4a"/>
<rect id="Rectangle_71" data-name="Rectangle 71" width="2.37" height="0.752" rx="0.376" transform="translate(1.949 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_72" data-name="Rectangle 72" width="2.37" height="0.752" rx="0.376" transform="translate(5.193 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_73" data-name="Rectangle 73" width="2.37" height="0.752" rx="0.376" transform="translate(7.688 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_74" data-name="Rectangle 74" width="2.37" height="0.752" rx="0.376" transform="translate(10.183 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_75" data-name="Rectangle 75" width="2.37" height="0.752" rx="0.376" transform="translate(12.679 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_76" data-name="Rectangle 76" width="2.37" height="0.752" rx="0.376" transform="translate(15.797 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_77" data-name="Rectangle 77" width="2.37" height="0.752" rx="0.376" transform="translate(18.292 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_78" data-name="Rectangle 78" width="2.37" height="0.752" rx="0.376" transform="translate(20.788 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_79" data-name="Rectangle 79" width="2.37" height="0.752" rx="0.376" transform="translate(23.283 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_80" data-name="Rectangle 80" width="2.37" height="0.752" rx="0.376" transform="translate(26.402 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_81" data-name="Rectangle 81" width="2.37" height="0.752" rx="0.376" transform="translate(28.897 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_82" data-name="Rectangle 82" width="2.37" height="0.752" rx="0.376" transform="translate(31.393 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_83" data-name="Rectangle 83" width="2.37" height="0.752" rx="0.376" transform="translate(34.512 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_84" data-name="Rectangle 84" width="2.37" height="0.752" rx="0.376" transform="translate(37.007 0.744)" fill="#d8d8d8" opacity="0.136"/>
<rect id="Rectangle_85" data-name="Rectangle 85" width="2.37" height="0.752" rx="0.376" transform="translate(39.502 0.744)" fill="#d8d8d8" opacity="0.136"/>
</g>
<path id="Path_59" data-name="Path 59" d="M123.779,148.389a2.583,2.583,0,0,0-.332.033c-.02-.078-.038-.156-.06-.234a2.594,2.594,0,1,0-2.567-4.455q-.086-.088-.174-.175a2.593,2.593,0,1,0-4.461-2.569c-.077-.022-.154-.04-.231-.06a2.6,2.6,0,1,0-5.128,0c-.077.02-.154.038-.231.06a2.594,2.594,0,1,0-4.461,2.569,10.384,10.384,0,1,0,17.314,9.992,2.592,2.592,0,1,0,.332-5.161" transform="translate(-51.054 -75.262)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_60" data-name="Path 60" d="M83,113.389h20.779V103H83Z" transform="translate(-41.443 -58.444)" fill="#3ecc5f" fill-rule="evenodd"/>
<path id="Path_61" data-name="Path 61" d="M123.389,108.944a1.3,1.3,0,1,0,0-2.6,1.338,1.338,0,0,0-.166.017c-.01-.039-.019-.078-.03-.117a1.3,1.3,0,0,0-.5-2.5,1.285,1.285,0,0,0-.783.269q-.043-.044-.087-.087a1.285,1.285,0,0,0,.263-.776,1.3,1.3,0,0,0-2.493-.509,5.195,5.195,0,1,0,0,10,1.3,1.3,0,0,0,2.493-.509,1.285,1.285,0,0,0-.263-.776q.044-.043.087-.087a1.285,1.285,0,0,0,.783.269,1.3,1.3,0,0,0,.5-2.5c.011-.038.02-.078.03-.117a1.335,1.335,0,0,0,.166.017" transform="translate(-55.859 -57.894)" fill="#44d860" fill-rule="evenodd"/>
<path id="Path_62" data-name="Path 62" d="M141.8,38.745a1.41,1.41,0,0,1-.255-.026,1.309,1.309,0,0,1-.244-.073,1.349,1.349,0,0,1-.224-.119,1.967,1.967,0,0,1-.2-.161,1.52,1.52,0,0,1-.161-.2,1.282,1.282,0,0,1-.218-.722,1.41,1.41,0,0,1,.026-.255,1.5,1.5,0,0,1,.072-.244,1.364,1.364,0,0,1,.12-.223,1.252,1.252,0,0,1,.358-.358,1.349,1.349,0,0,1,.224-.119,1.309,1.309,0,0,1,.244-.073,1.2,1.2,0,0,1,.509,0,1.262,1.262,0,0,1,.468.192,1.968,1.968,0,0,1,.2.161,1.908,1.908,0,0,1,.161.2,1.322,1.322,0,0,1,.12.223,1.361,1.361,0,0,1,.1.5,1.317,1.317,0,0,1-.379.919,1.968,1.968,0,0,1-.2.161,1.346,1.346,0,0,1-.223.119,1.332,1.332,0,0,1-.5.1m10.389-.649a1.326,1.326,0,0,1-.92-.379,1.979,1.979,0,0,1-.161-.2,1.282,1.282,0,0,1-.218-.722,1.326,1.326,0,0,1,.379-.919,1.967,1.967,0,0,1,.2-.161,1.351,1.351,0,0,1,.224-.119,1.308,1.308,0,0,1,.244-.073,1.2,1.2,0,0,1,.509,0,1.262,1.262,0,0,1,.468.192,1.967,1.967,0,0,1,.2.161,1.326,1.326,0,0,1,.379.919,1.461,1.461,0,0,1-.026.255,1.323,1.323,0,0,1-.073.244,1.847,1.847,0,0,1-.119.223,1.911,1.911,0,0,1-.161.2,1.967,1.967,0,0,1-.2.161,1.294,1.294,0,0,1-.722.218" transform="translate(-69.074 -26.006)" fill-rule="evenodd"/>
</g>
<g id="React-icon" transform="translate(906.3 541.56)">
<path id="Path_330" data-name="Path 330" d="M263.668,117.179c0-5.827-7.3-11.35-18.487-14.775,2.582-11.4,1.434-20.477-3.622-23.382a7.861,7.861,0,0,0-4.016-1v4a4.152,4.152,0,0,1,2.044.466c2.439,1.4,3.5,6.724,2.672,13.574-.2,1.685-.52,3.461-.914,5.272a86.9,86.9,0,0,0-11.386-1.954,87.469,87.469,0,0,0-7.459-8.965c5.845-5.433,11.332-8.41,15.062-8.41V78h0c-4.931,0-11.386,3.514-17.913,9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712,0,9.216,2.959,15.062,8.356a84.687,84.687,0,0,0-7.405,8.947,83.732,83.732,0,0,0-11.4,1.972c-.412-1.793-.717-3.532-.932-5.2-.843-6.85.2-12.175,2.618-13.592a3.991,3.991,0,0,1,2.062-.466v-4h0a8,8,0,0,0-4.052,1c-5.039,2.9-6.168,11.96-3.568,23.328-11.153,3.443-18.415,8.947-18.415,14.757,0,5.828,7.3,11.35,18.487,14.775-2.582,11.4-1.434,20.477,3.622,23.382a7.882,7.882,0,0,0,4.034,1c4.931,0,11.386-3.514,17.913-9.611,6.527,6.061,12.982,9.539,17.913,9.539a8,8,0,0,0,4.052-1c5.039-2.9,6.168-11.96,3.568-23.328C256.406,128.511,263.668,122.988,263.668,117.179Zm-23.346-11.96c-.663,2.313-1.488,4.7-2.421,7.083-.735-1.434-1.506-2.869-2.349-4.3-.825-1.434-1.7-2.833-2.582-4.2C235.517,104.179,237.974,104.645,240.323,105.219Zm-8.212,19.1c-1.4,2.421-2.833,4.716-4.321,6.85-2.672.233-5.379.359-8.1.359-2.708,0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136c1.112-2.4,2.367-4.805,3.712-7.154,1.4-2.421,2.833-4.716,4.321-6.85,2.672-.233,5.379-.359,8.1-.359,2.708,0,5.415.126,8.069.341q2.232,3.2,4.339,6.814,2.044,3.523,3.73,7.136C234.692,119.564,233.455,121.966,232.11,124.315Zm5.792-2.331c.968,2.4,1.793,4.805,2.474,7.136-2.349.574-4.823,1.058-7.387,1.434.879-1.381,1.757-2.8,2.582-4.25C236.4,124.871,237.167,123.419,237.9,121.984ZM219.72,141.116a73.921,73.921,0,0,1-4.985-5.738c1.614.072,3.263.126,4.931.126,1.685,0,3.353-.036,4.985-.126A69.993,69.993,0,0,1,219.72,141.116ZM206.38,130.555c-2.546-.377-5-.843-7.352-1.417.663-2.313,1.488-4.7,2.421-7.083.735,1.434,1.506,2.869,2.349,4.3S205.5,129.192,206.38,130.555ZM219.63,93.241a73.924,73.924,0,0,1,4.985,5.738c-1.614-.072-3.263-.126-4.931-.126-1.686,0-3.353.036-4.985.126A69.993,69.993,0,0,1,219.63,93.241ZM206.362,103.8c-.879,1.381-1.757,2.8-2.582,4.25-.825,1.434-1.6,2.869-2.331,4.3-.968-2.4-1.793-4.805-2.474-7.136C201.323,104.663,203.8,104.179,206.362,103.8Zm-16.227,22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383,10.454-9.073c1.542-.663,3.228-1.255,4.967-1.811a86.122,86.122,0,0,0,4.034,10.92,84.9,84.9,0,0,0-3.981,10.866C193.38,127.525,191.694,126.915,190.134,126.252Zm9.647,25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a86.9,86.9,0,0,0,11.386,1.954,87.465,87.465,0,0,0,7.459,8.965c-5.845,5.433-11.332,8.41-15.062,8.41A4.279,4.279,0,0,1,199.781,151.875Zm42.532-13.663c.843,6.85-.2,12.175-2.618,13.592a3.99,3.99,0,0,1-2.062.466c-3.712,0-9.216-2.959-15.062-8.356a84.689,84.689,0,0,0,7.405-8.947,83.731,83.731,0,0,0,11.4-1.972A50.194,50.194,0,0,1,242.313,138.212Zm6.9-11.96c-1.542.663-3.228,1.255-4.967,1.811a86.12,86.12,0,0,0-4.034-10.92,84.9,84.9,0,0,0,3.981-10.866c1.775.556,3.461,1.165,5.039,1.829,6.348,2.708,10.454,6.258,10.454,9.073C259.67,119.994,255.564,123.562,249.216,126.252Z" fill="#61dafb"/>
<path id="Path_331" data-name="Path 331" d="M320.8,78.4Z" transform="translate(-119.082 -0.328)" fill="#61dafb"/>
<circle id="Ellipse_112" data-name="Ellipse 112" cx="8.194" cy="8.194" r="8.194" transform="translate(211.472 108.984)" fill="#61dafb"/>
<path id="Path_332" data-name="Path 332" d="M520.5,78.1Z" transform="translate(-282.975 -0.082)" fill="#61dafb"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 35 KiB

-40
View File
@@ -1,40 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1129" height="663" viewBox="0 0 1129 663">
<title>Focus on What Matters</title>
<circle cx="321" cy="321" r="321" fill="#f2f2f2" />
<ellipse cx="559" cy="635.49998" rx="514" ry="27.50002" fill="#3f3d56" />
<ellipse cx="558" cy="627" rx="460" ry="22" opacity="0.2" />
<rect x="131" y="152.5" width="840" height="50" fill="#3f3d56" />
<path d="M166.5,727.3299A21.67009,21.67009,0,0,0,188.1701,749H984.8299A21.67009,21.67009,0,0,0,1006.5,727.3299V296h-840Z" transform="translate(-35.5 -118.5)" fill="#3f3d56" />
<path d="M984.8299,236H188.1701A21.67009,21.67009,0,0,0,166.5,257.6701V296h840V257.6701A21.67009,21.67009,0,0,0,984.8299,236Z" transform="translate(-35.5 -118.5)" fill="#3f3d56" />
<path d="M984.8299,236H188.1701A21.67009,21.67009,0,0,0,166.5,257.6701V296h840V257.6701A21.67009,21.67009,0,0,0,984.8299,236Z" transform="translate(-35.5 -118.5)" opacity="0.2" />
<circle cx="181" cy="147.5" r="13" fill="#3f3d56" />
<circle cx="217" cy="147.5" r="13" fill="#3f3d56" />
<circle cx="253" cy="147.5" r="13" fill="#3f3d56" />
<rect x="168" y="213.5" width="337" height="386" rx="5.33505" fill="#606060" />
<rect x="603" y="272.5" width="284" height="22" rx="5.47638" fill="#2e8555" />
<rect x="537" y="352.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
<rect x="537" y="396.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
<rect x="537" y="440.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
<rect x="537" y="484.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
<rect x="865" y="552.5" width="88" height="26" rx="7.02756" fill="#3ecc5f" />
<path d="M1088.60287,624.61594a30.11371,30.11371,0,0,0,3.98291-15.266c0-13.79652-8.54358-24.98081-19.08256-24.98081s-19.08256,11.18429-19.08256,24.98081a30.11411,30.11411,0,0,0,3.98291,15.266,31.248,31.248,0,0,0,0,30.53213,31.248,31.248,0,0,0,0,30.53208,31.248,31.248,0,0,0,0,30.53208,30.11408,30.11408,0,0,0-3.98291,15.266c0,13.79652,8.54353,24.98081,19.08256,24.98081s19.08256-11.18429,19.08256-24.98081a30.11368,30.11368,0,0,0-3.98291-15.266,31.248,31.248,0,0,0,0-30.53208,31.248,31.248,0,0,0,0-30.53208,31.248,31.248,0,0,0,0-30.53213Z" transform="translate(-35.5 -118.5)" fill="#3f3d56" />
<ellipse cx="1038.00321" cy="460.31783" rx="19.08256" ry="24.9808" fill="#3f3d56" />
<ellipse cx="1038.00321" cy="429.78574" rx="19.08256" ry="24.9808" fill="#3f3d56" />
<path d="M1144.93871,339.34489a91.61081,91.61081,0,0,0,7.10658-10.46092l-50.141-8.23491,54.22885.4033a91.566,91.566,0,0,0,1.74556-72.42605l-72.75449,37.74139,67.09658-49.32086a91.41255,91.41255,0,1,0-150.971,102.29805,91.45842,91.45842,0,0,0-10.42451,16.66946l65.0866,33.81447-69.40046-23.292a91.46011,91.46011,0,0,0,14.73837,85.83669,91.40575,91.40575,0,1,0,143.68892,0,91.41808,91.41808,0,0,0,0-113.02862Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M981.6885,395.8592a91.01343,91.01343,0,0,0,19.56129,56.51431,91.40575,91.40575,0,1,0,143.68892,0C1157.18982,436.82067,981.6885,385.60008,981.6885,395.8592Z" transform="translate(-35.5 -118.5)" opacity="0.1" />
<path d="M365.62,461.43628H477.094v45.12043H365.62Z" transform="translate(-35.5 -118.5)" fill="#fff" fill-rule="evenodd" />
<path d="M264.76252,608.74122a26.50931,26.50931,0,0,1-22.96231-13.27072,26.50976,26.50976,0,0,0,22.96231,39.81215H291.304V608.74122Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M384.17242,468.57061l92.92155-5.80726V449.49263a26.54091,26.54091,0,0,0-26.54143-26.54143H331.1161l-3.31768-5.74622a3.83043,3.83043,0,0,0-6.63536,0l-3.31768,5.74622-3.31767-5.74622a3.83043,3.83043,0,0,0-6.63536,0l-3.31768,5.74622L301.257,417.205a3.83043,3.83043,0,0,0-6.63536,0L291.304,422.9512c-.02919,0-.05573.004-.08625.004l-5.49674-5.49541a3.8293,3.8293,0,0,0-6.4071,1.71723l-1.81676,6.77338L270.607,424.1031a3.82993,3.82993,0,0,0-4.6912,4.69253l1.84463,6.89148-6.77072,1.81411a3.8315,3.8315,0,0,0-1.71988,6.40975l5.49673,5.49673c0,.02787-.004.05574-.004.08493l-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74621,3.31768L259.0163,466.081a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31767a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31767a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768L259.0163,558.976a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768A26.54091,26.54091,0,0,0,291.304,635.28265H450.55254A26.5409,26.5409,0,0,0,477.094,608.74122V502.5755l-92.92155-5.80727a14.12639,14.12639,0,0,1,0-28.19762" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M424.01111,635.28265h39.81214V582.19979H424.01111Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M490.36468,602.10586a6.60242,6.60242,0,0,0-.848.08493c-.05042-.19906-.09821-.39945-.15393-.59852A6.62668,6.62668,0,1,0,482.80568,590.21q-.2203-.22491-.44457-.44589a6.62391,6.62391,0,1,0-11.39689-6.56369c-.1964-.05575-.39414-.10218-.59056-.15262a6.63957,6.63957,0,1,0-13.10086,0c-.1964.05042-.39414.09687-.59056.15262a6.62767,6.62767,0,1,0-11.39688,6.56369,26.52754,26.52754,0,1,0,44.23127,25.52756,6.6211,6.6211,0,1,0,.848-13.18579" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
<path d="M437.28182,555.65836H477.094V529.11693H437.28182Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M490.36468,545.70532a3.31768,3.31768,0,0,0,0-6.63536,3.41133,3.41133,0,0,0-.42333.04247c-.02655-.09953-.04911-.19907-.077-.29859a3.319,3.319,0,0,0-1.278-6.37923,3.28174,3.28174,0,0,0-2.00122.68742q-.10947-.11346-.22294-.22295a3.282,3.282,0,0,0,.67149-1.98265,3.31768,3.31768,0,0,0-6.37-1.2992,13.27078,13.27078,0,1,0,0,25.54082,3.31768,3.31768,0,0,0,6.37-1.2992,3.282,3.282,0,0,0-.67149-1.98265q.11347-.10947.22294-.22294a3.28174,3.28174,0,0,0,2.00122.68742,3.31768,3.31768,0,0,0,1.278-6.37923c.02786-.0982.05042-.19907.077-.29859a3.41325,3.41325,0,0,0,.42333.04246" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
<path d="M317.84538,466.081a3.31768,3.31768,0,0,1-3.31767-3.31768,9.953,9.953,0,1,0-19.90608,0,3.31768,3.31768,0,1,1-6.63535,0,16.58839,16.58839,0,1,1,33.17678,0,3.31768,3.31768,0,0,1-3.31768,3.31768" transform="translate(-35.5 -118.5)" fill-rule="evenodd" />
<path d="M370.92825,635.28265h79.62429A26.5409,26.5409,0,0,0,477.094,608.74122v-92.895H397.46968a26.54091,26.54091,0,0,0-26.54143,26.54143Z" transform="translate(-35.5 -118.5)" fill="#ffff50" fill-rule="evenodd" />
<path d="M457.21444,556.98543H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,1,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,1,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0-66.10674H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.29459H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414M477.094,474.19076c-.01592,0-.0292-.008-.04512-.00663-4.10064.13934-6.04083,4.24132-7.75274,7.86024-1.78623,3.78215-3.16771,6.24122-5.43171,6.16691-2.50685-.09024-3.94007-2.92222-5.45825-5.91874-1.74377-3.44243-3.73438-7.34667-7.91333-7.20069-4.04227.138-5.98907,3.70784-7.70631,6.857-1.82738,3.35484-3.07084,5.39455-5.46887,5.30033-2.55727-.09289-3.91619-2.39536-5.48877-5.06013-1.75306-2.96733-3.77951-6.30359-7.8775-6.18946-3.97326.13669-5.92537,3.16507-7.64791,5.83912-1.82207,2.82666-3.09872,4.5492-5.52725,4.447-2.61832-.09289-3.9706-2.00388-5.53522-4.21611-1.757-2.4856-3.737-5.299-7.82308-5.16231-3.88567.13271-5.83779,2.61434-7.559,4.80135-1.635,2.07555-2.9116,3.71846-5.61218,3.615a1.32793,1.32793,0,1,0-.09555,2.65414c4.00377.134,6.03154-2.38873,7.79257-4.6275,1.562-1.9853,2.91027-3.69855,5.56441-3.78879,2.55594-.10882,3.75429,1.47968,5.56707,4.04093,1.7212,2.43385,3.67465,5.19416,7.60545,5.33616,4.11789.138,6.09921-2.93946,7.8536-5.66261,1.56861-2.43385,2.92221-4.53461,5.50734-4.62352,2.37944-.08892,3.67466,1.79154,5.50072,4.885,1.72121,2.91557,3.67069,6.21865,7.67977,6.36463,4.14709.14332,6.14965-3.47693,7.89475-6.68181,1.51155-2.77092,2.93814-5.38791,5.46621-5.4755,2.37944-.05573,3.62025,2.11668,5.45558,5.74622,1.71459,3.388,3.65875,7.22591,7.73019,7.37321l.22429.004c4.06614,0,5.99571-4.08074,7.70364-7.68905,1.51154-3.19825,2.94211-6.21069,5.3972-6.33411Z" transform="translate(-35.5 -118.5)" fill-rule="evenodd" />
<path d="M344.38682,635.28265h53.08286V582.19979H344.38682Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M424.01111,602.10586a6.60242,6.60242,0,0,0-.848.08493c-.05042-.19906-.09821-.39945-.15394-.59852A6.62667,6.62667,0,1,0,416.45211,590.21q-.2203-.22491-.44458-.44589a6.62391,6.62391,0,1,0-11.39689-6.56369c-.1964-.05575-.39413-.10218-.59054-.15262a6.63957,6.63957,0,1,0-13.10084,0c-.19641.05042-.39414.09687-.59055.15262a6.62767,6.62767,0,1,0-11.39689,6.56369,26.52755,26.52755,0,1,0,44.2313,25.52756,6.6211,6.6211,0,1,0,.848-13.18579" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
<path d="M344.38682,555.65836h53.08286V529.11693H344.38682Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
<path d="M410.74039,545.70532a3.31768,3.31768,0,1,0,0-6.63536,3.41133,3.41133,0,0,0-.42333.04247c-.02655-.09953-.04911-.19907-.077-.29859a3.319,3.319,0,0,0-1.278-6.37923,3.28174,3.28174,0,0,0-2.00122.68742q-.10947-.11346-.22294-.22295a3.282,3.282,0,0,0,.67149-1.98265,3.31768,3.31768,0,0,0-6.37-1.2992,13.27078,13.27078,0,1,0,0,25.54082,3.31768,3.31768,0,0,0,6.37-1.2992,3.282,3.282,0,0,0-.67149-1.98265q.11347-.10947.22294-.22294a3.28174,3.28174,0,0,0,2.00122.68742,3.31768,3.31768,0,0,0,1.278-6.37923c.02786-.0982.05042-.19907.077-.29859a3.41325,3.41325,0,0,0,.42333.04246" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
<path d="M424.01111,447.8338a3.60349,3.60349,0,0,1-.65028-.06636,3.34415,3.34415,0,0,1-.62372-.18579,3.44679,3.44679,0,0,1-.572-.30522,5.02708,5.02708,0,0,1-.50429-.4114,3.88726,3.88726,0,0,1-.41007-.50428,3.27532,3.27532,0,0,1-.55737-1.84463,3.60248,3.60248,0,0,1,.06636-.65027,3.82638,3.82638,0,0,1,.18447-.62373,3.48858,3.48858,0,0,1,.30656-.57064,3.197,3.197,0,0,1,.91436-.91568,3.44685,3.44685,0,0,1,.572-.30523,3.344,3.344,0,0,1,.62372-.18578,3.06907,3.06907,0,0,1,1.30053,0,3.22332,3.22332,0,0,1,1.19436.491,5.02835,5.02835,0,0,1,.50429.41139,4.8801,4.8801,0,0,1,.41139.50429,3.38246,3.38246,0,0,1,.30522.57064,3.47806,3.47806,0,0,1,.25215,1.274A3.36394,3.36394,0,0,1,426.36,446.865a5.02708,5.02708,0,0,1-.50429.4114,3.3057,3.3057,0,0,1-1.84463.55737m26.54143-1.65884a3.38754,3.38754,0,0,1-2.35024-.96877,5.04185,5.04185,0,0,1-.41007-.50428,3.27532,3.27532,0,0,1-.55737-1.84463,3.38659,3.38659,0,0,1,.96744-2.34892,5.02559,5.02559,0,0,1,.50429-.41139,3.44685,3.44685,0,0,1,.572-.30523,3.3432,3.3432,0,0,1,.62373-.18579,3.06952,3.06952,0,0,1,1.30052,0,3.22356,3.22356,0,0,1,1.19436.491,5.02559,5.02559,0,0,1,.50429.41139,3.38792,3.38792,0,0,1,.96876,2.34892,3.72635,3.72635,0,0,1-.06636.65026,3.37387,3.37387,0,0,1-.18579.62373,4.71469,4.71469,0,0,1-.30522.57064,4.8801,4.8801,0,0,1-.41139.50429,5.02559,5.02559,0,0,1-.50429.41139,3.30547,3.30547,0,0,1-1.84463.55737" transform="translate(-35.5 -118.5)" fill-rule="evenodd" />
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

+5 -4
View File
@@ -1,7 +1,8 @@
{
// This file is not used in compilation. It is here just for a nice editor experience.
"extends": "@tsconfig/docusaurus/tsconfig.json",
"extends": "tsconfig/nextjs.json",
"compilerOptions": {
"baseUrl": "."
}
"plugins": [{ "name": "next" }]
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
-271
View File
@@ -1,271 +0,0 @@
# simple
## 0.0.33
### Patch Changes
- Updated dependencies [63f2108]
- llamaindex@0.0.35
## 0.0.32
### Patch Changes
- Updated dependencies [2a27e21]
- llamaindex@0.0.34
## 0.0.31
### Patch Changes
- Updated dependencies [5e2e92c]
- llamaindex@0.0.33
## 0.0.30
### Patch Changes
- Updated dependencies [90c0b83]
- Updated dependencies [dfd22aa]
- llamaindex@0.0.32
## 0.0.29
### Patch Changes
- Updated dependencies [6c55b2d]
- Updated dependencies [8aa8c65]
- Updated dependencies [6c55b2d]
- llamaindex@0.0.31
## 0.0.28
### Patch Changes
- Updated dependencies [139abad]
- Updated dependencies [139abad]
- Updated dependencies [eb0e994]
- Updated dependencies [eb0e994]
- Updated dependencies [139abad]
- llamaindex@0.0.30
## 0.0.27
### Patch Changes
- Updated dependencies [a52143b]
- Updated dependencies [1b7fd95]
- Updated dependencies [0db3f41]
- llamaindex@0.0.29
## 0.0.26
### Patch Changes
- Updated dependencies [96bb657]
- Updated dependencies [96bb657]
- Updated dependencies [837854d]
- llamaindex@0.0.28
## 0.0.25
### Patch Changes
- Updated dependencies [4a5591b]
- Updated dependencies [4a5591b]
- Updated dependencies [4a5591b]
- llamaindex@0.0.27
## 0.0.24
### Patch Changes
- Updated dependencies [5bb55bc]
- llamaindex@0.0.26
## 0.0.23
### Patch Changes
- Updated dependencies [e21eca2]
- Updated dependencies [40a8f07]
- Updated dependencies [40a8f07]
- llamaindex@0.0.25
## 0.0.22
### Patch Changes
- Updated dependencies [e4af7b3]
- Updated dependencies [259fe63]
- llamaindex@0.0.24
## 0.0.21
### Patch Changes
- Updated dependencies
- Updated dependencies [9d6b2ed]
- llamaindex@0.0.23
## 0.0.20
### Patch Changes
- Updated dependencies [454f3f8]
- Updated dependencies [454f3f8]
- Updated dependencies [454f3f8]
- Updated dependencies [454f3f8]
- Updated dependencies [99df58f]
- llamaindex@0.0.22
## 0.0.19
### Patch Changes
- Updated dependencies [f7a57ca]
- Updated dependencies [0a09de2]
- Updated dependencies [f7a57ca]
- llamaindex@0.0.21
## 0.0.18
### Patch Changes
- Updated dependencies [b526a2d]
- Updated dependencies [b526a2d]
- Updated dependencies [b526a2d]
- llamaindex@0.0.20
## 0.0.17
### Patch Changes
- Updated dependencies [a747f28]
- Updated dependencies [355910b]
- Updated dependencies [355910b]
- llamaindex@0.0.19
## 0.0.16
### Patch Changes
- Updated dependencies [824c13c]
- Updated dependencies [18b8915]
- Updated dependencies [ade9d8f]
- Updated dependencies [824c13c]
- llamaindex@0.0.18
## 0.0.15
### Patch Changes
- Updated dependencies [f80b062]
- Updated dependencies [b3fec86]
- Updated dependencies [b3fec86]
- llamaindex@0.0.17
## 0.0.14
### Patch Changes
- Updated dependencies [ec12633]
- Updated dependencies [9214b06]
- Updated dependencies [3316c6b]
- Updated dependencies [3316c6b]
- llamaindex@0.0.16
## 0.0.13
### Patch Changes
- Updated dependencies [b501eb5]
- Updated dependencies [f9d1a6e]
- llamaindex@0.0.15
## 0.0.12
### Patch Changes
- Updated dependencies [4ef334a]
- Updated dependencies [0af7773]
- Updated dependencies [bea4af9]
- Updated dependencies [4ef334a]
- llamaindex@0.0.14
## 0.0.11
### Patch Changes
- Updated dependencies [4f6f245]
- llamaindex@0.0.13
## 0.0.10
### Patch Changes
- Updated dependencies [68bdaaa]
- llamaindex@0.0.12
## 0.0.9
### Patch Changes
- Updated dependencies [fb7fb76]
- llamaindex@0.0.11
## 0.0.8
### Patch Changes
- Updated dependencies [6f2cb31]
- llamaindex@0.0.10
## 0.0.7
### Patch Changes
- Updated dependencies [02d9bb0]
- llamaindex@0.0.9
## 0.0.6
### Patch Changes
- Updated dependencies [ea5038e]
- llamaindex@0.0.8
## 0.0.5
### Patch Changes
- Updated dependencies [9fa6d4a]
- llamaindex@0.0.7
## 0.0.4
### Patch Changes
- Updated dependencies
- llamaindex@0.0.6
## 0.0.3
### Patch Changes
- Updated dependencies [5a765aa]
- llamaindex@0.0.5
## 0.0.2
### Patch Changes
- Updated dependencies [c65d671]
- llamaindex@0.0.4
## 0.0.1
### Patch Changes
- Updated dependencies [ca9410f]
- llamaindex@0.0.3
-10
View File
@@ -1,10 +0,0 @@
# Simple Examples
Due to packaging, you will need to run these commands to get started.
```bash
pnpm install
pnpm --filter llamaindex build
```
Then run the examples with `ts-node`, for example `npx ts-node vectorIndex.ts`
-16
View File
@@ -1,16 +0,0 @@
import { Anthropic } from "llamaindex";
(async () => {
const anthropic = new Anthropic();
const result = await anthropic.chat([
{ content: "You want to talk in rhymes.", role: "system" },
{ content: "Hello, world!", role: "user" },
{ content: "Hello!", role: "assistant" },
{
content:
"How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
role: "user",
},
]);
console.log(result);
})();
+14 -16
View File
@@ -1,23 +1,21 @@
import { stdin as input, stdout as output } from "node:process";
// readline/promises is still experimental so not in @types/node yet
// @ts-ignore
import readline from "node:readline/promises";
import {
ContextChatEngine,
Document,
serviceContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import * as readline from "node:readline/promises";
// @ts-ignore
import { stdin as input, stdout as output } from "node:process";
import { Document } from "@llamaindex/core/src/Node";
import { VectorStoreIndex } from "@llamaindex/core/src/BaseIndex";
import { ContextChatEngine } from "@llamaindex/core/src/ChatEngine";
import essay from "./essay";
import { serviceContextFromDefaults } from "@llamaindex/core/src/ServiceContext";
async function main() {
const document = new Document({ text: essay });
const serviceContext = serviceContextFromDefaults({ chunkSize: 512 });
const index = await VectorStoreIndex.fromDocuments([document], {
serviceContext,
});
const index = await VectorStoreIndex.fromDocuments(
[document],
undefined,
serviceContext
);
const retriever = index.asRetriever();
retriever.similarityTopK = 5;
const chatEngine = new ContextChatEngine({ retriever });
@@ -25,8 +23,8 @@ async function main() {
while (true) {
const query = await rl.question("Query: ");
const response = await chatEngine.chat(query);
console.log(response.toString());
const response = await chatEngine.achat(query);
console.log(response);
}
}
-49
View File
@@ -1,49 +0,0 @@
import {
CompactAndRefine,
OpenAI,
PapaCSVReader,
ResponseSynthesizer,
serviceContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
async function main() {
// Load CSV
const reader = new PapaCSVReader();
const path = "data/titanic_train.csv";
const documents = await reader.loadData(path);
const serviceContext = serviceContextFromDefaults({
llm: new OpenAI({ model: "gpt-4" }),
});
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments(documents, {
serviceContext,
});
const csvPrompt = ({ context = "", query = "" }) => {
return `The following CSV file is loaded from ${path}
\`\`\`csv
${context}
\`\`\`
Given the CSV file, generate me Typescript code to answer the question: ${query}. You can use built in NodeJS functions but avoid using third party libraries.
`;
};
const responseSynthesizer = new ResponseSynthesizer({
responseBuilder: new CompactAndRefine(serviceContext, csvPrompt),
});
const queryEngine = index.asQueryEngine({ responseSynthesizer });
// Query the index
const response = await queryEngine.query(
"What is the correlation between survival and age?",
);
// Output response
console.log(response.toString());
}
main().catch(console.error);
File diff suppressed because it is too large Load Diff
Binary file not shown.
-715
View File
@@ -1,715 +0,0 @@
survived,pclass,name,sex,age,sibsp,parch,ticket,fare,cabin,embarked
0,3,Braund,male,22,1,0,A/5 21171,7.25,,S
1,1,Cumings,female,38,1,0,PC 17599,71.2833,C85,C
1,3,Heikkinen,female,26,0,0,STON/O2. 3101282,7.925,,S
1,1,Futrelle,female,35,1,0,113803,53.1,C123,S
0,3,Allen,male,35,0,0,373450,8.05,,S
0,1,McCarthy,male,54,0,0,17463,51.8625,E46,S
0,3,Palsson,male,2,3,1,349909,21.075,,S
1,3,Johnson,female,27,0,2,347742,11.1333,,S
1,2,Nasser,female,14,1,0,237736,30.0708,,C
1,3,Sandstrom,female,4,1,1,PP 9549,16.7,G6,S
1,1,Bonnell,female,58,0,0,113783,26.55,C103,S
0,3,Saundercock,male,20,0,0,A/5. 2151,8.05,,S
0,3,Andersson,male,39,1,5,347082,31.275,,S
0,3,Vestrom,female,14,0,0,350406,7.8542,,S
1,2,Hewlett,female,55,0,0,248706,16,,S
0,3,Rice,male,2,4,1,382652,29.125,,Q
0,3,Vander,female,31,1,0,345763,18,,S
0,2,Fynney,male,35,0,0,239865,26,,S
1,2,Beesley,male,34,0,0,248698,13,D56,S
1,3,McGowan,female,15,0,0,330923,8.0292,,Q
1,1,Sloper,male,28,0,0,113788,35.5,A6,S
0,3,Palsson,female,8,3,1,349909,21.075,,S
1,3,Asplund,female,38,1,5,347077,31.3875,,S
0,1,Fortune,male,19,3,2,19950,263,C23 C25 C27,S
0,1,Uruchurtu,male,40,0,0,PC 17601,27.7208,,C
0,2,Wheadon,male,66,0,0,C.A. 24579,10.5,,S
0,1,Meyer,male,28,1,0,PC 17604,82.1708,,C
0,1,Holverson,male,42,1,0,113789,52,,S
0,3,Cann,male,21,0,0,A./5. 2152,8.05,,S
0,3,Vander,female,18,2,0,345764,18,,S
1,3,Nicola-Yarred,female,14,1,0,2651,11.2417,,C
0,3,Ahlin,female,40,1,0,7546,9.475,,S
0,2,Turpin,female,27,1,0,11668,21,,S
1,2,Laroche,female,3,1,2,SC/Paris 2123,41.5792,,C
1,3,Devaney,female,19,0,0,330958,7.8792,,Q
0,3,Arnold-Franchi,female,18,1,0,349237,17.8,,S
0,3,Panula,male,7,4,1,3101295,39.6875,,S
0,3,Nosworthy,male,21,0,0,A/4. 39886,7.8,,S
1,1,Harper,female,49,1,0,PC 17572,76.7292,D33,C
1,2,Faunthorpe,female,29,1,0,2926,26,,S
0,1,Ostby,male,65,0,1,113509,61.9792,B30,C
1,2,Rugg,female,21,0,0,C.A. 31026,10.5,,S
0,3,Novel,male,28.5,0,0,2697,7.2292,,C
1,2,West,female,5,1,2,C.A. 34651,27.75,,S
0,3,Goodwin,male,11,5,2,CA 2144,46.9,,S
0,3,Sirayanian,male,22,0,0,2669,7.2292,,C
1,1,Icard,female,38,0,0,113572,80,B28,
0,1,Harris,male,45,1,0,36973,83.475,C83,S
0,3,Skoog,male,4,3,2,347088,27.9,,S
1,2,Nye,female,29,0,0,C.A. 29395,10.5,F33,S
0,3,Crease,male,19,0,0,S.P. 3464,8.1583,,S
1,3,Andersson,female,17,4,2,3101281,7.925,,S
0,3,Kink,male,26,2,0,315151,8.6625,,S
0,2,Jenkin,male,32,0,0,C.A. 33111,10.5,,S
0,3,Goodwin,female,16,5,2,CA 2144,46.9,,S
0,2,Hood,male,21,0,0,S.O.C. 14879,73.5,,S
0,3,Chronopoulos,male,26,1,0,2680,14.4542,,C
1,3,Bing,male,32,0,0,1601,56.4958,,S
0,3,Moen,male,25,0,0,348123,7.65,F G73,S
1,2,Caldwell,male,0.83,0,2,248738,29,,S
1,3,Dowdell,female,30,0,0,364516,12.475,,S
0,3,Waelens,male,22,0,0,345767,9,,S
1,3,Sheerlinck,male,29,0,0,345779,9.5,,S
0,1,Carrau,male,28,0,0,113059,47.1,,S
1,2,Ilett,female,17,0,0,SO/C 14885,10.5,,S
1,3,Backstrom,female,33,3,0,3101278,15.85,,S
0,3,Ford,male,16,1,3,W./C. 6608,34.375,,S
1,1,Fortune,female,23,3,2,19950,263,C23 C25 C27,S
0,3,Celotti,male,24,0,0,343275,8.05,,S
0,3,Christmann,male,29,0,0,343276,8.05,,S
0,3,Andreasson,male,20,0,0,347466,7.8542,,S
0,1,Chaffee,male,46,1,0,W.E.P. 5734,61.175,E31,S
0,3,Dean,male,26,1,2,C.A. 2315,20.575,,S
0,3,Coxon,male,59,0,0,364500,7.25,,S
0,1,Goldschmidt,male,71,0,0,PC 17754,34.6542,A5,C
1,1,Greenfield,male,23,0,1,PC 17759,63.3583,D10 D12,C
1,2,Doling,female,34,0,1,231919,23,,S
0,2,Kantor,male,34,1,0,244367,26,,S
0,3,Petranec,female,28,0,0,349245,7.8958,,S
0,1,White,male,21,0,1,35281,77.2875,D26,S
0,3,Johansson,male,33,0,0,7540,8.6542,,S
0,3,Gustafsson,male,37,2,0,3101276,7.925,,S
0,3,Mionoff,male,28,0,0,349207,7.8958,,S
1,3,Salkjelsvik,female,21,0,0,343120,7.65,,S
0,3,Rekic,male,38,0,0,349249,7.8958,,S
0,1,Porter,male,47,0,0,110465,52,C110,S
0,3,Zabour,female,14.5,1,0,2665,14.4542,,C
0,3,Barton,male,22,0,0,324669,8.05,,S
0,3,Jussila,female,20,1,0,4136,9.825,,S
0,3,Attalah,female,17,0,0,2627,14.4583,,C
0,3,Pekoniemi,male,21,0,0,STON/O 2. 3101294,7.925,,S
0,3,Connors,male,70.5,0,0,370369,7.75,,Q
0,2,Turpin,male,29,1,0,11668,21,,S
0,1,Baxter,male,24,0,1,PC 17558,247.5208,B58 B60,C
0,3,Andersson,female,2,4,2,347082,31.275,,S
0,2,Hickman,male,21,2,0,S.O.C. 14879,73.5,,S
0,2,Nasser,male,32.5,1,0,237736,30.0708,,C
1,2,Webber,female,32.5,0,0,27267,13,E101,S
0,1,White,male,54,0,1,35281,77.2875,D26,S
1,3,Nicola-Yarred,male,12,1,0,2651,11.2417,,C
1,3,Madsen,male,24,0,0,C 17369,7.1417,,S
0,3,Ekstrom,male,45,0,0,347061,6.975,,S
0,3,Drazenoic,male,33,0,0,349241,7.8958,,C
0,3,Coelho,male,20,0,0,SOTON/O.Q. 3101307,7.05,,S
0,3,Robins,female,47,1,0,A/5. 3337,14.5,,S
1,2,Weisz,female,29,1,0,228414,26,,S
0,2,Sobey,male,25,0,0,C.A. 29178,13,,S
0,2,Richard,male,23,0,0,SC/PARIS 2133,15.0458,,C
1,1,Newsom,female,19,0,2,11752,26.2833,D47,S
0,1,Futrelle,male,37,1,0,113803,53.1,C123,S
0,3,Osen,male,16,0,0,7534,9.2167,,S
0,1,Giglio,male,24,0,0,PC 17593,79.2,B86,C
1,3,Nysten,female,22,0,0,347081,7.75,,S
1,3,Hakkarainen,female,24,1,0,STON/O2. 3101279,15.85,,S
0,3,Burke,male,19,0,0,365222,6.75,,Q
0,2,Andrew,male,18,0,0,231945,11.5,,S
0,2,Nicholls,male,19,1,1,C.A. 33112,36.75,,S
1,3,Andersson,male,27,0,0,350043,7.7958,,S
0,3,Ford,female,9,2,2,W./C. 6608,34.375,,S
0,2,Navratil,male,36.5,0,2,230080,26,F2,S
0,2,Byles,male,42,0,0,244310,13,,S
0,2,Bateman,male,51,0,0,S.O.P. 1166,12.525,,S
1,1,Pears,female,22,1,0,113776,66.6,C2,S
0,3,Meo,male,55.5,0,0,A.5. 11206,8.05,,S
0,3,van,male,40.5,0,2,A/5. 851,14.5,,S
0,1,Williams,male,51,0,1,PC 17597,61.3792,,C
1,3,Gilnagh,female,16,0,0,35851,7.7333,,Q
0,3,Corn,male,30,0,0,SOTON/OQ 392090,8.05,,S
0,3,Cribb,male,44,0,1,371362,16.1,,S
1,2,Watt,female,40,0,0,C.A. 33595,15.75,,S
0,3,Bengtsson,male,26,0,0,347068,7.775,,S
0,3,Calic,male,17,0,0,315093,8.6625,,S
0,3,Panula,male,1,4,1,3101295,39.6875,,S
1,3,Goldsmith,male,9,0,2,363291,20.525,,S
0,3,Skoog,female,45,1,4,347088,27.9,,S
0,3,Ling,male,28,0,0,1601,56.4958,,S
0,1,Van,male,61,0,0,111240,33.5,B19,S
0,3,Rice,male,4,4,1,382652,29.125,,Q
1,3,Johnson,female,1,1,1,347742,11.1333,,S
0,3,Sivola,male,21,0,0,STON/O 2. 3101280,7.925,,S
0,1,Smith,male,56,0,0,17764,30.6958,A7,C
0,3,Klasen,male,18,1,1,350404,7.8542,,S
0,1,Isham,female,50,0,0,PC 17595,28.7125,C49,C
0,2,Hale,male,30,0,0,250653,13,,S
0,3,Leonard,male,36,0,0,LINE,0,,S
0,3,Asplund,male,9,4,2,347077,31.3875,,S
1,2,Becker,male,1,2,1,230136,39,F4,S
1,3,Kink-Heilmann,female,4,0,2,315153,22.025,,S
1,1,Romaine,male,45,0,0,111428,26.55,,S
0,3,Bourke,male,40,1,1,364849,15.5,,Q
0,3,Turcin,male,36,0,0,349247,7.8958,,S
1,2,Pinsky,female,32,0,0,234604,13,,S
0,2,Carbines,male,19,0,0,28424,13,,S
1,3,Andersen-Jensen,female,19,1,0,350046,7.8542,,S
1,2,Navratil,male,3,1,1,230080,26,F2,S
1,1,Brown,female,44,0,0,PC 17610,27.7208,B4,C
1,1,Lurette,female,58,0,0,PC 17569,146.5208,B80,C
0,3,Olsen,male,42,0,1,4579,8.4042,,S
0,2,Yrois,female,24,0,0,248747,13,,S
0,3,Vande,male,28,0,0,345770,9.5,,S
0,3,Johanson,male,34,0,0,3101264,6.4958,,S
0,3,Youseff,male,45.5,0,0,2628,7.225,,C
1,3,Cohen,male,18,0,0,A/5 3540,8.05,,S
0,3,Strom,female,2,0,1,347054,10.4625,G6,S
0,3,Backstrom,male,32,1,0,3101278,15.85,,S
1,3,Albimona,male,26,0,0,2699,18.7875,,C
1,3,Carr,female,16,0,0,367231,7.75,,Q
1,1,Blank,male,40,0,0,112277,31,A31,C
0,3,Ali,male,24,0,0,SOTON/O.Q. 3101311,7.05,,S
1,2,Cameron,female,35,0,0,F.C.C. 13528,21,,S
0,3,Perkin,male,22,0,0,A/5 21174,7.25,,S
0,2,Givard,male,30,0,0,250646,13,,S
1,1,Newell,female,31,1,0,35273,113.275,D36,C
1,3,Honkanen,female,27,0,0,STON/O2. 3101283,7.925,,S
0,2,Jacobsohn,male,42,1,0,243847,27,,S
1,1,Bazzani,female,32,0,0,11813,76.2917,D15,C
0,2,Harris,male,30,0,0,W/C 14208,10.5,,S
1,3,Sunderland,male,16,0,0,SOTON/OQ 392089,8.05,,S
0,2,Bracken,male,27,0,0,220367,13,,S
0,3,Green,male,51,0,0,21440,8.05,,S
1,1,Hoyt,male,38,1,0,19943,90,C93,S
0,3,Berglund,male,22,0,0,PP 4348,9.35,,S
1,2,Mellors,male,19,0,0,SW/PP 751,10.5,,S
0,3,Lovell,male,20.5,0,0,A/5 21173,7.25,,S
0,2,Fahlstrom,male,18,0,0,236171,13,,S
1,1,Harris,female,35,1,0,36973,83.475,C83,S
0,3,Larsson,male,29,0,0,347067,7.775,,S
0,2,Sjostedt,male,59,0,0,237442,13.5,,S
1,3,Asplund,female,5,4,2,347077,31.3875,,S
0,2,Leyson,male,24,0,0,C.A. 29566,10.5,,S
0,2,Hold,male,44,1,0,26707,26,,S
1,2,Collyer,female,8,0,2,C.A. 31921,26.25,,S
0,2,Pengelly,male,19,0,0,28665,10.5,,S
0,2,Hunt,male,33,0,0,SCO/W 1585,12.275,,S
0,2,Coleridge,male,29,0,0,W./C. 14263,10.5,,S
0,3,Maenpaa,male,22,0,0,STON/O 2. 3101275,7.125,,S
0,3,Attalah,male,30,0,0,2694,7.225,,C
0,1,Minahan,male,44,2,0,19928,90,C78,Q
0,3,Lindahl,female,25,0,0,347071,7.775,,S
1,2,Hamalainen,female,24,0,2,250649,14.5,,S
1,1,Beckwith,male,37,1,1,11751,52.5542,D35,S
0,2,Carter,male,54,1,0,244252,26,,S
0,3,Strom,female,29,1,1,347054,10.4625,G6,S
0,1,Stead,male,62,0,0,113514,26.55,C87,S
0,3,Lobb,male,30,1,0,A/5. 3336,16.1,,S
0,3,Rosblom,female,41,0,2,370129,20.2125,,S
1,3,Touma,female,29,0,2,2650,15.2458,,C
1,1,Cherry,female,30,0,0,110152,86.5,B77,S
1,1,Ward,female,35,0,0,PC 17755,512.3292,,C
1,2,Parrish,female,50,0,1,230433,26,,S
1,3,Asplund,male,3,4,2,347077,31.3875,,S
0,1,Taussig,male,52,1,1,110413,79.65,E67,S
0,1,Harrison,male,40,0,0,112059,0,B94,S
0,2,Reeves,male,36,0,0,C.A. 17248,10.5,,S
0,3,Panula,male,16,4,1,3101295,39.6875,,S
1,3,Persson,male,25,1,0,347083,7.775,,S
1,1,Graham,female,58,0,1,PC 17582,153.4625,C125,S
1,1,Bissette,female,35,0,0,PC 17760,135.6333,C99,S
1,3,Tornquist,male,25,0,0,LINE,0,,S
1,2,Mellinger,female,41,0,1,250644,19.5,,S
0,1,Natsch,male,37,0,1,PC 17596,29.7,C118,C
1,1,Andrews,female,63,1,0,13502,77.9583,D7,S
0,3,Lindblom,female,45,0,0,347073,7.75,,S
0,3,Rice,male,7,4,1,382652,29.125,,Q
1,3,Abbott,female,35,1,1,C.A. 2673,20.25,,S
0,3,Duane,male,65,0,0,336439,7.75,,Q
0,3,Olsson,male,28,0,0,347464,7.8542,,S
0,3,de,male,16,0,0,345778,9.5,,S
1,3,Dorking,male,19,0,0,A/5. 10482,8.05,,S
0,3,Stankovic,male,33,0,0,349239,8.6625,,C
1,3,de,male,30,0,0,345774,9.5,,S
0,3,Naidenoff,male,22,0,0,349206,7.8958,,S
1,2,Hosono,male,42,0,0,237798,13,,S
1,3,Connolly,female,22,0,0,370373,7.75,,Q
1,1,Barber,female,26,0,0,19877,78.85,,S
1,1,Bishop,female,19,1,0,11967,91.0792,B49,C
0,2,Levy,male,36,0,0,SC/Paris 2163,12.875,D,C
0,3,Haas,female,24,0,0,349236,8.85,,S
0,3,Mineff,male,24,0,0,349233,7.8958,,S
0,3,Hanna,male,23.5,0,0,2693,7.2292,,C
0,1,Allison,female,2,1,2,113781,151.55,C22 C26,S
1,1,Baxter,female,50,0,1,PC 17558,247.5208,B58 B60,C
0,3,Johnson,male,19,0,0,LINE,0,,S
1,1,Allison,male,0.92,1,2,113781,151.55,C22 C26,S
1,1,Penasco,female,17,1,0,PC 17758,108.9,C65,C
0,2,Abelson,male,30,1,0,P/PP 3381,24,,C
1,1,Francatelli,female,30,0,0,PC 17485,56.9292,E36,C
1,1,Hays,female,24,0,0,11767,83.1583,C54,C
1,1,Ryerson,female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C
0,2,Lahtinen,female,26,1,1,250651,26,,S
0,3,Hendekovic,male,28,0,0,349243,7.8958,,S
0,2,Hart,male,43,1,1,F.C.C. 13529,26.25,,S
1,3,Nilsson,female,26,0,0,347470,7.8542,,S
1,2,Kantor,female,24,1,0,244367,26,,S
0,2,Moraweck,male,54,0,0,29011,14,,S
1,1,Wick,female,31,0,2,36928,164.8667,C7,S
1,1,Spedden,female,40,1,1,16966,134.5,E34,C
0,3,Dennis,male,22,0,0,A/5 21172,7.25,,S
0,3,Danoff,male,27,0,0,349219,7.8958,,S
1,2,Slayter,female,30,0,0,234818,12.35,,Q
1,2,Caldwell,female,22,1,1,248738,29,,S
1,1,Young,female,36,0,0,PC 17760,135.6333,C32,C
0,3,Nysveen,male,61,0,0,345364,6.2375,,S
1,2,Ball,female,36,0,0,28551,13,D,S
1,3,Goldsmith,female,31,1,1,363291,20.525,,S
1,1,Hippach,female,16,0,1,111361,57.9792,B18,C
0,1,Partner,male,45.5,0,0,113043,28.5,C124,S
0,1,Graham,male,38,0,1,PC 17582,153.4625,C91,S
0,3,Vander,male,16,2,0,345764,18,,S
0,1,Pears,male,29,1,0,113776,66.6,C2,S
1,1,Burns,female,41,0,0,16966,134.5,E40,C
1,3,Dahl,male,45,0,0,7598,8.05,,S
0,1,Blackwell,male,45,0,0,113784,35.5,T,S
1,2,Navratil,male,2,1,1,230080,26,F2,S
1,1,Fortune,female,24,3,2,19950,263,C23 C25 C27,S
0,2,Collander,male,28,0,0,248740,13,,S
0,2,Sedgwick,male,25,0,0,244361,13,,S
0,2,Fox,male,36,0,0,229236,13,,S
1,2,Brown,female,24,0,0,248733,13,F33,S
1,2,Smith,female,40,0,0,31418,13,,S
1,3,Coutts,male,3,1,1,C.A. 37671,15.9,,S
0,3,Dimic,male,42,0,0,315088,8.6625,,S
0,3,Odahl,male,23,0,0,7267,9.225,,S
0,3,Elias,male,15,1,1,2695,7.2292,,C
0,3,Arnold-Franchi,male,25,1,0,349237,17.8,,S
0,3,Vanden,male,28,0,0,345783,9.5,,S
1,1,Bowerman,female,22,0,1,113505,55,E33,S
0,2,Funk,female,38,0,0,237671,13,,S
0,3,Skoog,male,40,1,4,347088,27.9,,S
0,2,del,male,29,1,0,SC/PARIS 2167,27.7208,,C
0,3,Barbara,female,45,0,1,2691,14.4542,,C
0,3,Asim,male,35,0,0,SOTON/O.Q. 3101310,7.05,,S
0,3,Adahl,male,30,0,0,C 7076,7.25,,S
1,1,Warren,female,60,1,0,110813,75.25,D37,C
1,1,Aubart,female,24,0,0,PC 17477,69.3,B35,C
1,1,Harder,male,25,1,0,11765,55.4417,E50,C
0,3,Wiklund,male,18,1,0,3101267,6.4958,,S
0,3,Beavan,male,19,0,0,323951,8.05,,S
0,1,Ringhini,male,22,0,0,PC 17760,135.6333,,C
0,3,Palsson,female,3,3,1,349909,21.075,,S
1,3,Landergren,female,22,0,0,C 7077,7.25,,S
0,1,Widener,male,27,0,2,113503,211.5,C82,C
0,3,Betros,male,20,0,0,2648,4.0125,,C
0,3,Gustafsson,male,19,0,0,347069,7.775,,S
1,1,Bidois,female,42,0,0,PC 17757,227.525,,C
1,3,Nakid,female,1,0,2,2653,15.7417,,C
0,3,Tikkanen,male,32,0,0,STON/O 2. 3101293,7.925,,S
1,1,Holverson,female,35,1,0,113789,52,,S
0,2,Davies,male,18,0,0,S.O.C. 14879,73.5,,S
0,3,Goodwin,male,1,5,2,CA 2144,46.9,,S
1,2,Buss,female,36,0,0,27849,13,,S
1,2,Lehmann,female,17,0,0,SC 1748,12,,C
1,1,Carter,male,36,1,2,113760,120,B96 B98,S
1,3,Jansson,male,21,0,0,350034,7.7958,,S
0,3,Gustafsson,male,28,2,0,3101277,7.925,,S
1,1,Newell,female,23,1,0,35273,113.275,D36,C
1,3,Sandstrom,female,24,0,2,PP 9549,16.7,G6,S
0,3,Johansson,male,22,0,0,350052,7.7958,,S
0,3,Olsson,female,31,0,0,350407,7.8542,,S
0,2,McKane,male,46,0,0,28403,26,,S
0,2,Pain,male,23,0,0,244278,10.5,,S
1,2,Trout,female,28,0,0,240929,12.65,,S
1,3,Niskanen,male,39,0,0,STON/O 2. 3101289,7.925,,S
0,3,Adams,male,26,0,0,341826,8.05,,S
0,3,Jussila,female,21,1,0,4137,9.825,,S
0,3,Hakkarainen,male,28,1,0,STON/O2. 3101279,15.85,,S
0,3,Oreskovic,female,20,0,0,315096,8.6625,,S
0,2,Gale,male,34,1,0,28664,21,,S
0,3,Widegren,male,51,0,0,347064,7.75,,S
1,2,Richards,male,3,1,1,29106,18.75,,S
0,3,Birkeland,male,21,0,0,312992,7.775,,S
1,1,Minahan,female,33,1,0,19928,90,C78,Q
1,3,Sundman,male,44,0,0,STON/O 2. 3101269,7.925,,S
1,2,Drew,female,34,1,1,28220,32.5,,S
1,2,Silven,female,18,0,2,250652,13,,S
0,2,Matthews,male,30,0,0,28228,13,,S
0,3,Van,female,10,0,2,345773,24.15,,S
0,3,Charters,male,21,0,0,A/5. 13032,7.7333,,Q
0,3,Zimmerman,male,29,0,0,315082,7.875,,S
0,3,Danbom,female,28,1,1,347080,14.4,,S
0,3,Rosblom,male,18,1,1,370129,20.2125,,S
1,2,Clarke,female,28,1,0,2003,26,,S
1,2,Phillips,female,19,0,0,250655,26,,S
1,3,Pickard,male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S
1,1,Bjornstrom-Steffansson,male,28,0,0,110564,26.55,C52,S
1,2,Louch,female,42,1,0,SC/AH 3085,26,,S
0,3,Kallio,male,17,0,0,STON/O 2. 3101274,7.125,,S
0,1,Silvey,male,50,1,0,13507,55.9,E44,S
1,1,Carter,female,14,1,2,113760,120,B96 B98,S
0,3,Ford,female,21,2,2,W./C. 6608,34.375,,S
1,2,Richards,female,24,2,3,29106,18.75,,S
0,1,Fortune,male,64,1,4,19950,263,C23 C25 C27,S
0,2,Kvillner,male,31,0,0,C.A. 18723,10.5,,S
1,2,Hart,female,45,1,1,F.C.C. 13529,26.25,,S
0,3,Hampe,male,20,0,0,345769,9.5,,S
0,3,Petterson,male,25,1,0,347076,7.775,,S
1,2,Reynaldo,female,28,0,0,230434,13,,S
1,1,Dodge,male,4,0,2,33638,81.8583,A34,S
1,2,Mellinger,female,13,0,1,250644,19.5,,S
1,1,Seward,male,34,0,0,113794,26.55,,S
1,3,Baclini,female,5,2,1,2666,19.2583,,C
1,1,Peuchen,male,52,0,0,113786,30.5,C104,S
0,2,West,male,36,1,2,C.A. 34651,27.75,,S
0,1,Foreman,male,30,0,0,113051,27.75,C111,C
1,1,Goldenberg,male,49,1,0,17453,89.1042,C92,C
1,3,Jalsevac,male,29,0,0,349240,7.8958,,C
0,1,Millet,male,65,0,0,13509,26.55,E38,S
1,2,Toomey,female,50,0,0,F.C.C. 13531,10.5,,S
1,1,Anderson,male,48,0,0,19952,26.55,E12,S
0,3,Morley,male,34,0,0,364506,8.05,,S
0,1,Gee,male,47,0,0,111320,38.5,E63,S
0,2,Milling,male,48,0,0,234360,13,,S
0,3,Goncalves,male,38,0,0,SOTON/O.Q. 3101306,7.05,,S
0,1,Smart,male,56,0,0,113792,26.55,,S
1,3,Baclini,female,0.75,2,1,2666,19.2583,,C
0,3,Cacic,male,38,0,0,315089,8.6625,,S
1,2,West,female,33,1,2,C.A. 34651,27.75,,S
1,2,Jerwan,female,23,0,0,SC/AH Basle 541,13.7917,D,C
0,3,Strandberg,female,22,0,0,7553,9.8375,,S
0,2,Renouf,male,34,1,0,31027,21,,S
0,3,Braund,male,29,1,0,3460,7.0458,,S
0,3,Karlsson,male,22,0,0,350060,7.5208,,S
1,3,Hirvonen,female,2,0,1,3101298,12.2875,,S
0,3,Goodwin,male,9,5,2,CA 2144,46.9,,S
0,3,Rouse,male,50,0,0,A/5 3594,8.05,,S
1,3,Turkula,female,63,0,0,4134,9.5875,,S
1,1,Bishop,male,25,1,0,11967,91.0792,B49,C
1,1,Hoyt,female,35,1,0,19943,90,C93,S
0,1,Kent,male,58,0,0,11771,29.7,B37,C
0,3,Somerton,male,30,0,0,A.5. 18509,8.05,,S
1,3,Coutts,male,9,1,1,C.A. 37671,15.9,,S
0,3,Windelov,male,21,0,0,SOTON/OQ 3101317,7.25,,S
0,1,Molson,male,55,0,0,113787,30.5,C30,S
0,1,Artagaveytia,male,71,0,0,PC 17609,49.5042,,C
0,3,Stanley,male,21,0,0,A/4 45380,8.05,,S
1,1,Eustis,female,54,1,0,36947,78.2667,D20,C
0,1,Allison,female,25,1,2,113781,151.55,C22 C26,S
0,3,Svensson,male,24,0,0,350035,7.7958,,S
0,3,Calic,male,17,0,0,315086,8.6625,,S
0,3,Canavan,female,21,0,0,364846,7.75,,Q
0,3,Laitinen,female,37,0,0,4135,9.5875,,S
1,1,Maioni,female,16,0,0,110152,86.5,B79,S
0,1,Penasco,male,18,1,0,PC 17758,108.9,C65,C
1,2,Quick,female,33,0,2,26360,26,,S
0,3,Olsen,male,28,0,0,C 4001,22.525,,S
1,3,Lang,male,26,0,0,1601,56.4958,,S
1,3,Daly,male,29,0,0,382651,7.75,,Q
1,1,McGough,male,36,0,0,PC 17473,26.2875,E25,S
1,1,Rothschild,female,54,1,0,PC 17603,59.4,,C
0,3,Coleff,male,24,0,0,349209,7.4958,,S
0,1,Walker,male,47,0,0,36967,34.0208,D46,S
1,2,Lemore,female,34,0,0,C.A. 34260,10.5,F33,S
1,2,Angle,female,36,1,0,226875,26,,S
0,3,Pavlovic,male,32,0,0,349242,7.8958,,S
1,1,Perreault,female,30,0,0,12749,93.5,B73,S
0,3,Vovk,male,22,0,0,349252,7.8958,,S
1,1,Hippach,female,44,0,1,111361,57.9792,B18,C
0,3,Farrell,male,40.5,0,0,367232,7.75,,Q
1,2,Ridsdale,female,50,0,0,W./C. 14258,10.5,,S
0,3,Salonen,male,39,0,0,3101296,7.925,,S
0,2,Hocking,male,23,2,1,29104,11.5,,S
1,2,Quick,female,2,1,1,26360,26,,S
0,3,Elias,male,17,1,1,2690,7.2292,,C
0,3,Cacic,female,30,0,0,315084,8.6625,,S
1,2,Hart,female,7,0,2,F.C.C. 13529,26.25,,S
0,1,Butt,male,45,0,0,113050,26.55,B38,S
1,1,LeRoy,female,30,0,0,PC 17761,106.425,,C
1,1,Frolicher,female,22,0,2,13568,49.5,B39,C
1,1,Crosby,female,36,0,2,WE/P 5735,71,B22,S
0,3,Andersson,female,9,4,2,347082,31.275,,S
0,3,Andersson,female,11,4,2,347082,31.275,,S
1,2,Beane,male,32,1,0,2908,26,,S
0,1,Douglas,male,50,1,0,PC 17761,106.425,C86,C
0,1,Nicholson,male,64,0,0,693,26,,S
1,2,Beane,female,19,1,0,2908,26,,S
0,3,Goldsmith,male,33,1,1,363291,20.525,,S
1,2,Davies,male,8,1,1,C.A. 33112,36.75,,S
1,1,Thayer,male,17,0,2,17421,110.8833,C70,C
0,2,Sharp,male,27,0,0,244358,26,,S
1,3,Leeni,male,22,0,0,2620,7.225,,C
1,3,Ohman,female,22,0,0,347085,7.775,,S
0,1,Wright,male,62,0,0,113807,26.55,,S
1,1,Duff,female,48,1,0,11755,39.6,A16,C
1,1,Taussig,female,39,1,1,110413,79.65,E67,S
1,3,de,female,36,1,0,345572,17.4,,S
0,3,Sivic,male,40,0,0,349251,7.8958,,S
0,2,Norman,male,28,0,0,218629,13.5,,S
0,3,Davies,male,24,2,0,A/4 48871,24.15,,S
0,3,Stoytcheff,male,19,0,0,349205,7.8958,,S
0,3,Palsson,female,29,0,4,349909,21.075,,S
1,3,Jonsson,male,32,0,0,350417,7.8542,,S
1,2,Harris,male,62,0,0,S.W./PP 752,10.5,,S
1,1,Appleton,female,53,2,0,11769,51.4792,C101,S
1,1,Flynn,male,36,0,0,PC 17474,26.3875,E25,S
0,3,Rush,male,16,0,0,A/4. 20589,8.05,,S
0,3,Patchett,male,19,0,0,358585,14.5,,S
1,2,Garside,female,34,0,0,243880,13,,S
1,1,Silvey,female,39,1,0,13507,55.9,E44,S
1,3,Jussila,male,32,0,0,STON/O 2. 3101286,7.925,,S
1,2,Christy,female,25,1,1,237789,30,,S
1,1,Thayer,female,39,1,1,17421,110.8833,C68,C
0,2,Downton,male,54,0,0,28403,26,,S
0,1,Ross,male,36,0,0,13049,40.125,A10,C
1,1,Taussig,female,18,0,2,110413,79.65,E68,S
0,2,Jarvis,male,47,0,0,237565,15,,S
1,1,Frolicher-Stehli,male,60,1,1,13567,79.2,B41,C
0,3,Gilinski,male,22,0,0,14973,8.05,,S
0,3,Rintamaki,male,35,0,0,STON/O 2. 3101273,7.125,,S
1,1,Stephenson,female,52,1,0,36947,78.2667,D20,C
0,3,Elsbury,male,47,0,0,A/5 3902,7.25,,S
0,2,Chapman,male,37,1,0,SC/AH 29037,26,,S
0,3,Van,male,36,1,1,345773,24.15,,S
0,3,Johnson,male,49,0,0,LINE,0,,S
1,1,Duff,male,49,1,0,PC 17485,56.9292,A20,C
1,2,Jacobsohn,female,24,2,1,243847,27,,S
0,3,Torber,male,44,0,0,364511,8.05,,S
1,1,Homer,male,35,0,0,111426,26.55,,C
0,3,Lindell,male,36,1,0,349910,15.55,,S
0,3,Karaic,male,30,0,0,349246,7.8958,,S
1,1,Daniel,male,27,0,0,113804,30.5,,S
1,2,Laroche,female,22,1,2,SC/Paris 2123,41.5792,,C
1,1,Shutes,female,40,0,0,PC 17582,153.4625,C125,S
0,3,Andersson,female,39,1,5,347082,31.275,,S
0,3,Brocklebank,male,35,0,0,364512,8.05,,S
1,2,Herman,female,24,1,2,220845,65,,S
0,3,Danbom,male,34,1,1,347080,14.4,,S
0,3,Lobb,female,26,1,0,A/5. 3336,16.1,,S
1,2,Becker,female,4,2,1,230136,39,F4,S
0,2,Gavey,male,26,0,0,31028,10.5,,S
0,3,Yasbeck,male,27,1,0,2659,14.4542,,C
1,1,Kimball,male,42,1,0,11753,52.5542,D19,S
1,3,Nakid,male,20,1,1,2653,15.7417,,C
0,3,Hansen,male,21,0,0,350029,7.8542,,S
0,3,Bowen,male,21,0,0,54636,16.1,,S
0,1,Sutton,male,61,0,0,36963,32.3208,D50,S
0,2,Kirkland,male,57,0,0,219533,12.35,,Q
1,1,Longley,female,21,0,0,13502,77.9583,D9,S
0,3,Bostandyeff,male,26,0,0,349224,7.8958,,S
1,1,Barkworth,male,80,0,0,27042,30,A23,S
0,3,Lundahl,male,51,0,0,347743,7.0542,,S
1,1,Stahelin-Maeglin,male,32,0,0,13214,30.5,B50,C
0,3,Skoog,female,9,3,2,347088,27.9,,S
1,2,Davis,female,28,0,0,237668,13,,S
0,3,Leinonen,male,32,0,0,STON/O 2. 3101292,7.925,,S
0,2,Collyer,male,31,1,1,C.A. 31921,26.25,,S
0,3,Panula,female,41,0,5,3101295,39.6875,,S
0,3,Jensen,male,20,0,0,350050,7.8542,,S
1,1,Sagesser,female,24,0,0,PC 17477,69.3,B35,C
0,3,Skoog,female,2,3,2,347088,27.9,,S
1,3,Baclini,female,0.75,2,1,2666,19.2583,,C
1,1,Harper,male,48,1,0,PC 17572,76.7292,D33,C
0,3,Cor,male,19,0,0,349231,7.8958,,S
1,1,Simonius-Blumer,male,56,0,0,13213,35.5,A26,C
1,3,Stanley,female,23,0,0,CA. 2314,7.55,,S
1,2,Doling,female,18,0,1,231919,23,,S
0,3,Kalvik,male,21,0,0,8475,8.4333,,S
0,3,Hegarty,female,18,0,0,365226,6.75,,Q
0,2,Hickman,male,24,2,0,S.O.C. 14879,73.5,,S
0,3,Bourke,female,32,1,1,364849,15.5,,Q
0,2,Eitemiller,male,23,0,0,29751,13,,S
0,1,Newell,male,58,0,2,35273,113.275,D48,C
1,1,Frauenthal,male,50,2,0,PC 17611,133.65,,S
0,3,Badt,male,40,0,0,2623,7.225,,C
0,1,Colley,male,47,0,0,5727,25.5875,E58,S
0,3,Coleff,male,36,0,0,349210,7.4958,,S
1,3,Lindqvist,male,20,1,0,STON/O 2. 3101285,7.925,,S
0,2,Hickman,male,32,2,0,S.O.C. 14879,73.5,,S
0,2,Butler,male,25,0,0,234686,13,,S
0,3,Cook,male,43,0,0,A/5 3536,8.05,,S
1,2,Brown,female,40,1,1,29750,39,,S
0,1,Davidson,male,31,1,0,F.C. 12750,52,B71,S
0,2,Mitchell,male,70,0,0,C.A. 24580,10.5,,S
1,2,Wilhelms,male,31,0,0,244270,13,,S
0,3,Edvardsson,male,18,0,0,349912,7.775,,S
0,3,Sawyer,male,24.5,0,0,342826,8.05,,S
1,3,Turja,female,18,0,0,4138,9.8417,,S
0,3,Goodwin,female,43,1,6,CA 2144,46.9,,S
1,1,Cardeza,male,36,0,1,PC 17755,512.3292,B51 B53 B55,C
1,1,Hassab,male,27,0,0,PC 17572,76.7292,D49,C
0,3,Olsvigen,male,20,0,0,6563,9.225,,S
0,3,Goodwin,male,14,5,2,CA 2144,46.9,,S
0,2,Brown,male,60,1,1,29750,39,,S
0,2,Laroche,male,25,1,2,SC/Paris 2123,41.5792,,C
0,3,Panula,male,14,4,1,3101295,39.6875,,S
0,3,Dakic,male,19,0,0,349228,10.1708,,S
0,3,Fischer,male,18,0,0,350036,7.7958,,S
1,1,Madill,female,15,0,1,24160,211.3375,B5,S
1,1,Dick,male,31,1,0,17474,57,B20,S
1,3,Karun,female,4,0,1,349256,13.4167,,C
0,3,Saad,male,25,0,0,2672,7.225,,C
0,1,Weir,male,60,0,0,113800,26.55,,S
0,2,Chapman,male,52,0,0,248731,13.5,,S
0,3,Kelly,male,44,0,0,363592,8.05,,S
0,1,Thayer,male,49,1,1,17421,110.8833,C68,C
0,3,Humblen,male,42,0,0,348121,7.65,F G63,S
1,1,Astor,female,18,1,0,PC 17757,227.525,C62 C64,C
1,1,Silverthorne,male,35,0,0,PC 17475,26.2875,E24,S
0,3,Barbara,female,18,0,1,2691,14.4542,,C
0,3,Gallagher,male,25,0,0,36864,7.7417,,Q
0,3,Hansen,male,26,1,0,350025,7.8542,,S
0,2,Morley,male,39,0,0,250655,26,,S
1,2,Kelly,female,45,0,0,223596,13.5,,S
1,1,Calderhead,male,42,0,0,PC 17476,26.2875,E24,S
1,1,Cleaver,female,22,0,0,113781,151.55,,S
1,1,Mayne,female,24,0,0,PC 17482,49.5042,C90,C
1,1,Taylor,male,48,1,0,19996,52,C126,S
0,3,Larsson,male,29,0,0,7545,9.4833,,S
0,2,Greenberg,male,52,0,0,250647,13,,S
0,3,Soholt,male,19,0,0,348124,7.65,F G73,S
1,1,Endres,female,38,0,0,PC 17757,227.525,C45,C
1,2,Troutt,female,27,0,0,34218,10.5,E101,S
0,3,Johnson,male,33,0,0,347062,7.775,,S
1,2,Harper,female,6,0,1,248727,33,,S
0,3,Jensen,male,17,1,0,350048,7.0542,,S
0,2,Gillespie,male,34,0,0,12233,13,,S
0,2,Hodges,male,50,0,0,250643,13,,S
1,1,Chambers,male,27,1,0,113806,53.1,E8,S
0,3,Oreskovic,male,20,0,0,315094,8.6625,,S
1,2,Renouf,female,30,3,0,31027,21,,S
0,2,Bryhl,male,25,1,0,236853,26,,S
0,3,Ilmakangas,female,25,1,0,STON/O2. 3101271,7.925,,S
1,1,Allen,female,29,0,0,24160,211.3375,B5,S
0,3,Hassan,male,11,0,0,2699,18.7875,,C
0,2,Berriman,male,23,0,0,28425,13,,S
0,2,Troupiansky,male,23,0,0,233639,13,,S
0,3,Williams,male,28.5,0,0,54636,16.1,,S
0,3,Ford,female,48,1,3,W./C. 6608,34.375,,S
1,1,Lesurer,male,35,0,0,PC 17755,512.3292,B101,C
0,1,Cavendish,male,36,1,0,19877,78.85,C46,S
1,1,Ryerson,female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C
0,3,McNamee,male,24,1,0,376566,16.1,,S
1,3,Stranden,male,31,0,0,STON/O 2. 3101288,7.925,,S
0,1,Crosby,male,70,1,1,WE/P 5735,71,B22,S
0,3,Abbott,male,16,1,1,C.A. 2673,20.25,,S
1,2,Sinkkonen,female,30,0,0,250648,13,,S
0,1,Marvin,male,19,1,0,113773,53.1,D30,S
0,3,Connaghton,male,31,0,0,335097,7.75,,Q
1,2,Wells,female,4,1,1,29103,23,,S
1,3,Moor,male,6,0,1,392096,12.475,E121,S
0,3,Vande,male,33,0,0,345780,9.5,,S
0,3,Jonkoff,male,23,0,0,349204,7.8958,,S
1,2,Herman,female,48,1,2,220845,65,,S
1,2,Hamalainen,male,0.67,1,1,250649,14.5,,S
0,3,Carlsson,male,28,0,0,350042,7.7958,,S
0,2,Bailey,male,18,0,0,29108,11.5,,S
0,3,Theobald,male,34,0,0,363294,8.05,,S
1,1,Rothes,female,33,0,0,110152,86.5,B77,S
0,3,Nirva,male,41,0,0,SOTON/O2 3101272,7.125,,S
1,3,Barah,male,20,0,0,2663,7.2292,,C
1,1,Carter,female,36,1,2,113760,120,B96 B98,S
0,3,Eklund,male,16,0,0,347074,7.775,,S
1,1,Hogeboom,female,51,1,0,13502,77.9583,D11,S
0,3,Mangan,female,30.5,0,0,364850,7.75,,Q
0,3,Gronnestad,male,32,0,0,8471,8.3625,,S
0,3,Lievens,male,24,0,0,345781,9.5,,S
0,3,Jensen,male,48,0,0,350047,7.8542,,S
0,2,Mack,female,57,0,0,S.O./P.P. 3,10.5,E77,S
1,2,Hocking,female,54,1,3,29105,23,,S
0,3,Myhrman,male,18,0,0,347078,7.75,,S
1,3,Emanuel,female,5,0,0,364516,12.475,,S
1,1,Robert,female,43,0,1,24160,211.3375,B3,S
1,3,Ayoub,female,13,0,0,2687,7.2292,,C
1,1,Dick,female,17,1,0,17474,57,B20,S
0,1,Long,male,29,0,0,113501,30,D6,S
0,3,Ali,male,25,0,0,SOTON/O.Q. 3101312,7.05,,S
0,3,Harmer,male,25,0,0,374887,7.25,,S
1,3,Sjoblom,female,18,0,0,3101265,7.4958,,S
0,3,Rice,male,8,4,1,382652,29.125,,Q
1,3,Dean,male,1,1,2,C.A. 2315,20.575,,S
0,1,Guggenheim,male,46,0,0,PC 17593,79.2,B82 B84,C
0,2,Gaskell,male,16,0,0,239865,26,,S
0,3,Dantcheff,male,25,0,0,349203,7.8958,,S
0,2,Otter,male,39,0,0,28213,13,,S
1,1,Leader,female,49,0,0,17465,25.9292,D17,S
1,3,Osman,female,31,0,0,349244,8.6833,,S
0,3,Ibrahim,male,30,0,0,2685,7.2292,,C
0,3,Van,female,30,1,1,345773,24.15,,S
0,2,Ponesell,male,34,0,0,250647,13,,S
1,2,Collyer,female,31,1,1,C.A. 31921,26.25,,S
1,1,Carter,male,11,1,2,113760,120,B96 B98,S
1,3,Thomas,male,0.42,0,1,2625,8.5167,,C
1,3,Hedman,male,27,0,0,347089,6.975,,S
0,3,Johansson,male,31,0,0,347063,7.775,,S
0,1,Andrews,male,39,0,0,112050,0,A36,S
0,3,Pettersson,female,18,0,0,347087,7.775,,S
0,2,Meyer,male,39,0,0,248723,13,,S
1,1,Chambers,female,33,1,0,113806,53.1,E8,S
0,3,Alexander,male,26,0,0,3474,7.8875,,S
0,3,Lester,male,39,0,0,A/4 48871,24.15,,S
0,2,Slemen,male,35,0,0,28206,10.5,,S
0,3,Andersson,female,6,4,2,347082,31.275,,S
0,3,Tomlin,male,30.5,0,0,364499,8.05,,S
0,3,Heininen,female,23,0,0,STON/O2. 3101290,7.925,,S
0,2,Mallet,male,31,1,1,S.C./PARIS 2079,37.0042,,C
0,3,Holm,male,43,0,0,C 7075,6.45,,S
0,3,Skoog,male,10,3,2,347088,27.9,,S
1,1,Hays,female,52,1,1,12749,93.5,B69,S
1,3,Lulic,male,27,0,0,315098,8.6625,,S
0,1,Reuchlin,male,38,0,0,19972,0,,S
1,3,Moor,female,27,0,1,392096,12.475,E121,S
0,3,Panula,male,2,4,1,3101295,39.6875,,S
1,2,Mallet,male,1,0,2,S.C./PARIS 2079,37.0042,,C
1,1,Stone,female,62,0,0,113572,80,B28,
1,3,Yasbeck,female,15,1,0,2659,14.4542,,C
1,2,Richards,male,0.83,1,1,29106,18.75,,S
0,3,Augustsson,male,23,0,0,347468,7.8542,,S
0,3,Allum,male,18,0,0,2223,8.3,,S
1,1,Compton,female,39,1,1,PC 17756,83.1583,E49,C
0,3,Pasic,male,21,0,0,315097,8.6625,,S
1,3,Chip,male,32,0,0,1601,56.4958,,S
0,3,Alhomaki,male,20,0,0,SOTON/O2 3101287,7.925,,S
0,2,Mudd,male,16,0,0,S.O./P.P. 3,10.5,,S
1,1,Serepeca,female,30,0,0,113798,31,,C
0,3,Lemberopolous,male,34.5,0,0,2683,6.4375,,C
0,3,Culumovic,male,17,0,0,315090,8.6625,,S
0,3,Abbing,male,42,0,0,C.A. 5547,7.55,,S
0,3,Markoff,male,35,0,0,349213,7.8958,,C
0,2,Harper,male,28,0,1,248727,33,,S
0,3,Andersson,male,4,4,2,347082,31.275,,S
0,3,Svensson,male,74,0,0,347060,7.775,,S
0,3,Boulos,female,9,1,1,2678,15.2458,,C
1,1,Lines,female,16,0,1,PC 17592,39.4,D28,S
0,2,Carter,female,44,1,0,244252,26,,S
1,3,Aks,female,18,0,1,392091,9.35,,S
1,1,Wick,female,45,1,1,36928,164.8667,,S
1,1,Daly,male,51,0,0,113055,26.55,E17,S
1,3,Baclini,female,24,0,3,2666,19.2583,,C
0,3,Hansen,male,41,2,0,350026,14.1083,,S
0,2,Giles,male,21,1,0,28134,11.5,,S
1,1,Swift,female,48,0,0,17466,25.9292,D17,S
0,2,Gill,male,24,0,0,233866,13,,S
1,2,Bystrom,female,42,0,0,236852,13,,S
1,2,Duran,female,27,1,0,SC/PARIS 2149,13.8583,,C
0,1,Roebling,male,31,0,0,PC 17590,50.4958,A24,S
1,3,Johnson,male,4,1,1,347742,11.1333,,S
0,3,Balkic,male,26,0,0,349248,7.8958,,S
1,1,Beckwith,female,47,1,1,11751,52.5542,D35,S
0,1,Carlsson,male,33,0,0,695,5,B51 B53 B55,S
0,3,Vander,male,47,0,0,345765,9,,S
1,2,Abelson,female,28,1,0,P/PP 3381,24,,C
1,3,Najib,female,15,0,0,2667,7.225,,C
0,3,Gustafsson,male,20,0,0,7534,9.8458,,S
0,3,Petroff,male,19,0,0,349212,7.8958,,S
1,1,Potter,female,56,0,1,11767,83.1583,C50,C
1,2,Shelley,female,25,0,1,230433,26,,S
0,3,Markun,male,33,0,0,349257,7.8958,,S
0,3,Dahlberg,female,22,0,0,7552,10.5167,,S
0,2,Banfield,male,28,0,0,C.A./SOTON 34068,10.5,,S
0,3,Sutehall,male,25,0,0,SOTON/OQ 392076,7.05,,S
0,3,Rice,female,39,0,5,382652,29.125,,Q
0,2,Montvila,male,27,0,0,211536,13,,S
1,1,Graham,female,19,0,0,112053,30,B42,S
1,1,Behr,male,26,0,0,111369,30,C148,C
0,3,Dooley,male,32,0,0,370376,7.75,,Q
1 survived pclass name sex age sibsp parch ticket fare cabin embarked
2 0 3 Braund male 22 1 0 A/5 21171 7.25 S
3 1 1 Cumings female 38 1 0 PC 17599 71.2833 C85 C
4 1 3 Heikkinen female 26 0 0 STON/O2. 3101282 7.925 S
5 1 1 Futrelle female 35 1 0 113803 53.1 C123 S
6 0 3 Allen male 35 0 0 373450 8.05 S
7 0 1 McCarthy male 54 0 0 17463 51.8625 E46 S
8 0 3 Palsson male 2 3 1 349909 21.075 S
9 1 3 Johnson female 27 0 2 347742 11.1333 S
10 1 2 Nasser female 14 1 0 237736 30.0708 C
11 1 3 Sandstrom female 4 1 1 PP 9549 16.7 G6 S
12 1 1 Bonnell female 58 0 0 113783 26.55 C103 S
13 0 3 Saundercock male 20 0 0 A/5. 2151 8.05 S
14 0 3 Andersson male 39 1 5 347082 31.275 S
15 0 3 Vestrom female 14 0 0 350406 7.8542 S
16 1 2 Hewlett female 55 0 0 248706 16 S
17 0 3 Rice male 2 4 1 382652 29.125 Q
18 0 3 Vander female 31 1 0 345763 18 S
19 0 2 Fynney male 35 0 0 239865 26 S
20 1 2 Beesley male 34 0 0 248698 13 D56 S
21 1 3 McGowan female 15 0 0 330923 8.0292 Q
22 1 1 Sloper male 28 0 0 113788 35.5 A6 S
23 0 3 Palsson female 8 3 1 349909 21.075 S
24 1 3 Asplund female 38 1 5 347077 31.3875 S
25 0 1 Fortune male 19 3 2 19950 263 C23 C25 C27 S
26 0 1 Uruchurtu male 40 0 0 PC 17601 27.7208 C
27 0 2 Wheadon male 66 0 0 C.A. 24579 10.5 S
28 0 1 Meyer male 28 1 0 PC 17604 82.1708 C
29 0 1 Holverson male 42 1 0 113789 52 S
30 0 3 Cann male 21 0 0 A./5. 2152 8.05 S
31 0 3 Vander female 18 2 0 345764 18 S
32 1 3 Nicola-Yarred female 14 1 0 2651 11.2417 C
33 0 3 Ahlin female 40 1 0 7546 9.475 S
34 0 2 Turpin female 27 1 0 11668 21 S
35 1 2 Laroche female 3 1 2 SC/Paris 2123 41.5792 C
36 1 3 Devaney female 19 0 0 330958 7.8792 Q
37 0 3 Arnold-Franchi female 18 1 0 349237 17.8 S
38 0 3 Panula male 7 4 1 3101295 39.6875 S
39 0 3 Nosworthy male 21 0 0 A/4. 39886 7.8 S
40 1 1 Harper female 49 1 0 PC 17572 76.7292 D33 C
41 1 2 Faunthorpe female 29 1 0 2926 26 S
42 0 1 Ostby male 65 0 1 113509 61.9792 B30 C
43 1 2 Rugg female 21 0 0 C.A. 31026 10.5 S
44 0 3 Novel male 28.5 0 0 2697 7.2292 C
45 1 2 West female 5 1 2 C.A. 34651 27.75 S
46 0 3 Goodwin male 11 5 2 CA 2144 46.9 S
47 0 3 Sirayanian male 22 0 0 2669 7.2292 C
48 1 1 Icard female 38 0 0 113572 80 B28
49 0 1 Harris male 45 1 0 36973 83.475 C83 S
50 0 3 Skoog male 4 3 2 347088 27.9 S
51 1 2 Nye female 29 0 0 C.A. 29395 10.5 F33 S
52 0 3 Crease male 19 0 0 S.P. 3464 8.1583 S
53 1 3 Andersson female 17 4 2 3101281 7.925 S
54 0 3 Kink male 26 2 0 315151 8.6625 S
55 0 2 Jenkin male 32 0 0 C.A. 33111 10.5 S
56 0 3 Goodwin female 16 5 2 CA 2144 46.9 S
57 0 2 Hood male 21 0 0 S.O.C. 14879 73.5 S
58 0 3 Chronopoulos male 26 1 0 2680 14.4542 C
59 1 3 Bing male 32 0 0 1601 56.4958 S
60 0 3 Moen male 25 0 0 348123 7.65 F G73 S
61 1 2 Caldwell male 0.83 0 2 248738 29 S
62 1 3 Dowdell female 30 0 0 364516 12.475 S
63 0 3 Waelens male 22 0 0 345767 9 S
64 1 3 Sheerlinck male 29 0 0 345779 9.5 S
65 0 1 Carrau male 28 0 0 113059 47.1 S
66 1 2 Ilett female 17 0 0 SO/C 14885 10.5 S
67 1 3 Backstrom female 33 3 0 3101278 15.85 S
68 0 3 Ford male 16 1 3 W./C. 6608 34.375 S
69 1 1 Fortune female 23 3 2 19950 263 C23 C25 C27 S
70 0 3 Celotti male 24 0 0 343275 8.05 S
71 0 3 Christmann male 29 0 0 343276 8.05 S
72 0 3 Andreasson male 20 0 0 347466 7.8542 S
73 0 1 Chaffee male 46 1 0 W.E.P. 5734 61.175 E31 S
74 0 3 Dean male 26 1 2 C.A. 2315 20.575 S
75 0 3 Coxon male 59 0 0 364500 7.25 S
76 0 1 Goldschmidt male 71 0 0 PC 17754 34.6542 A5 C
77 1 1 Greenfield male 23 0 1 PC 17759 63.3583 D10 D12 C
78 1 2 Doling female 34 0 1 231919 23 S
79 0 2 Kantor male 34 1 0 244367 26 S
80 0 3 Petranec female 28 0 0 349245 7.8958 S
81 0 1 White male 21 0 1 35281 77.2875 D26 S
82 0 3 Johansson male 33 0 0 7540 8.6542 S
83 0 3 Gustafsson male 37 2 0 3101276 7.925 S
84 0 3 Mionoff male 28 0 0 349207 7.8958 S
85 1 3 Salkjelsvik female 21 0 0 343120 7.65 S
86 0 3 Rekic male 38 0 0 349249 7.8958 S
87 0 1 Porter male 47 0 0 110465 52 C110 S
88 0 3 Zabour female 14.5 1 0 2665 14.4542 C
89 0 3 Barton male 22 0 0 324669 8.05 S
90 0 3 Jussila female 20 1 0 4136 9.825 S
91 0 3 Attalah female 17 0 0 2627 14.4583 C
92 0 3 Pekoniemi male 21 0 0 STON/O 2. 3101294 7.925 S
93 0 3 Connors male 70.5 0 0 370369 7.75 Q
94 0 2 Turpin male 29 1 0 11668 21 S
95 0 1 Baxter male 24 0 1 PC 17558 247.5208 B58 B60 C
96 0 3 Andersson female 2 4 2 347082 31.275 S
97 0 2 Hickman male 21 2 0 S.O.C. 14879 73.5 S
98 0 2 Nasser male 32.5 1 0 237736 30.0708 C
99 1 2 Webber female 32.5 0 0 27267 13 E101 S
100 0 1 White male 54 0 1 35281 77.2875 D26 S
101 1 3 Nicola-Yarred male 12 1 0 2651 11.2417 C
102 1 3 Madsen male 24 0 0 C 17369 7.1417 S
103 0 3 Ekstrom male 45 0 0 347061 6.975 S
104 0 3 Drazenoic male 33 0 0 349241 7.8958 C
105 0 3 Coelho male 20 0 0 SOTON/O.Q. 3101307 7.05 S
106 0 3 Robins female 47 1 0 A/5. 3337 14.5 S
107 1 2 Weisz female 29 1 0 228414 26 S
108 0 2 Sobey male 25 0 0 C.A. 29178 13 S
109 0 2 Richard male 23 0 0 SC/PARIS 2133 15.0458 C
110 1 1 Newsom female 19 0 2 11752 26.2833 D47 S
111 0 1 Futrelle male 37 1 0 113803 53.1 C123 S
112 0 3 Osen male 16 0 0 7534 9.2167 S
113 0 1 Giglio male 24 0 0 PC 17593 79.2 B86 C
114 1 3 Nysten female 22 0 0 347081 7.75 S
115 1 3 Hakkarainen female 24 1 0 STON/O2. 3101279 15.85 S
116 0 3 Burke male 19 0 0 365222 6.75 Q
117 0 2 Andrew male 18 0 0 231945 11.5 S
118 0 2 Nicholls male 19 1 1 C.A. 33112 36.75 S
119 1 3 Andersson male 27 0 0 350043 7.7958 S
120 0 3 Ford female 9 2 2 W./C. 6608 34.375 S
121 0 2 Navratil male 36.5 0 2 230080 26 F2 S
122 0 2 Byles male 42 0 0 244310 13 S
123 0 2 Bateman male 51 0 0 S.O.P. 1166 12.525 S
124 1 1 Pears female 22 1 0 113776 66.6 C2 S
125 0 3 Meo male 55.5 0 0 A.5. 11206 8.05 S
126 0 3 van male 40.5 0 2 A/5. 851 14.5 S
127 0 1 Williams male 51 0 1 PC 17597 61.3792 C
128 1 3 Gilnagh female 16 0 0 35851 7.7333 Q
129 0 3 Corn male 30 0 0 SOTON/OQ 392090 8.05 S
130 0 3 Cribb male 44 0 1 371362 16.1 S
131 1 2 Watt female 40 0 0 C.A. 33595 15.75 S
132 0 3 Bengtsson male 26 0 0 347068 7.775 S
133 0 3 Calic male 17 0 0 315093 8.6625 S
134 0 3 Panula male 1 4 1 3101295 39.6875 S
135 1 3 Goldsmith male 9 0 2 363291 20.525 S
136 0 3 Skoog female 45 1 4 347088 27.9 S
137 0 3 Ling male 28 0 0 1601 56.4958 S
138 0 1 Van male 61 0 0 111240 33.5 B19 S
139 0 3 Rice male 4 4 1 382652 29.125 Q
140 1 3 Johnson female 1 1 1 347742 11.1333 S
141 0 3 Sivola male 21 0 0 STON/O 2. 3101280 7.925 S
142 0 1 Smith male 56 0 0 17764 30.6958 A7 C
143 0 3 Klasen male 18 1 1 350404 7.8542 S
144 0 1 Isham female 50 0 0 PC 17595 28.7125 C49 C
145 0 2 Hale male 30 0 0 250653 13 S
146 0 3 Leonard male 36 0 0 LINE 0 S
147 0 3 Asplund male 9 4 2 347077 31.3875 S
148 1 2 Becker male 1 2 1 230136 39 F4 S
149 1 3 Kink-Heilmann female 4 0 2 315153 22.025 S
150 1 1 Romaine male 45 0 0 111428 26.55 S
151 0 3 Bourke male 40 1 1 364849 15.5 Q
152 0 3 Turcin male 36 0 0 349247 7.8958 S
153 1 2 Pinsky female 32 0 0 234604 13 S
154 0 2 Carbines male 19 0 0 28424 13 S
155 1 3 Andersen-Jensen female 19 1 0 350046 7.8542 S
156 1 2 Navratil male 3 1 1 230080 26 F2 S
157 1 1 Brown female 44 0 0 PC 17610 27.7208 B4 C
158 1 1 Lurette female 58 0 0 PC 17569 146.5208 B80 C
159 0 3 Olsen male 42 0 1 4579 8.4042 S
160 0 2 Yrois female 24 0 0 248747 13 S
161 0 3 Vande male 28 0 0 345770 9.5 S
162 0 3 Johanson male 34 0 0 3101264 6.4958 S
163 0 3 Youseff male 45.5 0 0 2628 7.225 C
164 1 3 Cohen male 18 0 0 A/5 3540 8.05 S
165 0 3 Strom female 2 0 1 347054 10.4625 G6 S
166 0 3 Backstrom male 32 1 0 3101278 15.85 S
167 1 3 Albimona male 26 0 0 2699 18.7875 C
168 1 3 Carr female 16 0 0 367231 7.75 Q
169 1 1 Blank male 40 0 0 112277 31 A31 C
170 0 3 Ali male 24 0 0 SOTON/O.Q. 3101311 7.05 S
171 1 2 Cameron female 35 0 0 F.C.C. 13528 21 S
172 0 3 Perkin male 22 0 0 A/5 21174 7.25 S
173 0 2 Givard male 30 0 0 250646 13 S
174 1 1 Newell female 31 1 0 35273 113.275 D36 C
175 1 3 Honkanen female 27 0 0 STON/O2. 3101283 7.925 S
176 0 2 Jacobsohn male 42 1 0 243847 27 S
177 1 1 Bazzani female 32 0 0 11813 76.2917 D15 C
178 0 2 Harris male 30 0 0 W/C 14208 10.5 S
179 1 3 Sunderland male 16 0 0 SOTON/OQ 392089 8.05 S
180 0 2 Bracken male 27 0 0 220367 13 S
181 0 3 Green male 51 0 0 21440 8.05 S
182 1 1 Hoyt male 38 1 0 19943 90 C93 S
183 0 3 Berglund male 22 0 0 PP 4348 9.35 S
184 1 2 Mellors male 19 0 0 SW/PP 751 10.5 S
185 0 3 Lovell male 20.5 0 0 A/5 21173 7.25 S
186 0 2 Fahlstrom male 18 0 0 236171 13 S
187 1 1 Harris female 35 1 0 36973 83.475 C83 S
188 0 3 Larsson male 29 0 0 347067 7.775 S
189 0 2 Sjostedt male 59 0 0 237442 13.5 S
190 1 3 Asplund female 5 4 2 347077 31.3875 S
191 0 2 Leyson male 24 0 0 C.A. 29566 10.5 S
192 0 2 Hold male 44 1 0 26707 26 S
193 1 2 Collyer female 8 0 2 C.A. 31921 26.25 S
194 0 2 Pengelly male 19 0 0 28665 10.5 S
195 0 2 Hunt male 33 0 0 SCO/W 1585 12.275 S
196 0 2 Coleridge male 29 0 0 W./C. 14263 10.5 S
197 0 3 Maenpaa male 22 0 0 STON/O 2. 3101275 7.125 S
198 0 3 Attalah male 30 0 0 2694 7.225 C
199 0 1 Minahan male 44 2 0 19928 90 C78 Q
200 0 3 Lindahl female 25 0 0 347071 7.775 S
201 1 2 Hamalainen female 24 0 2 250649 14.5 S
202 1 1 Beckwith male 37 1 1 11751 52.5542 D35 S
203 0 2 Carter male 54 1 0 244252 26 S
204 0 3 Strom female 29 1 1 347054 10.4625 G6 S
205 0 1 Stead male 62 0 0 113514 26.55 C87 S
206 0 3 Lobb male 30 1 0 A/5. 3336 16.1 S
207 0 3 Rosblom female 41 0 2 370129 20.2125 S
208 1 3 Touma female 29 0 2 2650 15.2458 C
209 1 1 Cherry female 30 0 0 110152 86.5 B77 S
210 1 1 Ward female 35 0 0 PC 17755 512.3292 C
211 1 2 Parrish female 50 0 1 230433 26 S
212 1 3 Asplund male 3 4 2 347077 31.3875 S
213 0 1 Taussig male 52 1 1 110413 79.65 E67 S
214 0 1 Harrison male 40 0 0 112059 0 B94 S
215 0 2 Reeves male 36 0 0 C.A. 17248 10.5 S
216 0 3 Panula male 16 4 1 3101295 39.6875 S
217 1 3 Persson male 25 1 0 347083 7.775 S
218 1 1 Graham female 58 0 1 PC 17582 153.4625 C125 S
219 1 1 Bissette female 35 0 0 PC 17760 135.6333 C99 S
220 1 3 Tornquist male 25 0 0 LINE 0 S
221 1 2 Mellinger female 41 0 1 250644 19.5 S
222 0 1 Natsch male 37 0 1 PC 17596 29.7 C118 C
223 1 1 Andrews female 63 1 0 13502 77.9583 D7 S
224 0 3 Lindblom female 45 0 0 347073 7.75 S
225 0 3 Rice male 7 4 1 382652 29.125 Q
226 1 3 Abbott female 35 1 1 C.A. 2673 20.25 S
227 0 3 Duane male 65 0 0 336439 7.75 Q
228 0 3 Olsson male 28 0 0 347464 7.8542 S
229 0 3 de male 16 0 0 345778 9.5 S
230 1 3 Dorking male 19 0 0 A/5. 10482 8.05 S
231 0 3 Stankovic male 33 0 0 349239 8.6625 C
232 1 3 de male 30 0 0 345774 9.5 S
233 0 3 Naidenoff male 22 0 0 349206 7.8958 S
234 1 2 Hosono male 42 0 0 237798 13 S
235 1 3 Connolly female 22 0 0 370373 7.75 Q
236 1 1 Barber female 26 0 0 19877 78.85 S
237 1 1 Bishop female 19 1 0 11967 91.0792 B49 C
238 0 2 Levy male 36 0 0 SC/Paris 2163 12.875 D C
239 0 3 Haas female 24 0 0 349236 8.85 S
240 0 3 Mineff male 24 0 0 349233 7.8958 S
241 0 3 Hanna male 23.5 0 0 2693 7.2292 C
242 0 1 Allison female 2 1 2 113781 151.55 C22 C26 S
243 1 1 Baxter female 50 0 1 PC 17558 247.5208 B58 B60 C
244 0 3 Johnson male 19 0 0 LINE 0 S
245 1 1 Allison male 0.92 1 2 113781 151.55 C22 C26 S
246 1 1 Penasco female 17 1 0 PC 17758 108.9 C65 C
247 0 2 Abelson male 30 1 0 P/PP 3381 24 C
248 1 1 Francatelli female 30 0 0 PC 17485 56.9292 E36 C
249 1 1 Hays female 24 0 0 11767 83.1583 C54 C
250 1 1 Ryerson female 18 2 2 PC 17608 262.375 B57 B59 B63 B66 C
251 0 2 Lahtinen female 26 1 1 250651 26 S
252 0 3 Hendekovic male 28 0 0 349243 7.8958 S
253 0 2 Hart male 43 1 1 F.C.C. 13529 26.25 S
254 1 3 Nilsson female 26 0 0 347470 7.8542 S
255 1 2 Kantor female 24 1 0 244367 26 S
256 0 2 Moraweck male 54 0 0 29011 14 S
257 1 1 Wick female 31 0 2 36928 164.8667 C7 S
258 1 1 Spedden female 40 1 1 16966 134.5 E34 C
259 0 3 Dennis male 22 0 0 A/5 21172 7.25 S
260 0 3 Danoff male 27 0 0 349219 7.8958 S
261 1 2 Slayter female 30 0 0 234818 12.35 Q
262 1 2 Caldwell female 22 1 1 248738 29 S
263 1 1 Young female 36 0 0 PC 17760 135.6333 C32 C
264 0 3 Nysveen male 61 0 0 345364 6.2375 S
265 1 2 Ball female 36 0 0 28551 13 D S
266 1 3 Goldsmith female 31 1 1 363291 20.525 S
267 1 1 Hippach female 16 0 1 111361 57.9792 B18 C
268 0 1 Partner male 45.5 0 0 113043 28.5 C124 S
269 0 1 Graham male 38 0 1 PC 17582 153.4625 C91 S
270 0 3 Vander male 16 2 0 345764 18 S
271 0 1 Pears male 29 1 0 113776 66.6 C2 S
272 1 1 Burns female 41 0 0 16966 134.5 E40 C
273 1 3 Dahl male 45 0 0 7598 8.05 S
274 0 1 Blackwell male 45 0 0 113784 35.5 T S
275 1 2 Navratil male 2 1 1 230080 26 F2 S
276 1 1 Fortune female 24 3 2 19950 263 C23 C25 C27 S
277 0 2 Collander male 28 0 0 248740 13 S
278 0 2 Sedgwick male 25 0 0 244361 13 S
279 0 2 Fox male 36 0 0 229236 13 S
280 1 2 Brown female 24 0 0 248733 13 F33 S
281 1 2 Smith female 40 0 0 31418 13 S
282 1 3 Coutts male 3 1 1 C.A. 37671 15.9 S
283 0 3 Dimic male 42 0 0 315088 8.6625 S
284 0 3 Odahl male 23 0 0 7267 9.225 S
285 0 3 Elias male 15 1 1 2695 7.2292 C
286 0 3 Arnold-Franchi male 25 1 0 349237 17.8 S
287 0 3 Vanden male 28 0 0 345783 9.5 S
288 1 1 Bowerman female 22 0 1 113505 55 E33 S
289 0 2 Funk female 38 0 0 237671 13 S
290 0 3 Skoog male 40 1 4 347088 27.9 S
291 0 2 del male 29 1 0 SC/PARIS 2167 27.7208 C
292 0 3 Barbara female 45 0 1 2691 14.4542 C
293 0 3 Asim male 35 0 0 SOTON/O.Q. 3101310 7.05 S
294 0 3 Adahl male 30 0 0 C 7076 7.25 S
295 1 1 Warren female 60 1 0 110813 75.25 D37 C
296 1 1 Aubart female 24 0 0 PC 17477 69.3 B35 C
297 1 1 Harder male 25 1 0 11765 55.4417 E50 C
298 0 3 Wiklund male 18 1 0 3101267 6.4958 S
299 0 3 Beavan male 19 0 0 323951 8.05 S
300 0 1 Ringhini male 22 0 0 PC 17760 135.6333 C
301 0 3 Palsson female 3 3 1 349909 21.075 S
302 1 3 Landergren female 22 0 0 C 7077 7.25 S
303 0 1 Widener male 27 0 2 113503 211.5 C82 C
304 0 3 Betros male 20 0 0 2648 4.0125 C
305 0 3 Gustafsson male 19 0 0 347069 7.775 S
306 1 1 Bidois female 42 0 0 PC 17757 227.525 C
307 1 3 Nakid female 1 0 2 2653 15.7417 C
308 0 3 Tikkanen male 32 0 0 STON/O 2. 3101293 7.925 S
309 1 1 Holverson female 35 1 0 113789 52 S
310 0 2 Davies male 18 0 0 S.O.C. 14879 73.5 S
311 0 3 Goodwin male 1 5 2 CA 2144 46.9 S
312 1 2 Buss female 36 0 0 27849 13 S
313 1 2 Lehmann female 17 0 0 SC 1748 12 C
314 1 1 Carter male 36 1 2 113760 120 B96 B98 S
315 1 3 Jansson male 21 0 0 350034 7.7958 S
316 0 3 Gustafsson male 28 2 0 3101277 7.925 S
317 1 1 Newell female 23 1 0 35273 113.275 D36 C
318 1 3 Sandstrom female 24 0 2 PP 9549 16.7 G6 S
319 0 3 Johansson male 22 0 0 350052 7.7958 S
320 0 3 Olsson female 31 0 0 350407 7.8542 S
321 0 2 McKane male 46 0 0 28403 26 S
322 0 2 Pain male 23 0 0 244278 10.5 S
323 1 2 Trout female 28 0 0 240929 12.65 S
324 1 3 Niskanen male 39 0 0 STON/O 2. 3101289 7.925 S
325 0 3 Adams male 26 0 0 341826 8.05 S
326 0 3 Jussila female 21 1 0 4137 9.825 S
327 0 3 Hakkarainen male 28 1 0 STON/O2. 3101279 15.85 S
328 0 3 Oreskovic female 20 0 0 315096 8.6625 S
329 0 2 Gale male 34 1 0 28664 21 S
330 0 3 Widegren male 51 0 0 347064 7.75 S
331 1 2 Richards male 3 1 1 29106 18.75 S
332 0 3 Birkeland male 21 0 0 312992 7.775 S
333 1 1 Minahan female 33 1 0 19928 90 C78 Q
334 1 3 Sundman male 44 0 0 STON/O 2. 3101269 7.925 S
335 1 2 Drew female 34 1 1 28220 32.5 S
336 1 2 Silven female 18 0 2 250652 13 S
337 0 2 Matthews male 30 0 0 28228 13 S
338 0 3 Van female 10 0 2 345773 24.15 S
339 0 3 Charters male 21 0 0 A/5. 13032 7.7333 Q
340 0 3 Zimmerman male 29 0 0 315082 7.875 S
341 0 3 Danbom female 28 1 1 347080 14.4 S
342 0 3 Rosblom male 18 1 1 370129 20.2125 S
343 1 2 Clarke female 28 1 0 2003 26 S
344 1 2 Phillips female 19 0 0 250655 26 S
345 1 3 Pickard male 32 0 0 SOTON/O.Q. 392078 8.05 E10 S
346 1 1 Bjornstrom-Steffansson male 28 0 0 110564 26.55 C52 S
347 1 2 Louch female 42 1 0 SC/AH 3085 26 S
348 0 3 Kallio male 17 0 0 STON/O 2. 3101274 7.125 S
349 0 1 Silvey male 50 1 0 13507 55.9 E44 S
350 1 1 Carter female 14 1 2 113760 120 B96 B98 S
351 0 3 Ford female 21 2 2 W./C. 6608 34.375 S
352 1 2 Richards female 24 2 3 29106 18.75 S
353 0 1 Fortune male 64 1 4 19950 263 C23 C25 C27 S
354 0 2 Kvillner male 31 0 0 C.A. 18723 10.5 S
355 1 2 Hart female 45 1 1 F.C.C. 13529 26.25 S
356 0 3 Hampe male 20 0 0 345769 9.5 S
357 0 3 Petterson male 25 1 0 347076 7.775 S
358 1 2 Reynaldo female 28 0 0 230434 13 S
359 1 1 Dodge male 4 0 2 33638 81.8583 A34 S
360 1 2 Mellinger female 13 0 1 250644 19.5 S
361 1 1 Seward male 34 0 0 113794 26.55 S
362 1 3 Baclini female 5 2 1 2666 19.2583 C
363 1 1 Peuchen male 52 0 0 113786 30.5 C104 S
364 0 2 West male 36 1 2 C.A. 34651 27.75 S
365 0 1 Foreman male 30 0 0 113051 27.75 C111 C
366 1 1 Goldenberg male 49 1 0 17453 89.1042 C92 C
367 1 3 Jalsevac male 29 0 0 349240 7.8958 C
368 0 1 Millet male 65 0 0 13509 26.55 E38 S
369 1 2 Toomey female 50 0 0 F.C.C. 13531 10.5 S
370 1 1 Anderson male 48 0 0 19952 26.55 E12 S
371 0 3 Morley male 34 0 0 364506 8.05 S
372 0 1 Gee male 47 0 0 111320 38.5 E63 S
373 0 2 Milling male 48 0 0 234360 13 S
374 0 3 Goncalves male 38 0 0 SOTON/O.Q. 3101306 7.05 S
375 0 1 Smart male 56 0 0 113792 26.55 S
376 1 3 Baclini female 0.75 2 1 2666 19.2583 C
377 0 3 Cacic male 38 0 0 315089 8.6625 S
378 1 2 West female 33 1 2 C.A. 34651 27.75 S
379 1 2 Jerwan female 23 0 0 SC/AH Basle 541 13.7917 D C
380 0 3 Strandberg female 22 0 0 7553 9.8375 S
381 0 2 Renouf male 34 1 0 31027 21 S
382 0 3 Braund male 29 1 0 3460 7.0458 S
383 0 3 Karlsson male 22 0 0 350060 7.5208 S
384 1 3 Hirvonen female 2 0 1 3101298 12.2875 S
385 0 3 Goodwin male 9 5 2 CA 2144 46.9 S
386 0 3 Rouse male 50 0 0 A/5 3594 8.05 S
387 1 3 Turkula female 63 0 0 4134 9.5875 S
388 1 1 Bishop male 25 1 0 11967 91.0792 B49 C
389 1 1 Hoyt female 35 1 0 19943 90 C93 S
390 0 1 Kent male 58 0 0 11771 29.7 B37 C
391 0 3 Somerton male 30 0 0 A.5. 18509 8.05 S
392 1 3 Coutts male 9 1 1 C.A. 37671 15.9 S
393 0 3 Windelov male 21 0 0 SOTON/OQ 3101317 7.25 S
394 0 1 Molson male 55 0 0 113787 30.5 C30 S
395 0 1 Artagaveytia male 71 0 0 PC 17609 49.5042 C
396 0 3 Stanley male 21 0 0 A/4 45380 8.05 S
397 1 1 Eustis female 54 1 0 36947 78.2667 D20 C
398 0 1 Allison female 25 1 2 113781 151.55 C22 C26 S
399 0 3 Svensson male 24 0 0 350035 7.7958 S
400 0 3 Calic male 17 0 0 315086 8.6625 S
401 0 3 Canavan female 21 0 0 364846 7.75 Q
402 0 3 Laitinen female 37 0 0 4135 9.5875 S
403 1 1 Maioni female 16 0 0 110152 86.5 B79 S
404 0 1 Penasco male 18 1 0 PC 17758 108.9 C65 C
405 1 2 Quick female 33 0 2 26360 26 S
406 0 3 Olsen male 28 0 0 C 4001 22.525 S
407 1 3 Lang male 26 0 0 1601 56.4958 S
408 1 3 Daly male 29 0 0 382651 7.75 Q
409 1 1 McGough male 36 0 0 PC 17473 26.2875 E25 S
410 1 1 Rothschild female 54 1 0 PC 17603 59.4 C
411 0 3 Coleff male 24 0 0 349209 7.4958 S
412 0 1 Walker male 47 0 0 36967 34.0208 D46 S
413 1 2 Lemore female 34 0 0 C.A. 34260 10.5 F33 S
414 1 2 Angle female 36 1 0 226875 26 S
415 0 3 Pavlovic male 32 0 0 349242 7.8958 S
416 1 1 Perreault female 30 0 0 12749 93.5 B73 S
417 0 3 Vovk male 22 0 0 349252 7.8958 S
418 1 1 Hippach female 44 0 1 111361 57.9792 B18 C
419 0 3 Farrell male 40.5 0 0 367232 7.75 Q
420 1 2 Ridsdale female 50 0 0 W./C. 14258 10.5 S
421 0 3 Salonen male 39 0 0 3101296 7.925 S
422 0 2 Hocking male 23 2 1 29104 11.5 S
423 1 2 Quick female 2 1 1 26360 26 S
424 0 3 Elias male 17 1 1 2690 7.2292 C
425 0 3 Cacic female 30 0 0 315084 8.6625 S
426 1 2 Hart female 7 0 2 F.C.C. 13529 26.25 S
427 0 1 Butt male 45 0 0 113050 26.55 B38 S
428 1 1 LeRoy female 30 0 0 PC 17761 106.425 C
429 1 1 Frolicher female 22 0 2 13568 49.5 B39 C
430 1 1 Crosby female 36 0 2 WE/P 5735 71 B22 S
431 0 3 Andersson female 9 4 2 347082 31.275 S
432 0 3 Andersson female 11 4 2 347082 31.275 S
433 1 2 Beane male 32 1 0 2908 26 S
434 0 1 Douglas male 50 1 0 PC 17761 106.425 C86 C
435 0 1 Nicholson male 64 0 0 693 26 S
436 1 2 Beane female 19 1 0 2908 26 S
437 0 3 Goldsmith male 33 1 1 363291 20.525 S
438 1 2 Davies male 8 1 1 C.A. 33112 36.75 S
439 1 1 Thayer male 17 0 2 17421 110.8833 C70 C
440 0 2 Sharp male 27 0 0 244358 26 S
441 1 3 Leeni male 22 0 0 2620 7.225 C
442 1 3 Ohman female 22 0 0 347085 7.775 S
443 0 1 Wright male 62 0 0 113807 26.55 S
444 1 1 Duff female 48 1 0 11755 39.6 A16 C
445 1 1 Taussig female 39 1 1 110413 79.65 E67 S
446 1 3 de female 36 1 0 345572 17.4 S
447 0 3 Sivic male 40 0 0 349251 7.8958 S
448 0 2 Norman male 28 0 0 218629 13.5 S
449 0 3 Davies male 24 2 0 A/4 48871 24.15 S
450 0 3 Stoytcheff male 19 0 0 349205 7.8958 S
451 0 3 Palsson female 29 0 4 349909 21.075 S
452 1 3 Jonsson male 32 0 0 350417 7.8542 S
453 1 2 Harris male 62 0 0 S.W./PP 752 10.5 S
454 1 1 Appleton female 53 2 0 11769 51.4792 C101 S
455 1 1 Flynn male 36 0 0 PC 17474 26.3875 E25 S
456 0 3 Rush male 16 0 0 A/4. 20589 8.05 S
457 0 3 Patchett male 19 0 0 358585 14.5 S
458 1 2 Garside female 34 0 0 243880 13 S
459 1 1 Silvey female 39 1 0 13507 55.9 E44 S
460 1 3 Jussila male 32 0 0 STON/O 2. 3101286 7.925 S
461 1 2 Christy female 25 1 1 237789 30 S
462 1 1 Thayer female 39 1 1 17421 110.8833 C68 C
463 0 2 Downton male 54 0 0 28403 26 S
464 0 1 Ross male 36 0 0 13049 40.125 A10 C
465 1 1 Taussig female 18 0 2 110413 79.65 E68 S
466 0 2 Jarvis male 47 0 0 237565 15 S
467 1 1 Frolicher-Stehli male 60 1 1 13567 79.2 B41 C
468 0 3 Gilinski male 22 0 0 14973 8.05 S
469 0 3 Rintamaki male 35 0 0 STON/O 2. 3101273 7.125 S
470 1 1 Stephenson female 52 1 0 36947 78.2667 D20 C
471 0 3 Elsbury male 47 0 0 A/5 3902 7.25 S
472 0 2 Chapman male 37 1 0 SC/AH 29037 26 S
473 0 3 Van male 36 1 1 345773 24.15 S
474 0 3 Johnson male 49 0 0 LINE 0 S
475 1 1 Duff male 49 1 0 PC 17485 56.9292 A20 C
476 1 2 Jacobsohn female 24 2 1 243847 27 S
477 0 3 Torber male 44 0 0 364511 8.05 S
478 1 1 Homer male 35 0 0 111426 26.55 C
479 0 3 Lindell male 36 1 0 349910 15.55 S
480 0 3 Karaic male 30 0 0 349246 7.8958 S
481 1 1 Daniel male 27 0 0 113804 30.5 S
482 1 2 Laroche female 22 1 2 SC/Paris 2123 41.5792 C
483 1 1 Shutes female 40 0 0 PC 17582 153.4625 C125 S
484 0 3 Andersson female 39 1 5 347082 31.275 S
485 0 3 Brocklebank male 35 0 0 364512 8.05 S
486 1 2 Herman female 24 1 2 220845 65 S
487 0 3 Danbom male 34 1 1 347080 14.4 S
488 0 3 Lobb female 26 1 0 A/5. 3336 16.1 S
489 1 2 Becker female 4 2 1 230136 39 F4 S
490 0 2 Gavey male 26 0 0 31028 10.5 S
491 0 3 Yasbeck male 27 1 0 2659 14.4542 C
492 1 1 Kimball male 42 1 0 11753 52.5542 D19 S
493 1 3 Nakid male 20 1 1 2653 15.7417 C
494 0 3 Hansen male 21 0 0 350029 7.8542 S
495 0 3 Bowen male 21 0 0 54636 16.1 S
496 0 1 Sutton male 61 0 0 36963 32.3208 D50 S
497 0 2 Kirkland male 57 0 0 219533 12.35 Q
498 1 1 Longley female 21 0 0 13502 77.9583 D9 S
499 0 3 Bostandyeff male 26 0 0 349224 7.8958 S
500 1 1 Barkworth male 80 0 0 27042 30 A23 S
501 0 3 Lundahl male 51 0 0 347743 7.0542 S
502 1 1 Stahelin-Maeglin male 32 0 0 13214 30.5 B50 C
503 0 3 Skoog female 9 3 2 347088 27.9 S
504 1 2 Davis female 28 0 0 237668 13 S
505 0 3 Leinonen male 32 0 0 STON/O 2. 3101292 7.925 S
506 0 2 Collyer male 31 1 1 C.A. 31921 26.25 S
507 0 3 Panula female 41 0 5 3101295 39.6875 S
508 0 3 Jensen male 20 0 0 350050 7.8542 S
509 1 1 Sagesser female 24 0 0 PC 17477 69.3 B35 C
510 0 3 Skoog female 2 3 2 347088 27.9 S
511 1 3 Baclini female 0.75 2 1 2666 19.2583 C
512 1 1 Harper male 48 1 0 PC 17572 76.7292 D33 C
513 0 3 Cor male 19 0 0 349231 7.8958 S
514 1 1 Simonius-Blumer male 56 0 0 13213 35.5 A26 C
515 1 3 Stanley female 23 0 0 CA. 2314 7.55 S
516 1 2 Doling female 18 0 1 231919 23 S
517 0 3 Kalvik male 21 0 0 8475 8.4333 S
518 0 3 Hegarty female 18 0 0 365226 6.75 Q
519 0 2 Hickman male 24 2 0 S.O.C. 14879 73.5 S
520 0 3 Bourke female 32 1 1 364849 15.5 Q
521 0 2 Eitemiller male 23 0 0 29751 13 S
522 0 1 Newell male 58 0 2 35273 113.275 D48 C
523 1 1 Frauenthal male 50 2 0 PC 17611 133.65 S
524 0 3 Badt male 40 0 0 2623 7.225 C
525 0 1 Colley male 47 0 0 5727 25.5875 E58 S
526 0 3 Coleff male 36 0 0 349210 7.4958 S
527 1 3 Lindqvist male 20 1 0 STON/O 2. 3101285 7.925 S
528 0 2 Hickman male 32 2 0 S.O.C. 14879 73.5 S
529 0 2 Butler male 25 0 0 234686 13 S
530 0 3 Cook male 43 0 0 A/5 3536 8.05 S
531 1 2 Brown female 40 1 1 29750 39 S
532 0 1 Davidson male 31 1 0 F.C. 12750 52 B71 S
533 0 2 Mitchell male 70 0 0 C.A. 24580 10.5 S
534 1 2 Wilhelms male 31 0 0 244270 13 S
535 0 3 Edvardsson male 18 0 0 349912 7.775 S
536 0 3 Sawyer male 24.5 0 0 342826 8.05 S
537 1 3 Turja female 18 0 0 4138 9.8417 S
538 0 3 Goodwin female 43 1 6 CA 2144 46.9 S
539 1 1 Cardeza male 36 0 1 PC 17755 512.3292 B51 B53 B55 C
540 1 1 Hassab male 27 0 0 PC 17572 76.7292 D49 C
541 0 3 Olsvigen male 20 0 0 6563 9.225 S
542 0 3 Goodwin male 14 5 2 CA 2144 46.9 S
543 0 2 Brown male 60 1 1 29750 39 S
544 0 2 Laroche male 25 1 2 SC/Paris 2123 41.5792 C
545 0 3 Panula male 14 4 1 3101295 39.6875 S
546 0 3 Dakic male 19 0 0 349228 10.1708 S
547 0 3 Fischer male 18 0 0 350036 7.7958 S
548 1 1 Madill female 15 0 1 24160 211.3375 B5 S
549 1 1 Dick male 31 1 0 17474 57 B20 S
550 1 3 Karun female 4 0 1 349256 13.4167 C
551 0 3 Saad male 25 0 0 2672 7.225 C
552 0 1 Weir male 60 0 0 113800 26.55 S
553 0 2 Chapman male 52 0 0 248731 13.5 S
554 0 3 Kelly male 44 0 0 363592 8.05 S
555 0 1 Thayer male 49 1 1 17421 110.8833 C68 C
556 0 3 Humblen male 42 0 0 348121 7.65 F G63 S
557 1 1 Astor female 18 1 0 PC 17757 227.525 C62 C64 C
558 1 1 Silverthorne male 35 0 0 PC 17475 26.2875 E24 S
559 0 3 Barbara female 18 0 1 2691 14.4542 C
560 0 3 Gallagher male 25 0 0 36864 7.7417 Q
561 0 3 Hansen male 26 1 0 350025 7.8542 S
562 0 2 Morley male 39 0 0 250655 26 S
563 1 2 Kelly female 45 0 0 223596 13.5 S
564 1 1 Calderhead male 42 0 0 PC 17476 26.2875 E24 S
565 1 1 Cleaver female 22 0 0 113781 151.55 S
566 1 1 Mayne female 24 0 0 PC 17482 49.5042 C90 C
567 1 1 Taylor male 48 1 0 19996 52 C126 S
568 0 3 Larsson male 29 0 0 7545 9.4833 S
569 0 2 Greenberg male 52 0 0 250647 13 S
570 0 3 Soholt male 19 0 0 348124 7.65 F G73 S
571 1 1 Endres female 38 0 0 PC 17757 227.525 C45 C
572 1 2 Troutt female 27 0 0 34218 10.5 E101 S
573 0 3 Johnson male 33 0 0 347062 7.775 S
574 1 2 Harper female 6 0 1 248727 33 S
575 0 3 Jensen male 17 1 0 350048 7.0542 S
576 0 2 Gillespie male 34 0 0 12233 13 S
577 0 2 Hodges male 50 0 0 250643 13 S
578 1 1 Chambers male 27 1 0 113806 53.1 E8 S
579 0 3 Oreskovic male 20 0 0 315094 8.6625 S
580 1 2 Renouf female 30 3 0 31027 21 S
581 0 2 Bryhl male 25 1 0 236853 26 S
582 0 3 Ilmakangas female 25 1 0 STON/O2. 3101271 7.925 S
583 1 1 Allen female 29 0 0 24160 211.3375 B5 S
584 0 3 Hassan male 11 0 0 2699 18.7875 C
585 0 2 Berriman male 23 0 0 28425 13 S
586 0 2 Troupiansky male 23 0 0 233639 13 S
587 0 3 Williams male 28.5 0 0 54636 16.1 S
588 0 3 Ford female 48 1 3 W./C. 6608 34.375 S
589 1 1 Lesurer male 35 0 0 PC 17755 512.3292 B101 C
590 0 1 Cavendish male 36 1 0 19877 78.85 C46 S
591 1 1 Ryerson female 21 2 2 PC 17608 262.375 B57 B59 B63 B66 C
592 0 3 McNamee male 24 1 0 376566 16.1 S
593 1 3 Stranden male 31 0 0 STON/O 2. 3101288 7.925 S
594 0 1 Crosby male 70 1 1 WE/P 5735 71 B22 S
595 0 3 Abbott male 16 1 1 C.A. 2673 20.25 S
596 1 2 Sinkkonen female 30 0 0 250648 13 S
597 0 1 Marvin male 19 1 0 113773 53.1 D30 S
598 0 3 Connaghton male 31 0 0 335097 7.75 Q
599 1 2 Wells female 4 1 1 29103 23 S
600 1 3 Moor male 6 0 1 392096 12.475 E121 S
601 0 3 Vande male 33 0 0 345780 9.5 S
602 0 3 Jonkoff male 23 0 0 349204 7.8958 S
603 1 2 Herman female 48 1 2 220845 65 S
604 1 2 Hamalainen male 0.67 1 1 250649 14.5 S
605 0 3 Carlsson male 28 0 0 350042 7.7958 S
606 0 2 Bailey male 18 0 0 29108 11.5 S
607 0 3 Theobald male 34 0 0 363294 8.05 S
608 1 1 Rothes female 33 0 0 110152 86.5 B77 S
609 0 3 Nirva male 41 0 0 SOTON/O2 3101272 7.125 S
610 1 3 Barah male 20 0 0 2663 7.2292 C
611 1 1 Carter female 36 1 2 113760 120 B96 B98 S
612 0 3 Eklund male 16 0 0 347074 7.775 S
613 1 1 Hogeboom female 51 1 0 13502 77.9583 D11 S
614 0 3 Mangan female 30.5 0 0 364850 7.75 Q
615 0 3 Gronnestad male 32 0 0 8471 8.3625 S
616 0 3 Lievens male 24 0 0 345781 9.5 S
617 0 3 Jensen male 48 0 0 350047 7.8542 S
618 0 2 Mack female 57 0 0 S.O./P.P. 3 10.5 E77 S
619 1 2 Hocking female 54 1 3 29105 23 S
620 0 3 Myhrman male 18 0 0 347078 7.75 S
621 1 3 Emanuel female 5 0 0 364516 12.475 S
622 1 1 Robert female 43 0 1 24160 211.3375 B3 S
623 1 3 Ayoub female 13 0 0 2687 7.2292 C
624 1 1 Dick female 17 1 0 17474 57 B20 S
625 0 1 Long male 29 0 0 113501 30 D6 S
626 0 3 Ali male 25 0 0 SOTON/O.Q. 3101312 7.05 S
627 0 3 Harmer male 25 0 0 374887 7.25 S
628 1 3 Sjoblom female 18 0 0 3101265 7.4958 S
629 0 3 Rice male 8 4 1 382652 29.125 Q
630 1 3 Dean male 1 1 2 C.A. 2315 20.575 S
631 0 1 Guggenheim male 46 0 0 PC 17593 79.2 B82 B84 C
632 0 2 Gaskell male 16 0 0 239865 26 S
633 0 3 Dantcheff male 25 0 0 349203 7.8958 S
634 0 2 Otter male 39 0 0 28213 13 S
635 1 1 Leader female 49 0 0 17465 25.9292 D17 S
636 1 3 Osman female 31 0 0 349244 8.6833 S
637 0 3 Ibrahim male 30 0 0 2685 7.2292 C
638 0 3 Van female 30 1 1 345773 24.15 S
639 0 2 Ponesell male 34 0 0 250647 13 S
640 1 2 Collyer female 31 1 1 C.A. 31921 26.25 S
641 1 1 Carter male 11 1 2 113760 120 B96 B98 S
642 1 3 Thomas male 0.42 0 1 2625 8.5167 C
643 1 3 Hedman male 27 0 0 347089 6.975 S
644 0 3 Johansson male 31 0 0 347063 7.775 S
645 0 1 Andrews male 39 0 0 112050 0 A36 S
646 0 3 Pettersson female 18 0 0 347087 7.775 S
647 0 2 Meyer male 39 0 0 248723 13 S
648 1 1 Chambers female 33 1 0 113806 53.1 E8 S
649 0 3 Alexander male 26 0 0 3474 7.8875 S
650 0 3 Lester male 39 0 0 A/4 48871 24.15 S
651 0 2 Slemen male 35 0 0 28206 10.5 S
652 0 3 Andersson female 6 4 2 347082 31.275 S
653 0 3 Tomlin male 30.5 0 0 364499 8.05 S
654 0 3 Heininen female 23 0 0 STON/O2. 3101290 7.925 S
655 0 2 Mallet male 31 1 1 S.C./PARIS 2079 37.0042 C
656 0 3 Holm male 43 0 0 C 7075 6.45 S
657 0 3 Skoog male 10 3 2 347088 27.9 S
658 1 1 Hays female 52 1 1 12749 93.5 B69 S
659 1 3 Lulic male 27 0 0 315098 8.6625 S
660 0 1 Reuchlin male 38 0 0 19972 0 S
661 1 3 Moor female 27 0 1 392096 12.475 E121 S
662 0 3 Panula male 2 4 1 3101295 39.6875 S
663 1 2 Mallet male 1 0 2 S.C./PARIS 2079 37.0042 C
664 1 1 Stone female 62 0 0 113572 80 B28
665 1 3 Yasbeck female 15 1 0 2659 14.4542 C
666 1 2 Richards male 0.83 1 1 29106 18.75 S
667 0 3 Augustsson male 23 0 0 347468 7.8542 S
668 0 3 Allum male 18 0 0 2223 8.3 S
669 1 1 Compton female 39 1 1 PC 17756 83.1583 E49 C
670 0 3 Pasic male 21 0 0 315097 8.6625 S
671 1 3 Chip male 32 0 0 1601 56.4958 S
672 0 3 Alhomaki male 20 0 0 SOTON/O2 3101287 7.925 S
673 0 2 Mudd male 16 0 0 S.O./P.P. 3 10.5 S
674 1 1 Serepeca female 30 0 0 113798 31 C
675 0 3 Lemberopolous male 34.5 0 0 2683 6.4375 C
676 0 3 Culumovic male 17 0 0 315090 8.6625 S
677 0 3 Abbing male 42 0 0 C.A. 5547 7.55 S
678 0 3 Markoff male 35 0 0 349213 7.8958 C
679 0 2 Harper male 28 0 1 248727 33 S
680 0 3 Andersson male 4 4 2 347082 31.275 S
681 0 3 Svensson male 74 0 0 347060 7.775 S
682 0 3 Boulos female 9 1 1 2678 15.2458 C
683 1 1 Lines female 16 0 1 PC 17592 39.4 D28 S
684 0 2 Carter female 44 1 0 244252 26 S
685 1 3 Aks female 18 0 1 392091 9.35 S
686 1 1 Wick female 45 1 1 36928 164.8667 S
687 1 1 Daly male 51 0 0 113055 26.55 E17 S
688 1 3 Baclini female 24 0 3 2666 19.2583 C
689 0 3 Hansen male 41 2 0 350026 14.1083 S
690 0 2 Giles male 21 1 0 28134 11.5 S
691 1 1 Swift female 48 0 0 17466 25.9292 D17 S
692 0 2 Gill male 24 0 0 233866 13 S
693 1 2 Bystrom female 42 0 0 236852 13 S
694 1 2 Duran female 27 1 0 SC/PARIS 2149 13.8583 C
695 0 1 Roebling male 31 0 0 PC 17590 50.4958 A24 S
696 1 3 Johnson male 4 1 1 347742 11.1333 S
697 0 3 Balkic male 26 0 0 349248 7.8958 S
698 1 1 Beckwith female 47 1 1 11751 52.5542 D35 S
699 0 1 Carlsson male 33 0 0 695 5 B51 B53 B55 S
700 0 3 Vander male 47 0 0 345765 9 S
701 1 2 Abelson female 28 1 0 P/PP 3381 24 C
702 1 3 Najib female 15 0 0 2667 7.225 C
703 0 3 Gustafsson male 20 0 0 7534 9.8458 S
704 0 3 Petroff male 19 0 0 349212 7.8958 S
705 1 1 Potter female 56 0 1 11767 83.1583 C50 C
706 1 2 Shelley female 25 0 1 230433 26 S
707 0 3 Markun male 33 0 0 349257 7.8958 S
708 0 3 Dahlberg female 22 0 0 7552 10.5167 S
709 0 2 Banfield male 28 0 0 C.A./SOTON 34068 10.5 S
710 0 3 Sutehall male 25 0 0 SOTON/OQ 392076 7.05 S
711 0 3 Rice female 39 0 5 382652 29.125 Q
712 0 2 Montvila male 27 0 0 211536 13 S
713 1 1 Graham female 19 0 0 112053 30 B42 S
714 1 1 Behr male 26 0 0 111369 30 C148 C
715 0 3 Dooley male 32 0 0 370376 7.75 Q
-24
View File
@@ -1,24 +0,0 @@
import { SimpleDirectoryReader } from "llamaindex";
function callback(
category: string,
name: string,
status: any,
message?: string,
): boolean {
console.log(category, name, status, message);
if (name.endsWith(".pdf")) {
console.log("I DON'T WANT PDF FILES!");
return false;
}
return true;
}
async function main() {
// Load page
const reader = new SimpleDirectoryReader(callback);
const params = { directoryPath: "./data" };
await reader.loadData(params);
}
main().catch(console.error);
-40
View File
@@ -1,40 +0,0 @@
import { stdin as input, stdout as output } from "node:process";
// readline/promises is still experimental so not in @types/node yet
// @ts-ignore
import readline from "node:readline/promises";
import { ChatMessage, LlamaDeuce, OpenAI } from "llamaindex";
(async () => {
const gpt4 = new OpenAI({ model: "gpt-4", temperature: 0.9 });
const l2 = new LlamaDeuce({
model: "Llama-2-70b-chat-4bit",
temperature: 0.9,
});
const rl = readline.createInterface({ input, output });
const start = await rl.question("Start: ");
const history: ChatMessage[] = [
{
content:
"Prefer shorter answers. Keep your response to 100 words or less.",
role: "system",
},
{ content: start, role: "user" },
];
while (true) {
const next = history.length % 2 === 1 ? gpt4 : l2;
const r = await next.chat(
history.map(({ content, role }) => ({
content,
role: next === l2 ? role : role === "user" ? "assistant" : "user",
})),
);
history.push({
content: r.message.content,
role: next === l2 ? "assistant" : "user",
});
await rl.question((next === l2 ? "Llama: " : "GPT: ") + r.message.content);
}
})();
-21
View File
@@ -1,21 +0,0 @@
import { HTMLReader, VectorStoreIndex } from "llamaindex";
async function main() {
// Load page
const reader = new HTMLReader();
const documents = await reader.loadData("data/18-1_Changelog.html");
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments(documents);
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What were the notable changes in 18.1?",
);
// Output response
console.log(response.toString());
}
main().catch(console.error);
-32
View File
@@ -1,32 +0,0 @@
import {
Document,
KeywordTableIndex,
KeywordTableRetrieverMode,
} from "llamaindex";
import essay from "./essay";
async function main() {
const document = new Document({ text: essay, id_: "essay" });
const index = await KeywordTableIndex.fromDocuments([document]);
const allModes: KeywordTableRetrieverMode[] = [
KeywordTableRetrieverMode.DEFAULT,
KeywordTableRetrieverMode.SIMPLE,
KeywordTableRetrieverMode.RAKE,
];
allModes.forEach(async (mode) => {
const queryEngine = index.asQueryEngine({
retriever: index.asRetriever({
mode,
}),
});
const response = await queryEngine.query(
"What did the author do growing up?",
);
console.log(response.toString());
});
}
main().catch((e: Error) => {
console.error(e, e.stack);
});
+27
View File
@@ -0,0 +1,27 @@
import { Document } from "@llamaindex/core/src/Node";
import { ListIndex, ListRetrieverMode } from "@llamaindex/core/src/index/list";
import essay from "./essay";
import { serviceContextFromDefaults } from "@llamaindex/core/src/ServiceContext";
import { SimpleNodeParser } from "@llamaindex/core/src/NodeParser";
async function main() {
const serviceContext = serviceContextFromDefaults({
nodeParser: new SimpleNodeParser({
chunkSize: 40,
}),
});
const document = new Document({ text: essay });
const index = await ListIndex.fromDocuments({
documents: [document],
serviceContext,
});
const queryEngine = index.asQueryEngine(ListRetrieverMode.LLM);
const response = await queryEngine.aquery(
"What did the author do growing up?"
);
console.log(response.toString());
}
main().catch((e: Error) => {
console.error(e, e.stack);
});
-7
View File
@@ -1,7 +0,0 @@
import { DeuceChatStrategy, LlamaDeuce } from "llamaindex";
(async () => {
const deuce = new LlamaDeuce({ chatStrategy: DeuceChatStrategy.META });
const result = await deuce.chat([{ content: "Hello, world!", role: "user" }]);
console.log(result);
})();
-47
View File
@@ -1,47 +0,0 @@
import { ChatMessage, SimpleChatEngine } from "llamaindex";
import { stdin as input, stdout as output } from "node:process";
import readline from "node:readline/promises";
import { Anthropic } from "../../packages/core/src/llm/LLM";
async function main() {
const query: string = `
Where is Istanbul?
`;
// const llm = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0.1 });
const llm = new Anthropic();
const message: ChatMessage = { content: query, role: "user" };
//TODO: Add callbacks later
//Stream Complete
//Note: Setting streaming flag to true or false will auto-set your return type to
//either an AsyncGenerator or a Response.
// Omitting the streaming flag automatically sets streaming to false
const chatEngine: SimpleChatEngine = new SimpleChatEngine({
chatHistory: undefined,
llm: llm,
});
const rl = readline.createInterface({ input, output });
while (true) {
const query = await rl.question("Query: ");
if (!query) {
break;
}
//Case 1: .chat(query, undefined, true) => Stream
//Case 2: .chat(query, undefined, false) => Response object
//Case 3: .chat(query, undefined) => Response object
const chatStream = await chatEngine.chat(query, undefined, true);
var accumulated_result = "";
for await (const part of chatStream) {
accumulated_result += part;
process.stdout.write(part);
}
}
}
main();
+5 -9
View File
@@ -1,10 +1,6 @@
import {
Document,
NodeWithScore,
ResponseSynthesizer,
SimpleNodeParser,
TextNode,
} from "llamaindex";
import { Document, TextNode, NodeWithScore } from "@llamaindex/core/src/Node";
import { ResponseSynthesizer } from "@llamaindex/core/src/ResponseSynthesizer";
import { SimpleNodeParser } from "@llamaindex/core/src/NodeParser";
(async () => {
const nodeParser = new SimpleNodeParser();
@@ -27,9 +23,9 @@ import {
},
];
const response = await responseSynthesizer.synthesize(
const response = await responseSynthesizer.asynthesize(
"What age am I?",
nodesWithScore,
nodesWithScore
);
console.log(response.response);
})();
-20
View File
@@ -1,20 +0,0 @@
import { MarkdownReader, VectorStoreIndex } from "llamaindex";
async function main() {
// Load Markdown file
const reader = new MarkdownReader();
const documents = await reader.loadData("node_modules/llamaindex/README.md");
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments(documents);
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query("What does the example code do?");
// Output response
console.log(response.toString());
}
main().catch(console.error);
-68
View File
@@ -1,68 +0,0 @@
import { MongoClient } from "mongodb";
import { Document } from "../../packages/core/src/Node";
import { VectorStoreIndex } from "../../packages/core/src/indices";
import { SimpleMongoReader } from "../../packages/core/src/readers/SimpleMongoReader";
import { stdin as input, stdout as output } from "node:process";
import readline from "node:readline/promises";
async function main() {
//Dummy test code
const query: object = { _id: "waldo" };
const options: object = {};
const projections: object = { embedding: 0 };
const limit: number = Infinity;
const uri: string = process.env.MONGODB_URI ?? "fake_uri";
const client: MongoClient = new MongoClient(uri);
//Where the real code starts
const MR = new SimpleMongoReader(client);
const documents: Document[] = await MR.loadData(
"data",
"posts",
1,
{},
options,
projections,
);
//
//If you need to look at low-level details of
// a queryEngine (for example, needing to check each individual node)
//
// Split text and create embeddings. Store them in a VectorStoreIndex
// var storageContext = await storageContextFromDefaults({});
// var serviceContext = serviceContextFromDefaults({});
// const docStore = storageContext.docStore;
// for (const doc of documents) {
// docStore.setDocumentHash(doc.id_, doc.hash);
// }
// const nodes = serviceContext.nodeParser.getNodesFromDocuments(documents);
// console.log(nodes);
//
//Making Vector Store from documents
//
const index = await VectorStoreIndex.fromDocuments(documents);
// Create query engine
const queryEngine = index.asQueryEngine();
const rl = readline.createInterface({ input, output });
while (true) {
const query = await rl.question("Query: ");
if (!query) {
break;
}
const response = await queryEngine.query(query);
// Output response
console.log(response.toString());
}
}
main();
-89
View File
@@ -1,89 +0,0 @@
import { Client } from "@notionhq/client";
import { program } from "commander";
import { NotionReader, VectorStoreIndex } from "llamaindex";
import { stdin as input, stdout as output } from "node:process";
// readline/promises is still experimental so not in @types/node yet
// @ts-ignore
import readline from "node:readline/promises";
program
.argument("[page]", "Notion page id (must be provided)")
.action(async (page, _options, command) => {
// Initializing a client
if (!process.env.NOTION_TOKEN) {
console.log(
"No NOTION_TOKEN found in environment variables. You will need to register an integration https://www.notion.com/my-integrations and put it in your NOTION_TOKEN environment variable.",
);
return;
}
const notion = new Client({
auth: process.env.NOTION_TOKEN,
});
if (!page) {
const response = await notion.search({
filter: {
value: "page",
property: "object",
},
sort: {
direction: "descending",
timestamp: "last_edited_time",
},
});
const { results } = response;
if (results.length === 0) {
console.log(
"No pages found. You will need to share it with your integration. (tap the three dots on the top right, find Add connections, and add your integration)",
);
return;
} else {
const pages = results
.map((result) => {
if (!("url" in result)) {
return null;
}
return {
id: result.id,
url: result.url,
};
})
.filter((page) => page !== null);
console.log("Found pages:");
console.table(pages);
console.log(`To run, run ts-node ${command.name()} [page id]`);
return;
}
}
const reader = new NotionReader({ client: notion });
const documents = await reader.loadData(page);
console.log(documents);
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments(documents);
// Create query engine
const queryEngine = index.asQueryEngine();
const rl = readline.createInterface({ input, output });
while (true) {
const query = await rl.question("Query: ");
if (!query) {
break;
}
const response = await queryEngine.query(query);
// Output response
console.log(response.toString());
}
});
program.parse();
+14 -10
View File
@@ -1,15 +1,19 @@
import { OpenAI } from "llamaindex";
// @ts-ignore
import process from "node:process";
import { Configuration, OpenAIWrapper } from "@llamaindex/core/src/openai";
(async () => {
const llm = new OpenAI({ model: "gpt-4-1106-preview", temperature: 0.1 });
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
// complete api
const response1 = await llm.complete("How are you?");
console.log(response1.message.content);
const openai = new OpenAIWrapper(configuration);
// chat api
const response2 = await llm.chat([
{ content: "Tell me a joke.", role: "user" },
]);
console.log(response2.message.content);
const { data } = await openai.createChatCompletion({
model: "gpt-3.5-turbo-0613",
messages: [{ role: "user", content: "Hello, world!" }],
});
console.log(data);
console.log(data.choices[0].message);
})();
+2 -8
View File
@@ -1,16 +1,10 @@
{
"version": "0.0.33",
"private": true,
"name": "simple",
"dependencies": {
"@notionhq/client": "^2.2.13",
"@pinecone-database/pinecone": "^1.1.2",
"commander": "^11.1.0",
"llamaindex": "workspace:*"
"@llamaindex/core": "workspace:*"
},
"devDependencies": {
"@types/node": "^18.18.6",
"ts-node": "^10.9.1"
"@types/node": "^18"
},
"scripts": {
"lint": "eslint ."
-19
View File
@@ -1,19 +0,0 @@
import { PDFReader, VectorStoreIndex } from "llamaindex";
async function main() {
// Load PDF
const reader = new PDFReader();
const documents = await reader.loadData("data/brk-2022.pdf");
// Split text and create embeddings. Store them in a VectorStoreIndex
const index = await VectorStoreIndex.fromDocuments(documents);
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query("What mistakes did they make?");
// Output response
console.log(response.toString());
}
main().catch(console.error);
-23
View File
@@ -1,23 +0,0 @@
import { Portkey } from "llamaindex";
(async () => {
const llms = [{}];
const portkey = new Portkey({
mode: "single",
llms: [
{
provider: "anyscale",
virtual_key: "anyscale-3b3c04",
model: "meta-llama/Llama-2-13b-chat-hf",
max_tokens: 2000,
},
],
});
const result = portkey.stream_chat([
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Tell me a joke." },
]);
for await (const res of result) {
process.stdout.write(res);
}
})();
-16
View File
@@ -1,16 +0,0 @@
import fs from "node:fs/promises";
import { SentenceSplitter } from "llamaindex";
async function main() {
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await fs.readFile(path, "utf-8");
const textSplitter = new SentenceSplitter();
const chunks = textSplitter.splitTextWithOverlaps(essay);
console.log(chunks);
}
main();
-44
View File
@@ -1,44 +0,0 @@
import {
Document,
storageContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
import essay from "./essay";
async function main() {
// Create Document object with essay
const document = new Document({ text: essay, id_: "essay" });
// Split text and create embeddings. Store them in a VectorStoreIndex
// persist the vector store automatically with the storage context
const storageContext = await storageContextFromDefaults({
persistDir: "./storage",
});
const index = await VectorStoreIndex.fromDocuments([document], {
storageContext,
});
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
// Output response
console.log(response.toString());
// load the index
const secondStorageContext = await storageContextFromDefaults({
persistDir: "./storage",
});
const loadedIndex = await VectorStoreIndex.init({
storageContext: secondStorageContext,
});
const loadedQueryEngine = loadedIndex.asQueryEngine();
const loadedResponse = await loadedQueryEngine.query(
"What did the author do growing up?",
);
console.log(loadedResponse.toString());
}
main().catch(console.error);
+39 -5
View File
@@ -1,9 +1,43 @@
import { Document, SubQuestionQueryEngine, VectorStoreIndex } from "llamaindex";
// from llama_index import SimpleDirectoryReader, VectorStoreIndex
// from llama_index.query_engine import SubQuestionQueryEngine
// from llama_index.tools import QueryEngineTool, ToolMetadata
// # load data
// pg_essay = SimpleDirectoryReader(
// input_dir="docs/examples/data/paul_graham/"
// ).load_data()
// # build index and query engine
// query_engine = VectorStoreIndex.from_documents(pg_essay).as_query_engine()
// # setup base query engine as tool
// query_engine_tools = [
// QueryEngineTool(
// query_engine=query_engine,
// metadata=ToolMetadata(
// name="pg_essay", description="Paul Graham essay on What I Worked On"
// ),
// )
// ]
// query_engine = SubQuestionQueryEngine.from_defaults(
// query_engine_tools=query_engine_tools
// )
// response = query_engine.query(
// "How was Paul Grahams life different before and after YC?"
// )
// print(response)
import { Document } from "@llamaindex/core/src/Node";
import { VectorStoreIndex } from "@llamaindex/core/src/BaseIndex";
import { SubQuestionQueryEngine } from "@llamaindex/core/src/QueryEngine";
import essay from "./essay";
(async () => {
const document = new Document({ text: essay, id_: essay });
const document = new Document({ text: essay });
const index = await VectorStoreIndex.fromDocuments([document]);
const queryEngine = SubQuestionQueryEngine.fromDefaults({
@@ -18,9 +52,9 @@ import essay from "./essay";
],
});
const response = await queryEngine.query(
"How was Paul Grahams life different before and after YC?",
const response = await queryEngine.aquery(
"How was Paul Grahams life different before and after YC?"
);
console.log(response.toString());
console.log(response);
})();
-31
View File
@@ -1,31 +0,0 @@
import {
Document,
SimpleNodeParser,
SummaryIndex,
SummaryRetrieverMode,
serviceContextFromDefaults,
} from "llamaindex";
import essay from "./essay";
async function main() {
const serviceContext = serviceContextFromDefaults({
nodeParser: new SimpleNodeParser({
chunkSize: 40,
}),
});
const document = new Document({ text: essay, id_: "essay" });
const index = await SummaryIndex.fromDocuments([document], {
serviceContext,
});
const queryEngine = index.asQueryEngine({
retriever: index.asRetriever({ mode: SummaryRetrieverMode.LLM }),
});
const response = await queryEngine.query(
"What did the author do growing up?",
);
console.log(response.toString());
}
main().catch((e: Error) => {
console.error(e, e.stack);
});
+6 -18
View File
@@ -1,26 +1,14 @@
import fs from "node:fs/promises";
import { Document, VectorStoreIndex } from "llamaindex";
import { Document } from "@llamaindex/core/src/Node";
import { VectorStoreIndex } from "@llamaindex/core/src/BaseIndex";
import essay from "./essay";
async function main() {
// Load essay from abramov.txt in Node
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await fs.readFile(path, "utf-8");
// Create Document object with essay
const document = new Document({ text: essay, id_: path });
// Split text and create embeddings. Store them in a VectorStoreIndex
const document = new Document({ text: essay });
const index = await VectorStoreIndex.fromDocuments([document]);
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
const response = await queryEngine.aquery(
"What did the author do growing up?"
);
// Output response
console.log(response.toString());
}
-35
View File
@@ -1,35 +0,0 @@
import fs from "node:fs/promises";
import {
Anthropic,
Document,
serviceContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
async function main() {
// Load essay from abramov.txt in Node
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await fs.readFile(path, "utf-8");
// Create Document object with essay
const document = new Document({ text: essay, id_: path });
// Split text and create embeddings. Store them in a VectorStoreIndex
const serviceContext = serviceContextFromDefaults({ llm: new Anthropic() });
const index = await VectorStoreIndex.fromDocuments([document], {
serviceContext,
});
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
// Output response
console.log(response.toString());
}
main().catch(console.error);
-42
View File
@@ -1,42 +0,0 @@
import {
Document,
OpenAI,
RetrieverQueryEngine,
serviceContextFromDefaults,
SimilarityPostprocessor,
VectorStoreIndex,
} from "llamaindex";
import essay from "./essay";
// Customize retrieval and query args
async function main() {
const document = new Document({ text: essay, id_: "essay" });
const serviceContext = serviceContextFromDefaults({
llm: new OpenAI({ model: "gpt-3.5-turbo", temperature: 0.1 }),
});
const index = await VectorStoreIndex.fromDocuments([document], {
serviceContext,
});
const retriever = index.asRetriever();
retriever.similarityTopK = 5;
const nodePostprocessor = new SimilarityPostprocessor({
similarityCutoff: 0.7,
});
// TODO: cannot pass responseSynthesizer into retriever query engine
const queryEngine = new RetrieverQueryEngine(
retriever,
undefined,
undefined,
[nodePostprocessor],
);
const response = await queryEngine.query(
"What did the author do growing up?",
);
console.log(response.response);
}
main().catch(console.error);
-197
View File
@@ -1,197 +0,0 @@
import {
OpenAI,
ResponseSynthesizer,
RetrieverQueryEngine,
serviceContextFromDefaults,
TextNode,
TreeSummarize,
VectorIndexRetriever,
VectorStore,
VectorStoreIndex,
VectorStoreQuery,
VectorStoreQueryResult,
} from "llamaindex";
import { Index, Pinecone, RecordMetadata } from "@pinecone-database/pinecone";
/**
* Please do not use this class in production; it's only for demonstration purposes.
*/
class PineconeVectorStore<T extends RecordMetadata = RecordMetadata>
implements VectorStore
{
storesText = true;
isEmbeddingQuery = false;
indexName!: string;
pineconeClient!: Pinecone;
index!: Index<T>;
constructor({ indexName, client }: { indexName: string; client: Pinecone }) {
this.indexName = indexName;
this.pineconeClient = client;
this.index = client.index<T>(indexName);
}
client() {
return this.pineconeClient;
}
async query(
query: VectorStoreQuery,
kwargs?: any,
): Promise<VectorStoreQueryResult> {
let queryEmbedding: number[] = [];
if (query.queryEmbedding) {
if (typeof query.alpha === "number") {
const alpha = query.alpha;
queryEmbedding = query.queryEmbedding.map((v) => v * alpha);
} else {
queryEmbedding = query.queryEmbedding;
}
}
// Current LlamaIndexTS implementation only support exact match filter, so we use kwargs instead.
const filter = kwargs?.filter || {};
const response = await this.index.query({
filter,
vector: queryEmbedding,
topK: query.similarityTopK,
includeValues: true,
includeMetadata: true,
});
console.log(
`Numbers of vectors returned by Pinecone after preFilters are applied: ${
response?.matches?.length || 0
}.`,
);
const topKIds: string[] = [];
const topKNodes: TextNode[] = [];
const topKScores: number[] = [];
const metadataToNode = (metadata?: T): Partial<TextNode> => {
if (!metadata) {
throw new Error("metadata is undefined.");
}
const nodeContent = metadata["_node_content"];
if (!nodeContent) {
throw new Error("nodeContent is undefined.");
}
if (typeof nodeContent !== "string") {
throw new Error("nodeContent is not a string.");
}
return JSON.parse(nodeContent);
};
if (response.matches) {
for (const match of response.matches) {
const node = new TextNode({
...metadataToNode(match.metadata),
embedding: match.values,
});
topKIds.push(match.id);
topKNodes.push(node);
topKScores.push(match.score ?? 0);
}
}
const result = {
ids: topKIds,
nodes: topKNodes,
similarities: topKScores,
};
return result;
}
add(): Promise<string[]> {
return Promise.resolve([]);
}
delete(): Promise<void> {
throw new Error("Method `delete` not implemented.");
}
persist(): Promise<void> {
throw new Error("Method `persist` not implemented.");
}
}
/**
* The goal of this example is to show how to use Pinecone as a vector store
* for LlamaIndexTS with(out) preFilters.
*
* It should not be used in production like that,
* as you might want to find a proper PineconeVectorStore implementation.
*/
async function main() {
process.env.PINECONE_API_KEY = "Your Pinecone API Key.";
process.env.PINECONE_ENVIRONMENT = "Your Pinecone Environment.";
process.env.PINECONE_PROJECT_ID = "Your Pinecone Project ID.";
process.env.PINECONE_INDEX_NAME = "Your Pinecone Index Name.";
process.env.OPENAI_API_KEY = "Your OpenAI API Key.";
process.env.OPENAI_API_ORGANIZATION = "Your OpenAI API Organization.";
const getPineconeVectorStore = async () => {
return new PineconeVectorStore({
indexName: process.env.PINECONE_INDEX_NAME || "index-name",
client: new Pinecone(),
});
};
const getServiceContext = () => {
const openAI = new OpenAI({
model: "gpt-4",
apiKey: process.env.OPENAI_API_KEY,
});
return serviceContextFromDefaults({
llm: openAI,
});
};
const getQueryEngine = async (filter: unknown) => {
const vectorStore = await getPineconeVectorStore();
const serviceContext = getServiceContext();
const vectorStoreIndex = await VectorStoreIndex.fromVectorStore(
vectorStore,
serviceContext,
);
const retriever = new VectorIndexRetriever({
index: vectorStoreIndex,
similarityTopK: 500,
});
const responseSynthesizer = new ResponseSynthesizer({
serviceContext,
responseBuilder: new TreeSummarize(serviceContext),
});
return new RetrieverQueryEngine(retriever, responseSynthesizer, {
filter,
});
};
// whatever is a key from your metadata
const queryEngine = await getQueryEngine({
whatever: {
$gte: 1,
$lte: 100,
},
});
const response = await queryEngine.query("How many results do you have?");
console.log(response.toString());
}
main().catch(console.error);
-36
View File
@@ -1,36 +0,0 @@
import fs from "node:fs/promises";
import {
Document,
OpenAI,
serviceContextFromDefaults,
VectorStoreIndex,
} from "llamaindex";
async function main() {
// Load essay from abramov.txt in Node
const path = "node_modules/llamaindex/examples/abramov.txt";
const essay = await fs.readFile(path, "utf-8");
// Create Document object with essay
const document = new Document({ text: essay, id_: path });
// Split text and create embeddings. Store them in a VectorStoreIndex
const serviceContext = serviceContextFromDefaults({
llm: new OpenAI({ model: "gpt-4" }),
});
const index = await VectorStoreIndex.fromDocuments([document], {
serviceContext,
});
// Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
"What did the author do in college?",
);
// Output response
console.log(response.toString());
}
main().catch(console.error);
-15
View File
@@ -1,15 +0,0 @@
import { OpenAI } from "llamaindex";
(async () => {
const llm = new OpenAI({ model: "gpt-4-vision-preview", temperature: 0.1 });
// complete api
const response1 = await llm.complete("How are you?");
console.log(response1.message.content);
// chat api
const response2 = await llm.chat([
{ content: "Tell me a joke!", role: "user" },
]);
console.log(response2.message.content);
})();
+4
View File
@@ -0,0 +1,4 @@
module.exports = {
root: true,
extends: ["custom"],
};
@@ -25,11 +25,10 @@ yarn-debug.log*
yarn-error.log*
# local env files
.env*.local
.env.local
.env.development.local
.env.test.local
.env.production.local
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
+30
View File
@@ -0,0 +1,30 @@
## Getting Started
First, run the development server:
```bash
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
+11
View File
@@ -0,0 +1,11 @@
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
);
}

Some files were not shown because too many files have changed in this diff Show More