diff --git a/legalysis/README.md b/legalysis/README.md
new file mode 100644
index 00000000..40cca859
--- /dev/null
+++ b/legalysis/README.md
@@ -0,0 +1,43 @@
+#### Team Name - Legalysis
+#### Problem Statement - AI-Enhanced Legal Practice Platform
+#### Team Leader Email - tummuri.hari1@wipro.com
+
+#### A Brief of the Prototype:
+ To proficiently address these challenges, we’ve utilized diverse capabilities within large language models (LLMs). Our solution encompasses tasks such as summarizing legal documents, researching past cases, recalling IPC sections, and developing litigation strategies. Leveraging Intel’s robust hardware and the powerful Intel OneAPI AI analytics toolkit, we’ve fine-tuned and optimized LLMs on extensive datasets, culminating in a comprehensive and efficient solution. Alongside fine-tuning, we incorporated Retrieval-Augmented Generation to enhance our approach for the mentioned use cases.
+
+#### Prototype Description:
+ To develop this solution, we have gathered data from diverse sources, which consists of legal case judgments, legal proceedings, and the Indian penal code. These datasets underwent pre-processing, and along with large language model capabilities we utilized various methodologies to devise effective solutions.
+
+ For summarizing the legal documents, we have trained LLAMA2 7B model with legal document summarization dataset resulting in performance improvement of LLM for legal case summarization. And we have done finetuning using Intel AI analytics toolkit.
+
+ For Legal research, we’ve integrated LLM with RAG (Retrieval Augmented Generation) to access details about specific cases of interest to users. This integration facilitates the provision of valuable insights for their case proceedings.
+
+ For IPC related queries, we have fine-tuned a T5 large model using an IPC dataset and used Intel developer cloud for finetuning. This enables the model to identify the specific IPC section applicable to a given scenario.
+
+ 
+
+
+
+
+
+
+
+
+#### Step-by-Step Code Execution Instructions:
+
+1. Login to IDC(Intel developer cloud)
+2. Install node,express,ngrok
+3. import main.js file
+4. import llama.py
+5. login to ngrok account
+6. run the node files
+7. Ngrok will give a url to make a API call to the node.js file for tunneling
+8. the user has to update the ngrok url in app.py file.
+9. the user has to install all the requirements in requirements.txt file
+10. the user has to run the app.py streamlit file
+
+
+
+
+#### Future scope:
+ To enhance the solution’s effectiveness, we plan to incorporate litigation strategy development in the near future by fine-tuning an LLM and integrating Retrieval-Augmented Generation.
diff --git a/legalysis/application/idc/llama.py b/legalysis/application/idc/llama.py
new file mode 100644
index 00000000..d8966763
--- /dev/null
+++ b/legalysis/application/idc/llama.py
@@ -0,0 +1,18 @@
+from transformers import AutoTokenizer, AutoModelForCausalLM
+import sys
+
+description = sys.argv[1]
+tokenizer = AutoTokenizer.from_pretrained("Bhuvanesh-Ch/summarizationFineTuned")
+model = AutoModelForCausalLM.from_pretrained("Bhuvanesh-Ch/summarizationFineTuned")
+prompt = description.replace("#", " ")
+inputs = tokenizer(prompt, return_tensors='pt')
+output = tokenizer.decode(
+ model.generate(
+ inputs["input_ids"],
+ max_new_tokens=1000,
+ )[0],
+ skip_special_tokens=True
+)
+
+print(output)
+
\ No newline at end of file
diff --git a/legalysis/application/idc/main.js b/legalysis/application/idc/main.js
new file mode 100644
index 00000000..7719f652
--- /dev/null
+++ b/legalysis/application/idc/main.js
@@ -0,0 +1,43 @@
+const express = require('express');
+const bodyParser = require('body-parser');
+const { promisify } = require('util');
+const { execFile } = require('child_process');
+
+const app = express();
+const port = 3000;
+const cors = require('cors');
+app.use(cors());
+const script1Path = 'llama.py';
+const script2Path = "IPC.py";
+
+const execFilePromise = promisify(execFile);
+
+app.use(bodyParser.json());
+app.use(bodyParser.urlencoded({ extended: false }));
+
+app.get('/', (req, res) => {
+ res.send('Initiating the system');
+});
+
+app.post('/', async (req, res) => {
+ let data = req.body.data;
+ let description = req.body.description;
+ description = description.replace(/ /g, "#");
+ if (data === "Summarization") {
+ try {
+ const { stdout } = await execFilePromise('/home/ubuntu/jupyter_env/bin/python3', ['llama.py', description]);
+ console.log('Python process completed successfully');
+ res.send({ outputData: stdout });
+ } catch (error) {
+ console.error('Error executing Python process:', error.message);
+ res.status(500).send({ error: error.message });
+ }
+ }
+
+
+});
+
+app.listen(port, () => {
+ console.log(`Server is listening on http://localhost:${port}`);
+});
+
\ No newline at end of file
diff --git a/legalysis/application/idc/red.pd b/legalysis/application/idc/red.pd
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/legalysis/application/idc/red.pd
@@ -0,0 +1 @@
+
diff --git a/legalysis/application/locul_run/app.py b/legalysis/application/locul_run/app.py
new file mode 100644
index 00000000..4fa90fb0
--- /dev/null
+++ b/legalysis/application/locul_run/app.py
@@ -0,0 +1,308 @@
+import streamlit as st
+from streamlit_option_menu import option_menu
+import json
+import requests # pip install requests
+#import streamlit as st # pip install streamlit
+from streamlit_lottie import st_lottie # pip install streamlit-lottie
+import time
+from datetime import date
+
+import requests
+
+# GitHub: https://github.com/andfanilo/streamlit-lottie
+# Lottie Files: https://lottiefiles.com/
+
+def load_lottiefile(filepath: str):
+ with open(filepath, "r") as f:
+ return json.load(f)
+
+
+def load_lottieurl(url: str):
+ r = requests.get(url)
+ if r.status_code != 200:
+ return None
+ return r.json()
+
+
+lottie_coding = load_lottiefile("lottiefile.json") # replace link to local lottie file
+lottie_hello = load_lottieurl("https://assets9.lottiefiles.com/packages/lf20_M9p23l.json")
+
+
+st.set_page_config(layout="wide")
+
+st.markdown("""""", True)
+
+col3,col4 = st.columns([7,3])
+
+with col3:
+ st.markdown("""
Revolutionize your legal approach with AI-powered Document summarization, Legal case analasys and developing Litigation strategies. Streamline processes and gain crucial insights for optimized outcomes.
""",True) + +with col4: + st_lottie( + lottie_coding, + speed=1, + reverse=False, + loop=True, + quality="low", # medium ; high + #renderer="svg", # canvas + height=250, + width=250, + key=None, +) + + + +# st.title("Legalysis") +# st.caption("Revolutionize your legal approach with AI-powered litigation strategies and document summarization. Streamline processes and gain crucial insights for optimized outcomes.") +st.markdown( + """ + + """, + unsafe_allow_html=True + ) + +selected=option_menu( + menu_title=None, #mandatory required + options=["Summarize Document","Legal Research","IPC","Litigation Strategy"], + icons=["book","house","bezier","upc-scan"],#optional + menu_icon=["cast"], + default_index=0, + orientation="horizontal", + styles={ + "container": {"padding": "0!important", "background-color": "#fafafa"}, + "icon": {"color": "orange", "font-size": "25px"}, + "nav-link": { + "font-size": "20px", + "text-align": "center", + "margin": "0px", + "--hover-color": "#eee", + }, + "nav-link-selected": {"background-color": "green"}, + }, + ) + + + +import PyPDF2 + + +def set_background_color(color): + """ + Set the background color of the entire app. + + Parameters: + - color (str): The background color in CSS format (e.g., 'lightblue'). + """ + page_bg_color = f""" + + """ + st.markdown(page_bg_color, unsafe_allow_html=True) + +def read_pdf(file): + pdf_reader = PyPDF2.PdfReader(file) + text = "" + for page_num in pdf_reader.pages: + text += page_num.extract_text() + return text + + + + +def main(): + # st.header(":green[Upload your file]") + st.markdown("""{}
{}
{}
{}
+© Copyright 2023 Legalysis, Inc. All rights reserved.
""",True) + + + + diff --git a/legalysis/application/locul_run/cases/C1061.pdf b/legalysis/application/locul_run/cases/C1061.pdf new file mode 100644 index 00000000..01d9204f Binary files /dev/null and b/legalysis/application/locul_run/cases/C1061.pdf differ diff --git a/legalysis/application/locul_run/cases/C1425.pdf b/legalysis/application/locul_run/cases/C1425.pdf new file mode 100644 index 00000000..51d80c1c Binary files /dev/null and b/legalysis/application/locul_run/cases/C1425.pdf differ diff --git a/legalysis/application/locul_run/cases/C1439.pdf b/legalysis/application/locul_run/cases/C1439.pdf new file mode 100644 index 00000000..e649a5ff Binary files /dev/null and b/legalysis/application/locul_run/cases/C1439.pdf differ diff --git a/legalysis/application/locul_run/cases/C147.pdf b/legalysis/application/locul_run/cases/C147.pdf new file mode 100644 index 00000000..8e40fd39 Binary files /dev/null and b/legalysis/application/locul_run/cases/C147.pdf differ diff --git a/legalysis/application/locul_run/cases/C164.pdf b/legalysis/application/locul_run/cases/C164.pdf new file mode 100644 index 00000000..7cb67790 Binary files /dev/null and b/legalysis/application/locul_run/cases/C164.pdf differ diff --git a/legalysis/application/locul_run/cases/C1670.pdf b/legalysis/application/locul_run/cases/C1670.pdf new file mode 100644 index 00000000..f6ab6fcd Binary files /dev/null and b/legalysis/application/locul_run/cases/C1670.pdf differ diff --git a/legalysis/application/locul_run/cases/C1810.pdf b/legalysis/application/locul_run/cases/C1810.pdf new file mode 100644 index 00000000..e7ed46b8 Binary files /dev/null and b/legalysis/application/locul_run/cases/C1810.pdf differ diff --git a/legalysis/application/locul_run/cases/C1834.pdf b/legalysis/application/locul_run/cases/C1834.pdf new file mode 100644 index 00000000..93c35655 Binary files /dev/null and b/legalysis/application/locul_run/cases/C1834.pdf differ diff --git a/legalysis/application/locul_run/cases/C184.pdf b/legalysis/application/locul_run/cases/C184.pdf new file mode 100644 index 00000000..0ec8c7d8 Binary files /dev/null and b/legalysis/application/locul_run/cases/C184.pdf differ diff --git a/legalysis/application/locul_run/cases/C1877.pdf b/legalysis/application/locul_run/cases/C1877.pdf new file mode 100644 index 00000000..10ad3c51 Binary files /dev/null and b/legalysis/application/locul_run/cases/C1877.pdf differ diff --git a/legalysis/application/locul_run/cases/C1938.pdf b/legalysis/application/locul_run/cases/C1938.pdf new file mode 100644 index 00000000..d2c844bf Binary files /dev/null and b/legalysis/application/locul_run/cases/C1938.pdf differ diff --git a/legalysis/application/locul_run/cases/C2101.pdf b/legalysis/application/locul_run/cases/C2101.pdf new file mode 100644 index 00000000..b9de46aa Binary files /dev/null and b/legalysis/application/locul_run/cases/C2101.pdf differ diff --git a/legalysis/application/locul_run/cases/C2117.pdf b/legalysis/application/locul_run/cases/C2117.pdf new file mode 100644 index 00000000..0e13df90 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2117.pdf differ diff --git a/legalysis/application/locul_run/cases/C235.pdf b/legalysis/application/locul_run/cases/C235.pdf new file mode 100644 index 00000000..b9b6f152 Binary files /dev/null and b/legalysis/application/locul_run/cases/C235.pdf differ diff --git a/legalysis/application/locul_run/cases/C2471.pdf b/legalysis/application/locul_run/cases/C2471.pdf new file mode 100644 index 00000000..b531aca0 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2471.pdf differ diff --git a/legalysis/application/locul_run/cases/C2475.pdf b/legalysis/application/locul_run/cases/C2475.pdf new file mode 100644 index 00000000..d195f6a2 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2475.pdf differ diff --git a/legalysis/application/locul_run/cases/C2533.pdf b/legalysis/application/locul_run/cases/C2533.pdf new file mode 100644 index 00000000..6768398d Binary files /dev/null and b/legalysis/application/locul_run/cases/C2533.pdf differ diff --git a/legalysis/application/locul_run/cases/C259.pdf b/legalysis/application/locul_run/cases/C259.pdf new file mode 100644 index 00000000..1ef7271d Binary files /dev/null and b/legalysis/application/locul_run/cases/C259.pdf differ diff --git a/legalysis/application/locul_run/cases/C2695.pdf b/legalysis/application/locul_run/cases/C2695.pdf new file mode 100644 index 00000000..a1a48e84 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2695.pdf differ diff --git a/legalysis/application/locul_run/cases/C2710.pdf b/legalysis/application/locul_run/cases/C2710.pdf new file mode 100644 index 00000000..d195f6a2 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2710.pdf differ diff --git a/legalysis/application/locul_run/cases/C2789.pdf b/legalysis/application/locul_run/cases/C2789.pdf new file mode 100644 index 00000000..b69e6478 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2789.pdf differ diff --git a/legalysis/application/locul_run/cases/C2799.pdf b/legalysis/application/locul_run/cases/C2799.pdf new file mode 100644 index 00000000..fc5ec986 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2799.pdf differ diff --git a/legalysis/application/locul_run/cases/C2853.pdf b/legalysis/application/locul_run/cases/C2853.pdf new file mode 100644 index 00000000..4033df35 Binary files /dev/null and b/legalysis/application/locul_run/cases/C2853.pdf differ diff --git a/legalysis/application/locul_run/cases/C301.pdf b/legalysis/application/locul_run/cases/C301.pdf new file mode 100644 index 00000000..c4e48624 Binary files /dev/null and b/legalysis/application/locul_run/cases/C301.pdf differ diff --git a/legalysis/application/locul_run/cases/C451.pdf b/legalysis/application/locul_run/cases/C451.pdf new file mode 100644 index 00000000..9d9cc525 Binary files /dev/null and b/legalysis/application/locul_run/cases/C451.pdf differ diff --git a/legalysis/application/locul_run/cases/C458.pdf b/legalysis/application/locul_run/cases/C458.pdf new file mode 100644 index 00000000..1a8a1ba2 Binary files /dev/null and b/legalysis/application/locul_run/cases/C458.pdf differ diff --git a/legalysis/application/locul_run/cases/C863.pdf b/legalysis/application/locul_run/cases/C863.pdf new file mode 100644 index 00000000..8006868a Binary files /dev/null and b/legalysis/application/locul_run/cases/C863.pdf differ diff --git a/legalysis/application/locul_run/cases/C919.pdf b/legalysis/application/locul_run/cases/C919.pdf new file mode 100644 index 00000000..d554c23a Binary files /dev/null and b/legalysis/application/locul_run/cases/C919.pdf differ diff --git a/legalysis/application/locul_run/cases/red.pd b/legalysis/application/locul_run/cases/red.pd new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/legalysis/application/locul_run/cases/red.pd @@ -0,0 +1 @@ + diff --git a/legalysis/application/locul_run/example.txt b/legalysis/application/locul_run/example.txt new file mode 100644 index 00000000..f58c8ed8 --- /dev/null +++ b/legalysis/application/locul_run/example.txt @@ -0,0 +1 @@ +Hi how are you \ No newline at end of file diff --git a/legalysis/application/locul_run/images/law.jpg b/legalysis/application/locul_run/images/law.jpg new file mode 100644 index 00000000..143976dd Binary files /dev/null and b/legalysis/application/locul_run/images/law.jpg differ diff --git a/legalysis/application/locul_run/images/law1.jpeg b/legalysis/application/locul_run/images/law1.jpeg new file mode 100644 index 00000000..0ba62613 Binary files /dev/null and b/legalysis/application/locul_run/images/law1.jpeg differ diff --git a/legalysis/application/locul_run/images/logo.png b/legalysis/application/locul_run/images/logo.png new file mode 100644 index 00000000..d472a627 Binary files /dev/null and b/legalysis/application/locul_run/images/logo.png differ diff --git a/legalysis/application/locul_run/images/red.pd b/legalysis/application/locul_run/images/red.pd new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/legalysis/application/locul_run/images/red.pd @@ -0,0 +1 @@ + diff --git a/legalysis/application/locul_run/lottiefile.json b/legalysis/application/locul_run/lottiefile.json new file mode 100644 index 00000000..11587dd0 --- /dev/null +++ b/legalysis/application/locul_run/lottiefile.json @@ -0,0 +1 @@ +{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.20","a":"","k":"","d":"","tc":"none"},"fr":60,"ip":0,"op":180,"w":1080,"h":958,"nm":"Comp 2","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 4","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.314,-3.961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.539,-0.992],[-1.417,1.219],[-3.969,2.636],[-4.819,0.709],[-2.778,-2.239],[1.502,-3.685],[0.454,-2.891],[-2.353,-1.899],[-1.02,-3.827],[-1.077,-5.641],[0.709,-4.535],[2.636,-2.041],[3.033,1.786],[2.92,2.806],[1.843,0.907],[1.814,0.227],[3.94,-0.312],[0.68,-0.057],[-0.198,-0.907],[-0.17,-0.397],[-2.636,-0.17],[-2.183,-1.616],[-0.312,-2.636],[2.296,-1.389],[2.069,0.312],[1.587,1.162],[0.539,0.34],[-0.028,-0.425],[-1.417,-1.417],[-1.417,-0.454],[-3.883,0.057],[-4.535,2.154],[-3.883,4.11],[-1.162,3.515],[1.162,2.636],[1.276,3.033],[-1.276,3.005],[-1.871,1.559],[-1.389,0.652],[-1.672,-0.17],[-1.219,-2.551],[0.482,-4.139],[0.85,-3.203],[-0.454,-2.183],[-1.361,-1.559],[-0.085,0.595],[-2.041,5.074],[-1.928,5.329],[0.085,5.754],[1.417,5.244],[1.984,2.636],[1.361,2.948],[3.203,2.324],[7.228,-0.028],[7.937,-2.296],[5.159,-3.543],[1.502,-3.005],[-0.539,-1.757],[-0.312,-2.438]],"o":[[1.247,1.672],[0.822,1.502],[1.417,-1.219],[3.969,-2.665],[4.847,-0.709],[2.778,2.239],[-1.502,3.685],[-0.425,2.92],[2.353,1.871],[1.02,3.798],[1.049,5.669],[-0.709,4.535],[-2.636,2.013],[-3.033,-1.786],[-2.891,-2.806],[-1.843,-0.907],[-1.814,-0.227],[-0.595,0.057],[0.454,0.935],[0.113,0.624],[3.572,-0.624],[2.75,0.17],[2.183,1.644],[0.312,2.636],[-2.324,1.361],[-2.098,-0.312],[-0.482,-0.34],[0.028,0.454],[0.142,2.239],[1.446,1.417],[4.025,1.332],[5.187,-0.057],[4.535,-2.154],[3.855,-4.139],[1.162,-3.487],[-1.162,-2.636],[-1.247,-3.033],[1.276,-3.005],[1.871,-1.559],[1.417,-0.652],[1.701,0.142],[1.219,2.523],[-0.454,4.11],[-0.85,3.231],[0.397,1.956],[0.085,-0.652],[0.539,-3.487],[2.041,-5.074],[1.956,-5.301],[-0.113,-5.754],[-1.417,-5.244],[-2.013,-2.636],[-1.361,-2.92],[-3.203,-2.324],[-7.2,0],[-7.909,2.296],[-5.159,3.543],[-1.531,2.976],[0.51,1.786],[0,0]],"v":[[-42.676,-24.238],[-40.181,-20.043],[-37.573,-19.504],[-29.75,-26.052],[-15.463,-32.062],[-3.643,-29.34],[-0.978,-20.1],[-7.299,-9.441],[-1.885,-2.893],[2.679,4.789],[5.655,19.869],[7.242,35.743],[1.205,45.693],[-7.016,46.628],[-16.455,37.784],[-23.513,32.682],[-28.531,31.123],[-36.553,31.208],[-38.452,31.378],[-37.602,34.382],[-37.205,35.885],[-27.794,35.233],[-20.735,37.586],[-15.973,44.53],[-19.602,51.107],[-27,52.354],[-31.876,50.058],[-33.435,48.981],[-33.378,50.313],[-31.309,55.982],[-26.065,58.704],[-18.496,59.611],[-5.4,56.634],[8.716,46.345],[15.803,34.467],[16.058,25.595],[11.069,17.431],[11.183,7.85],[16.824,0.849],[21.359,-2.071],[26.008,-3.177],[30.742,0.452],[32.102,11.223],[29.239,22.675],[28.729,30.414],[31.309,35.771],[31.564,33.872],[35.22,21.797],[42.222,4.732],[44.915,-10.292],[42.307,-28.802],[37.12,-39.602],[31.535,-47.482],[26.461,-56.298],[10.134,-59.699],[-13.535,-56.27],[-33.917,-46.972],[-43.583,-36.796],[-44.603,-29.709],[-42.676,-24.266]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470588237047,0.341176480055,0.258823543787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"NULL CONTROL ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":29.334,"s":[2]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[2]},{"t":120,"s":[0]}],"ix":10},"p":{"a":0,"k":[291.53,380.738,0],"ix":2},"a":{"a":0,"k":[153,60,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 16","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-20.891,12.273,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.608,-1.077],[-6.491,-28.375],[4.252,8.532],[6.406,13.521],[2.665,6.463],[-0.425,1.191],[-0.85,0.283],[-5.613,-1.899],[-10.517,-4.082]],"o":[[-7.54,23.357],[-2.409,-1.843],[-4.252,-8.532],[-6.406,-13.55],[-2.636,-6.463],[0.397,-1.162],[0.85,-0.283],[5.641,1.899],[2.665,1.049]],"v":[[22.084,-31.43],[20.525,46.154],[13.041,34.589],[-5.299,-3.339],[-19.501,-34.548],[-21.91,-43.959],[-19.671,-46.028],[-12.527,-44.356],[14.175,-34.605]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627656,0.121568627656,0.121568627656,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"NULL CONTROL 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[311.046,347.592,0],"to":[-0.5,-0.458,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26,"s":[308.046,344.842,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[311.046,347.592,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94,"s":[308.046,344.842,0],"to":[0,0,0],"ti":[-0.5,-0.458,0]},{"t":120,"s":[311.046,347.592,0]}],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 15","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[15]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[15]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":100,"s":[15]},{"t":120,"s":[0]}],"ix":10},"p":{"a":0,"k":[49.874,50.047,0],"ix":2},"a":{"a":0,"k":[54.92,91.639,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.142,0.255],[-1.757,1.729],[-1.502,1.162],[1.106,-0.454],[3.43,-2.324],[1.984,-1.701],[0.709,-0.17],[0.765,0.34],[0,0],[-1.899,0.709],[-1.332,0.822],[0.142,-0.992]],"o":[[0.142,-0.227],[1.587,-2.466],[1.757,-1.729],[1.502,-1.162],[-1.134,0.454],[-3.43,2.296],[-1.984,1.701],[-0.567,0.142],[0,0],[-0.198,2.013],[1.871,-0.737],[1.304,-0.85],[0,0]],"v":[[-19.247,118.602],[-18.822,117.893],[-13.465,111.685],[-8.702,107.348],[-6.775,105.761],[-15.109,110.324],[-23.584,117.184],[-27.184,119.622],[-28.97,119.339],[-28.97,119.424],[-26.22,121.606],[-20.268,117.751],[-19.247,118.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.198,0.057],[0.368,0.425],[3.09,-0.028],[3.231,-1.077],[2.381,-1.984],[1.786,-1.672],[0.539,-0.34],[-0.454,-0.34],[-1.871,1.757],[-2.211,1.843],[-3.175,0.822],[-1.871,0.312],[2.126,-0.765]],"o":[[0.227,-0.057],[3.118,-0.879],[-0.368,-0.454],[-3.061,0.028],[-3.231,1.077],[-2.353,1.984],[-0.595,0.567],[0.227,0.879],[0.765,0.51],[1.899,-1.786],[2.211,-1.843],[3.175,-0.822],[1.899,-0.283],[0,0]],"v":[[7.654,113.074],[8.306,112.876],[12.898,111.203],[6.888,110.239],[-3.005,111.883],[-11.509,116.561],[-17.546,122.598],[-19.247,123.987],[-18.227,125.972],[-14.513,124.157],[-7.767,117.581],[-0.624,114.18],[9.071,112.11],[7.994,112.932]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.255,1.332],[1.729,-0.907],[2.58,-1.644],[5.301,-0.312],[4.762,0.057],[2.976,-1.191],[2.183,-1.843],[1.361,-1.446],[0.198,-0.198],[-1.134,0.539],[-2.806,2.041],[-3.09,0.794],[-4.479,-0.17],[-5.272,0.68],[-3.373,1.417],[-1.106,2.041]],"o":[[-2.183,0.397],[-3.175,1.729],[-2.551,1.644],[-5.301,0.34],[-4.762,-0.057],[-2.948,1.191],[-2.154,1.814],[-0.198,0.198],[0.454,0.397],[1.786,-0.85],[2.778,-2.013],[3.09,-0.794],[4.479,0.142],[5.301,-0.652],[3.402,-1.389],[0.567,-0.992]],"v":[[54.17,109.105],[48.019,111.118],[40.904,116.986],[29.282,119.735],[12.331,119.877],[1.928,121.011],[-6.491,126.397],[-11.083,130.961],[-11.679,131.584],[-9.326,131.471],[-2.041,126.368],[6.746,121.72],[17.603,121.323],[33.052,120.869],[46.602,117.439],[53.008,112.564]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568632126,0.737254917622,0.588235318661,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 14","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[15]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[15]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":100,"s":[15]},{"t":120,"s":[0]}],"ix":10},"p":{"a":0,"k":[50.126,49.953,0],"ix":2},"a":{"a":0,"k":[42.083,-20.168,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.227,-2.268],[0.283,-3.543],[1.106,-2.013],[3.402,-1.389],[5.301,-0.652],[4.479,0.142],[3.09,-0.794],[2.778,-2.013],[1.786,-0.85],[0.142,1.332],[-1.984,2.494],[-3.373,2.041],[-2.126,0.794],[1.899,-0.283],[3.175,-0.822],[2.211,-1.843],[1.899,-1.786],[0.765,0.51],[0.085,1.474],[-0.17,0.992],[1.304,-0.85],[1.871,-0.737],[-0.198,2.013],[-1.899,2.636],[-3.061,1.843],[-2.693,0.794],[-0.935,0.425],[-2.013,0.935],[-5.414,0.907],[-6.831,0.482],[-3.855,0.085],[-0.907,-0.057]],"o":[[0.198,2.296],[-0.312,3.543],[-1.106,2.041],[-3.373,1.417],[-5.272,0.68],[-4.479,-0.17],[-3.09,0.794],[-2.806,2.041],[-1.786,0.85],[-0.113,-1.361],[2.013,-2.523],[3.373,-2.041],[2.126,-0.765],[-1.871,0.312],[-3.175,0.822],[-2.211,1.843],[-1.871,1.757],[-0.737,-0.539],[-0.113,-1.446],[0.142,-0.992],[-1.332,0.822],[-1.899,0.709],[0.17,-2.013],[1.871,-2.665],[3.033,-1.871],[2.665,-0.765],[0.964,-0.425],[2.013,-0.935],[5.386,-0.907],[6.803,-0.482],[3.855,-0.057],[0.907,0.085]],"v":[[42.017,-17.659],[41.648,-7.341],[39.919,0.851],[33.513,5.727],[19.963,9.157],[4.514,9.61],[-6.342,10.007],[-15.13,14.656],[-22.415,19.758],[-25.25,18.738],[-22.727,12.728],[-13.996,5.273],[-5.095,1.22],[-4.018,0.398],[-13.713,2.467],[-20.856,5.868],[-27.602,12.445],[-31.316,14.259],[-32.563,10.659],[-32.336,6.861],[-33.357,6.039],[-39.309,9.894],[-42.059,7.711],[-38.629,-0.084],[-31.287,-6.717],[-21.876,-10.969],[-16.632,-12.132],[-13.457,-14.371],[-2.204,-17.206],[17.015,-19.417],[34.306,-20.125],[40.174,-20.125]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392158031,0.792156875134,0.639215707779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 13","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[92.114,54.374,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[2.608,5.641]],"o":[[0,0],[0,0],[0,0],[-3.43,-7.37],[0,0]],"v":[[-18.269,-23.357],[42.506,7.03],[2.764,23.357],[-32.924,7.342],[-42.506,-13.351]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431372549,0.675770897959,0.675770897959,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 12","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[31.035,76.17,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.425,-1.134],[0,-0.624],[0.028,-0.085],[0.964,-0.227],[0.794,-0.85],[-0.198,-1.219],[-1.814,-0.539],[-2.041,-0.028],[-1.332,-0.425],[-0.198,-0.085],[-1.502,-1.219],[-1.389,-0.652],[-1.191,-0.028],[-0.397,-0.028],[0.34,0.51],[1.984,2.92],[1.162,2.721],[-0.454,0.907],[-0.652,0.312],[0.085,0],[0.652,0.312],[0.283,-0.539],[0.227,-0.794],[1.02,0.652],[0.964,3.146],[-0.595,1.587],[-0.539,0.539],[0.567,0.482],[1.049,0.567],[0.567,-1.446],[-0.454,-2.069],[-0.425,-1.502],[0,0],[-0.057,-0.283]],"o":[[0.368,0.992],[0,0.085],[-0.17,0.567],[-0.964,0.227],[-0.794,0.85],[0.198,1.247],[1.786,0.539],[1.786,0.028],[0.198,0.057],[1.587,0.652],[1.502,1.219],[1.417,0.624],[0.482,0.028],[-0.283,-0.482],[-1.276,-1.928],[-2.013,-2.92],[-1.134,-2.721],[0.312,-0.652],[-0.085,0],[-0.992,0.227],[-0.368,-0.142],[-0.368,0.709],[-0.737,2.608],[-0.992,-0.68],[-0.964,-3.146],[0.368,-1.049],[-0.737,0.198],[-0.709,-0.595],[-1.02,-0.595],[-0.567,1.474],[0.454,2.069],[0,0],[0.113,0.227],[0.198,0.822]],"v":[[-9.263,-1.386],[-8.412,1.165],[-8.441,1.392],[-10.425,2.327],[-13.26,3.716],[-14.394,7.174],[-11.474,10.066],[-4.926,10.633],[-0.532,11.114],[0.092,11.341],[4.882,14.459],[9.021,17.521],[13.159,18.286],[14.435,18.343],[13.499,16.812],[8.766,9.952],[3.068,0.456],[2.614,-4.788],[4.032,-6.035],[3.805,-6.007],[1.339,-5.412],[0.573,-5.128],[-0.022,-2.293],[-2.205,1.76],[-5.805,-5.468],[-6.485,-13.122],[-4.812,-15.191],[-6.825,-15.276],[-9.064,-18.082],[-12.211,-16.807],[-11.871,-10.797],[-10.482,-5.525],[-10.425,-5.326],[-10.198,-4.589]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568632126,0.737254917622,0.588235318661,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 11","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[42.374,77.238,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.68,0.227],[0,0],[1.389,0.822],[2.069,0.227],[2.324,0.794],[2.239,3.118],[1.928,2.523],[1.162,-0.255],[0.709,0.822],[0.34,1.871],[0.595,0.68],[0.935,-0.17],[0.709,0.595],[1.049,0.567],[0.567,-1.446],[-0.454,-2.069],[-0.425,-1.502],[0,0],[-0.057,-0.283],[-0.425,-1.134],[0.142,-0.595],[0.964,-0.227],[0.794,-0.85],[-0.198,-1.219],[-1.814,-0.539],[-2.041,-0.028],[-1.559,-0.652],[-1.502,-1.219],[-1.389,-0.652],[-1.191,-0.028],[-0.907,-0.397],[-1.247,-0.34],[-1.304,0.425],[-1.02,-0.142],[-1.417,-0.255],[-1.361,0.652]],"o":[[0,0],[-0.737,-1.219],[-1.417,-0.822],[-2.069,-0.227],[-2.324,-0.794],[-2.239,-3.09],[-1.928,-2.523],[-1.162,0.255],[-0.709,-0.794],[-0.34,-1.899],[-0.624,-0.68],[-0.964,0.17],[-0.709,-0.595],[-1.02,-0.595],[-0.567,1.474],[0.454,2.069],[0,0],[0.113,0.227],[0.198,0.822],[0.425,1.134],[-0.17,0.567],[-0.964,0.227],[-0.794,0.85],[0.198,1.247],[1.786,0.539],[2.069,0.028],[1.587,0.652],[1.502,1.219],[1.417,0.624],[1.219,0.057],[0.907,0.397],[1.276,0.312],[1.304,-0.425],[1.049,0.142],[1.389,0.255],[0.935,-0.425]],"v":[[25.773,17.275],[25.688,17.161],[22.287,13.873],[17.213,12.427],[10.211,11.379],[3.578,5.908],[-3.027,-4.382],[-7.534,-7.075],[-10.34,-6.735],[-11.871,-11.951],[-13.033,-15.777],[-15.584,-16.373],[-18.164,-16.344],[-20.403,-19.151],[-23.549,-17.875],[-23.209,-11.865],[-21.82,-6.593],[-21.764,-6.395],[-21.537,-5.658],[-20.601,-2.454],[-19.779,0.323],[-21.764,1.259],[-24.598,2.648],[-25.732,6.106],[-22.812,8.997],[-16.264,9.564],[-11.247,10.273],[-6.456,13.391],[-2.318,16.453],[1.821,17.218],[4.825,17.672],[7.915,19.174],[12.082,18.947],[15.399,17.955],[18.914,19.344],[23.421,18.437]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392158031,0.792156875134,0.639215707779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 10","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.891,77.266,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.054,-1.814],[2.296,-1.162],[-0.879,-0.624],[-1.474,-1.134],[-7.937,3.543],[-12.557,5.783],[-6.123,2.126],[-1.219,0.085],[0.198,0.709],[1.02,2.353],[0.822,-0.255],[14.542,-5.981]],"o":[[-4.054,1.786],[0.312,0.085],[0.879,0.624],[1.474,1.106],[7.937,-3.543],[12.557,-5.783],[2.92,-1.02],[0.482,-0.652],[-0.312,-1.077],[-0.765,0.198],[-12.359,3.798],[-14.513,6.009]],"v":[[-35.651,10.359],[-43.871,14.27],[-41.915,14.809],[-37.89,19.826],[-26.608,16.85],[7.889,1.033],[37.71,-11.922],[43.606,-13.367],[43.606,-15.182],[42.16,-20.341],[39.779,-19.632],[-8.296,-1.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.701960802078,0.701960802078,0.701960802078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 9","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[105.74,58.146,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.247,1.502],[-1.162,-2.494],[-4.507,-9.694],[-1.672,-3.033],[-1.446,-1.02],[-1.474,-1.134],[-7.937,3.543],[-12.557,5.783],[-6.123,2.126],[-1.219,0.085],[0.198,0.709],[5.187,5.783],[7.228,4.762],[5.216,2.494],[0.283,0.057],[4.649,1.276],[3.997,-0.822],[8.022,-3.061],[5.443,-2.098]],"o":[[0.765,1.814],[4.677,10.12],[4.11,8.872],[1.956,-0.709],[1.502,1.077],[1.474,1.106],[7.937,-3.543],[12.557,-5.783],[2.92,-1.02],[0.482,-0.652],[-0.51,-1.871],[-5.216,-5.811],[-5.584,-3.713],[-0.227,-0.028],[-3.713,-0.595],[-4.649,-1.304],[-3.997,0.822],[-8.022,3.061],[-3.487,1.332]],"v":[[-59.022,-23.529],[-56.131,-17.123],[-39.208,19.415],[-32.037,34.241],[-26.764,33.929],[-22.739,38.946],[-11.457,35.97],[23.041,20.153],[52.861,7.198],[58.757,5.753],[58.757,3.938],[53.088,-7.485],[30.156,-25.939],[15.699,-33.989],[14.933,-34.103],[-0.119,-38.213],[-11.4,-39.007],[-28.805,-33.196],[-52.956,-23.841]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.800000011921,0.800000011921,0.800000011921,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[334.591,304.374,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.397,-1.191],[3.657,-13.465],[2.863,-6.746],[2.58,-2.069],[0.68,-0.652],[-2.268,-0.142],[-2.239,-0.113],[-1.361,1.531],[-1.162,2.806],[-0.879,2.891],[-0.085,0.227],[-0.085,0.34],[-2.324,8.929],[-0.482,7.625],[-0.283,5.301]],"o":[[-1.786,5.046],[-3.657,13.436],[-2.835,6.746],[-2.58,2.098],[-0.652,0.624],[2.296,0.113],[2.268,0.085],[1.361,-1.531],[1.162,-2.806],[0.057,-0.227],[0,-0.142],[0.737,-2.948],[2.296,-8.957],[0.482,-7.115],[-0.17,0.113]],"v":[[16.2,-40.38],[6.591,-5.571],[-3.076,25.185],[-11.041,36.949],[-16.909,40.946],[-14.017,41.74],[-6.165,42.193],[-1.346,40.748],[2.707,33.349],[5.57,25.1],[5.769,24.448],[5.91,23.711],[12.487,1.459],[16.398,-22.607],[17.079,-42.223]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176470588235,0.176470588235,0.176470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Group 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[398.934,325.215,0],"ix":2},"a":{"a":0,"k":[142.934,69.215,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[2.665,-3.373],[7.115,-10.006],[3.94,-5.357],[-0.595,-1.474],[-2.693,-1.389],[-3.118,-2.891],[-4.989,-4.479],[-1.191,-0.454],[4.762,4.876],[3.94,4.252],[-0.85,5.272],[-4.706,8.22],[-4.309,6.803]],"o":[[-2.665,3.402],[-7.115,10.006],[-3.94,5.386],[0.595,1.474],[2.665,1.361],[3.146,2.92],[4.961,4.479],[1.162,0.425],[-4.762,-4.876],[-3.94,-4.252],[0.822,-5.244],[4.677,-8.22],[4.309,-6.803]],"v":[[125.093,32.995],[107.065,57.827],[90,81.751],[84.784,90.794],[91.134,94.394],[99.241,100.658],[111.288,111.855],[123.449,121.89],[116.249,113.187],[101.679,98.561],[96.605,86.06],[105.817,65.112],[120.501,41.131]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26,"s":[{"i":[[2.665,-3.373],[7.115,-10.006],[3.94,-5.357],[-0.595,-1.474],[-2.693,-1.389],[-3.118,-2.891],[-4.989,-4.479],[-1.191,-0.454],[4.762,4.876],[3.94,4.252],[-0.85,5.272],[-4.706,8.22],[-4.309,6.803]],"o":[[-2.665,3.402],[-7.115,10.006],[-3.94,5.386],[0.595,1.474],[2.665,1.361],[3.146,2.92],[4.961,4.479],[1.162,0.425],[-4.762,-4.876],[-3.94,-4.252],[0.822,-5.244],[4.677,-8.22],[4.309,-6.803]],"v":[[125.093,32.995],[107.065,57.827],[90,81.751],[84.784,90.794],[91.134,94.394],[99.241,100.658],[94.538,95.605],[106.699,105.64],[99.499,96.937],[101.679,98.561],[96.605,86.06],[105.817,65.112],[120.501,41.131]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[2.665,-3.373],[7.115,-10.006],[3.94,-5.357],[-0.595,-1.474],[-2.693,-1.389],[-3.118,-2.891],[-4.989,-4.479],[-1.191,-0.454],[4.762,4.876],[3.94,4.252],[-0.85,5.272],[-4.706,8.22],[-4.309,6.803]],"o":[[-2.665,3.402],[-7.115,10.006],[-3.94,5.386],[0.595,1.474],[2.665,1.361],[3.146,2.92],[4.961,4.479],[1.162,0.425],[-4.762,-4.876],[-3.94,-4.252],[0.822,-5.244],[4.677,-8.22],[4.309,-6.803]],"v":[[125.093,32.995],[107.065,57.827],[90,81.751],[84.784,90.794],[91.134,94.394],[99.241,100.658],[111.288,111.855],[123.449,121.89],[116.249,113.187],[101.679,98.561],[96.605,86.06],[105.817,65.112],[120.501,41.131]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94,"s":[{"i":[[2.665,-3.373],[7.115,-10.006],[3.94,-5.357],[-0.595,-1.474],[-2.693,-1.389],[-3.118,-2.891],[-4.989,-4.479],[-1.191,-0.454],[4.762,4.876],[3.94,4.252],[-0.85,5.272],[-4.706,8.22],[-4.309,6.803]],"o":[[-2.665,3.402],[-7.115,10.006],[-3.94,5.386],[0.595,1.474],[2.665,1.361],[3.146,2.92],[4.961,4.479],[1.162,0.425],[-4.762,-4.876],[-3.94,-4.252],[0.822,-5.244],[4.677,-8.22],[4.309,-6.803]],"v":[[125.093,32.995],[107.065,57.827],[90,81.751],[84.784,90.794],[91.134,94.394],[99.241,100.658],[94.538,95.605],[106.699,105.64],[99.499,96.937],[101.679,98.561],[96.605,86.06],[105.817,65.112],[120.501,41.131]],"c":true}]},{"t":120,"s":[{"i":[[2.665,-3.373],[7.115,-10.006],[3.94,-5.357],[-0.595,-1.474],[-2.693,-1.389],[-3.118,-2.891],[-4.989,-4.479],[-1.191,-0.454],[4.762,4.876],[3.94,4.252],[-0.85,5.272],[-4.706,8.22],[-4.309,6.803]],"o":[[-2.665,3.402],[-7.115,10.006],[-3.94,5.386],[0.595,1.474],[2.665,1.361],[3.146,2.92],[4.961,4.479],[1.162,0.425],[-4.762,-4.876],[-3.94,-4.252],[0.822,-5.244],[4.677,-8.22],[4.309,-6.803]],"v":[[125.093,32.995],[107.065,57.827],[90,81.751],[84.784,90.794],[91.134,94.394],[99.241,100.658],[111.288,111.855],[123.449,121.89],[116.249,113.187],[101.679,98.561],[96.605,86.06],[105.817,65.112],[120.501,41.131]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[256,256,0],"to":[-0.208,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.666,"s":[254.75,256,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[256,256,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94,"s":[254.75,256,0],"to":[0,0,0],"ti":[-0.208,0,0]},{"t":120,"s":[256,256,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.142,-0.907],[3.685,-6.973],[-1.559,-2.665],[-6.236,2.013],[-3.345,0.567],[6.151,-2.75],[7.398,-4.309],[2.239,-3.912],[-1.332,-0.17],[0.567,-1.672],[2.183,-3.657],[-3.43,-0.652],[-5.159,-3.231],[-0.227,-1.162],[4.876,2.891],[4.025,1.077],[6.548,-0.283],[6.746,-0.368],[-3.94,0.964],[-7.937,5.443],[-5.839,10.8],[-5.613,8.929]],"o":[[-0.17,0.907],[-3.685,6.973],[1.559,2.636],[6.208,-1.984],[3.345,-0.539],[-6.151,2.75],[-7.427,4.309],[-2.239,3.883],[1.361,0.142],[-0.539,1.644],[-2.183,3.657],[3.43,0.68],[5.159,3.231],[0.227,1.134],[-4.876,-2.863],[-3.997,-1.049],[-6.576,0.283],[-6.746,0.34],[3.94,-0.964],[7.937,-5.443],[5.839,-10.772],[5.584,-8.957]],"v":[[182.721,16.611],[173.565,31.663],[169.37,48.047],[182.353,47.254],[199.162,42.123],[195.789,45.751],[170.476,56.891],[157.748,69.676],[155.395,76.989],[160.299,75.855],[152.306,87.42],[154.432,92.778],[169.03,96.917],[178.724,107.49],[170.192,101.877],[155.424,96.066],[142.753,95.046],[118.432,96.491],[113.131,95.726],[135.383,87.506],[154.658,62.22],[172.29,30.019]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 19","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.306,87.727,0],"ix":2},"a":{"a":0,"k":[-3.164,152.465,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.557,-5.783],[7.937,-3.543],[1.474,1.106],[1.502,1.077],[2.013,-0.765],[1.757,-1.106],[-2.183,-2.466],[-2.438,-2.353],[-1.502,0.312],[-3.572,2.098],[-5.046,3.487],[-3.685,2.409],[6.123,-2.126]],"o":[[-12.557,5.783],[-7.937,3.543],[-1.474,-1.134],[-1.502,-1.049],[-1.191,0.425],[0.879,0.312],[2.438,2.778],[2.409,2.324],[1.502,-0.34],[3.543,-2.069],[5.046,-3.458],[3.713,-2.438],[-6.123,2.126]],"v":[[11.31,143.036],[-23.187,158.854],[-34.469,161.83],[-38.494,156.813],[-43.937,157.209],[-48.104,159.222],[-44.05,163.105],[-35.263,172.687],[-30.444,174.869],[-23.272,171.581],[-9.638,162.68],[4.167,153.213],[41.131,130.082]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[290.784,410.345,0],"ix":2},"a":{"a":0,"k":[34.784,154.345,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.474,0.454],[0.397,-2.409],[1.304,-5.046],[0.737,-3.118],[-0.142,-0.935],[0,0],[-0.482,5.159],[0.567,4.649],[2.268,-0.113],[0.312,1.814],[0.368,1.389],[1.389,0],[6.123,-2.126]],"o":[[1.474,-0.454],[-0.425,2.409],[-1.304,5.046],[-0.312,1.304],[0,0],[-0.057,-4.847],[0.85,-8.901],[-0.567,-4.649],[-2.296,0.113],[-0.34,-1.814],[-0.368,-1.361],[-1.361,0],[-6.123,2.126]],"v":[[11.679,149.074],[13.351,151.37],[10.233,163.304],[7.002,177.08],[6.576,180.17],[60.151,180.17],[60.718,165.231],[62.929,142.044],[57.033,137.82],[52.951,136.063],[53.121,129.317],[49.748,128.75],[41.131,130.082]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[353.282,280.931,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":26.666,"s":[101,101,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":60.666,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":94,"s":[101,101,100]},{"t":120,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0.765,-2.523],[1.191,-2.693],[1.984,-3.827],[3.543,-9.241],[2.239,-9.298],[0.425,-4.224],[0.879,-3.118],[-1.02,-0.368],[-0.935,0.17],[0.992,-2.58],[-0.113,-1.077],[-0.794,0.34],[-0.907,0.255],[-1.134,-0.028],[-0.539,2.041],[-1.049,7.143],[-2.806,10.715],[-3.487,8.306],[-1.276,2.863],[1.644,-0.879],[0.765,0.368],[-1.928,3.005],[-2.466,2.239],[-1.162,-0.057],[-0.794,-0.312],[-1.446,-0.085],[-1.474,-1.984],[0.057,-1.077],[1.757,0.567],[1.446,-0.312],[1.02,-1.928],[0.368,-5.386],[0.51,-7.625],[2.296,-8.957],[0.737,-2.948],[-3.373,7.512],[-8.816,15.761],[-8.986,13.89],[-2.183,3.345],[0.624,0.368],[0.425,0.879],[0.425,1.106],[0.283,-0.425],[5.244,-3.203],[4.876,-1.928],[2.381,0.595],[1.502,1.531],[1.531,0.737],[0.368,0.085],[0.557,0.525],[1.786,0.454]],"o":[[-0.85,2.835],[-1.191,2.665],[-1.956,3.798],[-3.543,9.213],[-2.211,9.269],[-0.425,4.252],[-0.85,3.118],[1.049,0.34],[0.935,-0.142],[-0.992,2.608],[0.142,1.106],[0.765,-0.34],[0.907,-0.283],[1.134,0.028],[0.51,-2.013],[1.049,-7.115],[2.806,-10.743],[3.487,-8.277],[1.304,-2.863],[-1.616,0.879],[-0.765,-0.34],[1.928,-2.976],[2.466,-2.268],[1.162,0.028],[0.794,0.312],[1.446,0.085],[1.502,1.984],[-0.057,1.049],[-1.757,-0.539],[-1.446,0.312],[-0.992,1.928],[-0.368,5.357],[-0.482,7.625],[-2.324,8.929],[-0.737,2.92],[3.373,-7.512],[8.816,-15.732],[3.26,-4.989],[-1.361,-1.928],[-0.737,-0.454],[-0.397,-0.85],[-0.255,0.454],[-2.268,3.317],[-5.244,3.231],[-4.876,1.928],[-2.353,-0.595],[-1.502,-1.559],[-0.312,-0.142],[-0.709,0.057],[-2.454,-2.313],[0.454,2.523]],"v":[[-15.814,-46.758],[-18.79,-37.347],[-23.383,-29.353],[-31.376,-10.191],[-41.694,20.622],[-44.217,40.379],[-46.542,50.017],[-47.137,57.5],[-42.346,54.354],[-43.338,59.796],[-45.294,65.664],[-43.055,66.429],[-41.127,65.125],[-37.527,64.984],[-35.175,62.914],[-33.219,49.762],[-27.606,21.67],[-17.487,-8.604],[-9.606,-25.13],[-10.513,-27.454],[-15.587,-24.846],[-13.263,-31.026],[-6.176,-39.445],[-0.309,-42.96],[1.704,-41.202],[5.474,-41.571],[9.726,-38.538],[12.788,-32.471],[9.216,-32.868],[4.284,-33.35],[0.712,-30.232],[-1.527,-19.914],[-2.293,0.836],[-6.205,24.902],[-12.781,47.154],[-8.161,38.083],[8.791,4.322],[39.462,-46.304],[47.625,-58.72],[45.188,-61.668],[43.09,-63.057],[42.353,-66.629],[41.559,-65.325],[30.646,-55.942],[13.468,-47.212],[3.518,-45.567],[-2.406,-49.167],[-5.687,-54.523],[-6.867,-54.016],[-8.328,-54.806],[-15.509,-56.004]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26.666,"s":[{"i":[[0.765,-2.523],[1.191,-2.693],[1.984,-3.827],[3.543,-9.241],[2.239,-9.298],[0.425,-4.224],[0.879,-3.118],[-1.02,-0.368],[-0.935,0.17],[0.992,-2.58],[-0.113,-1.077],[-0.794,0.34],[-0.907,0.255],[-1.134,-0.028],[-0.539,2.041],[-1.049,7.143],[-2.806,10.715],[-3.487,8.306],[-1.276,2.863],[1.644,-0.879],[0.765,0.368],[-1.928,3.005],[-2.466,2.239],[-1.162,-0.057],[-0.794,-0.312],[-1.446,-0.085],[-1.474,-1.984],[0.057,-1.077],[1.757,0.567],[1.446,-0.312],[1.02,-1.928],[0.368,-5.386],[0.51,-7.625],[2.296,-8.957],[0.737,-2.948],[-3.373,7.512],[-8.816,15.761],[-8.986,13.89],[-2.183,3.345],[0.624,0.368],[0.425,0.879],[0.425,1.106],[0.283,-0.425],[5.244,-3.203],[4.876,-1.928],[2.381,0.595],[1.502,1.531],[1.531,0.737],[0.368,0.085],[0.557,0.525],[1.786,0.454]],"o":[[-0.85,2.835],[-1.191,2.665],[-1.956,3.798],[-3.543,9.213],[-2.211,9.269],[-0.425,4.252],[-0.85,3.118],[1.049,0.34],[0.935,-0.142],[-0.992,2.608],[0.142,1.106],[0.765,-0.34],[0.907,-0.283],[1.134,0.028],[0.51,-2.013],[1.049,-7.115],[2.806,-10.743],[3.487,-8.277],[1.304,-2.863],[-1.616,0.879],[-0.765,-0.34],[1.928,-2.976],[2.466,-2.268],[1.162,0.028],[0.794,0.312],[1.446,0.085],[1.502,1.984],[-0.057,1.049],[-1.757,-0.539],[-1.446,0.312],[-0.992,1.928],[-0.368,5.357],[-0.482,7.625],[-2.324,8.929],[-0.737,2.92],[3.373,-7.512],[8.816,-15.732],[3.26,-4.989],[-1.361,-1.928],[-0.737,-0.454],[-0.397,-0.85],[-0.255,0.454],[-2.268,3.317],[-5.244,3.231],[-4.876,1.928],[-2.353,-0.595],[-1.502,-1.559],[-0.312,-0.142],[-0.709,0.057],[-2.454,-2.313],[0.454,2.523]],"v":[[-15.814,-46.758],[-18.79,-37.347],[-23.383,-29.353],[-31.376,-10.191],[-41.694,20.622],[-44.217,40.379],[-46.542,50.017],[-47.137,57.5],[-42.346,54.354],[-43.338,59.796],[-45.294,65.664],[-43.055,66.429],[-41.127,65.125],[-37.527,64.984],[-35.175,62.914],[-33.219,49.762],[-27.606,21.67],[-17.487,-8.604],[-9.606,-25.13],[-10.513,-27.454],[-15.587,-24.846],[-13.263,-31.026],[-6.176,-39.445],[-0.309,-42.96],[1.704,-41.202],[5.474,-41.571],[9.726,-38.538],[12.788,-32.471],[9.216,-32.868],[4.284,-33.35],[0.712,-30.232],[-1.527,-19.914],[-2.293,0.836],[-6.205,24.902],[-12.781,47.154],[-8.161,38.083],[8.791,4.322],[39.462,-46.304],[46.883,-57.606],[44.692,-60.307],[42.595,-62.315],[40.868,-64.896],[40.94,-64.582],[30.646,-55.942],[13.468,-47.212],[3.518,-45.567],[-2.406,-49.167],[-5.687,-54.523],[-6.867,-54.016],[-8.328,-54.806],[-15.509,-56.004]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60.666,"s":[{"i":[[0.765,-2.523],[1.191,-2.693],[1.984,-3.827],[3.543,-9.241],[2.239,-9.298],[0.425,-4.224],[0.879,-3.118],[-1.02,-0.368],[-0.935,0.17],[0.992,-2.58],[-0.113,-1.077],[-0.794,0.34],[-0.907,0.255],[-1.134,-0.028],[-0.539,2.041],[-1.049,7.143],[-2.806,10.715],[-3.487,8.306],[-1.276,2.863],[1.644,-0.879],[0.765,0.368],[-1.928,3.005],[-2.466,2.239],[-1.162,-0.057],[-0.794,-0.312],[-1.446,-0.085],[-1.474,-1.984],[0.057,-1.077],[1.757,0.567],[1.446,-0.312],[1.02,-1.928],[0.368,-5.386],[0.51,-7.625],[2.296,-8.957],[0.737,-2.948],[-3.373,7.512],[-8.816,15.761],[-8.986,13.89],[-2.183,3.345],[0.624,0.368],[0.425,0.879],[0.425,1.106],[0.283,-0.425],[5.244,-3.203],[4.876,-1.928],[2.381,0.595],[1.502,1.531],[1.531,0.737],[0.368,0.085],[0.557,0.525],[1.786,0.454]],"o":[[-0.85,2.835],[-1.191,2.665],[-1.956,3.798],[-3.543,9.213],[-2.211,9.269],[-0.425,4.252],[-0.85,3.118],[1.049,0.34],[0.935,-0.142],[-0.992,2.608],[0.142,1.106],[0.765,-0.34],[0.907,-0.283],[1.134,0.028],[0.51,-2.013],[1.049,-7.115],[2.806,-10.743],[3.487,-8.277],[1.304,-2.863],[-1.616,0.879],[-0.765,-0.34],[1.928,-2.976],[2.466,-2.268],[1.162,0.028],[0.794,0.312],[1.446,0.085],[1.502,1.984],[-0.057,1.049],[-1.757,-0.539],[-1.446,0.312],[-0.992,1.928],[-0.368,5.357],[-0.482,7.625],[-2.324,8.929],[-0.737,2.92],[3.373,-7.512],[8.816,-15.732],[3.26,-4.989],[-1.361,-1.928],[-0.737,-0.454],[-0.397,-0.85],[-0.255,0.454],[-2.268,3.317],[-5.244,3.231],[-4.876,1.928],[-2.353,-0.595],[-1.502,-1.559],[-0.312,-0.142],[-0.709,0.057],[-2.454,-2.313],[0.454,2.523]],"v":[[-15.814,-46.758],[-18.79,-37.347],[-23.383,-29.353],[-31.376,-10.191],[-41.694,20.622],[-44.217,40.379],[-46.542,50.017],[-47.137,57.5],[-42.346,54.354],[-43.338,59.796],[-45.294,65.664],[-43.055,66.429],[-41.127,65.125],[-37.527,64.984],[-35.175,62.914],[-33.219,49.762],[-27.606,21.67],[-17.487,-8.604],[-9.606,-25.13],[-10.513,-27.454],[-15.587,-24.846],[-13.263,-31.026],[-6.176,-39.445],[-0.309,-42.96],[1.704,-41.202],[5.474,-41.571],[9.726,-38.538],[12.788,-32.471],[9.216,-32.868],[4.284,-33.35],[0.712,-30.232],[-1.527,-19.914],[-2.293,0.836],[-6.205,24.902],[-12.781,47.154],[-8.161,38.083],[8.791,4.322],[39.462,-46.304],[47.625,-58.72],[45.188,-61.668],[43.09,-63.057],[42.353,-66.629],[41.559,-65.325],[30.646,-55.942],[13.468,-47.212],[3.518,-45.567],[-2.406,-49.167],[-5.687,-54.523],[-6.867,-54.016],[-8.328,-54.806],[-15.509,-56.004]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0.765,-2.523],[1.191,-2.693],[1.984,-3.827],[3.543,-9.241],[2.239,-9.298],[0.425,-4.224],[0.879,-3.118],[-1.02,-0.368],[-0.935,0.17],[0.992,-2.58],[-0.113,-1.077],[-0.794,0.34],[-0.907,0.255],[-1.134,-0.028],[-0.539,2.041],[-1.049,7.143],[-2.806,10.715],[-3.487,8.306],[-1.276,2.863],[1.644,-0.879],[0.765,0.368],[-1.928,3.005],[-2.466,2.239],[-1.162,-0.057],[-0.794,-0.312],[-1.446,-0.085],[-1.474,-1.984],[0.057,-1.077],[1.757,0.567],[1.446,-0.312],[1.02,-1.928],[0.368,-5.386],[0.51,-7.625],[2.296,-8.957],[0.737,-2.948],[-3.373,7.512],[-8.816,15.761],[-8.986,13.89],[-2.183,3.345],[0.624,0.368],[0.425,0.879],[0.425,1.106],[0.283,-0.425],[5.244,-3.203],[4.876,-1.928],[2.381,0.595],[1.502,1.531],[1.531,0.737],[0.368,0.085],[0.557,0.525],[1.786,0.454]],"o":[[-0.85,2.835],[-1.191,2.665],[-1.956,3.798],[-3.543,9.213],[-2.211,9.269],[-0.425,4.252],[-0.85,3.118],[1.049,0.34],[0.935,-0.142],[-0.992,2.608],[0.142,1.106],[0.765,-0.34],[0.907,-0.283],[1.134,0.028],[0.51,-2.013],[1.049,-7.115],[2.806,-10.743],[3.487,-8.277],[1.304,-2.863],[-1.616,0.879],[-0.765,-0.34],[1.928,-2.976],[2.466,-2.268],[1.162,0.028],[0.794,0.312],[1.446,0.085],[1.502,1.984],[-0.057,1.049],[-1.757,-0.539],[-1.446,0.312],[-0.992,1.928],[-0.368,5.357],[-0.482,7.625],[-2.324,8.929],[-0.737,2.92],[3.373,-7.512],[8.816,-15.732],[3.26,-4.989],[-1.361,-1.928],[-0.737,-0.454],[-0.397,-0.85],[-0.255,0.454],[-2.268,3.317],[-5.244,3.231],[-4.876,1.928],[-2.353,-0.595],[-1.502,-1.559],[-0.312,-0.142],[-0.709,0.057],[-2.454,-2.313],[0.454,2.523]],"v":[[-15.814,-46.758],[-18.79,-37.347],[-23.383,-29.353],[-31.376,-10.191],[-41.694,20.622],[-44.217,40.379],[-46.542,50.017],[-47.137,57.5],[-42.346,54.354],[-43.338,59.796],[-45.294,65.664],[-43.055,66.429],[-41.127,65.125],[-37.527,64.984],[-35.175,62.914],[-33.219,49.762],[-27.606,21.67],[-17.487,-8.604],[-9.606,-25.13],[-10.513,-27.454],[-15.587,-24.846],[-13.263,-31.026],[-6.176,-39.445],[-0.309,-42.96],[1.704,-41.202],[5.474,-41.571],[9.726,-38.538],[12.788,-32.471],[9.216,-32.868],[4.284,-33.35],[0.712,-30.232],[-1.527,-19.914],[-2.293,0.836],[-6.205,24.902],[-12.781,47.154],[-8.161,38.083],[8.791,4.322],[39.462,-46.304],[46.883,-57.606],[44.692,-60.307],[42.595,-62.315],[40.868,-64.896],[40.94,-64.582],[30.646,-55.942],[13.468,-47.212],[3.518,-45.567],[-2.406,-49.167],[-5.687,-54.523],[-6.867,-54.016],[-8.328,-54.806],[-15.509,-56.004]],"c":true}]},{"t":120,"s":[{"i":[[0.765,-2.523],[1.191,-2.693],[1.984,-3.827],[3.543,-9.241],[2.239,-9.298],[0.425,-4.224],[0.879,-3.118],[-1.02,-0.368],[-0.935,0.17],[0.992,-2.58],[-0.113,-1.077],[-0.794,0.34],[-0.907,0.255],[-1.134,-0.028],[-0.539,2.041],[-1.049,7.143],[-2.806,10.715],[-3.487,8.306],[-1.276,2.863],[1.644,-0.879],[0.765,0.368],[-1.928,3.005],[-2.466,2.239],[-1.162,-0.057],[-0.794,-0.312],[-1.446,-0.085],[-1.474,-1.984],[0.057,-1.077],[1.757,0.567],[1.446,-0.312],[1.02,-1.928],[0.368,-5.386],[0.51,-7.625],[2.296,-8.957],[0.737,-2.948],[-3.373,7.512],[-8.816,15.761],[-8.986,13.89],[-2.183,3.345],[0.624,0.368],[0.425,0.879],[0.425,1.106],[0.283,-0.425],[5.244,-3.203],[4.876,-1.928],[2.381,0.595],[1.502,1.531],[1.531,0.737],[0.368,0.085],[0.557,0.525],[1.786,0.454]],"o":[[-0.85,2.835],[-1.191,2.665],[-1.956,3.798],[-3.543,9.213],[-2.211,9.269],[-0.425,4.252],[-0.85,3.118],[1.049,0.34],[0.935,-0.142],[-0.992,2.608],[0.142,1.106],[0.765,-0.34],[0.907,-0.283],[1.134,0.028],[0.51,-2.013],[1.049,-7.115],[2.806,-10.743],[3.487,-8.277],[1.304,-2.863],[-1.616,0.879],[-0.765,-0.34],[1.928,-2.976],[2.466,-2.268],[1.162,0.028],[0.794,0.312],[1.446,0.085],[1.502,1.984],[-0.057,1.049],[-1.757,-0.539],[-1.446,0.312],[-0.992,1.928],[-0.368,5.357],[-0.482,7.625],[-2.324,8.929],[-0.737,2.92],[3.373,-7.512],[8.816,-15.732],[3.26,-4.989],[-1.361,-1.928],[-0.737,-0.454],[-0.397,-0.85],[-0.255,0.454],[-2.268,3.317],[-5.244,3.231],[-4.876,1.928],[-2.353,-0.595],[-1.502,-1.559],[-0.312,-0.142],[-0.709,0.057],[-2.454,-2.313],[0.454,2.523]],"v":[[-15.814,-46.758],[-18.79,-37.347],[-23.383,-29.353],[-31.376,-10.191],[-41.694,20.622],[-44.217,40.379],[-46.542,50.017],[-47.137,57.5],[-42.346,54.354],[-43.338,59.796],[-45.294,65.664],[-43.055,66.429],[-41.127,65.125],[-37.527,64.984],[-35.175,62.914],[-33.219,49.762],[-27.606,21.67],[-17.487,-8.604],[-9.606,-25.13],[-10.513,-27.454],[-15.587,-24.846],[-13.263,-31.026],[-6.176,-39.445],[-0.309,-42.96],[1.704,-41.202],[5.474,-41.571],[9.726,-38.538],[12.788,-32.471],[9.216,-32.868],[4.284,-33.35],[0.712,-30.232],[-1.527,-19.914],[-2.293,0.836],[-6.205,24.902],[-12.781,47.154],[-8.161,38.083],[8.791,4.322],[39.462,-46.304],[47.625,-58.72],[45.188,-61.668],[43.09,-63.057],[42.353,-66.629],[41.559,-65.325],[30.646,-55.942],[13.468,-47.212],[3.518,-45.567],[-2.406,-49.167],[-5.687,-54.523],[-6.867,-54.016],[-8.328,-54.806],[-15.509,-56.004]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.352,0.953,0.763,1,1,0.905,0.525,1],"ix":9}},"s":{"a":0,"k":[48,-65],"ix":5},"e":{"a":0,"k":[-60,163],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Layer 5","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[8.676,35.462,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.227,-3.345],[1.616,-2.92],[3.969,-2.608],[3.742,-0.935],[2.523,1.502],[1.843,1.361],[2.324,-0.255],[-0.425,-0.227],[-1.502,-1.559],[-2.353,-0.595],[-4.876,1.928],[-5.244,3.231],[-2.268,3.317],[-0.255,0.454],[0.028,0],[0.482,1.956],[-0.34,3.061],[0.397,1.956],[-0.85,3.231],[-0.454,4.11],[1.616,-1.984],[0.567,-1.786],[-0.765,-2.891]],"o":[[0.227,3.373],[-1.644,2.92],[-3.94,2.636],[-3.742,0.935],[-1.701,-1.02],[-1.984,0.51],[0.51,0.085],[1.531,0.737],[1.502,1.531],[2.381,0.595],[4.876,-1.928],[5.244,-3.203],[0.283,-0.425],[0,-0.028],[-0.454,-1.106],[-0.397,-1.616],[-1.361,-1.559],[-0.454,-2.183],[0.85,-3.203],[-1.219,2.211],[-1.587,1.956],[-0.595,1.814],[0.737,2.891]],"v":[[18.156,0.403],[16.483,9.502],[7.923,18.063],[-4.72,23.845],[-13.564,22.938],[-18.808,19.026],[-25.072,20.018],[-23.655,20.472],[-19.687,24.327],[-13.762,27.927],[-3.813,26.283],[13.365,17.552],[24.937,9.241],[23.773,7.795],[23.753,7.11],[22.946,4.343],[22.946,-3.651],[20.367,-9.008],[20.877,-16.747],[23.74,-28.199],[19.687,-21.793],[15.548,-16.322],[16.483,-9.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568632126,0.737254917622,0.588235318661,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26.666,"s":[-3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":94,"s":[-3]},{"t":120,"s":[0]}],"ix":10},"p":{"a":0,"k":[369.886,230.475,0],"ix":2},"a":{"a":0,"k":[8,58.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.283,-0.425],[5.244,-3.203],[4.876,-1.928],[2.381,0.595],[1.502,1.531],[1.531,0.737],[1.701,0],[3.402,0.51],[1.417,1.389],[0.142,2.239],[0.255,1.446],[0.368,0.964],[0.283,0.85],[0.368,0.425],[0.198,1.077],[0.68,0.964],[0.935,0.709],[-0.17,1.814],[-0.454,2.608],[0.34,1.757],[0.368,0.964],[0.567,0.907],[0.227,1.134],[-0.283,1.332],[-0.227,2.069],[-0.454,3.231],[0.283,2.438],[0.51,1.786],[-1.531,2.976],[-5.159,3.543],[-7.909,2.296],[-7.2,0],[-3.203,-2.324],[-1.361,-2.92],[-2.013,-2.636],[-1.417,-5.244],[-0.113,-5.754],[1.956,-5.301],[2.041,-5.074],[0.539,-3.487],[-0.482,-1.956],[-0.454,-1.106]],"o":[[-0.255,0.454],[-2.268,3.317],[-5.244,3.231],[-4.876,1.928],[-2.353,-0.595],[-1.502,-1.559],[-1.531,-0.765],[-1.134,0],[-1.417,-0.453],[-1.417,-1.417],[-0.142,-2.239],[-0.255,-1.446],[-0.397,-0.992],[-0.312,-0.85],[-0.368,-0.397],[-0.227,-1.077],[-0.652,-0.935],[-0.964,-0.709],[0.142,-1.843],[0.482,-2.58],[-0.34,-1.757],[-0.397,-0.935],[-0.567,-0.935],[-0.227,-1.134],[0.255,-1.332],[0.255,-2.069],[0.425,-3.232],[-0.312,-2.438],[-0.539,-1.757],[1.502,-3.005],[5.159,-3.543],[7.937,-2.296],[7.228,-0.028],[3.203,2.324],[1.361,2.948],[1.984,2.636],[1.417,5.244],[0.085,5.754],[-1.928,5.329],[-2.041,5.074],[-0.539,3.458],[0.482,1.956],[0,0]],"v":[[33.235,43.627],[34.347,49.532],[23.212,59.334],[8.438,65.186],[-7.924,64.992],[-15.753,64.297],[-22.06,62.072],[-23.765,58.578],[-25.807,54.715],[-30.995,52.022],[-33.064,46.353],[-33.234,40.201],[-34.566,37.338],[-35.275,33.965],[-36.522,32.548],[-37.287,30.422],[-38.45,26.879],[-41.143,24.809],[-42.758,21.238],[-41.029,14.179],[-41.086,7.263],[-42.305,3.578],[-43.552,0.828],[-45.168,-2.177],[-44.714,-6.003],[-44.091,-10.766],[-43.013,-18.901],[-42.362,-28.227],[-44.289,-33.669],[-43.269,-40.756],[-33.602,-50.932],[-13.221,-60.23],[10.448,-63.66],[26.775,-60.258],[31.85,-51.443],[37.434,-43.562],[42.621,-32.762],[45.229,-14.252],[42.536,0.771],[35.535,17.836],[31.878,29.912],[31.623,39.805],[32.332,42.894]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392158031,0.792156875134,0.639215707779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Layer 17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[280.727,272.242,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[0.624,5.443],[-0.312,3.26],[-2.296,-0.368],[-3.005,-0.34],[-3.146,2.296],[-3.798,5.669],[-3.317,7.654],[-2.353,11.254],[-0.879,11.679],[0.51,7.058],[1.616,2.636],[5.499,2.211],[7.625,3.43],[4.932,3.997],[2.013,2.835],[0.737,0.454],[0.907,-0.794],[7.115,-2.891],[7.569,-2.495],[2.891,-1.786],[1.871,-3.6],[0.879,-7.795],[0.907,-10.176],[1.474,-6.775],[1.219,-2.863],[0.397,-2.409],[1.304,-5.046],[0.737,-3.118],[-0.142,-0.935]],"o":[[-2.013,-6.009],[-0.709,-6.265],[0.312,-3.288],[2.268,0.397],[3.033,0.34],[3.146,-2.324],[3.827,-5.641],[3.317,-7.654],[2.353,-11.225],[0.879,-11.679],[-0.482,-7.058],[-1.644,-2.608],[-5.499,-2.183],[-7.625,-3.458],[-4.932,-3.997],[-2.013,-2.863],[-0.737,-0.454],[-0.907,0.765],[-7.115,2.92],[-7.568,2.466],[-2.891,1.814],[-1.899,3.6],[-0.85,7.824],[-0.907,10.148],[-1.446,6.775],[-1.219,2.891],[-0.425,2.409],[-1.304,5.046],[-0.312,1.304],[0,0]],"v":[[132.455,163.928],[128.713,147.288],[128.203,131.131],[131.547,128.268],[140.647,129.685],[149.094,127.729],[160.121,115.115],[170.807,95.131],[179.538,67.578],[184.385,30.785],[184.867,2.523],[181.636,-11.792],[172.366,-17.234],[150.37,-26.589],[131.434,-37.162],[121.003,-48.869],[117.743,-52.979],[56.401,-44.164],[46.083,-39.033],[19.409,-29.282],[5.746,-24.378],[-1.596,-15.959],[-5.508,-0.368],[-7.832,29.055],[-11.46,54.851],[-15.826,69.194],[-11.375,135.128],[-14.494,147.062],[-17.725,160.838],[-18.15,163.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.666,"s":[{"i":[[0,0],[0.624,5.443],[-0.312,3.26],[-2.296,-0.368],[-4.592,1.78],[-3.146,2.296],[-3.798,5.669],[-3.317,7.654],[-2.353,11.254],[-0.879,11.679],[0.51,7.058],[1.616,2.636],[5.499,2.211],[7.625,3.43],[4.932,3.997],[2.013,2.835],[0.737,0.454],[0.907,-0.794],[7.115,-2.891],[7.569,-2.494],[2.891,-1.786],[1.871,-3.6],[0.879,-7.795],[0.907,-10.176],[1.474,-6.775],[1.219,-2.863],[0.397,-2.409],[1.304,-5.046],[0.737,-3.118],[-0.142,-0.935]],"o":[[-2.013,-6.009],[-0.709,-6.265],[0.312,-3.288],[2.268,0.397],[2.843,-1.091],[3.146,-2.324],[3.827,-5.641],[3.317,-7.654],[2.353,-11.225],[0.879,-11.679],[-0.482,-7.058],[-1.644,-2.608],[-5.499,-2.183],[-7.625,-3.458],[-4.932,-3.997],[-2.013,-2.863],[-0.737,-0.454],[-0.907,0.765],[-7.115,2.92],[-7.568,2.466],[-2.891,1.814],[-1.899,3.6],[-0.85,7.824],[-0.907,10.148],[-1.446,6.775],[-1.219,2.891],[-0.425,2.409],[-1.304,5.046],[-0.312,1.304],[0,0]],"v":[[132.455,163.928],[128.713,147.288],[128.203,131.131],[131.547,128.268],[140.647,125.519],[149.094,123.563],[160.121,110.949],[170.807,95.131],[179.538,67.578],[184.385,30.785],[184.867,2.523],[181.636,-11.792],[172.366,-17.234],[150.37,-26.589],[131.434,-37.162],[121.003,-48.869],[117.743,-52.979],[63.838,-46.101],[46.083,-39.033],[19.409,-29.282],[5.746,-24.378],[-1.596,-15.959],[-5.508,-0.368],[-7.832,29.055],[-11.46,54.851],[-15.826,69.194],[-11.375,135.128],[-14.494,147.062],[-17.725,160.838],[-18.15,163.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,0],[0.624,5.443],[-0.312,3.26],[-2.296,-0.368],[-3.005,-0.34],[-3.146,2.296],[-3.798,5.669],[-3.317,7.654],[-2.353,11.254],[-0.879,11.679],[0.51,7.058],[1.616,2.636],[5.499,2.211],[7.625,3.43],[4.932,3.997],[2.013,2.835],[0.737,0.454],[0.907,-0.794],[7.115,-2.891],[7.569,-2.495],[2.891,-1.786],[1.871,-3.6],[0.879,-7.795],[0.907,-10.176],[1.474,-6.775],[1.219,-2.863],[0.397,-2.409],[1.304,-5.046],[0.737,-3.118],[-0.142,-0.935]],"o":[[-2.013,-6.009],[-0.709,-6.265],[0.312,-3.288],[2.268,0.397],[3.033,0.34],[3.146,-2.324],[3.827,-5.641],[3.317,-7.654],[2.353,-11.225],[0.879,-11.679],[-0.482,-7.058],[-1.644,-2.608],[-5.499,-2.183],[-7.625,-3.458],[-4.932,-3.997],[-2.013,-2.863],[-0.737,-0.454],[-0.907,0.765],[-7.115,2.92],[-7.568,2.466],[-2.891,1.814],[-1.899,3.6],[-0.85,7.824],[-0.907,10.148],[-1.446,6.775],[-1.219,2.891],[-0.425,2.409],[-1.304,5.046],[-0.312,1.304],[0,0]],"v":[[132.455,163.928],[128.713,147.288],[128.203,131.131],[131.547,128.268],[140.647,129.685],[149.094,127.729],[160.121,115.115],[170.807,95.131],[179.538,67.578],[184.385,30.785],[184.867,2.523],[181.636,-11.792],[172.366,-17.234],[150.37,-26.589],[131.434,-37.162],[121.003,-48.869],[117.743,-52.979],[56.401,-44.164],[46.083,-39.033],[19.409,-29.282],[5.746,-24.378],[-1.596,-15.959],[-5.508,-0.368],[-7.832,29.055],[-11.46,54.851],[-15.826,69.194],[-11.375,135.128],[-14.494,147.062],[-17.725,160.838],[-18.15,163.928]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94,"s":[{"i":[[0,0],[0.624,5.443],[-0.312,3.26],[-2.296,-0.368],[-4.623,1.822],[-3.146,2.296],[-3.798,5.669],[-3.317,7.654],[-2.353,11.254],[-0.879,11.679],[0.51,7.058],[1.616,2.636],[5.499,2.211],[7.625,3.43],[4.932,3.997],[2.013,2.835],[0.737,0.454],[0.907,-0.794],[7.115,-2.891],[7.569,-2.495],[2.891,-1.786],[1.871,-3.6],[0.879,-7.795],[0.907,-10.176],[1.474,-6.775],[1.219,-2.863],[0.397,-2.409],[1.304,-5.046],[0.737,-3.118],[-0.142,-0.935]],"o":[[-2.013,-6.009],[-0.709,-6.265],[0.312,-3.288],[2.268,0.397],[2.84,-1.119],[3.146,-2.324],[3.827,-5.641],[3.317,-7.654],[2.353,-11.225],[0.879,-11.679],[-0.482,-7.058],[-1.644,-2.608],[-5.499,-2.183],[-7.625,-3.458],[-4.932,-3.997],[-2.013,-2.863],[-0.737,-0.454],[-0.907,0.765],[-7.115,2.92],[-7.568,2.466],[-2.891,1.814],[-1.899,3.6],[-0.85,7.824],[-0.907,10.148],[-1.446,6.775],[-1.219,2.891],[-0.425,2.409],[-1.304,5.046],[-0.312,1.304],[0,0]],"v":[[132.455,163.928],[128.713,147.288],[128.203,131.131],[131.547,128.268],[140.647,125.435],[149.094,123.479],[160.121,110.865],[170.807,95.131],[179.538,67.578],[184.385,30.785],[184.867,2.523],[181.636,-11.792],[172.366,-17.234],[150.37,-26.589],[131.434,-37.162],[121.003,-48.869],[117.743,-52.979],[56.401,-44.164],[46.083,-39.033],[19.409,-29.282],[5.746,-24.378],[-1.596,-15.959],[-5.508,-0.368],[-7.832,29.055],[-11.46,54.851],[-15.826,69.194],[-11.375,135.128],[-14.494,147.062],[-17.725,160.838],[-18.15,163.928]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0.624,5.443],[-0.312,3.26],[-2.296,-0.368],[-3.005,-0.34],[-3.146,2.296],[-3.798,5.669],[-3.317,7.654],[-2.353,11.254],[-0.879,11.679],[0.51,7.058],[1.616,2.636],[5.499,2.211],[7.625,3.43],[4.932,3.997],[2.013,2.835],[0.737,0.454],[0.907,-0.794],[7.115,-2.891],[7.569,-2.495],[2.891,-1.786],[1.871,-3.6],[0.879,-7.795],[0.907,-10.176],[1.474,-6.775],[1.219,-2.863],[0.397,-2.409],[1.304,-5.046],[0.737,-3.118],[-0.142,-0.935]],"o":[[-2.013,-6.009],[-0.709,-6.265],[0.312,-3.288],[2.268,0.397],[3.033,0.34],[3.146,-2.324],[3.827,-5.641],[3.317,-7.654],[2.353,-11.225],[0.879,-11.679],[-0.482,-7.058],[-1.644,-2.608],[-5.499,-2.183],[-7.625,-3.458],[-4.932,-3.997],[-2.013,-2.863],[-0.737,-0.454],[-0.907,0.765],[-7.115,2.92],[-7.568,2.466],[-2.891,1.814],[-1.899,3.6],[-0.85,7.824],[-0.907,10.148],[-1.446,6.775],[-1.219,2.891],[-0.425,2.409],[-1.304,5.046],[-0.312,1.304],[0,0]],"v":[[132.455,163.928],[128.713,147.288],[128.203,131.131],[131.547,128.268],[140.647,129.685],[149.094,127.729],[160.121,115.115],[170.807,95.131],[179.538,67.578],[184.385,30.785],[184.867,2.523],[181.636,-11.792],[172.366,-17.234],[150.37,-26.589],[131.434,-37.162],[121.003,-48.869],[117.743,-52.979],[56.401,-44.164],[46.083,-39.033],[19.409,-29.282],[5.746,-24.378],[-1.596,-15.959],[-5.508,-0.368],[-7.832,29.055],[-11.46,54.851],[-15.826,69.194],[-11.375,135.128],[-14.494,147.062],[-17.725,160.838],[-18.15,163.928]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.352,0.082,0.082,0.082,1,0.165,0.165,0.165],"ix":9}},"s":{"a":0,"k":[55.5,151.5],"ix":5},"e":{"a":0,"k":[272,31],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Layer 2","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[62.837,38.184,0],"ix":2},"a":{"a":0,"k":[-79.36,86.68,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.352,0.082,0.082,0.082,1,0.165,0.165,0.165],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[100,0],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.797,-1.781],[4.649,1.276],[3.997,-0.822],[8.022,-3.061],[5.443,-2.098],[2.778,6.321],[3.742,7.625],[6.236,3.515],[10.488,4.082],[5.641,1.899],[0.85,-0.283],[0.397,-1.162],[-2.636,-6.463],[-6.406,-13.55],[-4.252,-8.532],[-2.409,-1.842],[-3.742,-2.041],[-1.786,-0.992],[-0.17,-0.822],[-0.425,-1.134],[0.142,-0.595],[0.964,-0.227],[0.794,-0.85],[-0.198,-1.219],[-1.814,-0.539],[-2.041,-0.028],[-1.559,-0.652],[-1.502,-1.219],[-1.389,-0.652],[-1.191,-0.028],[-0.907,-0.397],[-1.247,-0.34],[-1.304,0.425],[-1.021,-0.142],[-1.417,-0.255],[-1.361,0.652],[-0.964,-0.142],[-2.438,-2.75],[-2.438,-2.353],[-1.502,0.312],[-3.572,2.098],[-5.046,3.487],[-4.402,-0.077]],"o":[[-3.686,0.746],[-4.649,-1.304],[-3.997,0.822],[-8.022,3.061],[-5.443,2.098],[-2.778,-6.321],[-3.713,-7.625],[-6.265,-3.543],[-10.517,-4.082],[-5.613,-1.899],[-0.85,0.283],[-0.425,1.191],[2.665,6.463],[6.406,13.521],[4.252,8.532],[2.381,1.843],[3.742,2.013],[1.757,0.992],[0.198,0.822],[0.425,1.134],[-0.17,0.567],[-0.964,0.227],[-0.794,0.85],[0.198,1.247],[1.786,0.539],[2.069,0.028],[1.587,0.652],[1.502,1.219],[1.417,0.624],[1.219,0.057],[0.907,0.397],[1.276,0.312],[1.304,-0.425],[1.049,0.142],[1.389,0.255],[1.361,-0.624],[0.935,0.142],[2.438,2.778],[2.409,2.324],[1.502,-0.34],[3.543,-2.069],[5.046,-3.458],[101.833,1.787]],"v":[[-21.523,72.539],[-36.575,68.429],[-47.857,67.635],[-65.262,73.446],[-89.413,82.8],[-97.832,78.577],[-109.709,52.016],[-121.728,38.24],[-148.912,26.164],[-175.615,16.413],[-182.758,14.74],[-184.997,16.81],[-182.588,26.221],[-168.386,57.43],[-150.046,95.358],[-142.563,106.923],[-132.415,113.301],[-123.372,117.865],[-121.36,120.076],[-120.424,123.279],[-119.602,126.057],[-121.586,126.992],[-124.421,128.381],[-125.555,131.84],[-122.635,134.731],[-116.087,135.298],[-111.07,136.007],[-106.279,139.125],[-102.141,142.186],[-98.002,142.951],[-94.997,143.405],[-91.908,144.907],[-87.741,144.681],[-84.424,143.688],[-80.909,145.077],[-76.402,144.17],[-73.114,142.895],[-68.777,146.863],[-59.99,156.444],[-55.171,158.627],[-47.999,155.339],[-34.364,146.438],[-20.56,136.97]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.352,0.082,0.082,0.082,1,0.165,0.165,0.165],"ix":9}},"s":{"a":0,"k":[55.5,151.5],"ix":5},"e":{"a":0,"k":[272,31],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[468,443,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[288,288,100],"ix":6}},"ao":0,"w":512,"h":512,"ip":0,"op":180,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/legalysis/application/locul_run/rag.py b/legalysis/application/locul_run/rag.py new file mode 100644 index 00000000..f8d27b11 --- /dev/null +++ b/legalysis/application/locul_run/rag.py @@ -0,0 +1,35 @@ +from langchain.text_splitter import RecursiveCharacterTextSplitter +# from langchain.llms import OpenAI +from langchain.chains import RetrievalQA +from langchain.document_loaders import TextLoader +from langchain.document_loaders import PyPDFLoader +from langchain.document_loaders import DirectoryLoader +from langchain.embeddings import HuggingFaceEmbeddings +from langchain.vectorstores import Chroma +from langchain.chains.question_answering import load_qa_chain +from langchain import HuggingFaceHub + +# from InstructorEmbedding import INSTRUCTOR + + +# Load and process the pdf files +loader = DirectoryLoader('./cases', glob="./*.pdf", loader_cls=PyPDFLoader) +documents = loader.load() + +#splitting the text into +text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200) +texts = text_splitter.split_documents(documents) + +# Embeddings +embeddings = HuggingFaceEmbeddings() + +db = Chroma.from_documents(texts, embeddings) + +llm=HuggingFaceHub(repo_id="HuggingFaceH4/zephyr-7b-beta", model_kwargs={"temperature":0.02, "max_length":512},huggingfacehub_api_token='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') + +chain = load_qa_chain(llm, chain_type="stuff") + +query = "who is the judge for the case Shaikh Maqsood v State of Maharashtra ? give only his/her name" +search_type="mmr" +docs = db.search(query,search_type) +print(chain.run(input_documents=docs, question=query)) diff --git a/legalysis/application/locul_run/sample.py b/legalysis/application/locul_run/sample.py new file mode 100644 index 00000000..d5c94019 --- /dev/null +++ b/legalysis/application/locul_run/sample.py @@ -0,0 +1,29 @@ +import streamlit as st + + +def set_background_color(color): + """ + Set the background color of the entire app. + + Parameters: + - color (str): The background color in CSS format (e.g., 'lightblue'). + """ + page_bg_color = f""" + + """ + st.markdown(page_bg_color, unsafe_allow_html=True) + +def main(): + # Set background color to lightblue + set_background_color('green') + + # Your Streamlit app content + st.title("My Streamlit App") + st.write("This is the main content of your app.") + +if __name__ == "__main__": + main() diff --git a/legalysis/application/red.pd b/legalysis/application/red.pd new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/legalysis/application/red.pd @@ -0,0 +1 @@ + diff --git a/legalysis/notebooks/IPC_FineTuningUsingIDC.ipynb b/legalysis/notebooks/IPC_FineTuningUsingIDC.ipynb new file mode 100644 index 00000000..9613a08e --- /dev/null +++ b/legalysis/notebooks/IPC_FineTuningUsingIDC.ipynb @@ -0,0 +1,505 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# importing libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73e4a60f-fbfc-40e6-af07-3eef6e0ec172", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import intel_extension_for_pytorch as ipex\n", + "print(torch.backends.mkl.is_available())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3a8ba182-b638-4554-9b24-6b7a0e423e7f", + "metadata": {}, + "outputs": [], + "source": [ + "from distributed import Client\n", + "client = Client()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2823cb75-0dfa-4b42-ae33-292af17e2c88", + "metadata": {}, + "outputs": [], + "source": [ + "import modin.pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38610962-f245-432a-8644-16b7fbe71dbc", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_excel(\"IPC_Dataset.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6139b0e4-a982-4114-8184-ae1878563a35", + "metadata": {}, + "outputs": [], + "source": [ + "from datasets import load_dataset, Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53c5e167-ebfc-46d1-bdf2-223dd21c0f7c", + "metadata": {}, + "outputs": [], + "source": [ + "data_dict = df.to_dict('list') # convert DataFrame to dictionary of lists\n", + "dataset = Dataset.from_dict(data_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# data processing" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c670c16-9738-4434-8e13-023d5fbf04ae", + "metadata": {}, + "outputs": [], + "source": [ + "ds = dataset.train_test_split(test_size=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ffa00726-80d0-469b-a352-a2b5922dc04c", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer\n", + "\n", + "checkpoint = \"google/flan-t5-large\"\n", + "tokenizer = AutoTokenizer.from_pretrained(checkpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0271cffd-f088-43dd-9e91-4ef770cb0e8a", + "metadata": {}, + "outputs": [], + "source": [ + "def format_instruction(chapter: str, section: str):\n", + "\treturn f\"\"\"### Instruction:\n", + "What does {section.strip()} about?\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e2e4364-d0f1-4971-95c3-ac93efd5c8e9", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_instruction_dataset(data_point):\n", + "\n", + " return {\n", + " \"chapter\": data_point[\"Chapter\"],\n", + " \"Section\": data_point[\"Section\"],\n", + " # \"Title\": data_point[\"Title\"],\n", + " # \"Description\": data_point[\"Description\"],\n", + " \"text\": format_instruction(data_point[\"Chapter\"],data_point[\"Section\"])\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6d897b1-a7bf-4fa8-a7a5-51d3be254803", + "metadata": {}, + "outputs": [], + "source": [ + "def process_dataset(data: Dataset):\n", + " return (\n", + " data.shuffle(seed=42)\n", + " .map(generate_instruction_dataset)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4ad9f65-db8b-4a35-9d83-3fdba5232da9", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"train\"] = process_dataset(ds[\"train\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1daf4c3b-2fc1-4aa7-8915-3dee85b2f15e", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"train\"][\"text\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a005331-b8be-4bc6-b3b0-e3d72d953845", + "metadata": {}, + "outputs": [], + "source": [ + "def format_instruction1(title: str, Description : str):\n", + "\treturn f\"\"\"\n", + "# {title.strip()} which describes {Description.strip()}\n", + "# \"\"\".strip()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f41003eb-6c66-4df2-8348-9bcd5fc57590", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_instruction_dataset1(data_point):\n", + "\n", + " return {\n", + " \"chapter\": data_point[\"Chapter\"],\n", + " \"Section\": data_point[\"Section\"],\n", + " \"Title\": data_point[\"Title\"],\n", + " \"Description\": data_point[\"Description\"],\n", + " \"text\": format_instruction1(data_point[\"Title\"],data_point[\"Description\"])\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5b3d210-2ae1-4ba9-bfec-738816acba00", + "metadata": {}, + "outputs": [], + "source": [ + "def process_dataset1(data: Dataset):\n", + " return (\n", + " data.shuffle(seed=42)\n", + " .map(generate_instruction_dataset1)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70904e8e-7bdc-477b-adb9-896ecf7aa6e3", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"out\"] = process_dataset1(ds[\"train\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0bdad5a3-82be-4c36-95fc-b696b01a964d", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"out\"][\"text\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04f9c637-7484-49cb-a0ce-d9b11e840649", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"title\"] = ds[\"train\"][\"text\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "057a159e-b355-4141-ae64-482eb9bf40dc", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"res\"] = ds[\"out\"][\"text\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c94c6f5-7419-4fe2-b2b1-cc49ad8b50e4", + "metadata": {}, + "outputs": [], + "source": [ + "dfs= pd.DataFrame()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e8f4e1fa-e08e-4519-9944-ea307cd341ea", + "metadata": {}, + "outputs": [], + "source": [ + "dfs[\"title\"] = ds[\"title\"] " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4767b8b-e5f2-4ef6-bc74-9eb216c70deb", + "metadata": {}, + "outputs": [], + "source": [ + "dfs[\"response\"] = ds[\"res\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbd62325-a6ef-4add-ab44-8775e4d79bfe", + "metadata": {}, + "outputs": [], + "source": [ + "dfs[\"title\"][3]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5b12774-0146-41f2-ba3e-d74eeb97806f", + "metadata": {}, + "outputs": [], + "source": [ + "dfs[\"response\"][3]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f8e19560-c09c-40d3-896c-e4acc75c3896", + "metadata": {}, + "outputs": [], + "source": [ + "fin = Dataset.from_pandas(dfs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39cfb4fd-69a8-4e8a-a1bb-c62bffd9eb67", + "metadata": {}, + "outputs": [], + "source": [ + "finalDs= fin.train_test_split(test_size=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a9a316d4-0d1e-4585-855b-94c7de590eed", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def preprocess_function(examples):\n", + " inputs = [doc for doc in examples[\"title\"]]\n", + " model_inputs = tokenizer(inputs, max_length=1024, truncation=True)\n", + "\n", + " labels = tokenizer(text_target=examples[\"response\"], max_length=500, truncation=True)\n", + "\n", + " model_inputs[\"labels\"] = labels[\"input_ids\"]\n", + " return model_inputs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c84f2496-c688-4741-a7eb-ee1be1d9928c", + "metadata": {}, + "outputs": [], + "source": [ + "tokenized_ds = finalDs.map(preprocess_function, batched=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2177f0e-f4ab-4ec2-b4b4-3663fff9289a", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import DataCollatorForSeq2Seq\n", + "\n", + "data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer, model=checkpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4673126c-89d2-456d-a2ed-07e9e3d0f0c0", + "metadata": {}, + "outputs": [], + "source": [ + "import evaluate\n", + "\n", + "rouge = evaluate.load(\"rouge\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "906e1a7c-c44d-4f93-91a8-05d6877b0771", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "\n", + "def compute_metrics(eval_pred):\n", + " predictions, labels = eval_pred\n", + " decoded_preds = tokenizer.batch_decode(predictions, skip_special_tokens=True)\n", + " labels = np.where(labels != -100, labels, tokenizer.pad_token_id)\n", + " decoded_labels = tokenizer.batch_decode(labels, skip_special_tokens=True)\n", + "\n", + " result = rouge.compute(predictions=decoded_preds, references=decoded_labels, use_stemmer=True)\n", + "\n", + " prediction_lens = [np.count_nonzero(pred != tokenizer.pad_token_id) for pred in predictions]\n", + " result[\"gen_len\"] = np.mean(prediction_lens)\n", + "\n", + " return {k: round(v, 4) for k, v in result.items()}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# finetuning LLM" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b82afd97-b05c-4ae8-b731-2a847d503bc5", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoModelForSeq2SeqLM, Seq2SeqTrainingArguments, Seq2SeqTrainer\n", + "\n", + "model = AutoModelForSeq2SeqLM.from_pretrained(checkpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ce5c181-a6ba-4229-9a81-48d5eb11e9c0", + "metadata": {}, + "outputs": [], + "source": [ + "training_args = Seq2SeqTrainingArguments(\n", + " output_dir=\"finalIPC\",\n", + " evaluation_strategy=\"epoch\",\n", + " learning_rate=1e-4,\n", + " per_device_train_batch_size=16,\n", + " per_device_eval_batch_size=16,\n", + " weight_decay=0.01,\n", + " save_total_limit=1,\n", + " num_train_epochs=5,\n", + " predict_with_generate=True,\n", + " push_to_hub=True\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d5e5b7b-0913-4614-b88c-f55da8d767c3", + "metadata": {}, + "outputs": [], + "source": [ + "trainer = Seq2SeqTrainer(\n", + " model=model,\n", + " args=training_args,\n", + " train_dataset=tokenized_ds[\"train\"],\n", + " eval_dataset=tokenized_ds[\"test\"],\n", + " tokenizer=tokenizer,\n", + " data_collator=data_collator,\n", + " compute_metrics=compute_metrics,\n", + " \n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22a6638c-8ad9-4ae2-9728-b3414acd090e", + "metadata": {}, + "outputs": [], + "source": [ + "trainer.train()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1acafe9e-69b5-45dc-99b3-a1d32d6e3c0c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/legalysis/notebooks/SummarizingLLM.ipynb b/legalysis/notebooks/SummarizingLLM.ipynb new file mode 100644 index 00000000..1f139c0f --- /dev/null +++ b/legalysis/notebooks/SummarizingLLM.ipynb @@ -0,0 +1,504 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "590ce047", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11269210", + "metadata": {}, + "outputs": [], + "source": [ + "from distributed import Client\n", + "client = Client()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9986f377", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import intel_extension_for_pytorch as ipex\n", + "import time\n", + "import evaluate\n", + "import modin.pandas as pd\n", + "import numpy as np\n", + "from datasets import Dataset, load_dataset\n", + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfb7ccc3", + "metadata": {}, + "outputs": [], + "source": [ + "# loading training dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d97f78e4", + "metadata": {}, + "outputs": [], + "source": [ + "excel_path = 'train_dataset.xlsx'\n", + "df = pd.read_excel(excel_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a8f2a46", + "metadata": {}, + "outputs": [], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "226716c4", + "metadata": {}, + "outputs": [], + "source": [ + "# processing data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7cbfefcd", + "metadata": {}, + "outputs": [], + "source": [ + "df['summary'] = df['summary'].astype(str)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bf567939", + "metadata": {}, + "outputs": [], + "source": [ + "df['text'] = df['text'].astype(str)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44e4662d", + "metadata": {}, + "outputs": [], + "source": [ + "data_dict = df.to_dict('list') # convert DataFrame to dictionary of lists\n", + "dataset = Dataset.from_dict(data_dict) # create Dataset object" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97e40723", + "metadata": {}, + "outputs": [], + "source": [ + "ds = dataset.train_test_split(test_size=2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b0882b88", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"train\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a54a63df", + "metadata": {}, + "outputs": [], + "source": [ + "def format_instruction(text: str, summary: str):\n", + "\treturn f\"\"\"### Instruction:\n", + "Summarize the following case details\n", + "### Input:\n", + "{text.strip()}\n", + "\n", + "### Summary:\n", + "{summary.strip()}\n", + "\"\"\".strip()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "afad7a39", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_instruction_dataset(data_point):\n", + "\n", + " return {\n", + " \"text\": data_point[\"text\"],\n", + " \"summary\": data_point[\"summary\"],\n", + " \"text\": format_instruction(data_point[\"text\"],data_point[\"summary\"])\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8be89709", + "metadata": {}, + "outputs": [], + "source": [ + "def process_dataset(data: Dataset):\n", + " return (\n", + " data.shuffle(seed=42)\n", + " .map(generate_instruction_dataset)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69541801", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"train\"] = process_dataset(ds[\"train\"])\n", + "ds[\"test\"] = process_dataset(ds[\"test\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16faa2c7", + "metadata": {}, + "outputs": [], + "source": [ + "ds[\"train\"][\"text\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04feb929", + "metadata": {}, + "outputs": [], + "source": [ + "# loading the LLM models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4aa18d8", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig\n", + "\n", + "model_id = \"meta-llama/Llama-2-7b-hf\"\n", + "bnb_config = BitsAndBytesConfig(\n", + " load_in_4bit=True,\n", + " bnb_4bit_use_double_quant=True,\n", + " bnb_4bit_quant_type=\"nf4\",\n", + " bnb_4bit_compute_dtype=torch.bfloat16\n", + ")\n", + "\n", + "model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config)\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(model_id)\n", + "tokenizer.pad_token = tokenizer.eos_token\n", + "tokenizer.padding_side = \"right\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32931fa8", + "metadata": {}, + "outputs": [], + "source": [ + "def print_trainable_parameters(model):\n", + " \"\"\"\n", + " Prints the number of trainable parameters in the model.\n", + " \"\"\"\n", + " trainable_params = 0\n", + " all_param = 0\n", + " for _, param in model.named_parameters():\n", + "\n", + " all_param += param.numel()\n", + " if param.requires_grad:\n", + " trainable_params += param.numel()\n", + " print(\n", + " f\"trainable params: {trainable_params} || all params: {all_param} || trainable%: {100 * trainable_params / all_param}\"\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ee9cb82", + "metadata": {}, + "outputs": [], + "source": [ + "from peft import prepare_model_for_kbit_training\n", + "\n", + "model.gradient_checkpointing_enable()\n", + "model = prepare_model_for_kbit_training(model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b957b24", + "metadata": {}, + "outputs": [], + "source": [ + "print(model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ec4a990", + "metadata": {}, + "outputs": [], + "source": [ + "# Trainable parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "00d26f3c", + "metadata": {}, + "outputs": [], + "source": [ + "from peft import LoraConfig, get_peft_model\n", + "\n", + "lora_config = LoraConfig(\n", + " r=16,\n", + " lora_alpha=64,\n", + " target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\"], #specific to Llama models.\n", + " lora_dropout=0.1,\n", + " bias=\"none\",\n", + " task_type=\"CAUSAL_LM\"\n", + ")\n", + "\n", + "model = get_peft_model(model, lora_config)\n", + "print_trainable_parameters(model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "75a33549", + "metadata": {}, + "outputs": [], + "source": [ + "Output_Dir = \"Output_Dir\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a0580cd9", + "metadata": {}, + "outputs": [], + "source": [ + "# Fine tuning" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03778e29", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import TrainingArguments\n", + "\n", + "training_arguments = TrainingArguments(\n", + " per_device_train_batch_size=4,\n", + " gradient_accumulation_steps=4,\n", + " optim=\"paged_adamw_32bit\",\n", + " logging_steps=1,\n", + " learning_rate=1e-4,\n", + " fp16=True,\n", + " max_grad_norm=0.3,\n", + " num_train_epochs=4,\n", + " evaluation_strategy=\"steps\",\n", + " eval_steps=0.2,\n", + " warmup_ratio=0.05,\n", + " save_strategy=\"epoch\",\n", + " group_by_length=True,\n", + " output_dir=OUTPUT_DIR,\n", + " report_to=\"tensorboard\",\n", + " save_safetensors=True,\n", + " lr_scheduler_type=\"cosine\",\n", + " seed=42,\n", + ")\n", + "model.config.use_cache = False \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3bb43756", + "metadata": {}, + "outputs": [], + "source": [ + "from trl import SFTTrainer\n", + "trainer = SFTTrainer(\n", + " model=model,\n", + " train_dataset=ds[\"train\"],\n", + " eval_dataset=ds[\"test\"],\n", + " peft_config=lora_config,\n", + " dataset_text_field=\"text\",\n", + " max_seq_length=2250,\n", + " tokenizer=tokenizer,\n", + " args=training_arguments,\n", + ")\n", + "\n", + "trainer.train()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e110726", + "metadata": {}, + "outputs": [], + "source": [ + "peft_model_path=\"./fineTunedModel\"\n", + "trainer.model.save_pretrained(peft_model_path)\n", + "tokenizer.save_pretrained(peft_model_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4241a653", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "from peft import AutoPeftModelForCausalLM\n", + "from transformers import AutoTokenizer\n", + "\n", + "peft_model_dir = \"./fineTunedModel\"\n", + "\n", + "trained_model = AutoPeftModelForCausalLM.from_pretrained(\n", + " peft_model_dir,\n", + " low_cpu_mem_usage=True,\n", + " torch_dtype=torch.float16,\n", + " load_in_4bit=True,\n", + ")\n", + "tokenizer = AutoTokenizer.from_pretrained(peft_model_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9545612e", + "metadata": {}, + "outputs": [], + "source": [ + "input_ids = tokenizer(prompt, return_tensors='pt',truncation=True).input_ids.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d0af622", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "outputs = trained_model.generate(input_ids=input_ids, max_new_tokens=100, )\n", + "output= tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True)[0][len(prompt):]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34f59cfb", + "metadata": {}, + "outputs": [], + "source": [ + "print(output)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbb7b6a4", + "metadata": {}, + "outputs": [], + "source": [ + "trained_model = AutoPeftModelForCausalLM.from_pretrained(\n", + " peft_model_dir,\n", + " low_cpu_mem_usage=True,\n", + " torch_dtype=torch.float16,\n", + ")\n", + "\n", + "fineTunedModel = trained_model.merge_and_unload()\n", + "\n", + "merged_model.save_pretrained(\"fineTunedModel\",safe_serialization=True)\n", + "tokenizer.save_pretrained(\"fineTunedModel\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ebb2e735", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/legalysis/requirements.txt b/legalysis/requirements.txt new file mode 100644 index 00000000..1a8354d2 --- /dev/null +++ b/legalysis/requirements.txt @@ -0,0 +1,11 @@ +python +intel_extension_for_pytorch as ipex +modin +transformers +torch +streamlit +express +datasets +accelerate +bitsandbytes +chromadb