Compare commits

...

154 Commits

Author SHA1 Message Date
isaac hershenson
994bde53e3 fmt 2024-11-05 07:39:42 -08:00
isaac hershenson
df415417a1 fmt 2024-11-05 07:36:36 -08:00
isaac hershenson
85a1215217 fmt 2024-11-05 07:30:54 -08:00
isaac hershenson
1160090ce3 fix 2024-11-01 16:45:56 -07:00
isaac hershenson
cfd554bffc wip 2024-11-01 16:44:57 -07:00
Jun Yamog
830cad7bc0 core: fix CommaSeparatedListOutputParser to handle columns that may contain commas in it (#26365)
- **Description:**
Currently CommaSeparatedListOutputParser can't handle strings that may
contain commas within a column. It would parse any commas as the
delimiter.
Ex. 
"foo, foo2", "bar", "baz"

It will create 4 columns: "foo", "foo2", "bar", "baz"

This should be 3 columns:

"foo, foo2", "bar", "baz"

- **Dependencies:**
Added 2 additional imports, but they are built in python packages.

import csv
from io import StringIO

- **Twitter handle:** @jkyamog

- [ ] **Add tests and docs**: 
1. added simple unit test test_multiple_items_with_comma

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
Co-authored-by: Bagatur <baskaryan@gmail.com>
2024-11-01 22:42:24 +00:00
Erick Friis
9fedb04dd3 docs: INVALID_CHAT_HISTORY redirect (#27845) 2024-11-01 21:35:11 +00:00
Erick Friis
03a3670a5e infra: remove some special cases (#27839) 2024-11-01 21:13:43 +00:00
Bagatur
002e1c9055 airbyte: remove from master (#27837) 2024-11-01 13:59:34 -07:00
Bagatur
ee63d21915 many: use core 0.3.15 (#27834) 2024-11-01 20:35:55 +00:00
Prithvi Kannan
c3c638cd7b docs: Reference new databricks-langchain package (#27828)
Thank you for contributing to LangChain!

Update references in Databricks integration page to reference our new
partner package databricks-langchain
https://github.com/databricks/databricks-ai-bridge/tree/main/integrations/langchain

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

---------

Signed-off-by: Prithvi Kannan <prithvi.kannan@databricks.com>
2024-11-01 10:21:19 -07:00
sifatj
33d445550e docs: update VectorStore api reference url in retrievers.ipynb (#27814)
**Description:** Update outdated `VectorStore` api reference url in
Vector store subsection of `retrievers.ipynb`
2024-11-01 15:44:26 +00:00
sifatj
9a4a630e40 docs: Update Retrievers and Runnable links in Retrievers subsection of retrievers.ipynb (#27815)
**Description:** Update outdated links for `Retrievers` and `Runnable`
in Retrievers subsection of `retrievers.ipynb`
2024-11-01 15:42:30 +00:00
Zapiron
b0dfff4cd5 Fixed broken link for TokenTextSplitter (#27824)
Fixed the broken redirect link for `TokenTextSplitter` section
2024-11-01 11:32:07 -04:00
William FH
b4cb2089a2 langchain[patch]: Add warning in react agent (#26980) 2024-10-31 22:29:34 +00:00
Eugene Yurtsev
2f6254605d docs: fix more links (#27809)
Fix more broken links
2024-10-31 17:15:46 -04:00
Ant White
e3ea365725 core: use friendlier names for duplicated nodes in mermaid output (#27747)
Thank you for contributing to LangChain!

- [x] **PR title**: "core: use friendlier names for duplicated nodes in
mermaid output"

- **Description:** When generating the Mermaid visualization of a chain,
if the chain had multiple nodes of the same type, the reid function
would replace their names with the UUID node_id. This made the generated
graph difficult to understand. This change deduplicates the nodes in a
chain by appending an index to their names.
- **Issue:** None
- **Discussion:**
https://github.com/langchain-ai/langchain/discussions/27714
- **Dependencies:** None

- [ ] **Add tests and docs**:  
- Currently this functionality is not covered by unit tests, happy to
add tests if you'd like


- [x] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified. See contribution
guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

# Example Code:
```python
from langchain_core.runnables import RunnablePassthrough

def fake_llm(prompt: str) -> str: # Fake LLM for the example
    return "completion"

runnable = {
    'llm1':  fake_llm,
    'llm2':  fake_llm,
} | RunnablePassthrough.assign(
    total_chars=lambda inputs: len(inputs['llm1'] + inputs['llm2'])
)

print(runnable.get_graph().draw_mermaid(with_styles=False))
```

# Before
```mermaid
graph TD;
	Parallel_llm1_llm2_Input --> 0b01139db5ed4587ad37964e3a40c0ec;
	0b01139db5ed4587ad37964e3a40c0ec --> Parallel_llm1_llm2_Output;
	Parallel_llm1_llm2_Input --> a98d4b56bd294156a651230b9293347f;
	a98d4b56bd294156a651230b9293347f --> Parallel_llm1_llm2_Output;
	Parallel_total_chars_Input --> Lambda;
	Lambda --> Parallel_total_chars_Output;
	Parallel_total_chars_Input --> Passthrough;
	Passthrough --> Parallel_total_chars_Output;
	Parallel_llm1_llm2_Output --> Parallel_total_chars_Input;
```

# After
```mermaid
graph TD;
	Parallel_llm1_llm2_Input --> fake_llm_1;
	fake_llm_1 --> Parallel_llm1_llm2_Output;
	Parallel_llm1_llm2_Input --> fake_llm_2;
	fake_llm_2 --> Parallel_llm1_llm2_Output;
	Parallel_total_chars_Input --> Lambda;
	Lambda --> Parallel_total_chars_Output;
	Parallel_total_chars_Input --> Passthrough;
	Passthrough --> Parallel_total_chars_Output;
	Parallel_llm1_llm2_Output --> Parallel_total_chars_Input;
```
2024-10-31 16:52:00 -04:00
Eugene Yurtsev
71f590de50 docs: fix more broken links (#27806)
Fix some broken links
2024-10-31 19:46:39 +00:00
Neli Hateva
c572d663f9 docs: Ontotext GraphDB QA Chain Update Documentation (Fix versions of libraries) (#27783)
- **Description:** Update versions of libraries in the Ontotext GraphDB
QA Chain Documentation
 - **Issue:** N/A
 - **Dependencies:** N/A
 - **Twitter handle:** @OntotextGraphDB
2024-10-31 15:23:16 -04:00
L
8ef0df3539 feat: add batch request support for text-embedding-v3 model (#26375)
PR title: “langchain: add batch request support for text-embedding-v3
model”

PR message:

• Description: This PR introduces batch request support for the
text-embedding-v3 model within LangChain. The new functionality allows
users to process multiple text inputs in a single request, improving
efficiency and performance for high-volume applications.
	•	Issue: This PR addresses #<issue_number> (if applicable).
• Dependencies: No new external dependencies are required for this
change.
• Twitter handle: If announced on Twitter, please mention me at
@yourhandle.

Add tests and docs:

1. Added unit tests to cover the batch request functionality, ensuring
it operates without requiring network access.
2. Included an example notebook demonstrating the batch request feature,
located in docs/docs/integrations.

Lint and test: All required formatting and linting checks have been
performed using make format and make lint. The changes have been
verified with make test to ensure compatibility.

Additional notes:

	•	The changes are fully backwards compatible.
• No modifications were made to pyproject.toml, ensuring no new
dependencies were added.
• The update only affects the langchain package and does not involve
other packages.

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-31 18:56:22 +00:00
putao520
2545fbe709 fix "WARNING: Received notification from DBMS server: {severity: WARN… (#27112)
…ING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning}
{category: DEPRECATION} {title: This feature is deprecated and will be
removed in future versions.} {description: CALL subquery without a
variable scope clause is now deprecated." this warning

Thank you for contributing to LangChain!

- [ ] **PR title**: "package: description"
- Where "package" is whichever of langchain, community, core, etc. is
being modified. Use "docs: ..." for purely docs changes, "templates:
..." for template changes, "infra: ..." for CI changes.
  - Example: "community: add foobar LLM"


- [ ] **PR message**: ***Delete this entire checklist*** and replace
with
    - **Description:** a description of the change
    - **Issue:** the issue # it fixes, if applicable
    - **Dependencies:** any dependencies required for this change
- **Twitter handle:** if your PR gets announced, and you'd like a
mention, we'll gladly shout you out!


- [ ] **Add tests and docs**: If you're adding a new integration, please
include
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in
`docs/docs/integrations` directory.


- [ ] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified. See contribution
guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

Co-authored-by: putao520 <putao520@putao282.com>
2024-10-31 18:47:25 +00:00
Ankan Mahapatra
905f43377b Update word_document.py | Fixed metadata["source"] for web paths (#27220)
The metadata["source"] value for the web paths was being set to
temporary path (/tmp).

Fixed it by creating a new variable self.original_file_path, which will
store the original path.

Thank you for contributing to LangChain!

- [ ] **PR title**: "package: description"
- Where "package" is whichever of langchain, community, core, etc. is
being modified. Use "docs: ..." for purely docs changes, "templates:
..." for template changes, "infra: ..." for CI changes.
  - Example: "community: add foobar LLM"


- [ ] **PR message**: ***Delete this entire checklist*** and replace
with
    - **Description:** a description of the change
    - **Issue:** the issue # it fixes, if applicable
    - **Dependencies:** any dependencies required for this change
- **Twitter handle:** if your PR gets announced, and you'd like a
mention, we'll gladly shout you out!


- [ ] **Add tests and docs**: If you're adding a new integration, please
include
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in
`docs/docs/integrations` directory.


- [ ] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified. See contribution
guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.
2024-10-31 18:37:41 +00:00
Daniel Birn
389771ccc0 community: fix @embeddingKey in azure cosmos db no sql (#27377)
I will keep this PR as small as the changes made.

**Description:** fixes a fatal bug syntax error in
AzureCosmosDBNoSqlVectorSearch
**Issue:** #27269 #25468
2024-10-31 18:36:02 +00:00
Bagatur
06420de2e7 integrations[patch]: bump core to 0.3.15 (#27805) 2024-10-31 11:27:05 -07:00
Erick Friis
54cb80c778 docs: experimental case, use yq action (#27798) 2024-10-31 11:21:48 -07:00
W. Gustavo Cevallos
f94125a325 community: Update Polygon.io API (#27552)
**Description:** 
Update the wrapper to support the Polygon API if not you get an error. I
keeped `STOCKBUSINESS` for retro-compatbility with older endpoints /
other uses
Old Code:
```
 if status not in ("OK", "STOCKBUSINESS"):
    raise ValueError(f"API Error: {data}")

```
API Respond:
```
API Error: {'results': {'P': 0.22, 'S': 0, 'T': 'ZOM', 'X': 5, 'p': 0.123, 'q': 0, 's': 200, 't': 1729614422813395456, 'x': 1, 'z': 1}, 'status': 'STOCKSBUSINESS', 'request_id': 'XXXXXX'}
```

- **Issue:** N/A Polygon API update
- **Dependencies:** N/A
- **Twitter handle:** @wgcv

---------

Co-authored-by: ccurme <chester.curme@gmail.com>
2024-10-31 18:14:06 +00:00
Wang
621f78babd community: [fix] add missing tool_calls kwargs of delta message in openai adapter (#27492)
- **Description:** add missing tool_calls kwargs of delta message in
openai adapter, then tool call will work correctly via adapter's stream
chat completion
- **Issue:** Fixes
https://github.com/langchain-ai/langchain/issues/25436
- **Dependencies:** None
2024-10-31 14:07:17 -04:00
Tao Wang
25a1031871 community: Fix a validation error for MoonshotChat (#27801)
- **Description:** Change `MoonshotCommon.client` type from
`_MoonshotClient` to `Any`.
- **Issue:** Fix the issue #27058
- **Dependencies:** No
- **Twitter handle:** TaoWang2218

In PR #17100, the implementation for Moonshot was added, which defined
two classes:

- `MoonshotChat(MoonshotCommon, ChatOpenAI)` in
`langchain_community.chat_models.moonshot`;
- Here, `validate_environment()` assigns **client** as
`openai.OpenAI().chat.completions`
- Note that **client** here is actually a member variable defined in
`ChatOpenAI`;
- `MoonshotCommon` in `langchain_community.llms.moonshot`;
- And here, `validate_environment()` assigns **_client** as
`_MoonshotClient`;
- Note that this is the underscored **_client**, which is defined within
`MoonshotCommon` itself;

At this time, there was no conflict between the two, one being `client`
and the other `_client`.

However, in PR #25878 which fixed #24390, `_client` in `MoonshotCommon`
was changed to `client`. Since then, a conflict in the definition of
`client` has arisen between `MoonshotCommon` and `MoonshotChat`, which
caused `pydantic` validation error.

To fix this issue, the type of `client` in `MoonshotCommon` should be
changed to `Any`.

Signed-off-by: Tao Wang <twang2218@gmail.com>
2024-10-31 14:00:16 -04:00
Bagatur
e4e2aa0b78 core[patch]: update image util err msg (#27803) 2024-10-31 10:56:43 -07:00
Bagatur
181bcd0577 core[patch]: Release 0.3.15 (#27802) 2024-10-31 10:35:02 -07:00
Bagatur
c1e742347f core[patch]: rm image loading (#27797) 2024-10-31 10:34:51 -07:00
ZhangShenao
ad0387ac97 Improvement [docs] Improve api docs (#27787)
- Add missing param
- Remove unused param

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-31 16:56:44 +00:00
Changyong Um
d9163e7afa community[docs]: Add content for the Lora adapter in the VLLM page. (#27788)
**Description:**
I added code for lora_request in the community package, but I forgot to
add content to the VLLM page. So, I will do that now. #27731

---------

Co-authored-by: Um Changyong <changyong.um@sfa.co.kr>
2024-10-31 12:44:35 -04:00
ccurme
0172d938b4 community: add AzureOpenAIWhisperParser (#27796)
Commandeered from https://github.com/langchain-ai/langchain/pull/26757.

---------

Co-authored-by: Sheepsta300 <128811766+Sheepsta300@users.noreply.github.com>
2024-10-31 12:37:41 -04:00
ccurme
b631b0a596 community[patch]: cap SQLAlchemy and update deps (#27792)
SQLAlchemy 2.0.36 introduces a regression when creating a table in
DuckDB.

Relevant issues:
- In SQLAlchemy repo (resolution is to update DuckDB):
https://github.com/sqlalchemy/sqlalchemy/discussions/12011
- In DuckDB repo (PR is open):
https://github.com/Mause/duckdb_engine/issues/1128

Plan is to track these issues and remove cap when resolved.
2024-10-31 14:19:09 +00:00
Erick Friis
8ad7adad87 infra: build api docs from package listing (#27774) 2024-10-30 21:31:01 -07:00
JiaranI
3952ee31b8 ollama: add pydocstyle linting for ollama (#27686)
Description: add lint docstrings for ollama module
Issue: the issue https://github.com/langchain-ai/langchain/issues/23188
@baskaryan

test: ruff check passed.
<img width="311" alt="e94c68ffa93dd518297a95a93de5217"
src="https://github.com/user-attachments/assets/e96bf721-e0e3-44de-a50e-206603de398e">

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-31 03:06:55 +00:00
Aayush Kataria
a8a33b2dc6 LangChain-Community - AzureCosmos Mongo vCore: Bug Fix when the data doesn't contain metadata field (#27772)
Thank you for contributing to LangChain!
- **Description:** Adding an empty metadata field when metadata is not
present in the data
- **Issue:** This PR fixes the issue when the data items doesn't contain
the metadata field. This happens when there is already data in the
container, or cx uses CosmosDB Python SDK to insert data.
- **Dependencies:** No dependencies required

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.
2024-10-30 20:05:25 -07:00
Rave Harpaz
8d8d85379f community: OCI Generative AI tool calling bug fix (#26910)
- [x] **PR title**: 
  "community: OCI Generative AI tool calling bug fix 


- [x] **PR message**: 
- **Description:** bug fix for streaming chat responses with tool calls.
Update to PR 24693
    - **Issue:** chat response content is repeated when streaming
    - **Dependencies:** NA
    - **Twitter handle:** NA


- [x] **Add tests and docs**: NA


- [x] **Lint and test**: make format, make lint and make test we run
successfully

---------

Co-authored-by: Arthur Cheng <arthur.cheng@oracle.com>
Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-31 02:35:25 +00:00
Erick Friis
128b07208e community: release 0.3.4 (#27769) 2024-10-30 17:48:03 -07:00
Bagatur
6691202998 anthropic[patch]: allow multiple sys not at start (#27725) 2024-10-30 23:56:47 +00:00
Erick Friis
1ed3cd252e langchain: release 0.3.6 (#27768) 2024-10-30 23:50:42 +00:00
Sergey Ryabov
8180637345 community[patch]: Fix Playwright Tools bug with Pydantic schemas (#27050)
- Add tests for Playwright tools schema serialization
- Introduce base empty args Input class for BaseBrowserTool

Test Plan: `poetry run pytest
tests/unit_tests/tools/playwright/test_all.py`

Fixes #26758

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-10-30 23:45:36 +00:00
Bagatur
92024d0d7d infra: turn off release attestations (#27765) 2024-10-30 15:22:31 -07:00
Bagatur
deb4320d29 core[patch]: Release 0.3.14 (#27764) 2024-10-30 21:47:33 +00:00
Bagatur
5d337326b0 core[patch]: make get_all_basemodel_annotations public (#27761) 2024-10-30 14:43:29 -07:00
Bagatur
94ea950c6c core[patch]: support bedrock converse -> openai tool (#27754) 2024-10-30 12:20:39 -07:00
Lorenzo
3dfdb3e6fb community: prevent gitlab commit on main branch for Gitlab tool (#27750)
### About

- **Description:** In the Gitlab utilities used for the Gitlab tool
there is no check to prevent pushing to the main branch, as this is
already done for Github (for example here:
5a2cfb49e0/libs/community/langchain_community/utilities/github.py (L587)).
This PR add this check as already done for Github.
- **Issue:** None
- **Dependencies:** None
2024-10-30 18:50:13 +00:00
Sam Julien
0a472e2a2d community: Add Writer integration (#27646)
**Description:** Add support for Writer chat models   
**Issue:** N/A
**Dependencies:** Add `writer-sdk` to optional dependencies.
**Twitter handle:** Please tag `@samjulien` and `@Get_Writer`

**Tests and docs**
- [x] Unit test
- [x] Example notebook in `docs/docs/integrations` directory.

**Lint and test**
- [x] Run `make format` 
- [x] Run `make lint`
- [x] Run `make test`

---------

Co-authored-by: Johannes <tolstoy.work@gmail.com>
Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-30 18:06:05 +00:00
ccurme
595dc592c9 docs: run how-to guides in CI (#27615)
Add how-to guides to [Run notebooks
job](https://github.com/langchain-ai/langchain/actions/workflows/run_notebooks.yml)
and fix existing notebooks.

- As with tutorials, cassettes must be updated when HTTP calls in guides
change (by running existing
[script](https://github.com/langchain-ai/langchain/blob/master/docs/scripts/update_cassettes.sh)).
- Cassettes now total ~62mb over 474 files.
- `docs/scripts/prepare_notebooks_for_ci.py` lists a number of notebooks
that do not run (e.g., due to requiring additional infra, slowness,
requiring `input()`, etc.).
2024-10-30 12:35:38 -04:00
ccurme
88bfd60b03 infra: specify python max version of 3.12 for some integration packages (#27740) 2024-10-30 12:24:48 -04:00
fayvor
3b956b3a97 community: Update Replicate LLM and fix tests (#27655)
**Description:** 
- Fix bug in Replicate LLM class, where it was looking for parameter
names in a place where they no longer exist in pydantic 2, resulting in
the "Field required" validation error described in the issue.
- Fix Replicate LLM integration tests to:
  - Use active models on Replicate.
- Use the correct model parameter `max_new_tokens` as shown in the
[Replicate
docs](https://replicate.com/docs/guides/language-models/how-to-use#minimum-and-maximum-new-tokens).
  - Use callbacks instead of deprecated callback_manager.

**Issue:** #26937 

**Dependencies:** n/a

**Twitter handle:** n/a

---------

Signed-off-by: Fayvor Love <fayvor@gmail.com>
Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-30 16:07:08 +00:00
Yuki Watanabe
e593e017d2 Update compatibility table for ChatDatabricks (#27676)
`ChatDatabricks` added support for structured output and JSON mode in
the last release. This PR updates the feature table accordingly.

Signed-off-by: B-Step62 <yuki.watanabe@databricks.com>
2024-10-30 11:56:55 -04:00
ccurme
bd5ea18a6c groq[patch]: update standard tests (#27744)
- Add xfail on integration test (fails [> 50% of the
time](https://github.com/langchain-ai/langchain/actions/workflows/scheduled_test.yml));
- Remove xfail on passing unit test.
2024-10-30 15:50:51 +00:00
hmn falahi
98bb3a02bd docs: Add OpenAIAssistantV2Runnable docstrings (#27402)
- **Description:** add/improve docstrings of OpenAIAssistantV2Runnable
- **Issue:** the issue #21983

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-30 15:35:51 +00:00
Luiz F. G. dos Santos
7a29ca6200 community: add new parameters to pass to OpenAIAssistantV2Runnable (#27372)
Thank you for contributing to LangChain!
 
**Description:** Added the model parameters to be passed in the OpenAI
Assistant. Enabled it at the `OpenAIAssistantV2Runnable` class.
 **Issue:** NA
  **Dependencies:** None
  **Twitter handle:** luizf0992
2024-10-30 10:51:03 -04:00
Ankur Singh
0b97135da1 fix the grammar and markdown component (#27657)
## Before

![Screenshot from 2024-10-26
08-47-29](https://github.com/user-attachments/assets/d8ccead1-3ba3-4f67-a29f-ef8b352341cf)

## After


![image](https://github.com/user-attachments/assets/78f36d54-b2d7-4164-b334-8ac41000711e)

## Typo
`(either in PR summary of in a linked issue)` => `either in PR summary
or in a linked issue`

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-30 14:47:26 +00:00
Abdesselam Benameur
8fb6708ac4 Fix typo (missing letter) in elasticsearch_retriever.ipynb (#27639)
Fixed a small typo (added a missing "t" in ElasticsearchRetriever docs
page)


https://python.langchain.com/docs/integrations/retrievers/elasticsearch_retriever/#:~:text=It%20is%20possible%20to%20cusomize%20the%20function%20tha%20maps%20an%20Elasticsearch%20result%20(hit)%20to%20a%20LangChain%20document.
2024-10-30 14:38:39 +00:00
随风枫叶
18cfb4c067 community: Add token_usage and model_name metadata to ChatZhipuAI stream() and astream() response (#27677)
Thank you for contributing to LangChain!


- **Description:** Add token_usage and model_name metadata to
ChatZhipuAI stream() and astream() response
- **Issue:** None
- **Dependencies:** None
- **Twitter handle:** None


- [ ] **Add tests and docs**: If you're adding a new integration, please
include
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in
`docs/docs/integrations` directory.


- [ ] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified. See contribution
guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

Co-authored-by: jianfehuang <jianfehuang@tencent.com>
2024-10-30 10:34:33 -04:00
Martin Gullbrandson
8a5807a6b4 docs: Update Milvus documentation to correctly show how to filter in similarity_search (#27723)
### Description/Issue:

I had problems filtering when setting up a local Milvus db and noticed
that the `filter` option in the `similarity_search` and
`similarity_search_with_score` appeared to do nothing. Instead, the
`expr` option should be used.

The `expr` option is correctly used in the retriever example further
down in the documentation.

The `expr` option seems to be correctly passed on, for example
[here](447c0dd2f0/libs/community/langchain_community/vectorstores/milvus.py (L701))

### Solution:

Update the documentation for the functions mentioned to show intended
behavior.

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-30 14:15:11 +00:00
tkubo-heroz
028e0253d8 community: Added anthropic.claude-3-5-sonnet-20241022-v2:0 cost detials (#27728)
Added anthropic.claude-3-5-sonnet-20241022-v2:0 cost detials
2024-10-30 14:01:01 +00:00
Changyong Um
dc171221b3 community[patch]: Fix vLLM integration to apply lora_request (#27731)
**Description:**
- Add the `lora_request` parameter to the VLLM class to support LoRA
model configurations. This enhancement allows users to specify LoRA
requests directly when using VLLM, enabling more flexible and efficient
model customization.

**Issue:**
- No existing issue for `lora_adapter` in VLLM. This PR addresses the
need for configuring LoRA requests within the VLLM framework.
- Reference : [Using LoRA Adapters in
vLLM](https://docs.vllm.ai/en/stable/models/lora.html#using-lora-adapters)


**Example Code :**
Before this change, the `lora_request` parameter was not applied
correctly:

```python
ADAPTER_PATH = "/path/of/lora_adapter"

llm = VLLM(model="Bllossom/llama-3.2-Korean-Bllossom-3B",
           max_new_tokens=512,
           top_k=2,
           top_p=0.90,
           temperature=0.1,
           vllm_kwargs={
               "gpu_memory_utilization":0.5, 
               "enable_lora":True, 
               "max_model_len":1024,
           }
)

print(llm.invoke(
    ["...prompt_content..."], 
    lora_request=LoRARequest("lora_adapter", 1, ADAPTER_PATH)
    ))
```
**Before Change Output:**
```bash
response was not applied lora_request
```
So, I attempted to apply the lora_adapter to
langchain_community.llms.vllm.VLLM.

**current output:**
```bash
response applied lora_request
```

**Dependencies:**
- None

**Lint and test:**
- All tests and lint checks have passed.

---------

Co-authored-by: Um Changyong <changyong.um@sfa.co.kr>
2024-10-30 13:59:34 +00:00
Nawaz Haider
9d2f6701e1 DOCS: Fixed import of langchain instead of langchain_nvidia_ai_endpoints for ChatNVIDIA (#27734)
* **PR title**: "docs: Replaced langchain import with
langchain-nvidia-ai-endpoints in NVIDIA Endpoints Tab"

* **PR message**:
+ **Description:** Replaced the import of `langchain` with
`langchain-nvidia-ai-endpoints` in the NVIDIA Endpoints Tab to resolve
an error caused by the documentation attempting to import the generic
`langchain` module despite the targeted import.
	+ **Issue:** 
+ **Dependencies:** No additional dependencies introduced; simply
updated the existing import to a more specific module.
	+ **Twitter handle:** https://x.com/nawaz0x1

* **Add tests and docs**:
+ **Applicability:** Not applicable in this case, as the change is a fix
to an existing integration rather than the addition of a new one.
+ **Rationale:** No new functionality or integrations are introduced,
only a corrective import change.

* **Lint and test**:
	+ **Status:** Completed
	+ **Outcome:** 
		- `make format`: **Passed**
		- `make lint`: **Passed**
		- `make test`: **Passed**


![image](https://github.com/user-attachments/assets/fbc1b597-5083-4461-875a-d32ab8ed933c)
2024-10-30 13:57:37 +00:00
Qier LU
8d8e38b090 community[pathch]: Add missing custom content_key handling in Redis vector store (#27736)
This fix an error caused by missing custom content_key handling in Redis
vector store in function similarity_search_with_score.
2024-10-30 13:57:20 +00:00
William FH
5a2cfb49e0 Support message trimming on single messages (#27729)
Permit trimming message lists of length 1
2024-10-30 04:27:52 +00:00
Bagatur
5111063af2 langchain[patch]: Release 0.3.5 (#27727) 2024-10-29 17:06:23 -07:00
Bagatur
8f4423e042 text-splitters[patch]: Release 0.3.1 (#27726) 2024-10-30 00:04:48 +00:00
Prithvi Kannan
0433b114bb docs: Add databricks-langchain package consolidation notice (#27703)
Thank you for contributing to LangChain!

Add notice of upcoming package consolidation of `langchain-databricks`
into `databricks-langchain`.

<img width="1047" alt="image"
src="https://github.com/user-attachments/assets/18eaa394-4e82-444b-85d5-7812be322674">


Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

Signed-off-by: Prithvi Kannan <prithvi.kannan@databricks.com>
Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-29 22:00:27 +00:00
Zapiron
447c0dd2f0 docs: Fixed Grammar & Improve reading (#27672)
Updated the documentation to fix some grammar errors

    - **Description:** Some language errors exist in the documentation
    - **Issue:** the issue # Changed the structure of some sentences
2024-10-29 20:19:00 +00:00
Soham Das
913ff1b152 docs: fix typo in query analysis documentation (#27721)
**PR Title**: `docs: fix typo in query analysis documentation`

**Description**: This PR corrects a typo on line 68 in the query
analysis documentation, changing **"pharsings"** to **"phrasings"** for
clarity and accuracy. Only one instance of the typo was fixed in the
last merge, and this PR fixes the second instance.

**Issue**: N/A

**Dependencies**: None

**Additional Notes**: No functional changes were made; this is a
documentation fix only.
2024-10-29 16:15:37 -04:00
Erick Friis
8396ca2990 docs: redis in api docs (#27722) 2024-10-29 20:13:53 +00:00
Mateusz Szewczyk
0606aabfa3 docs: Added WatsonxRerank documentation (#27424)
Thank you for contributing to LangChain!

Changes:
- docs: Added `WatsonxRerank` documentation 
- docs Updated `WatsonxEmbeddings` with docs template
- docs: Updated `ChatWatsonx` with docs template
- docs: Updated `WatsonxLLM` with docs template
- docs: Added `ChatWatsonx` to list with Chat models providers. Added
[test_chat_models_standard](https://github.com/langchain-ai/langchain-ibm/blob/main/libs/ibm/tests/integration_tests/test_chat_models_standard.py)
to `langchain_ibm` tests suite.
- docs: Added `IBM` to list with Embedding models providers. Added
[test_embeddings_standard](https://github.com/langchain-ai/langchain-ibm/blob/main/libs/ibm/tests/integration_tests/test_embeddings_standard.py)
to `langchain_ibm` tests suite.
- docs: Updated `langcahin_ibm` recommended versions compatible with
`LangChain v0.3`

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-29 16:57:47 +00:00
Zapiron
9ccd4a6ffb DOC: Tutorial Section Updates (#27675)
Edited various notebooks in the tutorial section to fix:
* Grammatical Errors
* Improve Readability by changing the sentence structure or reducing
repeated words which bears the same meaning
* Edited a code block to follow the PEP 8 Standard
* Added more information in some sentences to make the concept more
clear and reduce ambiguity

---------

Co-authored-by: Eugene Yurtsev <eugene@langchain.dev>
2024-10-29 14:51:34 +00:00
Harsimran-19
c1d8c33df6 core: JsonOutputParser UTF characters bug (#27306)
**Description:**
This PR fixes an issue where non-ASCII characters in Pydantic field
descriptions were being escaped to their Unicode representations when
using `JsonOutputParser`. The change allows non-ASCII characters to be
preserved in the output, which is especially important for multilingual
support and when working with non-English languages.

**Issue:** Fixes #27256

**Example Code:**
```python
from pydantic import BaseModel, Field
from langchain_core.output_parsers import JsonOutputParser

class Article(BaseModel):
    title: str = Field(description="科学文章的标题")

output_data_structure = Article
parser = JsonOutputParser(pydantic_object=output_data_structure)
print(parser.get_format_instructions())
```
**Previous Output**:
```... "title": {"description": "\\u79d1\\u5b66\\u6587\\u7ae0\\u7684\\u6807\\u9898", "title": "Title", "type": "string"}} ...```

**Current Output**:
```... "title": {"description": "科学文章的标题", "title": "Title", "type":
"string"}} ...```

**Changes made**:
- Modified `json.dumps()` call in
`langchain_core/output_parsers/json.py` to use `ensure_ascii=False`
- Added a unit test to verify Unicode handling

Co-authored-by: Harsimran-19 <harsimran1869@gmail.com>
2024-10-29 14:48:53 +00:00
Andrew Effendi
49517cc1e7 partners/huggingface[patch]: fix HuggingFacePipeline model_id parameter (#27514)
**Description:** Fixes issue with model parameter not getting
initialized correctly when passing transformers pipeline
**Issue:** https://github.com/langchain-ai/langchain/issues/25915
2024-10-29 14:34:46 +00:00
Jeong-Minju
0a465b8032 docs: Fix typo in _action_agent docs section (#27698)
PR Title: docs: Fix typo in _action_agent function docs section

Description: In line 1185, _action_agent function's docs, changing
**".agent"** to **"self.agent"**.

Issue: N/A

Dependencies: None

---------

Co-authored-by: Eugene Yurtsev <eugene@langchain.dev>
2024-10-29 14:16:42 +00:00
Soham Das
c3021e9322 docs: fix typo in query analysis documentation (#27697)
**PR Title**: `docs: fix typo in query analysis documentation`

**Description**: This PR corrects a typo on line 68 in the query
analysis documentation, changing **"pharsings"** to **"phrasings"** for
clarity and accuracy.

**Issue**: N/A

**Dependencies**: None

**Additional Notes**: No functional changes were made; this is a
documentation fix only.
2024-10-29 14:07:22 +00:00
Neil Vachharajani
eec35672a4 core[patch]: Improve type checking for the tool decorator (#27460)
**Description:**

When annotating a function with the @tool decorator, the symbol should
have type BaseTool. The previous type annotations did not convey that to
type checkers. This patch creates 4 overloads for the tool function for
the 4 different use cases.

1. @tool decorator with no arguments
2. @tool decorator with only keyword arguments
3. @tool decorator with a name argument (and possibly keyword arguments)
4. Invoking tool as function with a name and runnable positional
arguments

The main function is updated to match the overloads. The changes are
100% backwards compatible (all existing calls should continue to work,
just with better type annotations).

**Twitter handle:** @nvachhar

---------

Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-10-29 13:59:56 +00:00
Erick Friis
94e5765416 docs: packages in homepage (#27693) 2024-10-28 20:44:30 +00:00
Erick Friis
583808a7b8 partners/huggingface: release 0.1.1 (#27691) 2024-10-28 13:39:38 -07:00
Erick Friis
6d524e9566 partners/box: release 0.2.2 (#27690) 2024-10-28 12:54:20 -07:00
yahya-mouman
6803cb4f34 openai[patch]: add check for none values when summing token usage (#27585)
**Description:** Fixes None addition issues when an empty value is
passed on

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.
2024-10-28 12:49:43 -07:00
Bagatur
ede953d617 openai[patch]: fix schema formatting util (#27685) 2024-10-28 15:46:47 +00:00
Baptiste Pasquier
440c162b8b community: Fix closed session in Infinity (#26933)
**Description:** 

The `aiohttp.ClientSession` is closed at the end of the with statement,
which causes an error during a second call.

The implemented fix is to define the session directly within the with
block, exactly like in the textembed code:


c6350d636e/libs/community/langchain_community/embeddings/textembed.py (L335-L346)
 
**Issue:** Fix #26932

Co-authored-by: ccurme <chester.curme@gmail.com>
2024-10-27 11:37:21 -04:00
Jorge Piedrahita Ortiz
8895d468cb community: sambastudio llm refactor (#27215)
**Description:** 
    - Sambastudio LLM refactor 
    - Sambastudio openai compatible API support added
    - docs updated
2024-10-27 11:08:15 -04:00
ccurme
fe87e411f2 groq: fix unit test (#27660) 2024-10-26 14:57:23 -04:00
Erick Friis
cdb4b1980a docs: reorganize contributing docs (#27649) 2024-10-25 22:41:54 +00:00
Erick Friis
fbfc6bdade core: test runner improvements (#27654)
when running core tests locally this
- prevents langsmith tracing from being enabled by env vars
- prevents network calls
2024-10-25 15:06:59 -07:00
Gabriel Faundez
ef27ce7a45 docs: add missing import for tools docs (#27650)
## Description

Added missing import from `pydantic` in the tools docs
2024-10-25 21:14:40 +00:00
Vincent Min
7bc4e320f1 core[patch]: improve performance of InMemoryVectorStore (#27538)
**Description:** We improve the performance of the InMemoryVectorStore.
**Isue:** Originally, similarity was computed document by document:
```
for doc in self.store.values():
            vector = doc["vector"]
            similarity = float(cosine_similarity([embedding], [vector]).item(0))
```
This is inefficient and does not make use of numpy vectorization.
This PR computes the similarity in one vectorized go:
```
docs = list(self.store.values())
similarity = cosine_similarity([embedding], [doc["vector"] for doc in docs])
```
**Dependencies:** None
**Twitter handle:** @b12_consulting, @Vincent_Min

---------

Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-10-25 17:07:04 -04:00
Bagatur
d5306899d3 openai[patch]: Release 0.2.4 (#27652) 2024-10-25 20:26:21 +00:00
Erick Friis
247d6bb09d infra: test doc imports 3.12 (#27653) 2024-10-25 13:23:06 -07:00
Erick Friis
600b7bdd61 all: test 3.13 ci (#27197)
Co-authored-by: Bagatur <baskaryan@gmail.com>
Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
2024-10-25 12:56:58 -07:00
Bagatur
06df15c9c0 core[patch]: Release 0.3.13 (#27651) 2024-10-25 19:22:44 +00:00
Erick Friis
2683f814f4 docs: contributing index page (#27647) 2024-10-25 17:06:55 +00:00
Rashmi Pawar
83eebf549f docs: Add NVIDIA as provider in v3 integrations (#27254)
### Add NVIDIA as provider in langchain v3 integrations

cc: @sumitkbh @mattf @dglogo

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-25 16:21:22 +00:00
Steve Moss
24605bcdb6 community[patch]: Fix missing protected_namespaces(). (#27610)
- [x] **PR message**:
- **Description:** Fixes warning messages raised due to missing
`protected_namespaces` parameter in `ConfigDict`.
    - **Issue:** https://github.com/langchain-ai/langchain/issues/27609
    - **Dependencies:** No dependencies
    - **Twitter handle:** @gawbul
2024-10-25 02:16:26 +00:00
Eugene Yurtsev
7667ee126f core: remove mustache in extended deps (#27629)
Remove mustache from extended deps -- we vendor the mustache
implementation
2024-10-24 22:12:49 -04:00
Erick Friis
265e0a164a core: add flake8-bandit (S) ruff rules to core (#27368)
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-10-24 22:33:41 +00:00
hippopond
bcff458ae3 DOC: Added notes in ipynb file to advise user to upgrade package langchain_openai. For issue: https://github.com/langchain-ai/langchain/issues/26616 (#27621)
Thank you for contributing to LangChain!

- [X] **PR title**: DOC: Added notes in ipynb file to advice user to
upgrade package langchain_openai.


- [X] 

Added notes from the issue report: to advise the user to upgrade
langchain_openai


Issue: 
https://github.com/langchain-ai/langchain/issues/26616

- [ ] **Add tests and docs**: 

- [ ] **Lint and test**: 

- [ ]

---------

Co-authored-by: Libby Lin <libbylin@Libbys-MacBook-Pro.local>
Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-24 21:54:12 +00:00
Nithish Raghunandanan
0623c74560 couchbase: Add document id to vector search results (#27622)
**Description:** Returns the document id along with the Vector Search
results

**Issue:** Fixes https://github.com/langchain-ai/langchain/issues/26860
for CouchbaseVectorStore


- [x] **Add tests and docs**: If you're adding a new integration, please
include
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in
`docs/docs/integrations` directory.


- [x] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified.

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-24 21:47:36 +00:00
ZhangShenao
455ab7d714 Improvement[Community] Improve Document Loaders and Splitters (#27568)
- Fix word spelling error
- Add static method decorator
- Fix language splitter

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-24 21:42:16 +00:00
Ed Branch
7345470669 docs: add aws support to how-to-guides (#27450)
This PR adds support to the how-to documentation for using AWS Bedrock
and Sagemaker Endpoints.

Because AWS services above dont presently use API keys to access LLMs
I've amended more of the source code than would normally be expected.

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-24 14:23:32 -07:00
CLOVA Studio 개발
846a75284f community: Add Naver chat model & embeddings (#25162)
Reopened as a personal repo outside the organization.

## Description
- Naver HyperCLOVA X community package 
  - Add chat model & embeddings
  - Add unit test & integration test
  - Add chat model & embeddings docs
- I changed partner
package(https://github.com/langchain-ai/langchain/pull/24252) to
community package on this PR
- Could this
embeddings(https://github.com/langchain-ai/langchain/pull/21890) be
deprecated? We are trying to replace it with embedding
model(**ClovaXEmbeddings**) in this PR.

Twitter handle: None. (if needed, contact with
joonha.jeon@navercorp.com)

---
you can check our previous discussion below:

> one question on namespaces - would it make sense to have these in
.clova namespaces instead of .naver?

I would like to keep it as is, unless it is essential to unify the
package name.
(ClovaX is a branding for the model, and I plan to add other models and
components. They need to be managed as separate classes.)

> also, could you clarify the difference between ClovaEmbeddings and
ClovaXEmbeddings?

There are 3 models that are being serviced by embedding, and all are
supported in the current PR. In addition, all the functionality of CLOVA
Studio that serves actual models, such as distinguishing between test
apps and service apps, is supported. The existing PR does not support
this content because it is hard-coded.

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-10-24 20:54:13 +00:00
Hyejun An
6227396e20 partners/HuggingFacePipeline[stream]: Change to use pipeline instead of pipeline.model.generate in stream() (#26531)
## Description

I encountered an error while using the` gemma-2-2b-it model` with the
`HuggingFacePipeline` class and have implemented a fix to resolve this
issue.

### What is Problem

```python
model_id="google/gemma-2-2b-it"


gemma_2_model = AutoModelForCausalLM.from_pretrained(model_id)
gemma_2_tokenizer = AutoTokenizer.from_pretrained(model_id)

gen = pipeline( 
    task='text-generation',
    model=gemma_2_model,
    tokenizer=gemma_2_tokenizer,
    max_new_tokens=1024,
    device=0 if torch.cuda.is_available() else -1,
    temperature=.5,
    top_p=0.7,
    repetition_penalty=1.1,
    do_sample=True,
    )

llm = HuggingFacePipeline(pipeline=gen)

for chunk in llm.stream("Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World."):
    print(chunk, end="", flush=True)
```

This code outputs the following error message:

```
/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py:1258: UserWarning: Using the model-agnostic default `max_length` (=20) to control the generation length. We recommend setting `max_new_tokens` to control the maximum length of the generation.
  warnings.warn(
Exception in thread Thread-19 (generate):
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py", line 1874, in generate
    self._validate_generated_length(generation_config, input_ids_length, has_default_max_length)
  File "/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py", line 1266, in _validate_generated_length
    raise ValueError(
ValueError: Input length of input_ids is 31, but `max_length` is set to 20. This can lead to unexpected behavior. You should consider increasing `max_length` or, better yet, setting `max_new_tokens`.
```

In addition, the following error occurs when the number of tokens is
reduced.

```python
for chunk in llm.stream("Hello World"):
    print(chunk, end="", flush=True)
```

```
/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py:1258: UserWarning: Using the model-agnostic default `max_length` (=20) to control the generation length. We recommend setting `max_new_tokens` to control the maximum length of the generation.
  warnings.warn(
/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py:1885: UserWarning: You are calling .generate() with the `input_ids` being on a device type different than your model's device. `input_ids` is on cpu, whereas the model is on cuda. You may experience unexpected behaviors or slower generation. Please make sure that you have put `input_ids` to the correct device by calling for example input_ids = input_ids.to('cuda') before running `.generate()`.
  warnings.warn(
Exception in thread Thread-20 (generate):
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py", line 2024, in generate
    result = self._sample(
  File "/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py", line 2982, in _sample
    outputs = self(**model_inputs, return_dict=True)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1562, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/models/gemma2/modeling_gemma2.py", line 994, in forward
    outputs = self.model(
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1562, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/models/gemma2/modeling_gemma2.py", line 803, in forward
    inputs_embeds = self.embed_tokens(input_ids)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1562, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/sparse.py", line 164, in forward
    return F.embedding(
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/functional.py", line 2267, in embedding
    return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument index in method wrapper_CUDA__index_select)
```

On the other hand, in the case of invoke, the output is normal:

```
llm.invoke("Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World.")
```
```
'Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World. Hello World.\n\nThis is a simple program that prints the phrase "Hello World" to the console. \n\n**Here\'s how it works:**\n\n* **`print("Hello World")`**: This line of code uses the `print()` function, which is a built-in function in most programming languages (like Python). The `print()` function takes whatever you put inside its parentheses and displays it on the screen.\n* **`"Hello World"`**:  The text within the double quotes (`"`) is called a string. It represents the message we want to print.\n\n\nLet me know if you\'d like to explore other programming concepts or see more examples! \n'
```

### Problem Analysis

- Apparently, I put kwargs in while generating pipelines and it applied
to `invoke()`, but it's not applied in the `stream()`.
- When using the stream, `inputs = self.pipeline.tokenizer (prompt,
return_tensors = "pt")` enters cpu.
  - This can crash when the model is in gpu.

### Solution

Just use `self.pipeline` instead of `self.pipeline.model.generate`.

- **Original Code**

```python
stopping_criteria = StoppingCriteriaList([StopOnTokens()])

inputs = self.pipeline.tokenizer(prompt, return_tensors="pt")
streamer = TextIteratorStreamer(
    self.pipeline.tokenizer,
    timeout=60.0,
    skip_prompt=skip_prompt,
    skip_special_tokens=True,
)
generation_kwargs = dict(
    inputs,
    streamer=streamer,
    stopping_criteria=stopping_criteria,
    **pipeline_kwargs,
)
t1 = Thread(target=self.pipeline.model.generate, kwargs=generation_kwargs)
t1.start()
```

- **Updated Code**

```python
stopping_criteria = StoppingCriteriaList([StopOnTokens()])

streamer = TextIteratorStreamer(
    self.pipeline.tokenizer,
    timeout=60.0,
    skip_prompt=skip_prompt,
    skip_special_tokens=True,
)
generation_kwargs = dict(
    text_inputs= prompt,
    streamer=streamer,
    stopping_criteria=stopping_criteria,
    **pipeline_kwargs,
)
t1 = Thread(target=self.pipeline, kwargs=generation_kwargs)
t1.start()
```

By using the `pipeline` directly, the `kwargs` of the pipeline are
applied, and there is no need to consider the `device` of the `tensor`
made with the `tokenizer`.

> According to the change to use `pipeline`, it was modified to put
`text_inputs=prompts` directly into `generation_kwargs`.

## Issue

None

## Dependencies

None

## Twitter handle

None

---------

Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-10-24 16:49:43 -04:00
Bagatur
655ced84d7 openai[patch]: accept json schema response format directly (#27623)
fix #25460

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-24 18:19:15 +00:00
Tibor Reiss
20b56a0233 core[patch]: fix repr and str for Serializable (#26786)
Fixes #26499

---------

Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
2024-10-24 08:36:35 -07:00
Adarsh Sahu
2d58a8a08d docs: Update structured_outputs.mdx (#27613)
`strightforward` => `straightforward`
`adavanced` => `advanced`
`There a few challenges` => `There are a few challenges`

Documentation Correction:

*
[`docs/docs/concepts/structured_output.mdx`]:
Corrected several typos in the sentence directing users to the API
reference.
2024-10-24 15:13:28 +00:00
Daniel Vu Dao
da6b526770 docs: Update Runnable documentation (#27606)
**Description**
Adds better code formatting for one of the docs.
2024-10-24 15:05:43 +00:00
QiQi
133c1b4f76 docs: Update passthrough.ipynb -- Grammar correction (#27601)
Grammar correction needed in passthrough.ipynb
The sentence is:

"Now you've learned how to pass data through your chains to help to help
format the data flowing through your chains."

There's a redundant "to help", and it could be more succinctly written
as:

"Now you've learned how to pass data through your chains to help format
the data flowing through your chains."
2024-10-24 15:05:06 +00:00
hippopond
61897aef90 docs: Fix for spelling mistake (#27599)
Fixes #26009

Thank you for contributing to LangChain!

- [x] **PR title**: "docs: Correcting spelling mistake"


- [x] **PR message**: 
    - **Description:** Corrected spelling from "trianed" to "trained"
    - **Issue:** the issue #26009 
    - **Dependencies:** NA
    - **Twitter handle:** NA


- [ ] **Add tests and docs**: NA


- [ ] **Lint and test**:

Co-authored-by: Libby Lin <libbylin@Libbys-MacBook-Pro.local>
2024-10-24 15:04:18 +00:00
Eugene Yurtsev
d081a5400a docs: fix more links (#27598)
Fix more links
2024-10-23 21:26:38 -04:00
Lei Zhang
f203229b51 community: Fix the failure of ChatSparkLLM after upgrading to Pydantic V2 (#27418)
**Description:**

The test_sparkllm.py can reproduce this issue.


https://github.com/langchain-ai/langchain/blob/master/libs/community/tests/integration_tests/chat_models/test_sparkllm.py#L66

```
Testing started at 18:27 ...
Launching pytest with arguments test_sparkllm.py::test_chat_spark_llm --no-header --no-summary -q in /Users/zhanglei/Work/github/langchain/libs/community/tests/integration_tests/chat_models

============================= test session starts ==============================
collecting ... collected 1 item

test_sparkllm.py::test_chat_spark_llm 

============================== 1 failed in 0.45s ===============================
FAILED                             [100%]
tests/integration_tests/chat_models/test_sparkllm.py:65 (test_chat_spark_llm)
def test_chat_spark_llm() -> None:
>       chat = ChatSparkLLM(
            spark_app_id="your spark_app_id",
            spark_api_key="your spark_api_key",
            spark_api_secret="your spark_api_secret",
        )  # type: ignore[call-arg]

test_sparkllm.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../../core/langchain_core/load/serializable.py:111: in __init__
    super().__init__(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'langchain_community.chat_models.sparkllm.ChatSparkLLM'>
values = {'spark_api_key': 'your spark_api_key', 'spark_api_secret': 'your spark_api_secret', 'spark_api_url': 'wss://spark-api.xf-yun.com/v3.5/chat', 'spark_app_id': 'your spark_app_id', ...}

    @model_validator(mode="before")
    @classmethod
    def validate_environment(cls, values: Dict) -> Any:
        values["spark_app_id"] = get_from_dict_or_env(
            values,
            ["spark_app_id", "app_id"],
            "IFLYTEK_SPARK_APP_ID",
        )
        values["spark_api_key"] = get_from_dict_or_env(
            values,
            ["spark_api_key", "api_key"],
            "IFLYTEK_SPARK_API_KEY",
        )
        values["spark_api_secret"] = get_from_dict_or_env(
            values,
            ["spark_api_secret", "api_secret"],
            "IFLYTEK_SPARK_API_SECRET",
        )
        values["spark_api_url"] = get_from_dict_or_env(
            values,
            "spark_api_url",
            "IFLYTEK_SPARK_API_URL",
            SPARK_API_URL,
        )
        values["spark_llm_domain"] = get_from_dict_or_env(
            values,
            "spark_llm_domain",
            "IFLYTEK_SPARK_LLM_DOMAIN",
            SPARK_LLM_DOMAIN,
        )
    
        # put extra params into model_kwargs
        default_values = {
            name: field.default
            for name, field in get_fields(cls).items()
            if field.default is not None
        }
>       values["model_kwargs"]["temperature"] = default_values.get("temperature")
E       KeyError: 'model_kwargs'

../../../langchain_community/chat_models/sparkllm.py:368: KeyError
``` 

I found that when upgrading to Pydantic v2, @root_validator was changed
to @model_validator. When a class declares multiple
@model_validator(model=before), the execution order in V1 and V2 is
opposite. This is the reason for ChatSparkLLM's failure.

The correct execution order is to execute build_extra first.


https://github.com/langchain-ai/langchain/blob/langchain%3D%3D0.2.16/libs/community/langchain_community/chat_models/sparkllm.py#L302

And then execute validate_environment.


https://github.com/langchain-ai/langchain/blob/langchain%3D%3D0.2.16/libs/community/langchain_community/chat_models/sparkllm.py#L329

The Pydantic community also discusses it, but there hasn't been a
conclusion yet. https://github.com/pydantic/pydantic/discussions/7434

**Issus:** #27416 

**Twitter handle:** coolbeevip

---------

Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-23 21:17:10 -04:00
Andrew Effendi
8f151223ad Community: Fix DuckDuckGo search tool Output Format (#27479)
**Issue:** : https://github.com/langchain-ai/langchain/issues/22961
   **Description:** 

Previously, the documentation for `DuckDuckGoSearchResults` said that it
returns a JSON string, however the code returns a regular string that
can't be parsed as is.
for example running

```python
from langchain_community.tools import DuckDuckGoSearchResults

# Create a DuckDuckGo search instance
search = DuckDuckGoSearchResults()

# Invoke the search
result = search.invoke("Obama")

# Print the result
print(result)
# Print the type of the result
print("Result Type:", type(result))
```
will return
```
snippet: Harris will hold a campaign event with former President Barack Obama in Georgia next Thursday, the first time the pair has campaigned side by side, a senior campaign official said. A week from ..., title: Obamas to hit the campaign trail in first joint appearances with Harris, link: https://www.nbcnews.com/politics/2024-election/obamas-hit-campaign-trail-first-joint-appearances-harris-rcna176034, snippet: Item 1 of 3 Former U.S. first lady Michelle Obama and her husband, former U.S. President Barack Obama, stand on stage during Day 2 of the Democratic National Convention (DNC) in Chicago, Illinois ..., title: Obamas set to hit campaign trail with Kamala Harris for first time, link: https://www.reuters.com/world/us/obamas-set-hit-campaign-trail-with-kamala-harris-first-time-2024-10-18/, snippet: Barack and Michelle Obama will make their first campaign appearances alongside Kamala Harris at rallies in Georgia and Michigan. By Reid J. Epstein Reporting from Ashwaubenon, Wis. Here come the ..., title: Harris Will Join Michelle Obama and Barack Obama on Campaign Trail, link: https://www.nytimes.com/2024/10/18/us/politics/kamala-harris-michelle-obama-barack-obama.html, snippet: Obama's leaving office was "a turning point," Mirsky said. "That was the last time anybody felt normal." A few feet over, a 64-year-old physics professor named Eric Swanson who had grown ..., title: Obama's reemergence on the campaign trail for Harris comes as he ..., link: https://www.cnn.com/2024/10/13/politics/obama-campaign-trail-harris-biden/index.html
Result Type: <class 'str'>
```

After the change in this PR, `DuckDuckGoSearchResults` takes an
additional `output_format = "list" | "json" | "string"` ("string" =
current behavior, default). For example, invoking
`DuckDuckGoSearchResults(output_format="list")` return a list of
dictionaries in the format
```
[{'snippet': '...', 'title': '...', 'link': '...'}, ...]
```
e.g.

```
[{'snippet': "Obama has in a sense been wrestling with Trump's impact since the real estate magnate broke onto the political stage in 2015. Trump's victory the next year, defeating Obama's secretary of ...", 'title': "Obama's fears about Trump drive his stepped-up campaigning", 'link': 'https://www.washingtonpost.com/politics/2024/10/18/obama-trump-anxiety-harris-campaign/'}, {'snippet': 'Harris will hold a campaign event with former President Barack Obama in Georgia next Thursday, the first time the pair has campaigned side by side, a senior campaign official said. A week from ...', 'title': 'Obamas to hit the campaign trail in first joint appearances with Harris', 'link': 'https://www.nbcnews.com/politics/2024-election/obamas-hit-campaign-trail-first-joint-appearances-harris-rcna176034'}, {'snippet': 'Item 1 of 3 Former U.S. first lady Michelle Obama and her husband, former U.S. President Barack Obama, stand on stage during Day 2 of the Democratic National Convention (DNC) in Chicago, Illinois ...', 'title': 'Obamas set to hit campaign trail with Kamala Harris for first time', 'link': 'https://www.reuters.com/world/us/obamas-set-hit-campaign-trail-with-kamala-harris-first-time-2024-10-18/'}, {'snippet': 'Barack and Michelle Obama will make their first campaign appearances alongside Kamala Harris at rallies in Georgia and Michigan. By Reid J. Epstein Reporting from Ashwaubenon, Wis. Here come the ...', 'title': 'Harris Will Join Michelle Obama and Barack Obama on Campaign Trail', 'link': 'https://www.nytimes.com/2024/10/18/us/politics/kamala-harris-michelle-obama-barack-obama.html'}]
Result Type: <class 'list'>
```

---------

Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-23 20:18:11 -04:00
Erick Friis
5e5647b5dd docs: render api ref urls in search (#27594) 2024-10-23 16:18:21 -07:00
Bagatur
948e2e6322 docs: concept nits (#27586) 2024-10-23 14:52:44 -07:00
Eugene Yurtsev
562cf416c2 docs: Update messages.mdx (#27592)
Add missing `.`
2024-10-23 20:18:27 +00:00
Ankur Singh
71e0f4cd62 docs: Fix spelling mistake in concepts (#27589)
`Fore` => `For`

Documentation Correction:

*
[`docs/docs/concepts/async.mdx`](diffhunk://#diff-4959e81c20607c20c7a9c38db4405a687c5d94f24fc8220377701afeee7562b0L40-R40):
Corrected a typo from "Fore" to "For" in the sentence directing users to
the API reference.
2024-10-23 16:10:21 -04:00
Bagatur
968dccee04 core[patch]: convert_to_openai_tool Anthropic support (#27591) 2024-10-23 12:27:06 -07:00
Bagatur
217de4e6a6 langchain[patch]: de-beta init_chat_model (#27558) 2024-10-23 08:35:15 -07:00
Eugene Yurtsev
4466caadba concepts: update llm stub page and re-link (#27567)
Update text llm stub page and re-link content
2024-10-22 23:03:36 -04:00
Eugene Yurtsev
f2dbf01d4a Docs: Re-organize conceptual docs (#27047)
Reorganization of conceptual documentation

---------

Co-authored-by: Lance Martin <122662504+rlancemartin@users.noreply.github.com>
Co-authored-by: Lance Martin <lance@langchain.dev>
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
2024-10-22 22:08:20 -04:00
Kwan Kin Chan
6d2a76ac05 langchain_huggingface: Fix multiple GPU usage bug in from_model_id function (#23628)
- [ ]  **Description:**   
   - pass the device_map into model_kwargs 
- removing the unused device_map variable in the hf_pipeline function
call
- [ ] **Issue:** issue #13128 
When using the from_model_id function to load a Hugging Face model for
text generation across multiple GPUs, the model defaults to loading on
the CPU despite multiple GPUs being available using the expected format
``` python
llm = HuggingFacePipeline.from_model_id(
    model_id="model-id",
    task="text-generation",
    device_map="auto",
)
```
Currently, to enable multiple GPU , we have to pass in variable in this
format instead
``` python
llm = HuggingFacePipeline.from_model_id(
    model_id="model-id",
    task="text-generation",
    device=None,
    model_kwargs={
        "device_map": "auto",
    }
)
```
This issue arises due to improper handling of the device and device_map
parameters.

- [ ] **Explanation:**
1. In from_model_id, the model is created using model_kwargs and passed
as the model variable of the pipeline function. So at this moment, to
load the model with multiple GPUs, "device_map" needs to be set to
"auto" within model_kwargs. Otherwise, the model defaults to loading on
the CPU.
2. The device_map variable in from_model_id is not utilized correctly.
In the pipeline function's source code of tnansformer:
- The device_map variable is stored in the model_kwargs dictionary
(lines 867-878 of transformers/src/transformers/pipelines/\__init__.py).
```python
    if device_map is not None:
        ......
        model_kwargs["device_map"] = device_map
```
- The model is constructed with model_kwargs containing the device_map
value ONLY IF it is a string (lines 893-903 of
transformers/src/transformers/pipelines/\__init__.py).
```python
    if isinstance(model, str) or framework is None:
        model_classes = {"tf": targeted_task["tf"], "pt": targeted_task["pt"]}
        framework, model = infer_framework_load_model( ... , **model_kwargs, )
```
- Consequently, since a model object is already passed to the pipeline
function, the device_map variable from from_model_id is never used.

3. The device_map variable in from_model_id not only appears unused but
also causes errors. Without explicitly setting device=None, attempting
to load the model on multiple GPUs may result in the following error:
 ```
Device has 2 GPUs available. Provide device={deviceId} to
`from_model_id` to use available GPUs for execution. deviceId is -1
(default) for CPU and can be a positive integer associated with CUDA
device id.
  Traceback (most recent call last):
    File "foo.py", line 15, in <module>
      llm = HuggingFacePipeline.from_model_id(
File
"foo\site-packages\langchain_huggingface\llms\huggingface_pipeline.py",
line 217, in from_model_id
      pipeline = hf_pipeline(
File "foo\lib\site-packages\transformers\pipelines\__init__.py", line
1108, in pipeline
return pipeline_class(model=model, framework=framework, task=task,
**kwargs)
File "foo\lib\site-packages\transformers\pipelines\text_generation.py",
line 96, in __init__
      super().__init__(*args, **kwargs)
File "foo\lib\site-packages\transformers\pipelines\base.py", line 835,
in __init__
      raise ValueError(
ValueError: The model has been loaded with `accelerate` and therefore
cannot be moved to a specific device. Please discard the `device`
argument when creating your pipeline object.
```
This error occurs because, in from_model_id, the default values in from_model_id for device and device_map are -1 and None, respectively. It would passes the statement (`device_map is not None and device < 0`) and keep the device as -1 so the pipeline function later raises an error when trying to move a GPU-loaded model back to the CPU. 
19eb82e68b/libs/community/langchain_community/llms/huggingface_pipeline.py (L204-L213)




If no one reviews your PR within a few days, please @-mention one of baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

---------

Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-22 21:41:47 -04:00
Prakul
031d0e4725 docs:update to MongoDB Docs (#27531)
**Description:** Update to MongoDB docs

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-23 00:21:37 +00:00
Fernando de Oliveira
ab205e7389 partners/openai + community: Async Azure AD token provider support for Azure OpenAI (#27488)
This PR introduces a new `azure_ad_async_token_provider` attribute to
the `AzureOpenAI` and `AzureChatOpenAI` classes in `partners/openai` and
`community` packages, given it's currently supported on `openai` package
as
[AsyncAzureADTokenProvider](https://github.com/openai/openai-python/blob/main/src/openai/lib/azure.py#L33)
type.

The reason for creating a new attribute is to avoid breaking changes.
Let's say you have an existing code that uses a `AzureOpenAI` or
`AzureChatOpenAI` instance to perform both sync and async operations.
The `azure_ad_token_provider` will work exactly as it is today, while
`azure_ad_async_token_provider` will override it for async requests.


If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.
2024-10-22 21:43:06 +00:00
Bagatur
34684423bf docs: rm Legacy API ref link (#27559) 2024-10-22 14:12:38 -07:00
Savar Bhasin
0cae37b0a9 docs: fix docker command for RedisChatMessageHistory (#27484)
docs: "fix docker command"

- **Description**: The Redis chat message history component requires the
Redis Stack to create indexes. When using only Redis, the following
error occurs: "Unknown command 'FT.INFO', with args beginning with:
'chat_history'".
- **Twitter handle**: savar_bhasin

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-22 19:42:51 +00:00
orkhank
9a277cbe00 community: Update file_path type in JSONLoader.__init__() signature (#27535)
- **Description:** Change the type of the `file_path` argument from `str
| pathlib.Path` to `str | os.PathLike`, since the latter is more widely
used: https://stackoverflow.com/a/58541858
  
This is a very minor fix. I was just annoyed to see the red underline
displayed by Pylance in VS Code: `reportArgumentType`.

![image](https://github.com/user-attachments/assets/719a7f8e-acca-4dfa-89df-925e1d938c71)
  
  The changes do not affect the behavior of the code.
2024-10-22 11:18:36 -07:00
Eric Pinzur
f636c83321 community: Cassandra Vector Store: modernize implementation (#27253)
**Description:** 

This PR updates `CassandraGraphVectorStore` to be based off
`CassandraVectorStore`, instead of using a custom CQL implementation.
This allows users using a `CassandraVectorStore` to upgrade to a
`GraphVectorStore` without having to change their database schema or
re-embed documents.

This PR also updates the documentation of the `GraphVectorStore` base
class and contains native async implementations for the standard graph
methods: `traversal_search` and `mmr_traversal_search` in
`CassandraVectorStore`.

**Issue:** No issue number.

**Dependencies:** https://github.com/langchain-ai/langchain/pull/27078
(already-merged)

**Lint and test**: 
- Lint and tests all pass, including existing
`CassandraGraphVectorStore` tests.
- Also added numerous additional tests based of the tests in
`langchain-astradb` which cover many more scenarios than the existing
tests for `Cassandra` and `CassandraGraphVectorStore`

** BREAKING CHANGE**

Note that this is a breaking change for existing users of
`CassandraGraphVectorStore`. They will need to wipe their database table
and restart.

However:
- The interfaces have not changed. Just the underlying storage
mechanism.
- Any one using `langchain_community.vectorstores.Cassandra` can instead
use `langchain_community.graph_vectorstores.CassandraGraphVectorStore`
and they will gain Graph capabilities without having to re-embed their
existing documents. This is the primary goal of this PR.

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-22 18:11:11 +00:00
Vadym Barda
0640cbf2f1 huggingface[patch]: hide client field in HuggingFaceEmbeddings (#27522) 2024-10-21 17:37:07 -04:00
Chun Kang Lu
380449a7a9 core: fix Image prompt template hardcoded template format (#27495)
Fixes #27411 

**Description:** Adds `template_format` to the `ImagePromptTemplate`
class and updates passing in the `template_format` parameter from
ChatPromptTemplate instead of the hardcoded "f-string".
Also updated docs and typing related to `template_format` to be more
up-to-date and specific.

**Dependencies:** None

**Add tests and docs**: Added unit tests to validate fix. Needed to
update `test_chat` snapshot due to adding new attribute
`template_format` in `ImagePromptTemplate`.

---------

Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-10-21 17:31:40 -04:00
bbaltagi-dtsl
403c0ea801 community: fix DallE hidden open_api_key (#26996)
Thank you for contributing to LangChain!

- [ X] **PR title**: "package: description"
- Where "package" is whichever of langchain, community, core, etc. is
being modified. Use "docs: ..." for purely docs changes, "templates:
..." for template changes, "infra: ..." for CI changes.
  - Example: "community: add foobar LLM"


- [ X] 
    - **Issue:** issue #26941


Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-21 19:46:56 +00:00
Erick Friis
c6d088bc15 docs: giscus component strict (#27515) 2024-10-21 11:36:51 -07:00
Erick Friis
6ed92f13d0 infra: azure/mongo api docs build (#27512) 2024-10-21 08:27:46 -07:00
Radi
689e8b7e66 docs: Update chatbot.ipynb (#27422)
- [ ] **PR title**: "docs: Typo fix"

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-21 15:06:28 +00:00
venkatram-dev
2678cda83b docs:tutorials:sql_qa.ipynb: fix typo (#27405)
Thank you for contributing to LangChain!

- [x] **PR title**: "package: description"

docs:docs:tutorials:sql_qa.ipynb: fix typo

- [x] **PR message**: ***Delete this entire checklist*** and replace
with
Fix typo in docs:docs:tutorials:sql_qa.ipynb


- [ ] **Add tests and docs**: If you're adding a new integration, please
include
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in
`docs/docs/integrations` directory.


- [ ] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified. See contribution
guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-21 15:01:23 +00:00
Erez Zohar
8f80dd28d9 docs: typo fix athena.ipynb and glue_catalog.ipynb (#27435)
**Description:** This PR fixes typos in 
```
docs/docs/integrations/document_loaders/athena.ipynb
docs/docs/integrations/document_loaders/glue_catalog.ipynb
```
2024-10-21 15:01:13 +00:00
nodfans
cfcf783cb5 community: fix a typo in planner_prompt.py (#27489)
Description: Fix typo in planner_prompt.py.
2024-10-21 14:59:33 +00:00
Seungha Jeon
edfe35c2a8 docs: fix typo on friendli.ipynb (#27412)
This PR fixes typos in `chat/friendli.ipynb` and `llms/friendli.ipynb`
docs.
2024-10-21 14:58:49 +00:00
Connor Park
e62e390ca0 docs: update API Reference Link in /docs/how_to/vectorstore_retriever/ (#27477)
Description: updated docs
[here](https://python.langchain.com/docs/how_to/vectorstore_retriever/#:~:text=VectorStoreRetriever)
for creating VectorStoreRetrievers. The URL was missing a `.base`, and
now works as expected.

This was a fix for Issue #27196
2024-10-19 00:44:58 +00:00
Erick Friis
97a819d578 community: fix lint from new mypy (#27474) 2024-10-18 20:08:03 +00:00
Erick Friis
c397baa85f community: release 0.3.3 (#27472) 2024-10-18 12:52:15 -07:00
Erick Friis
4ceb28009a mongodb: migrate to repo (#27467) 2024-10-18 12:35:12 -07:00
Erick Friis
a562c54f7d azure-dynamic-sessions: migrate to repo (#27468) 2024-10-18 12:30:48 -07:00
Erick Friis
30660786b3 langchain: release 0.3.4 (#27458) 2024-10-18 11:59:54 -07:00
Erick Friis
b468552859 docs: langgraph error code redirects (#27465) 2024-10-18 10:39:32 -07:00
Erick Friis
82242dfbb1 docs: openai audio docs (#27459) 2024-10-18 17:06:55 +00:00
Erick Friis
2cf2cefe39 partners/openai: release 0.2.3 (#27457) 2024-10-18 08:16:01 -07:00
Erick Friis
7d65a32ee0 openai: audio modality, remove sockets from unit tests (#27436) 2024-10-18 08:02:09 -07:00
Mateusz Szewczyk
97dc578d47 docs: Update custom name for IBM (#27437)
Thank you for contributing to LangChain!

PR: Update custom name for IBM in api_reference docs

Co-authored-by: Erick Friis <erick@langchain.dev>
2024-10-17 19:41:24 +00:00
Isaac Francisco
6e228c84a8 docs: update mongo table (#27434) 2024-10-17 18:29:29 +00:00
Erick Friis
2a27234a77 docs: fix error reference header (#27431) 2024-10-17 15:51:33 +00:00
Erick Friis
322ca84812 infra: add ibm api build (#27425)
test build:
https://github.com/langchain-ai/langchain/actions/runs/11386155179
2024-10-17 07:47:29 -07:00
Erick Friis
4d11211c89 infra: schedule triggers monorepo only by default (#27428)
fixes https://github.com/langchain-ai/langchain/issues/27426
2024-10-17 14:31:14 +00:00
1169 changed files with 26536 additions and 25902 deletions

View File

@@ -32,6 +32,21 @@ IGNORED_PARTNERS = [
"huggingface",
]
# Cap python version at 3.12 for some packages with dependencies that are not yet
# compatible with python 3.13 (mostly hf tokenizers).
PY_312_MAX_PACKAGES = [
f"libs/partners/{integration}"
for integration in [
"anthropic",
"chroma",
"couchbase",
"huggingface",
"mistralai",
"nomic",
"qdrant",
]
]
def all_package_dirs() -> Set[str]:
return {
@@ -110,13 +125,16 @@ def _get_configs_for_single_dir(job: str, dir_: str) -> List[Dict[str, str]]:
return _get_pydantic_test_configs(dir_)
if dir_ == "libs/core":
py_versions = ["3.9", "3.10", "3.11", "3.12"]
py_versions = ["3.9", "3.10", "3.11", "3.12", "3.13"]
# custom logic for specific directories
elif dir_ == "libs/partners/milvus":
# milvus poetry doesn't allow 3.12 because they
# declare deps in funny way
py_versions = ["3.9", "3.11"]
elif dir_ in PY_312_MAX_PACKAGES:
py_versions = ["3.9", "3.12"]
elif dir_ in ["libs/community", "libs/langchain"] and job == "extended-tests":
# community extended test resolution in 3.12 is slow
# even in uv
@@ -125,8 +143,11 @@ def _get_configs_for_single_dir(job: str, dir_: str) -> List[Dict[str, str]]:
elif dir_ == "libs/community" and job == "compile-integration-tests":
# community integration deps are slow in 3.12
py_versions = ["3.9", "3.11"]
else:
elif dir_ == ".":
# unable to install with 3.13 because tokenizers doesn't support 3.13 yet
py_versions = ["3.9", "3.12"]
else:
py_versions = ["3.9", "3.13"]
return [{"working-directory": dir_, "python-version": py_v} for py_v in py_versions]
@@ -279,6 +300,8 @@ if __name__ == "__main__":
] != ["README.md"]:
dirs_to_run["test"].add(f"libs/partners/{partner_dir}")
# Skip if the directory was deleted or is just a tombstone readme
elif file == "libs/packages.yml":
continue
elif file.startswith("libs/"):
raise ValueError(
f"Unknown lib: {file}. check_diff.py likely needs "

87
.github/scripts/prep_api_docs_build.py vendored Normal file
View File

@@ -0,0 +1,87 @@
#!/usr/bin/env python
"""Script to sync libraries from various repositories into the main langchain repository."""
import os
import shutil
import yaml
from pathlib import Path
from typing import Dict, Any
def load_packages_yaml() -> Dict[str, Any]:
"""Load and parse the packages.yml file."""
with open("langchain/libs/packages.yml", "r") as f:
return yaml.safe_load(f)
def get_target_dir(package_name: str) -> Path:
"""Get the target directory for a given package."""
package_name_short = package_name.replace("langchain-", "")
base_path = Path("langchain/libs")
if package_name_short == "experimental":
return base_path / "experimental"
return base_path / "partners" / package_name_short
def clean_target_directories(packages: Dict[str, Any]) -> None:
"""Remove old directories that will be replaced."""
for package in packages["packages"]:
if package["repo"] != "langchain-ai/langchain":
target_dir = get_target_dir(package["name"])
if target_dir.exists():
print(f"Removing {target_dir}")
shutil.rmtree(target_dir)
def move_libraries(packages: Dict[str, Any]) -> None:
"""Move libraries from their source locations to the target directories."""
for package in packages["packages"]:
# Skip if it's the main langchain repo or disabled
if package["repo"] == "langchain-ai/langchain" or package.get(
"disabled", False
):
continue
repo_name = package["repo"].split("/")[1]
source_path = package["path"]
target_dir = get_target_dir(package["name"])
# Handle root path case
if source_path == ".":
source_dir = repo_name
else:
source_dir = f"{repo_name}/{source_path}"
print(f"Moving {source_dir} to {target_dir}")
# Ensure target directory exists
os.makedirs(os.path.dirname(target_dir), exist_ok=True)
try:
# Move the directory
shutil.move(source_dir, target_dir)
except Exception as e:
print(f"Error moving {source_dir} to {target_dir}: {e}")
def main():
"""Main function to orchestrate the library sync process."""
try:
# Load packages configuration
packages = load_packages_yaml()
# Clean target directories
clean_target_directories(packages)
# Move libraries to their new locations
move_libraries(packages)
print("Library sync completed successfully!")
except Exception as e:
print(f"Error during library sync: {e}")
raise
if __name__ == "__main__":
main()

View File

@@ -81,7 +81,6 @@ jobs:
ES_URL: ${{ secrets.ES_URL }}
ES_CLOUD_ID: ${{ secrets.ES_CLOUD_ID }}
ES_API_KEY: ${{ secrets.ES_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # for airbyte
MONGODB_ATLAS_URI: ${{ secrets.MONGODB_ATLAS_URI }}
VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }}
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}

View File

@@ -289,7 +289,6 @@ jobs:
ES_URL: ${{ secrets.ES_URL }}
ES_CLOUD_ID: ${{ secrets.ES_CLOUD_ID }}
ES_API_KEY: ${{ secrets.ES_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # for airbyte
MONGODB_ATLAS_URI: ${{ secrets.MONGODB_ATLAS_URI }}
VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }}
UPSTAGE_API_KEY: ${{ secrets.UPSTAGE_API_KEY }}
@@ -338,6 +337,8 @@ jobs:
packages-dir: ${{ inputs.working-directory }}/dist/
verbose: true
print-hash: true
# Temp workaround since attestations are on by default as of gh-action-pypi-publish v1.11.0
attestations: false
mark-release:
needs:

View File

@@ -98,3 +98,5 @@ jobs:
# This is *only for CI use* and is *extremely dangerous* otherwise!
# https://github.com/pypa/gh-action-pypi-publish#tolerating-release-package-file-duplicates
skip-existing: true
# Temp workaround since attestations are on by default as of gh-action-pypi-publish v1.11.0
attestations: false

View File

@@ -10,6 +10,7 @@ env:
jobs:
build:
if: github.repository == 'langchain-ai/langchain' || github.event_name != 'schedule'
runs-on: ubuntu-latest
permissions: write-all
steps:
@@ -21,108 +22,29 @@ jobs:
repository: langchain-ai/langchain-api-docs-html
path: langchain-api-docs-html
token: ${{ secrets.TOKEN_GITHUB_API_DOCS_HTML }}
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-google
path: langchain-google
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-datastax
path: langchain-datastax
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-nvidia
path: langchain-nvidia
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-cohere
path: langchain-cohere
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-elastic
path: langchain-elastic
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-postgres
path: langchain-postgres
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-aws
path: langchain-aws
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-weaviate
path: langchain-weaviate
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-ai21
path: langchain-ai21
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-together
path: langchain-together
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-experimental
path: langchain-experimental
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-milvus
path: langchain-milvus
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-unstructured
path: langchain-unstructured
- uses: actions/checkout@v4
with:
repository: langchain-ai/langchain-databricks
path: langchain-databricks
- name: Get repos with yq
id: get-unsorted-repos
uses: mikefarah/yq@master
with:
cmd: yq '.packages[].repo' langchain/libs/packages.yml
- name: Set Git config
working-directory: langchain
- name: Parse YAML and checkout repos
env:
REPOS_UNSORTED: ${{ steps.get-unsorted-repos.outputs.result }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --local user.email "actions@github.com"
git config --local user.name "Github Actions"
# Get unique repositories
REPOS=$(echo "$REPOS_UNSORTED" | sort -u)
- name: Move libs
run: |
rm -rf \
langchain/libs/partners/google-genai \
langchain/libs/partners/google-vertexai \
langchain/libs/partners/astradb \
langchain/libs/partners/nvidia-trt \
langchain/libs/partners/nvidia-ai-endpoints \
langchain/libs/partners/cohere \
langchain/libs/partners/elasticsearch \
langchain/libs/partners/upstage \
langchain/libs/partners/ai21 \
langchain/libs/partners/together \
langchain/libs/standard-tests \
langchain/libs/experimental \
langchain/libs/partners/milvus \
langchain/libs/partners/unstructured \
langchain/libs/databricks
mv langchain-google/libs/genai langchain/libs/partners/google-genai
mv langchain-google/libs/vertexai langchain/libs/partners/google-vertexai
mv langchain-google/libs/community langchain/libs/partners/google-community
mv langchain-datastax/libs/astradb langchain/libs/partners/astradb
mv langchain-nvidia/libs/ai-endpoints langchain/libs/partners/nvidia-ai-endpoints
mv langchain-cohere/libs/cohere langchain/libs/partners/cohere
mv langchain-elastic/libs/elasticsearch langchain/libs/partners/elasticsearch
mv langchain-postgres langchain/libs/partners/postgres
mv langchain-aws/libs/aws langchain/libs/partners/aws
mv langchain-weaviate/libs/weaviate langchain/libs/partners/weaviate
mv langchain-ai21/libs/ai21 langchain/libs/partners/ai21
mv langchain-together/libs/together langchain/libs/partners/together
mv langchain-experimental/libs/experimental langchain/libs/experimental
mv langchain-milvus/libs/milvus langchain/libs/partners/milvus
mv langchain-unstructured/libs/unstructured langchain/libs/partners/unstructured
mv langchain-databricks/libs/databricks langchain/libs/partners/databricks
- name: Rm old html
run:
rm -rf langchain-api-docs-html/api_reference_build/html
# Checkout each unique repository
for repo in $REPOS; do
if [ "$repo" != "langchain-ai/langchain" ]; then
REPO_NAME=$(echo $repo | cut -d'/' -f2)
echo "Checking out $repo to $REPO_NAME"
git clone --depth 1 https://github.com/$repo.git $REPO_NAME
fi
done
- name: Set up Python ${{ env.PYTHON_VERSION }} + Poetry ${{ env.POETRY_VERSION }}
uses: "./langchain/.github/actions/poetry_setup"
@@ -132,16 +54,34 @@ jobs:
cache-key: api-docs
working-directory: langchain
- name: Install dependencies
- name: Install initial py deps
working-directory: langchain
run: |
python -m pip install -U uv
python -m uv pip install --upgrade --no-cache-dir pip setuptools
# skip airbyte and ibm due to pandas dependency issue
python -m uv pip install $(ls ./libs/partners | grep -vE "airbyte|ibm" | xargs -I {} echo "./libs/partners/{}")
python -m uv pip install --upgrade --no-cache-dir pip setuptools pyyaml
- name: Move libs with script
run: python langchain/.github/scripts/prep_api_docs_build.py
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Rm old html
run:
rm -rf langchain-api-docs-html/api_reference_build/html
- name: Install dependencies
working-directory: langchain
run: |
python -m uv pip install $(ls ./libs/partners | xargs -I {} echo "./libs/partners/{}")
python -m uv pip install libs/core libs/langchain libs/text-splitters libs/community libs/experimental
python -m uv pip install -r docs/api_reference/requirements.txt
- name: Set Git config
working-directory: langchain
run: |
git config --local user.email "actions@github.com"
git config --local user.name "Github Actions"
- name: Build docs
working-directory: langchain
run: |
@@ -156,4 +96,4 @@ jobs:
- uses: EndBug/add-and-commit@v9
with:
cwd: langchain-api-docs-html
message: 'Update API docs build'
message: 'Update API docs build'

View File

@@ -7,7 +7,7 @@ on:
jobs:
check-links:
if: github.repository_owner == 'langchain-ai'
if: github.repository_owner == 'langchain-ai' || github.event_name != 'schedule'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

View File

@@ -14,7 +14,7 @@ on:
jobs:
langchain-people:
if: github.repository_owner == 'langchain-ai'
if: github.repository_owner == 'langchain-ai' || github.event_name != 'schedule'
runs-on: ubuntu-latest
permissions: write-all
steps:

View File

@@ -8,7 +8,7 @@ on:
required: false
default: '3.11'
working-directory:
description: 'Working directory or subset (e.g., docs/docs/tutorials/llm_chain.ipynb)'
description: 'Working directory or subset (e.g., docs/docs/tutorials/llm_chain.ipynb or docs/docs/how_to)'
required: false
default: 'all'
schedule:
@@ -20,7 +20,7 @@ env:
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'langchain-ai/langchain' || github.event_name != 'schedule'
name: "Test docs"
steps:
- uses: actions/checkout@v4
@@ -33,13 +33,28 @@ jobs:
working-directory: ${{ inputs.working-directory }}
cache-key: run-notebooks
- name: 'Authenticate to Google Cloud'
id: 'auth'
uses: google-github-actions/auth@v2
with:
credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Install dependencies
run: |
poetry install --with dev,test
- name: Pre-download tiktoken files
- name: Pre-download files
run: |
poetry run python docs/scripts/download_tiktoken.py
poetry run python docs/scripts/cache_data.py
curl -s https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql | sqlite3 docs/docs/how_to/Chinook.db
cp docs/docs/how_to/Chinook.db docs/docs/tutorials/Chinook.db
- name: Prepare notebooks
run: |
@@ -48,8 +63,12 @@ jobs:
- name: Run notebooks
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
TAVILY_API_KEY: ${{ secrets.TAVILY_API_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
WORKING_DIRECTORY: ${{ github.event.inputs.working-directory || 'all' }}
run: |
./docs/scripts/execute_notebooks.sh ${{ github.event.inputs.working-directory || 'all' }}
./docs/scripts/execute_notebooks.sh $WORKING_DIRECTORY

View File

@@ -10,7 +10,7 @@ env:
jobs:
build:
if: github.repository_owner == 'langchain-ai'
if: github.repository_owner == 'langchain-ai' || github.event_name != 'schedule'
name: Python ${{ matrix.python-version }} - ${{ matrix.working-directory }}
runs-on: ubuntu-latest
strategy:

View File

@@ -1,3 +1,3 @@
# LangChain Documentation
For more information on contributing to our documentation, see the [Documentation Contributing Guide](https://python.langchain.com/docs/contributing/documentation)
For more information on contributing to our documentation, see the [Documentation Contributing Guide](https://python.langchain.com/docs/contributing/how_to/documentation)

View File

@@ -222,9 +222,7 @@ html_theme_options = {
},
],
"icon_links_label": "Quick Links",
"external_links": [
{"name": "Legacy reference", "url": "https://api.python.langchain.com/"},
],
"external_links": [],
}

View File

@@ -530,9 +530,9 @@ def _out_file_path(package_name: str) -> Path:
def _build_index(dirs: List[str]) -> None:
custom_names = {
"airbyte": "Airbyte",
"aws": "AWS",
"ai21": "AI21",
"ibm": "IBM",
}
ordered = ["core", "langchain", "text-splitters", "community", "experimental"]
main_ = [dir_ for dir_ in ordered if dir_ in dirs]
@@ -600,9 +600,11 @@ For the legacy API reference hosted on ReadTheDocs see [https://api.python.langc
]
for header_name, dir_ in sorted(
zip(integration_headers, integrations),
key=lambda h_d: integrations_to_show.index(h_d[1])
if h_d[1] in integrations_to_show
else len(integrations_to_show),
key=lambda h_d: (
integrations_to_show.index(h_d[1])
if h_d[1] in integrations_to_show
else len(integrations_to_show)
),
)[: len(integrations_to_show)]:
integration_grid += f'\n- header: "**{header_name}**"\n content: {_package_namespace(dir_).replace("_", "-")} {_get_package_version(_package_dir(dir_))}\n link: {dir_.replace("-", "_")}/index.html'
doc += f"""## Integrations
@@ -647,7 +649,7 @@ def main(dirs: Optional[list] = None) -> None:
dirs = [
dir_
for dir_ in os.listdir(ROOT_DIR / "libs")
if dir_ not in ("cli", "partners", "standard-tests")
if dir_ not in ("cli", "partners", "standard-tests", "packages.yml")
]
dirs += [
dir_

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
eNrFVs1u20YQbk8FfGrfYEu0zUWUSMk/EouicGU7DQzHjiUgcX5grJZjiTa5y+wuFSuGDnXzAnyE1ooUCHYSowF6aHrvoS+gHvos3ZWov1h2bioPIndmduabb2ZnddqpAxceo5+ee1QCx0SqhYhPOxyeRiDki3YAssbc1s52qXwWca/3dU3KUDiZDA69NKayxlnokTRhQaZuZwIQAldBtCrMbfRenBgBPt6X7AioMByUXUohY2ii1o9ODM58UF9GJIAbSkuYwkGlFpXB91EACKND5cBoPtGbmQu+VhIfRy6YOVMwSkGaWSu7aGWzBe1DSA44UFaSR9Ds1AC7Kst/P/m8VWNCxpdXkL/BhEAoTaCEuR6txhfV516YQi4c+FhCl+gYfWri7hFAaGLfq0N7sCt+i8PQ9wjW+syhwnOeJGHKRghX1V2dq6kooDJ+vyoalKwOwWR2Goptiqx0bjltvT02hcQe9RVjpo8VrnbY1/8xqQgxOVLOzKSScXuw+fWkDRPxyy1MtktTLjEntfgl5sHy4m+Tch5R6QUQd4o7V8MlynG4XNq20yuXU451UvFF/+X0fz12OWJ8tLWripYzrWXTsn+fCgGSN0zCVKT4F+v1kE0faFXW4jM7l33FQYSqUeHnttomI3HaUpWDv//qJN316/bmuO5ftNZUFeM/74ObQvYy2iYS6X5Bdt7JrjhLi+j2Vvm8mIQp66L1kIRjmYG6lgz66VtEapgLkN9F8sDMX5Y5puJAVXJ92DUdUovoEbjd4sx+uShiUgNTx1FdH7+izCRa0jPG1HAF1PcCT5rJAVSF18u4tWhZVu+bGy05BIpCjaSVKxQKH/GrKAQZv9NEmLZl2svlIR0Pe2jWzsExTvC0NR6F6KsbLMd4htboRutr8OQedhPQpufG79X3vmWXCkubh7u5xrN77vpBtFHYy9eLzzfO6h6Ou3baRlXGqj68KW6YA9ZL/TaJO2t7d1e37hTPH5i7rMIUDWWs6KKMQrsEXHVm3CU+i1x18Dm01fbd1b34Xd7NYbti5Qp52110rbz5w3apP+J+Uv3HVYb/fPa03ysOShpwX/UllwsulthBJ4aeBIZjTCmN1HBtOCeG52q9qKrcNh4EW+XSpheuB7d3+L27e3sra7uuMp/2ogSD6WlgITzlkvZdDibkDQNyPGMfPUmpYcnCfdXfysxwaOT7iUhoyimBoTAaAaVhJEcz3bZTBovklKjZRP2nubCQkJJE3K/4jBzNpmaGiYLqUReODcdKTes1jmSfPqeaGv1yDONK6FBV54NYyNBC4zp4ij+Jb4bXN5mCN5BMwxqZJeB+BA4DgHMPfUsk1yg6YHxI0uiZOxzUYJHzmD6m92uNMZr5wyCYJuHnXxGpKlLxSIP4gPTh/b+AuCgKUaUx2RTzL4QnBfgH36M78pboI5k/BPmMmdLrn9D51+DLqTN5/eBk4cfmJgsnol93zIf30MyEppTGRAJTV8XkP/uZV0Zz4s744IbILjWvATQrw0mdMZHLf6ahi3k=

View File

@@ -0,0 +1 @@
eNqFVFtoHFUYTolC+6DGPoig6DikYjVnd2ZndzMbKzZuL2rZbmhWkqZoODvz7840szOTmbMhsSTUJFaxIBy0D9EX22x2yxqbhkYLSZVKo/hgvWC8rGBKKb6JBFGRIKlnNru5kBDn6cx//f7v/84ZLPSA4+qWuW1cNwk4WCHsx6WDBQe6s+CS4XwGiGapuZZ4a2I06+ilXRohttvk92Nb92GTaI5l64pPsTL+HtGfAdfFaXBzSUvtK/Wc4DO4t5NYXWC6fBMnCoFgA8dXg5jl2AnesQxgJz7rgsMzr2IxJCbxTG0aJpzuciL3BBd4mu9/0Uu2VDA8p2LgrApIQq5lmkBQgBUXAoEI31/QAKtsrvmaupxmuYRObsA6gRUFbILAVCxVN9P0g/TLut3AqZAyMIGi4tUsk0GLXQA2wobeA/nlLHoR27ahK9jz+4+z/uMV0Ij02bDRXfRmQ2xkk9DLzVUc/pY+Rq3JCT4p7BMu9iKXYN00GDnIwAxS3i77Z9Y6bKx0sTqosjaaX06+sDbGculYDCvx1nUlsaNodAw7mXDw0lq7kzWJngFaiLZsbFdxrraTfKLoa5xcV9jtMxU6lsKGC5MrJK+kFNleJCSEkSBeXlcaiNOHFIt1oGeFC1UCDTDTRKOjoiifd8C1mRphKM/SSNYdzLFlwZdfFCoCOhc/tLrqnbl9bHH04zZQGzgxzMUVwnmS4ES5KSA3BWXuYCwxHq20SWy6p8mEg003xXa1v6qLgqJlzS5Qi9FNFVHiVyd2WH9Dz+gEVS4P26P3S3NBQRBKj24Z6UCGMeN1zEmRSOR/6jJmgNApbz4kCkgMJ5anDAU7StxmmctXsIIn7+FhiOq3iFzFU43mtozeHE9Q7ihWQCNdpVfYuVMQQ23d4YNEFk1RS0J7RAwFDriZxg97kWJYWRUR9gwBKguil9ASJ6UkSRZCycakIAmhSESVQI4EcTgYUTGoycbRHh3TougTubRlpQ2YiB5AUaxogFrLsqGFfUcPN8eei463oyNW0mL8JTDj2bRMyLeCw5RKi+XW7O47kGfpR5qP0ilZlbCohOQQqGE5pabQM+xKVQW0IpCc93CUn7tXmEwdZpqde/j09pryV5t48/rzs3vrhjt3zX2/o/6t/eTqoatPNfQu5Pidp3Klu776W/3ul/eGr8yo3w4VBicGzt956+TJSw/OFAfmj52YnmnpspYWFuf2/P7S5x+dGhqIT409W//Qjrvdww+8zo9q6qvXIve8XfdNQas9E9s9MjL155kbL8zfuHb26/HZNxY++Tf2eH/m1/fvmPssdvP0a+c+XbzJvVMw84+N3Lt3Dzku3fqxbvr+7vh2Y3fkp7862oU/1J/1pfr7hhd/eOTdpej16SUG//bt2pptpd+e/Ied/wPrJ3ik

View File

@@ -0,0 +1 @@
eNqFVFtoHFUYjqRSwSC13qA+dBi0iMnZnZm9JBuKIdlUMZoLydY2qTGcPfPv7jSzM+PM2bhpaNW0aoqiHARffIg1m92yrmmDrSmkBaVWS40SGwpdwRuC+FJqQayIEM9sdnMhIQ7zcM75b9//f985o7khsB3NNO4oaAYFGxPKNw4bzdnwYgoceiybBJow1UxXZ09kImVrxUcTlFpOo9eLLc2DDZqwTUsjHmImvUOyNwmOg+PgZKKmOlwcGhGTOD1AzUEwHLFRkCXFXyeIFSd+cmBEtE0d+EpMOWCL3EpMjsSg7tG+BKaC5giyUCsoTeLhfjfYVEF3jUTHKRWQDzmmYQBFCk8uKUpIPJxLAFZ5Xz9WbcskTIey6XVYT2FCwKIIDGKqmhFnH8cPaVadoEJMxxTyxM1ZGgbLDwJYCOvaEGSXothpbFm6RrBr9x7k9Qtl0IgOW7DenHd7Q7xlg7KZ5goOb9cwH60hSB5f0COdTiOHYs3Q+XCQjjmkrFWyz642WJgM8jyoTBvLLgVPrfYxHTbZjklnz5qU2CYJNontZND/yepzO2VQLQksF+5aX65sXCnn88iyp356TWJn2CBsMoZ1B6aXh7wckue8+JAURJI8syY1UHsYEZNXYCekqcoAdTDiNMEmZLnhpA2OxdUIR7M8jKac0QwnC+Yu58oC+rDzmRWqt2daOXHswj5Q6wQ5KHQSKriSEOSGRiXEf+Gp9kghXC4T2ZCn6YiNDSfGudpT0UWOJFLGIKj58IaKKIorHdu8vq4lNYrKl4fz6G5Zxi9JUnHXpp42JPlk3IoZXygU+p+8fDJA2Rm3PyRLSA5GlroM+PuKwkaRS1ewjCfr4uGIHtnEcwVPxVvY1HtjPEqoL18GjTSVnefrAUneCy0BpS0tB1r2d3MisdZntpE9Z9OI6GZKRZQ/Q4BKgkhTVhRA8dXLUa6imKrU1/tIwBfAIQC5ISjHfH5/dGJIwywve2QhbppxHU6Fn0RhTBKAekqyYbnW3o7m9qfDhf2o24yafH4RzOdsmAZke8DmSmX5Uml+923I8vDu5l52pkH1YVkNYCkqSyEpGEUt/EpVBLQskIz7cJSeu1e5TG1+9MXVnW/eVVX6qiNvf3PworTt2MClubPKdfuxyPyBjkszz7e0SfkL53ZduXJt6oPjt2YfeuOv+YXP6pvmRrVXLu79cir/zk4ycn38+8z4whPXbvzSfvPXu2v+DC68J97btL2mu+bhP8R3T8Zf+zxwz/0/z28d3/r4+92iT9NqZz8q/BD753Jbwbr59U+Zq7efOzIW7t/9wKdptKMQr/6u4aXj51tfr741r3W8NRD+vfa+21u+Cm05+u+53x58dnf8hv+FsTunjgTHehdPxPpf5uAXF6urDu0Y+fZvvv4PjzlyYA==

View File

@@ -0,0 +1 @@
eNqFVFtoHFUYTokPKgiiFYq0OFncoJizO5fNZDeCNdk0aau5mKzG1pZ4dubPzjSzM9OZs2nWECE3bxXlPIgIBbHZ7Oo2bROSEqXqg82DSsVL2+AKaqUWX0SxL7aIxDOb3VxIiPN05r9+//d/54zk+sFxdcvcNqWbBBysEPbj0pGcA0dT4JKxbBKIZqmZjvau2ETK0Qt+jRDbrQ8Gsa0HsEk0x7J1JaBYyWC/EEyC6+IEuJm4paYL/YO+JB7oIVYfmK6vnhN4MVTD+cpBzPLcoM+xDGAnX8oFx8e8isWQmMQzdWuYcLrLCdwjnLjbN3TYS7ZUMDynYuCUCkhCrmWaQJDIivOiGPEN5TTAKpvrp4q7M5rlEjqzAetZrChgEwSmYqm6maCnEy/odg2nQq+BCeQVr2aRDJrvA7ARNvR+yC5n0Wls24auYM8fPML6T5VAI5K2YaM7782G2MgmofMNZRzBjjSj1uT4gCQH+OkB5BKsmwYjBxmYQcraRf/5tQ4bK32sDiqtjWaXk8+sjbFcOtmKlfaudSWxo2h0EjtJOTS71u6kTKIngeaiHRvblZyr7aSAIATqZtYVdtOmQid7seHCzArJKyl5thcJ8TLihfl1pYE4aaRYrAN9jz9TJtAAM0E0OiEI4fcdcG2mRhjNsjSSckcybFlw8fNcSUAn259YXfU9mSa2OPpJN6g1nCBz7QrhPElwQrhe4uslkWtpjU1FS21im+5pJuZg0+1lu9pT1kVO0VJmH6j56KaKKPhWJ3ZYf0NP6gSVLg/bo/dLMyGe5wvVW0Y6kGTMeB0zUiQS+Z+6jBkgdM6bDwk8EuTY8pS1oYMFbrPM5StYwpP18DBED24RuYqnHM1tGb05Hkk8mC+BRrpKP2bnHl5ofuqobodaUolYZ7eEY2pjW4smiOcGkGJYKRUR9gwBKgpigNACVydH4nI4HhGgThIFrMp8KKQoUi3Pi1iWa+WJfh3TvBAQuIRlJQw4G21GUaxogLqKsqG5pgNtDa37olPPok4rbjH+YpjxbFomZLvAYUql+WJrdvcdyLL0zoYDdC6sSlgA4CMRlY/wYh1qZFeqLKAVgWS8h6P43A0zmTrMtHDlgeO3VxS/ytgbX+2/8Pj28R7/idP37q0+991wYH/V8cCeQw/5X//CP9b2Z+ajYx13pI/t+3b8VOXPt365uKM+fGjSeu0GXNp9pXLo8tvzv3194doHP+zq6RsefvHNuezehb9vG334pfsGaMPl2c+u3v/onbY22r7r+tMB+k5ofvzH7Yt/PP9N8zPx8cF3l6rf+nTxxuGdX/5eNVt47NT0ibuarn3/5K9+cecr55svLdysHTNf/dAfbqvakfmntk65KugTfzXW2NcXuep/X87DrW0VFUtLlRVwZG7wJpvlP8uBc0g=

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNqFVF1sU1UcH4EQgh8jkviwGHdpNkzcTntv292uJSTUzokfc4M1OoZkOT33rL309t7Lved2K8semEuQzECOidHNgMC6FmvdWAbhQRiJEGIUH5SZWKMkU+ODihhYxPiC53btPrJl3qdz/5+//+//O2cgm8SGKWvqurysEmxARNiPSQeyBj5kYZMMZhKYxDQp3dbaHh61DLlQGyNENwMuF9RlJ1RJzNB0GTmRlnAlBVcCmyaMYjMd0aRU4XifIwF7u4gWx6rpCHAC7/bWc45yELPs73MYmoLZyWGZ2HAwL9IYEpXYpp4YJM+YXEqzDE6FCezoP2CnaxJWbDdSoCVh4AENwNRUFRPgZg140c3bdQhO6GwiYhl2ed7J92djGEps3tsVW9IxzSR0csUMExAhrBOAVaRJshqln0QPy3o9J+FuBRKcQ3afIkk0F8dYB1CRkzgzn0XPQ11XZARtv+sgw5QvDQNISscr3Tl7ZsCoUAm9FCzjcLWlGOUqg+wRnfz5XmASKKsKIw0okEHK6EX/p0sdOkRxVgeU1kkz88njS2M0k461QNTavqwkNFCMjkEjIXqnltoNSyVyAtNsqG1lu5JzsZ3HKQhO3+SywmZKRXSsGyomnlwgeSElx3blAbwIeOHSstKYGCmANNaBnuHHywQqWI2SGB0VvO5zBjZ1plL8ZoalEcscSLNl4ZufZ0vCOtv68uKqn0g3scXRK69jqZ4TRK4VEc6WCSf4Ax5PoMHHvdASzodKbcKr7mkybEDV7Ga7er6siyyKWWocS7nQqoooOBYnZhrEipyQCShdKrZH+5emvTzPF7avGWngBGPG7pj2+P3+/6nLmMGEXrDnAwIPBDFsT+kNNHg7C9xqmfNXs4QnY+NhiGrWiFzEU47m1oxeDQ9jXezMlUADWaKX2bmLF8QWEkniSE8qrvsO9xgopYY8ncGLvQApmiUBwp4nDIqC6CW0wCHkE/0SFn2i6PF4PW7kbkT+Rh77fA1+UWh0jyZlSHOCU+CimhZV8ESoGYQgimHQXpQNzTbtezXY8mIo3wH2ahGN8ReGjGdVU3GmHRtMqTRXbM3uvoEzLH1vcB+90Ch5oC+CBD9r7UWIB8+xK1UW0IJA0vbDUXwGjzCZGsx0/bfqoU0VxW99+PhXL13ftWWwC+eH3jtW8/W3ePxU09+nT592wN0j+JVvtt7amRd++bE2WHlq8/S/Z7oHNz5+5amPL/d+9+DO/d9nD+2ufjDd79958sbdDzY9cnJjZ3vNTyc2DAnJur8cwZmpz86eeMzSz+34sOoL59SB7XTYW3f/3rNXnWbHDH23Y/b2r1f3jE1cnD52Dbr/6HMHb94RCfxz7o1Hj4683Xxr60fDkcC1e+q2qqMHa1x0dtcP4ZHmGxPb5obfig/8PGM9Ke+4273h6Xdeq9ofOVK3eej9uervwZeVbKiHD9dXVFr/1Fatq6j4D8RVhls=

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNqFVG1MG2UcZ+ODJiZKlsU4F+RS36LwtHe9tlASo1hABys0tIaXZWFP7/60N653t7unXctCFlGnhqBeoiOLMWZS2q3BUSJmyuTDDDFzm8oHjfbLUGdm+GRioosvGT5XWl4Cwfv03P/19//9f88zkk2AbkiqsmtKUgjoWCD0xzBHsjoci4NBXs7EgERVMR3oDIYm4rpUeDRKiGY0OhxYk+xYIVFd1STBLqgxR4JzxMAwcASMdFgVU4WxE7YYTvYTdRAUw9bIcCxbx9jKMdRw6IRNV2WgJ1vcAN1GvYJKgSjEMh2PYvK4waTUuM4oOAa24cNWuiqCbLkFGcdFQDxyI0NVFCDIyTpdrMfJWnUIxDQ6EInrVnnW7h7ORgGLdNwbFVXpqGoQc2bLCNNYEEAjCBRBFSUlYn4YGZK0OkaEARkTyAlWnyJHZm4QQENYlhKQWc0y81jTZEnAlt9xlGKaKg2DSEqDre6cNTOiVCjEvNhUxuEIpCjjCoXMe+xsPokMgiVFpqQhGVNIGa3ov7TRoWFhkNZBpW2amdXkCxtjVMOc9GOhM7ipJNaFqDmJ9ZjH9dFGux5XiBQDM+sLbG1Xcq634+0cZ6+f2VTYSCmCOTmAZQNm1kheS8nRXfGI9SCWu7ipNBA9hQSVdjDPshfKBMqgREjUnOBc3DkdDI2KFF7K0DQSN0bSdFlw/Uq2JKwPOtvXV70n3UwXZ853g1jHcB6mUyCMJROG8zbyfKO7gXnOH5ryldqEtt3TTEjHijFAd9VS1kVWiMaVQRBzvm0VUbCtT0w1CLIUkwgq3Sm6R+vXTLtYli08tmOkDjHKjNUxzXu93v+pS5kBYs5a8yGORZwnZE3panS7+grMdpmrN7OEJ2PhoYge2SFyHU85mtkxejs8Fut9uRJoJInmZ/Tcz3IdiViwWXwhnAwPPd/VPhCCwWCbp/vjJBJkNS4iQl8nQEVBJIlZYFwN4PWwYS+PnSJfz4uehjArDtSDi3VxYTdwEwkJmznOzjERVY3IMO1rRT4sRAEFi7Ixs829HU3+A76pHtSlhlXKXwhTnhVVgUwQdKpUM1dsTe++Dhma3tXUa842iDyuDwvgbWBdXtZZj56lV6osoDWBpK2Ho/gKvkhlqlPTwnLN6N0Vxa8y9Ia//dQze19ZuUo8sS8CS28eOd3SdHn/d3abuHjt2ts3uN+qAwsrD7Whvurk13dFWqM/Ln756dXR3+8kb5P5k/ver1n6+atfP6n9JT2dXzyfdbfY7hzMPxC+tNuxp/mp2rq5HwL3vDr3x/mz8ni18/Xr6d4z4//823Mrf+7h2pnP5785OdF2s29p4SfXvj+rzzC3EvvnnPcNPXHK52+dWH7t24Pc4SN/5avGht1vjV/RGOVJf+XN76v+7lhwXz529NDo7HvH+d23D9SO9S/s7t57P7f8NOk5XUNnWlmprHgX3fvOg7sqKv4DQ4+FEA==

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNrFV81uGzcQbq8BCvQRCAK9aSWt5cjuFj04chIXReI0NpAESWDQ3JGW0YrckFzFiqFD09562kdo40ip4PwYLdBDU6DHHvoC6aHP0qF+bK3/cqrXB0uaITkfv/lmSD4bdkEboeTH+0Ja0Ixb/GGyZ0MNj1Mw9vtBB2ykwr1b6xubz1Mt3n8WWZuYoFJhiSgzaSOtEsHLXHUqXb/SAWNYC8zetgp773/epR22s2VVG6ShAfGrC4slQmeD0HJ/l2oVA36jqQFN0csVIpHWme5oYYF0gDDiE4cUiFGyRdi2Si1pqThsChMRJYmNcJxSkvYfugAqhNgtwGOWhuDVvIiJduotYPxqrbrkwhirgXVwkNUp9IcRsBAD/PvRp3uRMjY7OLG9N4xzSKwHkqtQyFb2qvVUJCUSQjNmFkaIW8KYv2zUBkg8FosuDCazsrcsSWLBmfNXHuEu9qf79GwvgZPukaPDQ5akzd6tmJ7kKzMwlVs9TIkk1XKtXq6+3fGMZULGSKoXM8Q1SMb+3+cdCeNtXMybpjsbTCa/nh+jTPbiBuPrG7klmeZR9oLpTn3xl3m7TqUVHciGjVsnw02dR+FqZd8vLx3kFnabyl6NP4Lxf6EODhk/nDrCpNW8at2r+r/lQoDVPY8rjJT9WH09YzMG2bJR9tyvf/5Sg0lQzfDdAKfZ1Dzbw8zB338NpwL8af3rWd5/2FvFHGZ/3IGwRPw6WeeWOLWQhVrgLweLi+T6jc39xjTIpkvZe2Jhx1ag6ywTNX1BeMRQpfbL1Da95YNNzaRpYh6vzjQz5FEq2xCOGqeq5VWD8Qg8FwfLInsplcedZTQtR0+E2Tv8vlX1r1xL1r5Zrd9tPLqWdJ+20x0wKnryvCtYNvLLPlaHasXwpnHNm6y5MaYgG67eu7ly46vG/l3vttpW1nibrJXtSSVhsAEaWc9GPFZpiKLWMMDpt1fuZb8uh7VtfrnaXGhuLy83+ZJ3ZX1jXOPfIrcad/bPJ3+OmQjIlNwt5FzbSyGzLCC71KmcBjTnpKXZbxrsUhE6v2nh3m6y3lonWmK1hatXpO7yp3f42pqPw/OroGHSPCgzRuCScrzkpPjPrv2jDnP/YQn7gEq2MHlYczSQaRxPTcYxLjnMjOkhTpmk9rCnLfglis1o3rTY75PZX//SpSkt06Bb27Hi7dPJOWUIohUyhB0aVEt5v4Myned06MhxHwGl/fmwCebmWBxCnZGeBQ3Zs+x8aOMhOWgTSx7S4bApsDXQQITBZk6PCDqHo/8NyPxZkoNy4UhOnmQF45mdowHiuPDoD+QDeT2eMHDhwUWnA66REcMZHjAF50HkhVCUFOJUMn2I5OIxxKIV2dIRFQVI8vqsNs0TlAgKpHQsM4W0DVlQlRB8DWAbLzAjLCbGqaI8xlCAIFZpv7jMa9G0rkm5W3LailyR5s/7i9LBBrCCW6RqEne/fpwWi0PEwvZKhSThgVx5nOKTkZMnTBZYkviAwvtUCS92PNVCmYKvd5iP8vEeffY9XCUfuoarZA7Cma1/9rI5dVs5J53bRu71QUGGWzbVkp76BunPPUKOPTnql/vnQDptk/M+Opn1H6qTRYc=

View File

@@ -0,0 +1 @@
eNrNWE1zG0UQhWtOHPgBU1NFcdFKWst2HFEcjBIHAo5N5CJJJSnXeLelnWg1s5mZtSxcOhC4cdojR4gjBZXz4YIqDoQ7B/5AOPBb6JFW8sqWgZMWH2yp5+O96X7d057Hg31Qmkvx9jEXBhTzDH7RyeOBgkcxaPNNvw0mkP7R9lZ950ms+Jv3AmMiXS2VWMSLTJhAyYh7RU+2S/tuqQ1asybooz3pd9/8eEjb7GDXyBYITavELS8tFwidTELLvUOqZAj4icYaFMVRTyITYazptuIGSBsIIy6xTIFoKZqE7cnYkKYM/QbXAZGCmADnSSlo74EFkD6EdgMvZLEPTsUJGG/FzhLilyvlyxZGGwWsjZOMiqE3CID5CPDXW+8cBVKb5OTc8V4yz4PIOCA86XPRTJ43v+RRgfjQCJmBIfIWMPJfMmwBRA4L+T70x6uSVyyKQu4xO156iKc4Ts/pmG4E54eH1h0OekmY5PW67gpvfUKmtN3FkAhSLlZWi+VXB442jIsQneqEDHn1o9H4r9mBiHkt3MxJw530x4tfZOdInTzdZN5WfWZLprwgecpUe3X5p6xdxcLwNiSD2vZ5uHTwFK5SdN3i5ZOZje2hkuejP9XRby5Pph6fLh1i0CpOedUpu7/MQIBRXceTiJR8X34x8WYIommC5Im7euWZAh2hmuHrPi4zsX58hJGDP34fpAL8YevTSdy/PbqKMUx+uw1+gbirZMszxKqFLFWq7lp1uUKub+4c11KQHRuyN8TAgSnBvrWM1fQB8QKGKjUfxqbhrJ3sKCZ0A+N4baKZgRfEogX+sDZXLc9rzAvAsTiYFskzIR3PWoZpOjrcT17j592yuwZupVKvbV673pFLX8BN/tmjz7fvPNnnLBm6RRezQzZDeFnbcMZ71kcuSAZX795c3/ykdnzHuSX3pNHODmsmR0IK6NdBodeToRfK2EdRK+jj8lvrd5Of1/zKnrdSXm002NKVsus6H23VRzn+FfpW4cn+fPe7kSeqJHXuLvpcmUs+M6xKDqlVOa3SmUFamHyn1UPKfTuum3i2ylU3uNGB5srKyvIVV6zf8OobN27i9Nld0DAuHpRpzXFLMdpynPwX5/5phbn3oIB1QEa7GDzMOVoVcRimJm09LjyYGOMpTxHFZlrTltwCxWKUNbm9HiG9S5dSf6Rou3uh9FrzvTJnCtLkwocDWi0XZscth3SdFaD1iv1TpRRhJz+n8BEG5wweodZIL6KI7jPsnymOpsxQHFtmqU2npQQ/BgVTkgtHf18j9sJR8erC1DoNzcIJOFlZ5MJg3sV9ltTiWc1pHXJgUb0v7ovrY3/8P1yQRywK+VWF+6Le4e32qB7mJ0bCBRYKvMBamCe0t3h8nVcCpKHPIe4bocR2G4sSqj9zL+UmgQ7HNjo2eeWg1V8sYH4TsSgxYC2cXg0LR8cykF8dAttE2zJga3EYC6ZGXBYvg2Y+uKHsFPJvCogMcpNfMdfUG3Uh2YYgl2bZNiGFPJAz18E4B7nKtR/osFxuYwOqS5SUORZCvANuS1yh8m7JAtnJrRZYBXbx/ySDjRlpMJVrODZUqodc3MBzPDxqoA1kDwQwE8zeTrn4gtinIV38D2lhn7D+7ZVJRhkS2a0mj3RzzzIzSDPcZx7SKAh/18RK0LnPab3Me9qZ17O1td4FPcDp2+H5s2XH6Nn1fwPDTpTu

View File

@@ -0,0 +1 @@
eNrFWE9zGzUUh2tPzPAFNJqBk9f22iZJzXAoKSmlExIST/9M28ko2mevyFraSFonJuMDgRun/QiQ1C6e9E8GZnoA7hz4AuXAZ+HJXid2mhROXl9svyfp/fR7/yQdDjqgjVDy3RMhLWjGLf4x6eFAw24Cxn7fb4MNVXC8vrbZOEq0eP1BaG1s6qUSi0WRSRtqFQte5Kpd6vilNhjDWmCOt1XQff3zAW2z/S2rdkAaWid+uVIrEDoZhJKHB1SrCPAXTQxoilquEIm0TnRPCwukDYQRnzikQIySLcK2VWJJS0VBU5iQKElsiOOUkrT32BlQAURuAR6xJACv6oVM7CReBe2Xq+VFZ8ZYDayNg6xOoDcIgQVo4J933jsOlbHp6Rvbe8E4h9h6ILkKhGylz1rfiLhAAmhGzMIQcUsY8ZcOdwBij0WiA/3xrPQli+NIcOb0pa9xFyfZPj3bjeFN9dDR4SFL0qavbkxwlNa76A1JysXqQrH8ct8zlgkZIZ9exBBSPx7pf5tWxIzv4Dpe5um0P578fHqMMumTVcbXNmeWZJqH6ROm2wu1X6blOpFWtCEdLK+/aS5TnpurFn2/uHg6s7DpSp4+abLIwOkZyWdThuinqlde8Mr+q5mlwequxxVaSH8sP58QGIFs2TA98heuP9VgYgxg+K6P02xiDo/RWfDXn4Ms5n5auzNx9Q/HN9Ft6R/3ICgQf4GscUtcgJBKte4v1WsVcmu1cbKcGWk4L70mFvZtCTpOMg6gjwkPGQam/SSxTW/ptKGZNE103WeTMBnwMJE7EAyXLw2QZ8uMh+A5O5gJ6VOpPO4kwywDPRGkv+PvrbJf8RcrrZXratfwQItazW/z+42lo45g6dAv+pgQqhXBi+UVb7zm5oiCdHDzwZc3Vm8vn9z3NtS2ssZrsFZ6LJWE/iZoZD0d8kglAcaxhj5O37jxIP11Kahu81oTFjnA9XJl0ft0bXOU1t8itxp39vf7H46YqJOM3C3kXNtrAbOsTg6oC2xapzNKWpj8p/UDKgKnNy3c28p+l4VftGv7dzR8dfeurm6IXe7j8NlVUDCuF5QZI3BJOVpynO9Xp/t5UXn4uICpr+ItdB6mGa3LJIoykXGMSw4TYXKGU8aJPStjFb9Asf5Mi/xej5x9eteuZbxkVre2I8V3LmfnkiEIV8gA9mm9XJjVOyzZPBeIjh33Vad0yvwMghj9dMEkoU5Ir0KJTFr2dpSjITMox5JZdGfDMoyfg4Yrcc4JAxHG9ZIpGPOHcLGPZWDmD+RC/zwnZf5QXOuujwHM3fgj+UiuRApbr8uKPHYfilZ4ITNyQIHB2IHRQQqwCJ0DmjuSwiwXOQTErSwz8neK2RNtImRuNQLrE2hi8AwJxYts5OGZBhORIc1I7WXZmnN4zt8jTSENSWQz71aa6AgPznl20kfytsypZ7gyKXS+gbDH0P7czWI56JIokUznk32kpbEW5dwhirmcE7AvRbkYFu4eS9wtPZk+qOSSdcRdkXJhAeNe4kHNFvI7GWH/C8FA/o3Y3R1yccL4whKyDpKQwxE5x4MYxr7eUzoKoi4xLg5zan3F/1d73YPKf711qHjK+lURPXk+unRDM0o6tYGZJx4KMtiyiZb00oee3tRLz4V3ncWPem/DdNkmp3V0POtfnGQOOQ==

View File

@@ -0,0 +1 @@
eNrtVnlwE9cZFzEhkDDFgQnTMgHLKk1ozEq7ugV4gmzJR4MtyQfGeIy72n3Srqw9uruSr4LBFAKYkKydBEIIFF+ixpjDhgRzToDCACEcDhPjpgmEJCTFEG5Sg+mTkIsZ6H/9Jy2rGWnf+773+67f+/RVhYJAEGmOHdRCsxIQcEKCC7GmKiSAPwSAKP2piQESxZENTkd2Tn1AoLteoSSJFydpNDhPqzkesDitJjhGE8Q0BIVLGvjO+0EEpsHNkWVdVRUqBogi7gWiapKyoEJFcNAUK8GFKgf4/UoGKHGljysGqolKlcD5QVgSEIGgml0IdxiOBP7wlpeXED2HMDRLhzVZuIfBX1ESAM7AhQf3iwBuSIDhYShSQAgjoWp0dogCOAkD/bsitoHiRElufdj5jThBAIgOWIIjadYrb/CW0/xEJQk8flwCzdBjFkRSIzcXA8AjuJ8Ogqb7p+RNOM/7aQIPyzU+kWNbohEiUhkPHhU3h2NDYD5YSW53QCes6RpnGcwyq8TUerMa3VSKiBJOs36YNsSPQ3+a+Ih8x0ABjxPFEASJVlBuun+4daAOJ8qNGTjhyH4IEhcISm7EBcaobxu4LwRYiWaAHEp2PmouKnxgTqfGMLVp80PAYhlLyI2RQnz40GEgCWUIwUEMeS3aRHBcMQ3krqtFRYSnyM0kqn/n9FqduU6DwZVtTPVPc2enpYh0qsGZk2TjfZzdM8NqZSk8YM8vQTCT1oKZdPCDYGpUjakxpAhkmo2U6Ja0GZZAMMOaYcs2StYcZlqZ6MoT0bzigMGtNqa7swNlPnMQvhmBd+ZMq9OLW7XFfoertDxT788OenyvpbnTLdNtUprdhbkmK6F3gSBNJmYGS1N8NpCZn4UWJeWlqzN9rnQcs+t1WiF5Wj6FpdvUafkeny3fzg1wT6s1I2jUQyOqN6Php7WfG37AeiVKrsd06DoBiDy8L2B+E0yZFBCrGiAPwdFDoejFqXO89oDCoxtskJPyrhwqMFGJmZQOQlJqUa1eieknodpJmFmZmpHTkhw1k/NYCm7OEXBW9EAa2vspHyKoAFsMyObkx5J9V5jssJJh9+EdRUApz4kAiXolt8xAsu53DCTd1nb/ZiGc4MVZujxiVt4VYX1JeWkJSQRIkgqWMKilXK+j3SBAeNqjR3iBC5uBDiGMKNcbDVhrVNLPu2YYK4pgKIJiHaUIvObATzM0zGfkO9q2RLnBAJP90aMKEuwzrCiH9JFqoLsHagiAgYQN234Ao7dYLDsfr9QPpYMqFpOl42EtEQz0BtMy4kePKkQh6lCxpbRfG6FJuWs8XBShWlxn8hBGyCWUJEkLQN24yeMxEajZjBk9hu2w9dEERAkXk+cECREBAXu0VCZ3TWTw0nCPSdRhBp0RRjpZSbOEP0CC7IDbxoVjECcreQH4OZzcmJyCJOMEBZDsCP/kkC0/05qRnrxtBjKQSIiDjzR2OcRyIkt7PE3ZQICFkZsJPxcgYbMUQBPEyrLmy+1mUo+SOoNO69ECM4kZkCTYhvrR/k27hnCnDeF+6HuQkNsoXaJqkl6vU01WMnii2QjLFPkXmdcUjpX1HhhUG1c9VBF5YvwuK9uNxu78xwsFqzd8XPPFhJuN1JvWmOudeurZeS/lndzWWfNVVuCNvZWa8Qnbqs9/vG+4N+i5ZYlxkp+Nfvt7STub/ym0Q3Orkh1XRl1a8P7UswUdvR30nrjTN8+6kJQFX95Nqp2Vc/mNy/P32VY72hevG7Ws1Z7LLvHlbmhefGGX3XT4zFtXt35a4T58BGw/tjx31t+O/XCs1uoquC0PUkxxXF5Ri/TlFsxQz3prnF2q9lX0Df5zXcmv69qHpp9c1Xkuacynw8qW9B0fu7dmQWf8ohPPZ1yv+HzUfM/xirE9qaXnXu5bmjKi6nj8xa1z405e8C0uUC5cNnhMkvfLwjcXfz687mDzFLPp64Mi+1137N1MT99S0/7xhWNd1d9h9ePjOveP081dc2rOwnuvrI+dHZf1wR3u/IlNEzKDPwjvJFwNvlTrOFP4o9BWum/DthV6y/YzG7VnJEpzGARze24c/XBi5o1F3XnqrosN55XDejviWWxhWqjasPavgvfKvmc5Jzh4MQ5m/969GAV3Ze7oPU8pFE/GhSfjwpNx4ec5Llj+d8aFBsxgMP4fzwtmQFr0bsyIWTBgMOEY6SGByaL1mCx6nRkntD+LecGsJ92m/+K8sPw/zgunDt1opGIG27sVie3DqhpiKeE3TDLytPppw9A7t6Zuce9IU085ynu8wTUjFfbpzNT3UlJPBdV37/Qc/IwP4HHsxj0dPd9ofJUeYc7s3vcLegvDM0OffVQRnBm4ya/LUy7To5ypLxa2qe6teGG9e+vqRacLpPqWS+7yb0+9u+LkH99b03hE9cnpto4rpLNzyKWRirmh78eKWw5U+mKOHHjuZN2iVhfzizWKnB9Z29uj4xevrJ/5YvrXFpXjBLcydRMZbxzqlqaOuqOIwaghiRd+/+oX1xIrrfUVVip2CPJVr3nlzHNjFq2Nn7fkeFdJKPup6bsubP7trWOf3L4U2/1Tx3NzEnSVexPcNU3D1x249ktX3eXO/ZdGzn31VPk/741Zr769rRpcH3GoHn+3p6fzyoSXSaz2RGrPstLds3aenT5z6cpVq1ryfsWMaU/9Rmv5y83ybwtG95bvv5GwnAxmXZ3wfPcWVSsmzbv5zPqOkdc2HBiRMCX1nYs13ujMcGLhdP9uODP8C9Sfla4=

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNrtmk9v48YVwJv2th+gZ5bIKRBpUqT+GkKhlR3/leVa2tbOxhVG5FCiTc5wyaH+2NCh294LBv0CzTpWYTibBBu0SdrtuYd+Ae+hnyAfIm8oypazGxRdHgoE9MEiZ968efN7b948Snw6G2I/sCl559omDPvIYHATRE9nPn4S4oD94dLFbEDNi/1Wu/Ms9O2b9waMeUF1ZQV5tkw9TJAtG9RdGaorxgCxFbj2HByruehRc/Lqp789F10cBKiPA7EqPD4XDQpzEQY3Ygc7juBiAQkn9BSLOUH0qYN5TxhgX5weQ4tLTezwpr7HJJ1Krk1sLkmgTYVPD/nIcbDTZZQ6XQOu+TwWcgIMvQHzMXKhgfnh3X2XerGJ0H4u2sRwQhN3Q25jIjkFUYZdD5iw0OetilzibfEcA2obOB7LJl5srhWSmB037PaaCxDkxgLbfH3TaaIiIfG/jYZOEweGb3tJf9wsMCowjpETk8UECLgNPBvr8Hxwk89sPL8NMAu9+Op7ymKHwzVXCEJC6C25ZWEp4LNJX+Tr8MDQgWMT/CZliAQj7HNVPg6oMwQzB/gHtXF1POJsH5ucTGLkvUmOl8bR3gk2GIybHk9nA4xMWOsfLwY0YNHz+3H5GTIMDHGDiUFNmCv6tH9meznBxJaDGL6CWCQ45h1dnWLsScixh/hyPir6HHmeYxuI96+cBJRcJ7ErcUte777iPpAgigiLvq4HE2K0wJL61sr+BHYREVRZL8vK52MpYMgmDuwKyUFg1KUX9/99ucNDxilokpIdGl3OBz9flqFB9EkTGa32PZXINwbRJ8h3i/qL5XY/JMx2cTRr7L8+XdJ5N50mq6pc+uKeYr6i6NP4oxr/t+nf7inBzJ9IBgVd0Z+V5wtYDiZ9NoieFZXiXyAcPNh4+PeXMIyFwdMLcAz+979mSY74uLWz8Oh/fvLzizVwUvSyMwhzgloSWgYT8kpeF1S9quSrakHYaHauG8k0He6TG9gMY7aCh7xlvtlXBchMPoRULWSWVP6i40N0WuCo9UVQzIxBSE6xedV4Yzi85OEAy+Prgfwk4bFHAywlZkbXh9LBPF1KW2sv5rEnUb+PiH0Wx0b0Mo6L0dl4ZBqhaQ6GI1epnOma3cOhYX2ZDIGNyqcBgyQ3iJ5plcrzpGfhlCtYvCKpiqSo34wlSE3YsV0bAMf/k5wdRBcFRVG+el2AwfaD7D7Tlfjvn8sSPnbBi3zuOzV6pVL5x5uFFqrAyEqlVPnmvhSwXlKj5t3gq9cFEhUfK8H1eCEt2WZ08y7cdA2tUtAVtZwv6lavoJq4XEEVlC/iHqrkK0j5mucOA7RwZ3rUB2djAw4oNoluci4a811Y09SCVoSVrgpJjm+HvTXK1xCsCp6PHYrMzxrvSw1kDLDUjgMymq0d7dWbW42rNhjZoPTUxh+9eudn3a5hdXtubc809io+622O8D61O1sN89eaafaIWl972OlsHDU6B2NnZ9SWS7qklvIVtaSVtIKkyoqsyqrUeFR6ND5SDhxbPWm0ZYL1w72+MR4+LPS3zjZ2yKG3s21VPrBQ+Sh8v7eptYuU7e6MGyW2azfXZe9XOxqZFIqbxrrXbebXizKh2506rAaxQW1lVYDYhCwa1JItI8GWkeYbRltsmFXBjBnU5Pu5clXYhLO9RZzJqtDmMDF8wknSthmu7VGCb/4EDMKhbdbW5e3GmVWcbHxg9Z64G80m6xb3W2TC8rudA+fwyUa4ueczYg0n9SUIpXxZUhIORUUvx1F4Z/pbWvXXQ2k5A0it+dEezQgNiG1Zl23swwaKrgyHhiakfR9fgs8P6kfRl2VTV0xNL+gWwpqSL0gPW+0ZciCYhkb0YqDVxKqua+Kq4KJauQj7Jq5pfnc5P7hevfutiRiKawg4t0ReABlQ/kj17d0m2yrr6EmbNUmL6EWl88g/2UU7W86GmFucX/MR8l3JJMd5CAQMyFuMn4V38HKLQmi5DpJ4NpSUkqSWYVQwCaBm6VpgGvY9sJBPYXldnO+ZuKDhIuaq4+IFaoHHvPIx8VisKjk4vh2GxOp5Un+JCPIQJGjQkLur10joODlxucy6p2POADq6u/t1xaufkZP2hrav9Hv90e7entbkNs6P8KWKZ6ngWdQ7SbkjIr8fujAzTCTCYX+cgyLBgirNmZsyzYkO7UPW7AUL22DpdjDoAr2AK4ylYFhS2cW3Dx786Hz2gx5ZRrsM8/zDmGcG8G0BzuvTDGEKhB+K1SwK0yH8zWCSAUwDUDBh7RnBNAThsT4jmIpgYEBFmjFMw9Dw6SgjmCoKRzbJCKYiiDKAKQGOkJ8dx6kY/jLDl+6ZJJc9k6RDmD0Vp8LHf+7KCKYhGP9YmBHMvpn5fyJ8iA0UBlkcpisIs68W0j7UoSAjmIogDRn/Gcycv6aSkXx7ktn3C2mzoZ1t5nQELRs72RcMqRj+IqsM0wGcZvju8P13DmLAqCf+uEjcLSZ+Odf1WHf+LpxYLen8dZuFWbfN+SJ/7YYh57ZFVQDjvcFdEzNk8zg8Fw3+Ppt5K6xM36B1WX5OG8xfGjK9pfx4rbW3fvzgwXcLR6Ib

View File

@@ -0,0 +1 @@
eNrtVk1v2zYYRo+77SewcoFeTEukJMsyMARuCrRFsyZYPLToOhgUScuKJVIRqSxu5sOyAdvV/QmNkQxBsfWy42457LA/kP2akf7IsCUDdliHAdtJ4Pu+JF8+z/s80PHZAa9UJsWtN5nQvCJUm4V6dXxW8f2aK/3VacH1SLL5zvZu/6Sussudkdal6rpuwlkl6RhWtdBZwVu1gpwoDVGLFOSlFOQz1aKycAvJeO4SoUeVLDPaojmpGYcH2M3EgRzzeSLZ5PLzI+eqZLBqyukCZ30L9rAPvRD6yGkCp+BKkZQrU/HJkVPJnNvaWvHKZqk0bxHahvo8z0HBAQF75ipn+qndTA4H2qyE3Y48HEzPRpwwc+fXpz1KealnF++TsswzSiwc7p6S4s3m8lDYn5T8hvz5x+Zy2EtNyezi1T2ppe+ilh+2AgwK5toAlRVvrGM1cXHLA1K5BaFSNbDfapu1KSUVHTVIVbQDkBORuuXEECAafguhVmQLyklWlHljc2eRAHSYuhXX1QRapBs5TwmdgPWF6ybOn8Fe8RLeJ9p2b9AMkIeiPgoMrvj5D8TkFBtDS8nyVTBjs4s7QTvp+EGMYcySEAamFnaCtqGhHRBO2yiIUPz9evNqZmYX7xGteVHqD9B3a9i2uEj1aHaCcPBtxVVppox/eao00bU6nlPT+c8/na1ofb39eM3IN9cO8FF8bmKCL0Z1dj7mvIQkzw747yl6+0eGLm8vIBDw3mqktmtd1qbajgLclGaMZ6999PYQElv10fIxj9js8k7s+ZSFeAhpyAgMEk5hEnY6MAw8EjEcJEkcXTv+0W9QbhnUBZ3MTmLsX4Jrdde6QP58QdSP/VHdBCgC21QDyxlAQdfDXd8HDz7sL4TzhcGwykT6y62NIydjTtcpVDpIWDUeeKiz+2R/f1QhcZ8964221NMoFDh1mo42CNnSJd4msJSQQ5TKDCdGO01noVsTW+nVTKsJXknLyG51iOaHtnzx6ToPecXvKqM3leX5ZKG6LnghXoinI6IBk2Aia0CJUSUBiZSF8RyRAr1MciXuamBMg4OE0PGG3dcDSmd0fNtq11FaloPK2Iw1B4cLNtB1JZxVQlnKBDVNiTrPm8YP7OO6BhcL8ZXmkd905IL7q5CPptP/Pe+/5Hn+n3teGEesEwYxjDtDDAPmD2GS+AlEjA6jEDMcDf9pz/Pa79DzcHST51EUxmHbY5BQ3zh/QGKYxGYZtjuozXiYREnwVzxvjrzQ+1tML7zB9PB103vwZBfHe1E61I+f050JDTCqdot/jekxmYKCpBnNiNgAPTPvifntIsx+mKzerc/haDr9FcHSkDA=

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
eNrtVs1u20YQbq/ppZfeWaKnQiuRImVSMozC/1FiWY4lxFaCQFgtlyIjkktzl7Ikw4emfQEe+gBNHKkwXCdBgjb9Sc899AXcQx+iT9ChJMMyHKD3VjpY2t2Zb7/5ZmbHT0ZdGnGXBR+euYGgESYCFjx5MoroQUy5+HroU+Ew62SnWqs/iyP34nNHiJCXcjkculkW0gC7WcL8XFfNEQeLHPwOPTqGOWkxq3/RO5J9yjluUy6XpIdHMmFwVSBgITvU85ickeSIeTTdiDmN5ONHsOMzi3rpVjsUSGfIdwM3tQxgT4VvLiKKfViIKKawFtQPIQARRymQkjWORw7FFoT31wcfnziMi+T8OuUXmBAK4DQgzHKDdvJ9e+CGGcmitocFPQWeAR0Lkpx2KA0R9twuHU68kpc4DD2X4PQ895iz4GwaFxL9kN48Pk1DQ6BCIJI3VSCxXM7t9EHbQFKzuplVXvYQF9gNPBALeRj4DMPx+S+zByEmHQBB07wlw4nz+awN48nzCibV2jVIHBEneY4jf0F/PbsfxYFwfZqMVnduXjc9vLpOy6pq1nh1DZj3A5I8t7HH6Y/XnKmI+ogwwEi+VYaEsY5Lk4u/m01iN1v+0sbGiqp5vtoxanuNZdNX8lZTXV3bDB9v7/f4YNBxC9aW0so2WQWpRr6oGpqh6UjNKlk1q6LO+l271ynXrb3sPm9sbrjbqrapt5r3K6ZRi416PHhQvuMLUVhx696ebpaNbqW9XFs5OLzbNDtVvt5o3XZErWDf8XiUb+1j5bC4e29RAnZx17WW6nu1lc6eN2C7y1ucNboH3Qei4Bysdw7N6hZpx0W1rjC3IdpmeYaephlImTJcUHRTST/nl7Xh0aAtnOSZmle+iygPoUvoV0OQTMT8yQnUIf3j99G0XZ5W716V8Ccna1CTybu6E2ck1ZCqREh5Ja9Lql5S8iVVlzYr9bPV6TX1tAQvJEF7Ike76c6kXRYl6NGIU7EUCxuZr+oRDrgNdbl+2QMj4sRBh1qnq++t/ndp9UNq03igZxHthYxTNKWZnO2j3cnDgcprryethljUxoE7GLdC8m7cBoeD3qFFYstyuoe+UhzomtuiMbHfTF3CiKXXACHk8+QZqHo+PbksxFMIXkGqghT15x6Cvqee67sg8Pjv9PXiyUkB1H9700CwDoV3bqSP06P8NmsRUR8qOL37CkYvFou/vt/oEkoDk6J5nQ2kmM6yUfM+f3vTYArxVOFnvUtr5FrJxWewaFqKUWjRBZXqqtHSbNOgql40sVFQDEzslvET5NYlgJImM2QRJJsSeKpFP7nI+LiXPjpLmlrQFiDSRckNiBdbtBa31lgaA1+Uwoh6DFsvVjfQKiYORbVxQSajtcb2cqW8+sM+mq0sVA0nY2IUMB64tj2s0QgSk5wSj8UWvJ4RHQLW7nIjeWNaumJputKytIJpEwOtVGsj7AHJLkleO9qSXNJ1TV6UfLxkLkA+xlPjy2EaVND+86NvLCxwSTqSXUsuyemIITBg0PKdrQrHON+1du/x3UG4W9kRjbbn34/u1QZyRmatx1C9U4/s1VDKjusbDAj0g6CAedW6mcuhMztzUNplSDGQaoIX73MYNE0bqNEoBIbpFXbYpPmWRQsaXaAptMNckk47GHZuYNGeXFIyMiALLJeOprNOxlDf0PiAkLkaiTIsImrHHAONIPa844zssTb0Q4tPNjIyXO5ypwn8YaxMrR4d37r1nxPqSpXb4/8T5lqkjp/OdRg7SrfZ4VyKiRQEB3MpJlKU50JMhJjMl7kaEzX6LJ5LMZFCMAv352KMHb/4P+vw76HLXLBQngn+4Vp1e/3RrVv/AJrrWTs=

View File

@@ -0,0 +1 @@
eNptU19sU1UYL5kxopFJwobRIDdVNCQ77b29XdtNHtwKQx1jY23MUHA5u/e099Lbcy73nDu6LdMwNMYwSI4xGnmQbOta0syNMg1maKIRk0VBZ3iaMYjRhxFijPig8wVPSzu3jPN0zved79/v9/tG8v3IoSbBG6ZMzJADNSYelI/kHXTURZS9kUsjZhA929UZi0+4jrm4w2DMps1+P7RNH8TMcIhtaj6NpP39ij+NKIVJRLN9RB9YtIa8aZjpZSSFMPU2S4ocCDZI3uonYXllyOsQC4mb16XI8QqvRkQnmJVMBrIs4h0+XIohOrJKNs2Cro6ACgxoplwQECllVQ57h/MGgrqY5rrnkaxBKOPFdR3OQE1DNgMIa0Q3cZJ/lBw07QZJRwkLMlQQpTEqQ8ALKYRsAC2zH+XuRvHz0LYtU4Mlv/8IJXiq0ipgAzZa7y6UJgJiUMz4xZZqH/6uAQEolmSfGvLJ5zOAMmhiS0ACLChaytll/6XVDhtqKZEHVMjiubvB06v/EMonO6DWGVuTEjqawSehkw4FZ1fbHRczM414Ptq1vlzF+X851acovnBxTWI6gDU+mYAWRcUVkFdCCoIXFcghICsX16RGzBkAGhEV+Jg8XQXQQjjJDD6hyJFzDqK20CA6kRNhzKUjWUEWujKfr8hmvLO9SvVodregjX8eN9wGSQlLnRqTSoKQlGCzHGhWVGlvR3wqWikSvydLxbgDMU0IpvZUVZHXDBenkF6I3lMPhcpuAFPnn4l7r6x0tLcog60HEs8n3dhR1dl3rCcY72/6JAM0i7g6YGKxECgPm2F8UYJNicZgUFWaFD2kNwbDETWQaAxElEQoElHUhDLRb0JeUHyKlCQkaaGZaBuIQs1AIFaGhOd3H9zf0vFCdKoHdJM+wiiIwyTPYoJRLoYcwQIvlEsLXTsoJ8K7Ww7yjyN6UNZVNdyoB7VIoqkJtAq5VOFZGT9bWoryAh8XFDjCdPnX7Scf8JRPzb7TV1/86rktb/aiXbc2Zt8+d6Xtvi/fw3P2k144f+jI0m/7zwy99Vjr9cPddYe2/fNdbbJt642Fb4s7w35yrPP7Cz/Xzrw/98fLvds2HX+mZym4cMa7+fWnekZ3Tn9xko1/WFc//OCWXxbaztbUuX/evBTzFS7MgVu3n6hP9+146dO/l8mBm6nfX/0atiu5x2c7tl4bDD371yzJvXsqdyO/t2F7/bhptN1+59FNl8d+2BV47eEx+jTeeJqO1i8PLl5dysz/aDRvfuinE3u++fesVUDL93s8d+7UeDzXTn1Qu8Hj+Q/DbAZZ

View File

@@ -0,0 +1 @@
eNqdVXtsU1UY78QoiS8UX0iMd1XxkZ3be3tvXxsVu3ZsRba2tAgFZbm997S93X15H107RWUawYDgBUFN5gM3Wq2FsQwGTibG+Nb4ihgmEeMrxhiNIxgTNeJp18kW+MvbpPee833ne/x+3/ed3mIWqhovS3VlXtKhyrA6Wmhmb1GF9xhQ0x8uiFBPy9xAOBSN9RsqP35rWtcVrdFmYxQelxUoMTzOyqItS9rYNKPb0LciwKqZgYTM5cd777WKUNOYFNSsjdjqe62sjFxJOlpYY1AQMBFiDJaRu6C1AbOqsgArEkODqnXt3WhHlDkoVLZSig5oGYi8xFc0JbRHoremq5AR0SLJCBpEGzoUFZSKbqgVSwROrC2mIcOhRLcMpGVNN/fMDH2QYVmIbEOJlTleSpm7Uz280oBxMCkwOiyheCVYBcYsdUGoAEbgs7AwecrcyyiKwLNMRW7LaLJUruUH9LwCzxSXKpkBhIakm/tCKAhf0BbOI4wljMRpN07szQFNZ3hJQKABgUHxFJSq/NXpAoVhu5ARUOPPLEwe3jNdR9bMXe0MG4rOMMmobNrcxaiikx6evq8aks6L0Cz6w2e6qwlPu6NwksRdQzMMa3mJNXdVaTgw4zDU1TxgZWTD3EnsmcJHgFJKT5v9JEW8qEJNQRUDHyqgY7qh9Q4gLuCH7xZrpfNC6I4pEo9brhoIIF7MsVjaaMBIFxZidcxO2GmMpBsJeyPaaW2Plf01N7Gz0jAUUxlJSyIqWqZoL7JpQ+qCXMl/VsLHKoSjbCrhoyoFMKfIGgS1qMzySrBssmdAMDA8WV1AVlOMxPdU3ZpjVea7e3LdHGtwXDrbLRKeHpriE9Bgk/tqRxRVrrhBAQFRM/sdHseemmQK+xLKlQAkAQhyNAdQoUOBF3mEZ/W/1riaOeAgCOLgmQo66jTU4kWaqD6vTddQoYhIq/g+bYb2eDyHzq40ZYpCKh6XZ3SmlganR0PaRe3gmQo1Ey8QWjk3pQ14zhy/AS06XYSDo10slaQSTg5C0kO6WA9FcSzlIDmXE76Cmp9nkZUKmYqs6kCDLJpSet4cbxCZXKXPvBTpoJwo0yaMl1jB4GDUSATkSg5aE6aoUJAZbtC/GPgZNg1BtFp/ZjEQ7/C1B/2lKArSL8tdPNz6Zd2szk422ZkQvfiScMoXXh52OCJRZ6uwNBFtW6zxrY5wrDmgZOSW5EqfT0ozRku8G5AuO4qbQj9A4gRO4iTohB1uZ1pL6PZ2j5Ft97UHok7dFxOX5rXICo1Y0WU4ErgzmIga+Yw7i76cMLVqlS+cYnz2LiEUyfV00EI0m8zc0ZYIeu4M6G0tETKCsmH0tNfWhKHa5BG+3lqHANQhYLI/qKn+aMK4KgZefOY0bMLa0IAPSUK+CYtWwITozYgwyuvQ2yFLcPwJhIGR5TlvRza3OBOAHfFlRGfziiDekYkEGbKFpuyqf2k8TQYDeFs8mQnEW+RpINjtbkDUcHAStLtahadD/59RjawE0xsehJTJm6woyZrEJ5OFKFRRA5klVpANDg12FRYQ58t8cXOfm6MJjqI5R9KZdHOkAzSjkTll7b/xMFC5FYqMgGosy5rDacprbaRpytqEiYzX7UTtVL3v1hUqNSml3qrbdt3G2ZbqM0uI+KRjxJxDP1+x+tndb2x95uaJXW3r7up1v3Nl+9zZ9CtbR3buODfou+icU2PPl4/iWy+4hOobf/qrAxfe/viV8+eUtkV+/+h7V/cfx9bd/9L6iaHRY2ty9x/6wfi09b1FI66EeXn2j/OX37di7fKR7vOuj9/2yfv9m566a2PpEF5avn+0b8PxDB38YvSpQfH43Oga/APjtfKJbzN3du+4/LyhdV/Ps7x+7GShrzwxePR1dWLzyat7hYiw+TnLwwcW1Dc/cnv9ks2Je6zbf9iwsOXU+FjvgouG/LOX9MSObyYue4h7vP/kn/MXTsx9oPXG9Q9+Ur/J/uC1CfXIm2COv7Xumub+w31bJo5e6CuUFl5NffcXK7Grf/wF//DvS+UNt+j7W+c1FDfVr7ppQfa5uoWhv+b983JD34GxjcY+27vv7b354uy3+nbqRGZB/2Of9f12omfi0dW7ySX2b4TDzcEjO2+75cnx+P4t1KJh9+fXS4sOcsPbZg/WJzpdb4KeH39Sht4+svJXek35t8taRj7+p85iOXVqloV4bH748DkWy78yRYCR

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNptVX9sE9cdD6OF7mephMqqsu1qteqvnHNnn+1zWAqOTYiBxCYxwUnFrOe7Z98ld/eOu3d27Ag6aLZKRBu6qlDaSpVKjN2mKaQNJbSUTKhDooKuolqZQsU6VqFVoxR1jGm0mrJ3jlMShfvDvvfe9/v5fr7f7+d9b1clBw1TRtqiUVnD0AACJgvT3lUx4DYLmniwrEIsIbEUj3Umhi1DnnpMwlg3GxsagC67kQ41ILsFpDbk2AZBAriBvOsKrMKU0kgsXFi0Y8ClQtMEWWi6GqknB1wCIrE0TBaubmRRwIAUoCSo6BlLoYBpyiYGGnZTIc3MQ4MCikJVyTiYFEYUliCVJmsKZagCsohFWlZkXHC76imXgRToIJsFE0PVtb2emhcwYQDNVACGDlCLATVBaqSilIJykNINlDWAqspadh6UZUJjAdD6h4Gs3vKBxjyX77JY4LeFFIkSZZEE7bVIDsDsc5JYvTDgVrKjIhEqzlZWxzSHaMJNdiw1sseSfxMbEKhkkQGKCckGyVknfcSW4SAx7sD2igSBSLr817plJQmZ2D40v3OHgSBAgk5KgUSSuv1Gtijr9ZQIM06dRgh3DVZ1YY/0QajTQJFzsDzjZY8BXVdkATjnDb0m0kZrudK4oMOFxyNObjTRgobtIzFCIhRtiBeIxDSKdXO8mxnrp0nhZE0hkqEVQPiU9er58bkHOhD6CAhdk69dnnE+NNcGmfbBNiDEOudBAkOQ7IPAUP3c+Nx9w9IwaahdCccXhqsd3grndbOsO/DmPGCzoAn2wWojJuY5Q2wUaAERDPsVpiwg1CdDe+pfqZSQSaXVJknJtXutPOxXE1hstQrBAG7l+nCkg2+GuMuXiwZgPLlxfdtaAdFswBNkA5yfCdCsm3GzbpY2I7Fo5xbvppg/Gkzy8W0b4NoEXpdFXV7TCHlYA6Xa2nPrky2c2uwrRNQiu0nxhzta06gzke7YHEK60dnlT3U3J8Lt7XKBb49pzf350CqKsLNystjkCa3rZntgGGc2ryuKGKUlELN6tsUj3WKLUZCLXWpXLxtPxzd2RefQ41kPzdQY+hmOZ5zn0Kw2FKhlsWQPe3nPqwY0dXKx4dNlUjJsmbtKRIfw7OlKbWgciG24JeF7SxGiSftEQrLqKTZAxQRMeRgPR7FcI+tv5ILUurbEaLgWJnFbCb5ZnQEZIsO1s5KvCJKl9UFxJHxbsZ9wxE466dAnd5SG/ToyIV1jZY8m6Y6ZcUlHI+MzN4tGRhZocrEa1j5RVX2+2J8XBUsUpVxeZYJFziunoSVkjtRcyCxxwhBCtGraw36f71DtZFZ3IyRXhmYZmmHf7afJNYeKrMqkntXf2sw27ZKPFPvYQgOM+iCZ7hWu2g1mcq6FAVUiWCf2LRguGAy+d3ujWSgvMQlyzLvzrUw4lw3rUc1jCw1qEAcYc7R/1pqWRXvqQbJIpSHPA5b3sRkG8j4+zXE+fzAoimlfmg/yQvAdMvpkgaA4zdSRgWkTCuQDhQv2VL0K+p0Z0+RlfV4/yXQVJWuCYomw00pHkJODuYqMbqggIB4Ot9BhIEiQ7qzqz65EuttDbdHw0SQ9V0h0TJ/5OFY0ZGpyJlPuhAZpjD0iKMgSybA0YJlgdYS67SO8yBHawYAIOT8nskG6mYyhWbTvZFdyJm0FKIR7TrDHJW+Tq5HjvK5VlAqaeD9pU/UTurPs5KplTy363S+G7qqrPosV+6T2KbMscu2b3Xd+1EW9fnTlt/tW/qD0SLw0ceD7d7zYs2Fjq/vM1qXy4umBB7qPrnxwxc8z/J7xMxM/WjPVoq55oX3o63OXA59NXnkqv/rYzc9vXN0+sqOlsvUTz7nH9/aef1j6drCl/bXHw080Lt9wSXppsGes8qctl4uTPYlTReaXvi++Sd7/UCr+lTpW6H5u6L3k5etX2Iu273Tv4j946349cenLgd8uSX2yZPdU9OvTo08mXrr+UN3e0zd2f3x239qlm8Y/4Jbf8X78fyuuhq57/X+7Z3DNsz/58gjV+syy46X7LoUu7hxeMbj/1bYLA/dfWHqn/66Tfxk8ibc8/9/B401XdvxxLK/9+e5/TP7+wn7pzPBT5/P+5Ff/HHzx0X9fTD4ycrJJrNvz/q/+c61lM2vv6fhhk/DFzjOn7qmUP9t/9qbB/SZyPHr4/HhMsp4+8MbnQyceG2575sPn6t8aOvfE5M37/s6//OOrS9f7n10+DUOpa4rEnhL3rH57yLfv0yXPp8aa9/7srWlS9+npxXU3fmo9MPG9urr/Ax+AolA=

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNptU39QFGUYPhQbUhmIGZv6R3ZupBqHvdtjr+OApomOEEQ6hBsGRhM/dj9ul9vbXXe/xQO0ApnUKZlZSy2omYjjzllJpSgkMSMpayAHGkeHqRwrM5pKBRRicqDvTjAZ3b++fX887/s+z/s2hmugovKSGNPJiwgqgEH4R9UbwwrcpkEVNYX8EHESGyxyl3jaNYUfTeEQktVMqxXIvAWIiFMkmWcsjOS31tisfqiqwAvVYKXE1o4eqDf7QaACST4oquZMwkal2VMJ80IQtmyqNyuSAPHLrKlQMWMvI+FORBQxeaAgEH5IAKIaQxCgUtIQUQmBopp3vhQBklgoRAIZAWgsJGmSA7xPI9NwHYqm0iNwCPplPBjSlEgVykLtDHMQsHjsS6bEICepSO+6b5RjgGGgjEgoMhLLi179Q28dL6cSLKwSAIIG7lGEUa50wwehTAKBr4GhO1n6cSDLAs+AiN9arUpi5/xMJKqV4f1uIzI6iRkRkd6TvdCHtagWMy/ilmmHhToeIFUEeFHA3JECwC2F5Kj/5L0OGTA+jEPOq6qH7iQfvTdGUvWOQsC4SxZBAoXh9A6g+B32j++1K5qIeD/Uw66i+8vNO/8vR1tsNkt61yJgtVZk9I4qIKiw6y7Jd1MMrBVNUg6SsvUsgoZIqSUZCVfQ26ijCwQKUPQiTm+32TMOK1CV8bLCXSGchjS1MYjFgkPfhOf36wN3wYLUbwRzsGz6KQ+npRK2dMLNICKyJITNnkmnZdopYl2hp9M1X8TzQJW6PAoQ1Sqs1AsLWxFmOE30QdZwPXAfjPkjInlW78PvCspGF+Ruc2nFG9VAYVFengLp9EKQzX8SIBlB0lgS4QuEZHTYANJHiUo7nWG3MU4nTdMOSDkhpKg0J2ScjN3BVjrp9hoe6IbNYiO8kuQV4DFXLukCDAfJkiglejin/MXswnxXZxlZLFVKSCU9wKsHRUmEoRKoYBV0I1oa77UCQzi9OLtc73aydqqqislgYYbdARhAPo/XZYGeu+MHI0cRvfQGLIGCTV/FbE9+Pc4U/ZZu2Fjh++G5lXNrW7ZM/NLU/XDs7eKxM3knv9/t79gFm1rdzdKzBefyD51fMXPtzLWH6pNuz64fa+xn9r63emqw9eKtyetTJ2Zvjxe03hz/Z+I7/+eXXvlyiX+M9+hGVuKjb69pfrUkvro5fsVfAyUDSUfGPgrPVF86MXx15u+JmlObyfSyrSnCwGu/TQ+ezmnvGcnal9TzFhe6fPnJ3tjTwZTDKf1E74/jzRWtMX03hp7Y8vMzhscovb717LSntzP2wrBpX9ZI/fpCNjl3uvQcvcz37k/9S8uWX+mPXftHnJLw+9Z453Dir6adVXE79geW7whIm74orTMm8xL2tx0cWt3YQO+5cv79FSNnYzYfevoGiHGzw490p3rjbnEttXvaOro+fXy7mnqhqGX51QtF617+rK7hYvIyI/+0+4rnsYI1U/WDe8etbWhoYBX4NuPrJZM335lobPhXqH/zYFlXX/mqp0ZndzuO/HkrATM8N7fURLZuWDkdYzL9Byv+bUg=

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNptU29QFGUYx5wIUyY/ZMWHar0ZKp3bu13uuD9gxHHkpUgccBkmgu/tvtwtt7e77b6LdxglSM2U0swOqEzK9MfjLq9LITGaTPtQFs1kMjZDkijqJHxIbGrSGG2g987DZHQ/vfv8+T3P8/s9T1usCcoKJwoLEpyAoAwYhH8UrS0mw1dVqKD2aBAiv8hG3BXVnv2qzI3m+hGSlAKjEUicAQjIL4sSxxgYMWhsoo1BqCjAB5WIV2TDo7u26oIgVI/EABQUXQFBU3lmPaGbC8KWjVt1sshD/NKpCpR12MuIuBMBJU0eyPNEEBKAaMQQBPCKKiK8EMiKrmVTEkhkIZ8MZHigspA0kX7ABVQyD9ehTJQ1CYdgUMKDIVVOVqEMVEvMDwGLxz6fsTTiFxWk9d81yiHAMFBCJBQYkeUEn/apr5mT9AQLG3iAYBz3KMAUV1o8AKFEAp5rgtFbWVofkCSeY0DSb2xURCGRnolEYQne7Y4nRycxIwLSBh1zfRjdYcy8gFs2WQxUX4hUEOAEHnNH8gC3FJVS/qN3OiTABDAOmVZVi95KPnhnjKhoveWAqaieBwlkxq/1AjloMR++0y6rAuKCUIs53XeXSzv/L2cy0LTB2j8PWAkLjNbbAHgF9t8m+XZKHGtlIikLSdGD86AhksMkI+IK2ofUwTkCeSj4kF/bT5vtH8tQkfCywu1RnIZUpS2CxYI/DsXS+/VRRdmc1DsjpVg27ZjHr+oJ2kpUMIhILglBmwtMeQUmK+Eq9ySc6SKee6rU75GBoDRgpZ6f24oY41eFAGTjznvuQzx9RCTHal/hdz1F01V0CWdRnSG6zOYoAeH1DkuTy30kRDK8qLIkwhcIydSwIaSNEnZLvs1szwdsvt1M51tsXjND2/OslB2Txlqphv1NHNDitIEmfKLo4+Eh52rSCRg/JKtTlGix0g0vOsrXOBM1ZJXoFZFCeoBPiwiiAKPVUMYqaPFUabzXMozi9CrHBm3Axpqphgav18bCPAtgAFmC12WOntvjR5JHkbr0ViyBjE0nFmx5ckdWRupbuK6yPnC2eMnsynjdX5fazTlouneYHlpdWJB5bnPOxYnOlpffz/3ldG7+8vGWM+c2V7SN1y/qoZv1/T9P9B2fGWl5bebPy+oXN29M28fEolVTT5y3VtR80PFs+coqNRu0bo8skuKVJ/tBa09obY13V+31gTHD9h3BOmFk75bfp25kLk60d5zp+zc8s8f/d0F4svLSu5mvPGObLhe2+bhFjTmbu2qvhk+Nf5NVFwKmQ9J7npUvfTLYN1kYr11/32JzieRqLjvw9pVG+Y/fBtx9F648UtSara3qLs593HH14sPktoUdKzqGfW8NudZ8P3Ry49kHm05X9zzd3LXkCHt9afY+hy6WuWldUceFLxPa3mVjnQ7X8Gf7iJFO7uLyE7ujv1JTEzX6YepRPel2vX68+c099ffH17zx2NABavcLVx7a/cB3X7efLnvqYFbZTyuWdU+e6vLtHPMVdg98+87la58X/3D9OXT4WO0MZnh2dmHG0WulN/9ZkJHxH+xyZNQ=

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNptU3tsE3Uc3wRFGLKpOIcQuTTDsLhre2vXbSUIpYPNwVjdinW8xq93v/Zuvd7d7q6jHS66Bw8zEjglEubGa31R92oQpkNChCwBo5g4CA4nM8BgoCQoII9g8NeyIQTur99935/P5/utD1VDUWJ4LrGd4WQoAlJGP5JSHxJhlQdKcmPQDWWap/yWkjJrm0dkBmbRsixIRo0GCIwacDIt8gJDqknerakmNG4oScAJJb+dp3wDO9ap3MBbIfMuyEkqI0Zos/SZmGosCFlWrFOJPAvRS+WRoKhCXpJHk3ByzGQTGRliAJNoXpQxgYduDNh5j4zZIRAlVe2qWDGegmwsmGSBh4K4DqcB4/LgWaiXVqfNiZWUoVtA4GSPGOukVWtrQzQEFIJ+LiHFT/OSrESfgtMFSBIKMg45kqcYzql0OGsYIROjoIMFMoygOTkY50uJuCAUcMAy1TD4MEvpBoLAMiSI+TWVEs+1j+LCZZ8An3ZHYvBxxAonKz2msTk0Fh9in0Mj6wxqbbcXl2TAcCziD2cBGikoxP2HHncIgHShOvioskrwYXLn4zG8pASKAVlS9kRJIJK0EgCi26Df/7hd9HAy44ZKyGx5ut2o8/92OjVBqHOiTxSWfBypBByAlWD0EcmPUiJIKx2uNeBaoueJ0lAWfTjJow7KHm3nGIEs5JwyrbQR2bqwCCUBLSxsCKI02SPV+5FY8IfjodEd21uyeEzqzf58JJty2Ep7MjEiByshZSy2JBihN+qyjHodVlBsbTePNrE+U6WoVQSc5EBKLRzbihBJezgXpCLmZ+5DZPSQcIZSvkXvCi2xoDTHvIQp9HIOU3nVkvwam6m0Sqo84MVJlvdQuIyuEOJxsF5ZGcD0kIR2u94BCSo3R59DGewIuJ7IgiBP58jNJtuqGaBECDWBOXneycIu8yLcDEga4mVxSpRQfvlSU/G75vYP8FLezssSbgVOxc/xHAyWQRGpoETirdFeizCI0ktN5cpXuZRe63BQlCFXn62zG/LwBWhdxuh5BN8fO4r4tdchCURk6ku8PrPpxYT4Ny5fKeF/1U7uOzJpz2J10VbDsUl3vgYf1T23SjPOmFzH9h9MbbpZWLna8ueh5KLBa+lba2ruz7060HdymfqKMDg02NJ//87N4VsTh2rfPHvst89Gzgxvv3HypC71tciGxNa1R8uY8afDqcdb1n4yp2Xl8NmMi1N6Nl5LO5/B87d7uv7Z+G/rjU6YlS6d7rn8esGxoeFrw+HBgqmN4ZT5BakNOwgTnTtdn5b/ZXNlb/I8C37wzOcTssEbmGXCW9Nqi7fMKPUnsvkj5ZbiuZlVV9V7V6eszZ57vf7nyxMvdYc3vpM0+3a1oj+adLf5nFhU13t+Vlh38FLTlWnpJd7ozEad59DRWztnTV54dv/8BtXLTfypqP70eHNpRX9DN3C9vWZqrhT8rmth+oHCjoyWFMbWXztj0ZwjjS/tDrxA0sLFfTeya4+betMK69btXlPeza5PSqCydnZ+vGukfmVq3YJw74aMmb90XOjyfT+F6HP9/eFfrfYt09eX2ye9OtJ878d5EanSey+5+73C509tjxoLMpYC0ybbJiI0f/rh4MA384YOl124Oztt24llU/bNWZ4q/rH+/E+bb9pO7Ct63xfIyzMWBX5vpJd1bNthsyx/peLTXa3NtnYK0u1t2yqW16sou3VFEpL2wYNxCaGA84vLzyUk/AexLZt7

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNrtVUFrJEUUZvGPFIUgyPRMz0zPTNKSQwhhV9wQxSjIbmgq1a+7a9Nd1VtVnclsmINxrx7aX6AmJEvYVQ/iRRc8evAPxLv/w1fdMxuNkV32IAgODNPzXr33vvfqe18fnx+ANkLJW0+FtKAZt/jHfHF8ruFhBcY+PivAZio+ub25c1JpcflmZm1pwl6PlaJrCmGzbs5kyjMmZJeroidkok73VDz7+TwDFmP6xxcfGdDeegrS1t+7002cV856frff7Q9Wvl3nHErrbUquYiHT+ln6SJQdEkOSMwtnrbv+jpVlLjhzGHsPjJIXG0pKaDDXF/sApcdycQBPNJgS24DPzoxltjLHp5gXfv3lvABjWApfb7+3BPf5yceC1RcIg6RKpTk85QonIa1nZyX8veQZtoIzq8+rA8GVlj84bMZ4iMRqlXtb7NB1Wp+Mff+na771PFdTb6sZqKm/evubjUWpuyBTm9UnwcroxxtjtrVIhay/vCQ3ujc0xJhHsNzUp1ZXcBrj2OrnO1nVIf0J2eaWDPxBQPpBOByEwxG5vbXzjDOegcfbTPUTqbzGcr6eW+/DA15fdrPhGg2DYEjfIQVbG4xWB77vd7KhN1i9wfH8GrbNw1IZ8O60g8Z+b57Hlb+hzad4Zxo58Nut34/ogp00pH530h0HtEPxNgCvNoLDUujmXiIrCqChrPK8Q/eY5VmE8UjeCHtLRErDI1phRFHlVpRM2whkXCokPA3dsDrUcJZDVJXRQyMeQYT10xQ0Dfuu3SuvtJlGsCbKBRIY3eOlM1ZTGUkoSju7ig7Q69ItTze5XhiivZkFQ8OBvzrpjwb+vEOFRLpKDhGyPjUONq4MLqWFiIkI91HPEDrbyyFeIlc6jTiCauYQC7NwJsgE11emppG1eVSJZYDFHccOBegorhbzi9msqZYrmbr9wQRBAzZT2i4M/QABGmAap3sNw1TpfVO6tIarEiKHScgD0bS3RDKMjFUad++v0fP5P0vN2sukBr9oNT2dFz1M7ZVa4Q30nGQY+78GvZ4GrQTBv6JBwX9Bg964e0RblkUZMxnq0MgPggFL+sMhjPujyRgmwWg45uPRaMwhgX7CeD+YcBb7w0ESDCeTvbHPg+EYxjzme2NABSuYFAky1K2cwD24R1/QGr0tiQ0+ocXizwb+vN8Yd1BgHBfpLsogx53EdUaCICocICKuOK4YRuxPmW71Y8E1fL73SrXuVAhuqw163Zpt0pc1tzjVoa9bxi4jQvqJqgjTQJgkzBjhRNSSRGnS6ApujcekmYK7UWKZ2TddgmpAbAZ4yt2/c5QCkBhEJUQDXj6g6pFmDQ8tsYq0GZqYZdYueTchM6wdK/mWJftSTRt/e7RDHlTGEsNmaGT22sElAg1ADLgNdMULdiiKqsAMMXFS8qd0DgsXBrr35QeL+iE5WkKZk/tyowWL1gVsZ1xvgkPqXi5lZaMDpoWTX8cIuox299+GuPEvBxvhBAtkRUgTr10HOsfP7iunmuMbAw4ZZmvO7M7/ACbG6BE=

View File

@@ -0,0 +1 @@
eNptU31QFGUYP7TMCRoZnWkmamA7hj8y9thlz+Ug+8BDTAyOuAMVMXlv973b5fZ21913CVJHjtLGUpu1j5mmsJLjLk8SL3EcE5uIGG1qJE0swhz+0JE0p8bJyGaQ3juBYHT/evf5+D3P8/s9T2u0EWq6qMgpnaKMoAY4hH90szWqwY0G1NFrkSBEgsKHK11uT7uhiUM5AkKqXpSXB1TRBmQkaIoqcjZOCeY10nlBqOvAD/WwV+Gbh97dZA2Cpg1ICUBZtxYRNJVvzyWsU0HYsm6TVVMkiF9WQ4eaFXs5BXcio4TJAyWJCEICEA0YggBexUCEFwJNt25ZnwBSeCglAjkJGDwkGVIAYsAg83EdiqEKEnAIBlU8GDK0RBXKRm2JChDweOyLlvSwoOjIjN81ShfgOKgiEsqcwouy3/zM/4qo5hI89EkAwRjuUYZJrsxYAEKVBJLYCCN3ssxDQFUlkQMJf16DrsidkzORqFmFd7tjidFJzIiMzKPFU33kVTZj5mXcMsPaqENNpI6AKEuYO1ICuKWImvQfn+lQARfAOOSkqmbkTvLBmTGKbnaUA87lngUJNE4wO4AWZO2HZ9o1Q0ZiEJpRZ+Xd5Sad/5djbDRtK4jPAtabZc7s8AFJh/FpkqdTYlgrhqRYkqKPzoKGSGsmOQVXMD+hDk4RKEHZjwSznbYXfqpBXcXLCl+N4DRk6K1hLBb8/lR0cr/2uVZNSb0zXIJlM094BCOXoAsIF4eIxJIQtL2IyS+y08SKck+nc7KI554qxT0akHUfVmr51FZEOcGQA5CPOe+5D7HJIyJF3uzB7w0UXRqQ/QXLlWoBVi8p4dwVqwur1wjBI00kJykGTyJ8gZBMDtuEzCGCc3gdPtpBF7KQKXSwNM+ydi/DUpwdMA6Gge2NIjBjtI0m/Iril2CXs5R0Ak6ApDtJiRktWVtRXL7S2bmGrFK8CtJJD/CbYVmRYcQNNayCGUuWxnutwQhOrypea3Y7eDvl8/FLHLCwgPGyheQyvC5T9EyPH04cRfLSQ1gCDZv6U4ysN+dbkt/cF15cFRh+Lv32k28f+8f66LMPzlu/rMxdd6q3+/XHrnrZX8yX2wd37nv/yIGMiTFrR2jvvC+vpOn9o/FvalwnLzdMtGX9PbCh5vpP1984fy06/tburIn6EIvssecH2+an/p6zq8W9q2H3Q6lSv/vrhQcufR695cusk25sPlG3tVZ+b13uoYWst+/GlZvZZ0bHRttKdzx1VYyMjGyrW9B1Nv3c2T7i2NI/Qx/1WV5q8i3qUh+pXlzdPqaODHiOdd73sNAycvqvvVWLhn4dvfgtjNT3Dj29ee617GYqVFbbeqE3p9byQIY74+Pv0syBPadN1x/B1J9XrjAyfyvOP7dnyGlX5+34MKObvmVvCRwufYYc2ZFW27r98px4Zjmz4AnWfn77xoKT3tC/++vlUO2NHwdTe8YXV5Z/wbkqtsVLvFu7LzC3s9+5mL9x+RqtYv9XS7dEeryXbMNnwo/X5K7+YE7O8MQPjfrx8fstlomJuZabLY6ysRSL5T/v1GTL

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNrtVVFv3EQQVsUfWa2QkND5zufz3SUmrRRFUVuVEFACUhUia8+es7exd93ddS7X6B4IfeXB/AIgUVJFLfCAeIFKPPLAHwjv/A9m7bsEQlCrPtfSyXczOzPfzH7z3dHZPijNpbj1nAsDikUGf+ivj84UPC5Bm6enOZhUxsd317ePS8Uv3k2NKXTQ6bCCt3XOTdrOmEiilHHRjmTe4WIsT0Yynv52lgKLMf3T8081KGc1AWGqn+zpOs4pph233W13vaUfVqMICuOsi0jGXCTVi+QJL1okhnHGDJw27upHVhQZj5jF2HmkpThfk0JAjbk63wMoHJbxfXimQBfYBnx5qg0zpT46wbzwx+9nOWjNEvhu88EC3FfHn3FWnSMMkkiZZPA8kjgJYRwzLeC/JU+xFZxZdVbu80gq8bPFprWDSIySmbPBDmyn1fHAdX+95lvNMjlxNuqB6urb979fm5f6EERi0urYX+r/cmPMpuIJF9U3F+RG95qCGPNwlunqxKgSTmIcW/VyOy1bpDskm5Ehnuv5pOsHPS/o9cndje0XEYtScKImU/VMSKe2nK1mxtnaj6qLdtq7TQPf79EPSM5ue/1lz3XdVtpzvOUbHC+vYVs/KKQG514zaOz35nlc+WvafIF3ppADf97665DO2UkD6raH7YFPWxRvA/BqQzgouKrvJTQ8BxqIMstadMRMlIYYj+QNsbcxT2hwSEuMyMvM8IIpE4KIC4mEp4EdVovqiGUQlkX4WPMnEGL9JAFFg65t98orTKoQrA4zjgRG92DhjOVEhALywkyvon302nSL03WuS0M4mhrQNPDc5WG377mzFuUC6SoiCJH1ibawcWVwKQ2EjIe4j2qK0Nkog3iBXKokjBBUPYeY67lzjEywfaVyEhqThSVfBBjcceyQgwrjcj6/mE3rapkUid0fTODXYFOpzNzQ9RGgBqZwutcwTKTa04VNqyNZQGgxcbHP6/YWSHqhNlLh7v07ejb7f6lZe5XU4AetuqOyvIOpnUJJvAEny1jOOlY4tHmrRG+mREvDt0p0qUTv7B3ShmthynSKajRY7jEvHvV9fwi9UX8pcgcuG7DI9Yb9pTgajrvMPj7AwOv6cdcbjsZDd4Q4u/2lQc9FHcuZ4GNkqF08jtuwQy/Jjd6Gyhq/ocXgaw1fH9fGbZQZy0W6i2IY4WbiUiNBEBUOEBGXES4aRuxNmGpUZM41/L7zWrXulQhuowl605pN0lc1Nz/Vom9axiwiArpz/6Ot7d2Vla2HW3fukIeyJEwBYYIwrbkVVkPGUpFaa3CHHCb0BOz9EsP0nm4T1AZiUsBTlg3WUXBAmhA5JgqQCoBKSOqlPDDESNJkqGMWWdvk/phMsXYsxXuG7Ak5qf3N0RZ5VGpDNJuikZlrBxcIFADRYPfRFs/ZAc/LHDPExArLP9JZLBHX0F5Z6TRdfy4+mQMJyOEC0wzNaw1qtM7xW+NqnSUgO516dNT+AxWlCfeZ4lajLWHoIoulRxNqb2cx9xBHmiNpAjp2mm2hM3x2XzvVDP9W4IBhtvrM7uxvcr/ytw==

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1 @@
eNrFVs1yG0UQhhNVOcEbDFP8XLTSriUrkSiKSpxA+DF2xUrlv1zj2ZZ2492ZZWbWtnDpQOAFljcAK1JK5fy4SFUOwJ0DL2AOPAdHeqSVJdmKc7N10W53T/c3X3/Ts4/6W6B0KMXb+6EwoBg3+KKzR30F36WgzU+9GEwg/e7qylpjL1Xh4YeBMYmul0osCYtMmEDJJORFLuPSlleKQWvWAt3dkH778OddGrOddSM3QWhaJ567UCkQOg5Cy71dqmQE+ERTDYqil0tEIow1NSCKSAyEkYeYgrANmRqyAUxp2nlgE0kfIhvII5b64JQdLYUA4yxgIXdhoWbzaaOAxRhlVAqdfgDMxz3/+9a73UBqkx2c2MdzxjkkxgHBpR+KVva09X2YFIgPzYgZGHBbY0hUNtgESBwWhVvQG63KXrAkiULOrL/0EPHs5xtyTDuBk+6B3beDdAiTvbo8xlFabSPtgrjFcrXovthxtGGhiJA4J2IIqZcM/b9POxLGNzGPk7c0640WP5uOkTp7vMz4ytpMSqZ4kD1mKq5Wfpu2q1SYMIasv7R6slzunJQrFz2vePFgJrFuC549brJIw8ERyUdLBtinsuNWHdd7NZMajGo7XGKF7Bf32ZjACETLBNmeV6k+UaATVCr82MNlJtWPutgs+Puvfi6uX1e+nrT6ve5VbFz2ZyNIC8S7SFa4IVYixKvUy9W655Evlhv7S3mZhu3TITGwY0qwZS0jCX1CeIDSA/NpaprOpYOGYkI3sXnXxkLp8yAVm+APluZK5OkS4wE4tg6KPnsipMOt5ZBOqFEINArj0Dj5CcSG29esW3Fd9/CjUyMVxEihRdIt12q1N+RFCsFkLy0Rjuc63sXGiI7Fyt1DMm/l6BzneHoWDyL64JTICZ4e4rHR5NTo+Xg89+4gB+2EfvYHPq+73k3/Zvt27VbM+PWFO2GQ6mVztZrsbYUsG3hFj7SkbEXwfOlzZ8T62lAmWf/qnW8vL3+5tH/buSE3JNLQYEiXkAJ6a6BQmdmARzL18awr6OHyG5fvZC8v+RXPrTSrnPNqza0sOldW1oYz7gfUn8Id/vPOf0Ot1EkuwHXUpTIXfGZYnexSe/hpnc44aWH8Tuu7NPStX7dwb9+slq8p79LdZm2Bf3Vbbt8KFtvD8NksaBgNT8q0DjGlGKYcDcVTZuJkxN57UMD5KJN11DeG0bpIoyg3aUu54DA2pkdARZKao6HulQsUx/K0qdLpkPGvc+FCzktedH0jknxzPjtzQhBtKHzYoXW3MOu3UPJ19qhaduxfndJJ9WMQEmzUsZqEWiN9HUyk0rDTYQ5DZmCOLLPwjsJykNdBwccabzZ7nQ0RnzmE0aXalGpM2NkjaMu0fl/cF7eCdg7i7DH4oU9MAMNGEJMqMaufcwAkt8UQUTz80DlXMEHMokhuf3Ze3bkvrgBn+IlEdADHD/Y59Gab6XMTKotwSvttok3abNLOmQMA/33c++sHukzeNM9lMlV0kmh8Kc5FPuOkU0hn7i0Kwl8fHt65t1dn6vo6dlmVvc5JJPM2M+2j0xL8H0MHvUQ=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

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