diff --git a/week1/day1.ipynb b/week1/day1.ipynb
index d1823b1..901ad3d 100644
--- a/week1/day1.ipynb
+++ b/week1/day1.ipynb
@@ -1,75 +1,5 @@
{
"cells": [
- {
- "cell_type": "markdown",
- "id": "d15d8294-3328-4e07-ad16-8a03e9bbfdb9",
- "metadata": {},
- "source": [
- "# Instant Gratification\n",
- "\n",
- "## Your first Frontier LLM Project!\n",
- "\n",
- "Let's build a useful LLM solution - in a matter of minutes.\n",
- "\n",
- "By the end of this course, you will have built an autonomous Agentic AI solution with 7 agents that collaborate to solve a business problem. All in good time! We will start with something smaller...\n",
- "\n",
- "Our goal is to code a new kind of Web Browser. Give it a URL, and it will respond with a summary. The Reader's Digest of the internet!!\n",
- "\n",
- "Before starting, you should have completed the setup for [PC](../SETUP-PC.md) or [Mac](../SETUP-mac.md) and you hopefully launched this jupyter lab from within the project root directory, with your environment activated.\n",
- "\n",
- "## If you're new to Jupyter Lab\n",
- "\n",
- "Welcome to the wonderful world of Data Science experimentation! Once you've used Jupyter Lab, you'll wonder how you ever lived without it. Simply click in each \"cell\" with code in it, such as the cell immediately below this text, and hit Shift+Return to execute that cell. As you wish, you can add a cell with the + button in the toolbar, and print values of variables, or try out variations. \n",
- "\n",
- "I've written a notebook called [Guide to Jupyter](Guide%20to%20Jupyter.ipynb) to help you get more familiar with Jupyter Labs, including adding Markdown comments, using `!` to run shell commands, and `tqdm` to show progress.\n",
- "\n",
- "## If you'd prefer to work in IDEs\n",
- "\n",
- "If you're more comfortable in IDEs like VSCode or Pycharm, they both work great with these lab notebooks too. \n",
- "If you'd prefer to work in VSCode, [here](https://chatgpt.com/share/676f2e19-c228-8012-9911-6ca42f8ed766) are instructions from an AI friend on how to configure it for the course.\n",
- "\n",
- "## If you'd like to brush up your Python\n",
- "\n",
- "I've added a notebook called [Intermediate Python](Intermediate%20Python.ipynb) to get you up to speed. But you should give it a miss if you already have a good idea what this code does: \n",
- "`yield from {book.get(\"author\") for book in books if book.get(\"author\")}`\n",
- "\n",
- "## I am here to help\n",
- "\n",
- "If you have any problems at all, please do reach out. \n",
- "I'm available through the platform, or at ed@edwarddonner.com, or at https://www.linkedin.com/in/eddonner/ if you'd like to connect (and I love connecting!)\n",
- "\n",
- "## More troubleshooting\n",
- "\n",
- "Please see the [troubleshooting](troubleshooting.ipynb) notebook in this folder to diagnose and fix common problems. At the very end of it is a diagnostics script with some useful debug info.\n",
- "\n",
- "## If this is old hat!\n",
- "\n",
- "If you're already comfortable with today's material, please hang in there; you can move swiftly through the first few labs - we will get much more in depth as the weeks progress.\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | \n",
- " \n",
- " Please read - important note\n",
- " The way I collaborate with you may be different to other courses you've taken. I prefer not to type code while you watch. Rather, I execute Jupyter Labs, like this, and give you an intuition for what's going on. My suggestion is that you do this with me, either at the same time, or (perhaps better) right afterwards. Add print statements to understand what's going on, and then come up with your own variations. If you have a Github account, use this to showcase your variations. Not only is this essential practice, but it demonstrates your skills to others, including perhaps future clients or employers...\n",
- " | \n",
- "
\n",
- "
\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " | \n",
- " \n",
- " Business value of these exercises\n",
- " A final thought. While I've designed these notebooks to be educational, I've also tried to make them enjoyable. We'll do fun things like have LLMs tell jokes and argue with each other. But fundamentally, my goal is to teach skills you can apply in business. I'll explain business implications as we go, and it's worth keeping this in mind: as you build experience with models and techniques, think of ways you could put this into action at work today. Please do contact me if you'd like to discuss more or if you have ideas to bounce off me.\n",
- " | \n",
- "
\n",
- "
"
- ]
- },
{
"cell_type": "code",
"execution_count": null,
@@ -185,7 +115,6 @@
"source": [
"# A class to represent a Webpage\n",
"# If you're not familiar with Classes, check out the \"Intermediate Python\" notebook\n",
- "\n",
"# Some websites need you to use proper headers when fetching them:\n",
"headers = {\n",
" \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36\"\n",
@@ -215,7 +144,7 @@
"source": [
"# Let's try one out. Change the website and add print statements to follow along.\n",
"\n",
- "ed = Website(\"https://edwarddonner.com\")\n",
+ "ed = Website(\"https://docs.databricks.com/en/catalog-explorer/index.html\")\n",
"print(ed.title)\n",
"print(ed.text)"
]
@@ -248,8 +177,8 @@
"# Define our system prompt - you can experiment with this later, changing the last sentence to 'Respond in markdown in Spanish.\"\n",
"\n",
"system_prompt = \"You are an assistant that analyzes the contents of a website \\\n",
- "and provides a short summary, ignoring text that might be navigation related. \\\n",
- "Respond in markdown.\""
+ "and provides a very short summary, ignoring text that might be navigation related. \\\n",
+ "Respond in markdown. Be consice and tone should be professional\""
]
},
{
@@ -262,10 +191,9 @@
"# A function that writes a User Prompt that asks for summaries of websites:\n",
"\n",
"def user_prompt_for(website):\n",
- " user_prompt = f\"You are looking at a website titled {website.title}\"\n",
- " user_prompt += \"\\nThe contents of this website is as follows; \\\n",
- "please provide a short summary of this website in markdown. \\\n",
- "If it includes news or announcements, then summarize these too.\\n\\n\"\n",
+ " user_prompt = f\" You are looking at a website titled {website.title}\"\n",
+ " user_prompt += \" The contents of this website is as follows; \\\n",
+ "please provide a short summary of this website in markdown.\"\n",
" user_prompt += website.text\n",
" return user_prompt"
]
@@ -305,12 +233,7 @@
"id": "f25dcd35-0cd0-4235-9f64-ac37ed9eaaa5",
"metadata": {},
"outputs": [],
- "source": [
- "messages = [\n",
- " {\"role\": \"system\", \"content\": \"You are a snarky assistant\"},\n",
- " {\"role\": \"user\", \"content\": \"What is 2 + 2?\"}\n",
- "]"
- ]
+ "source": []
},
{
"cell_type": "code",
@@ -319,6 +242,10 @@
"metadata": {},
"outputs": [],
"source": [
+ "messages = [\n",
+ " {\"role\": \"system\", \"content\": \"You are a professional assistant that starts the response with a random fact about databases\"},\n",
+ " {\"role\": \"user\", \"content\": \"What is 2 ^ 22?\"}\n",
+ "]\n",
"# To give you a preview -- calling OpenAI with system and user messages:\n",
"\n",
"response = openai.chat.completions.create(model=\"gpt-4o-mini\", messages=messages)\n",
@@ -418,7 +345,7 @@
"metadata": {},
"outputs": [],
"source": [
- "display_summary(\"https://edwarddonner.com\")"
+ "display_summary(\"https://docs.databricks.com/en/catalog-explorer/index.html\")"
]
},
{
@@ -444,7 +371,7 @@
"metadata": {},
"outputs": [],
"source": [
- "display_summary(\"https://cnn.com\")"
+ "display_summary(\"https://en.wikipedia.org/wiki/Databricks\")"
]
},
{
@@ -457,38 +384,6 @@
"display_summary(\"https://anthropic.com\")"
]
},
- {
- "cell_type": "markdown",
- "id": "c951be1a-7f1b-448f-af1f-845978e47e2c",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- " \n",
- " \n",
- " | \n",
- " \n",
- " Business applications\n",
- " In this exercise, you experienced calling the Cloud API of a Frontier Model (a leading model at the frontier of AI) for the first time. We will be using APIs like OpenAI at many stages in the course, in addition to building our own LLMs.\n",
- "\n",
- "More specifically, we've applied this to Summarization - a classic Gen AI use case to make a summary. This can be applied to any business vertical - summarizing the news, summarizing financial performance, summarizing a resume in a cover letter - the applications are limitless. Consider how you could apply Summarization in your business, and try prototyping a solution.\n",
- " | \n",
- "
\n",
- "
\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " | \n",
- " \n",
- " Before you continue - now try yourself\n",
- " Use the cell below to make your own simple commercial example. Stick with the summarization use case for now. Here's an idea: write something that will take the contents of an email, and will suggest an appropriate short subject line for the email. That's the kind of feature that might be built into a commercial email tool.\n",
- " | \n",
- "
\n",
- "
"
- ]
- },
{
"cell_type": "code",
"execution_count": null,
@@ -497,24 +392,21 @@
"outputs": [],
"source": [
"# Step 1: Create your prompts\n",
+ "system_prompt = \"\"\"You are an experienced customer service representative for a luxury hotel chain. Always maintain a professional and courteous tone. Focus on providing detailed solutions while showing empathy for guest concerns. Your responses should be concise yet thorough, and prioritize guest satisfaction. Never disclose confidential hotel policies or room rates. Format your responses with proper paragraphs and bullet points when listing multiple items.\n",
+ "\"\"\"\n",
"\n",
- "system_prompt = \"something here\"\n",
"user_prompt = \"\"\"\n",
- " Lots of text\n",
- " Can be pasted here\n",
+ " Write a 100-word essay on the impact of social media on modern society, including both benefits and drawbacks\n",
"\"\"\"\n",
"\n",
- "# Step 2: Make the messages list\n",
- "\n",
- "messages = [] # fill this in\n",
- "\n",
- "# Step 3: Call OpenAI\n",
"\n",
- "response =\n",
- "\n",
- "# Step 4: print the result\n",
+ "messages = [\n",
+ " {\"role\": \"system\", \"content\": system_prompt},\n",
+ " {\"role\": \"user\", \"content\": user_prompt}\n",
+ "]\n",
"\n",
- "print("
+ "response = openai.chat.completions.create(model=\"gpt-4o-mini\", messages=messages)\n",
+ "print(response.choices[0].message.content)"
]
},
{
diff --git a/week1/day2 EXERCISE.ipynb b/week1/day2 EXERCISE.ipynb
index 81077ed..39eefb0 100644
--- a/week1/day2 EXERCISE.ipynb
+++ b/week1/day2 EXERCISE.ipynb
@@ -68,7 +68,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"id": "4e2a9393-7767-488e-a8bf-27c12dca35bd",
"metadata": {},
"outputs": [],
@@ -82,7 +82,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"id": "29ddd15d-a3c5-4f4e-a678-873f56162724",
"metadata": {},
"outputs": [],
@@ -96,7 +96,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 3,
"id": "dac0a679-599c-441f-9bf2-ddc73d35b940",
"metadata": {},
"outputs": [],
@@ -110,7 +110,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"id": "7bb9c624-14f0-4945-a719-8ddb64f66f47",
"metadata": {},
"outputs": [],
@@ -124,29 +124,74 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 21,
"id": "479ff514-e8bd-4985-a572-2ea28bb4fa40",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[?25lpulling manifest ⠋ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠙ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠹ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠸ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠼ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠴ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling dde5aa3fc5ff... 100% ▕████████████████▏ 2.0 GB \n",
+ "pulling 966de95ca8a6... 100% ▕████████████████▏ 1.4 KB \n",
+ "pulling fcc5a6bec9da... 100% ▕████████████████▏ 7.7 KB \n",
+ "pulling a70ff7e570d9... 100% ▕████████████████▏ 6.0 KB \n",
+ "pulling 56bb8bd477a5... 100% ▕████████████████▏ 96 B \n",
+ "pulling 34bb5ab01051... 100% ▕████████████████▏ 561 B \n",
+ "verifying sha256 digest \n",
+ "writing manifest \n",
+ "success \u001b[?25h\n"
+ ]
+ }
+ ],
"source": [
"# Let's just make sure the model is loaded\n",
"\n",
- "!ollama pull llama3.2"
+ "!ollama pull llama3.2\n"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"id": "42b9f644-522d-4e05-a691-56e7658c0ea9",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Generative AI has numerous business applications across various industries. Here are some examples:\n",
+ "\n",
+ "1. **Content Generation**: Generative AI can be used to generate high-quality content such as articles, blog posts, social media posts, and even entire books. This can help businesses save time and resources on content creation.\n",
+ "2. **Product Design and Development**: Generative AI can aid in product design by generating 3D models, prototypes, and even entire product lines. This can speed up the design process and reduce costs associated with prototyping and testing.\n",
+ "3. **Marketing and Advertising**: Generative AI can be used to create personalized ads, generate social media posts, and even compose sales emails. This can help businesses personalize their marketing efforts and improve engagement rates.\n",
+ "4. **Customer Service**: Generative AI-powered chatbots can provide 24/7 customer support, answering common queries and routing complex issues to human agents. This can help reduce response times and improve customer satisfaction.\n",
+ "5. **Data Analysis and Insights**: Generative AI can be used to analyze large datasets, identify patterns, and generate insights that can inform business decisions.\n",
+ "6. **Financial Modeling**: Generative AI can aid in financial modeling by generating scenarios, forecasting revenue, and identifying potential risks.\n",
+ "7. **Human Resources**: Generative AI can be used to screen resumes, generate interview questions, and even create personalized onboarding experiences for new employees.\n",
+ "8. **Supply Chain Optimization**: Generative AI can help optimize supply chain operations by predicting demand, identifying bottlenecks, and recommending logistics improvements.\n",
+ "9. **Cybersecurity**: Generative AI-powered tools can analyze vast amounts of data to detect and respond to cybersecurity threats in real-time.\n",
+ "10. **Creative Industries**: Generative AI is being explored in creative industries such as music, art, and fashion, where it can aid in the creation of new content and even generate original ideas.\n",
+ "\n",
+ "Some examples of companies that are already leveraging generative AI include:\n",
+ "\n",
+ "* **Microsoft**: Using generative AI to create personalized content for its customers.\n",
+ "* **Amazon**: Utilizing generative AI-powered chatbots to enhance customer service.\n",
+ "* **Uber**: Using generative AI to optimize its logistics operations and improve ride times.\n",
+ "* **Google**: Exploring the use of generative AI in areas such as image recognition and natural language processing.\n",
+ "\n",
+ "These are just a few examples of the many business applications of generative AI. As the technology continues to evolve, we can expect to see even more innovative uses across various industries.\n"
+ ]
+ }
+ ],
"source": [
"# If this doesn't work for any reason, try the 2 versions in the following cells\n",
"# And double check the instructions in the 'Recap on installation of Ollama' at the top of this lab\n",
"# And if none of that works - contact me!\n",
"\n",
"response = requests.post(OLLAMA_API, json=payload, headers=HEADERS)\n",
- "print(response.json()['message']['content'])"
+ "print(response.json()['message']['content'])\n"
]
},
{
@@ -163,10 +208,36 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"id": "7745b9c4-57dc-4867-9180-61fa5db55eb8",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Generative AI has numerous business applications across various industries. Here are some examples:\n",
+ "\n",
+ "1. **Content Creation**: Generative AI can be used to generate high-quality content such as articles, social media posts, product descriptions, and more. This can help reduce content creation costs and increase efficiency.\n",
+ "2. **Image and Video Generation**: Generative AI can create realistic images and videos that can be used for advertising, marketing, and entertainment purposes.\n",
+ "3. **Chatbots and Virtual Assistants**: Generative AI can power chatbots and virtual assistants to provide personalized customer support and improve user experience.\n",
+ "4. **Predictive Maintenance**: Generative AI can analyze sensor data from machines and predict potential maintenance needs, reducing downtime and increasing efficiency.\n",
+ "5. **Personalized Recommendations**: Generative AI can be used to generate personalized product recommendations for e-commerce websites and streaming services.\n",
+ "6. **Design and Prototyping**: Generative AI can assist in design and prototyping by generating new ideas, shapes, and designs that can save time and resources.\n",
+ "7. **Marketing Automation**: Generative AI can automate marketing tasks such as lead generation, email writing, and ad creation.\n",
+ "8. **Risk Assessment and Insurance**: Generative AI can analyze data to identify potential risks and provide personalized insurance quotes.\n",
+ "9. **Supply Chain Optimization**: Generative AI can optimize supply chain operations by predicting demand, managing inventory, and identifying bottlenecks.\n",
+ "10. **Financial Analysis and Forecasting**: Generative AI can analyze financial data to predict market trends, identify investment opportunities, and provide personalized financial advice.\n",
+ "11. **Language Translation**: Generative AI can improve language translation accuracy and speed by generating high-quality translations.\n",
+ "12. **Data Visualization**: Generative AI can create interactive visualizations of complex data sets, making it easier for analysts and stakeholders to understand insights.\n",
+ "13. **Customer Service Analytics**: Generative AI can analyze customer service data to identify trends, preferences, and pain points, helping companies improve their customer experience.\n",
+ "14. **Cybersecurity**: Generative AI can be used to detect and respond to cybersecurity threats by generating alerts, predicting attacks, and suggesting countermeasures.\n",
+ "15. **Urban Planning and Development**: Generative AI can help urban planners design sustainable cities by generating new ideas for transportation systems, public spaces, and building designs.\n",
+ "\n",
+ "These are just a few examples of the many business applications of Generative AI. As the technology continues to evolve, we can expect to see even more innovative uses across various industries.\n"
+ ]
+ }
+ ],
"source": [
"import ollama\n",
"\n",
@@ -184,10 +255,39 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"id": "23057e00-b6fc-4678-93a9-6b31cb704bff",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Generative AI has numerous business applications across various industries. Here are some examples:\n",
+ "\n",
+ "1. **Content Generation**: Generative AI can be used to automate content creation, such as writing articles, creating social media posts, and producing videos. This can help businesses save time and resources, while also improving the consistency and quality of their content.\n",
+ "2. **Product Design and Development**: Generative AI can be used to design new products or features, such as 3D models, product images, and even entire product lines. This can help businesses speed up their product development process and reduce costs.\n",
+ "3. **Marketing and Advertising**: Generative AI can be used to generate targeted advertising campaigns, personalized product recommendations, and social media posts that resonate with specific audiences. For example, it can analyze customer data and create customized messages that are more likely to engage users.\n",
+ "4. **Customer Service Chatbots**: Generative AI-powered chatbots can be used to automate customer support, providing quick responses to common queries and routing more complex issues to human agents.\n",
+ "5. **Data Analysis and Visualization**: Generative AI can be used to analyze large datasets, identify patterns, and create visualizations that help businesses make data-driven decisions. For example, it can be used to generate heat maps of website traffic or create predictive models for sales forecasting.\n",
+ "6. **Automated Reporting and Dashboards**: Generative AI can be used to automate the creation of reports and dashboards, providing real-time insights into business performance and helping businesses identify areas for improvement.\n",
+ "7. **Sales Forecasting and Predictive Analytics**: Generative AI can be used to analyze historical sales data and make predictions about future sales trends, helping businesses anticipate revenue shortfalls or opportunities.\n",
+ "8. **Personalized Recommendations**: Generative AI can be used to generate personalized product recommendations based on customer behavior, preferences, and past purchases.\n",
+ "9. **Image and Video Generation**: Generative AI can be used to create high-quality images and videos, such as product images, lifestyle shots, or even entire advertising campaigns.\n",
+ "10. **Supply Chain Optimization**: Generative AI can be used to optimize supply chain operations, predicting demand, managing inventory, and streamlining logistics.\n",
+ "\n",
+ "Some notable businesses that are leveraging Generative AI include:\n",
+ "\n",
+ "* Google (Content Generation, Chatbots)\n",
+ "* Amazon (Product Design, Marketing and Advertising)\n",
+ "* Shopify (Personalized Recommendations, Product Design)\n",
+ "* IBM Watson (Data Analysis, Predictive Analytics)\n",
+ "* Coca-Cola (Marketing and Advertising, Supply Chain Optimization)\n",
+ "\n",
+ "Keep in mind that the applications of Generative AI are vast and constantly evolving, and many companies are finding new innovative ways to use these technologies to drive business growth.\n"
+ ]
+ }
+ ],
"source": [
"# There's actually an alternative approach that some people might prefer\n",
"# You can use the OpenAI client python library to call Ollama:\n",
@@ -218,20 +318,654 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"id": "cf9eb44e-fe5b-47aa-b719-0bb63669ab3d",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[?25lpulling manifest ⠋ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠙ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠹ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠸ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠼ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠴ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠦ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 0 B/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 0 B/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 0 B/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 194 KB/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 2.9 MB/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 6.2 MB/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 7.7 MB/1.1 GB \u001b[?25h\n",
+ "pulling aabd4debf0c8... 1% ▕ ▏ 11 MB/1.1 GB \u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 13 MB/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 19 MB/1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 24 MB/1.1 GB 20 MB/s 53s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 26 MB/1.1 GB 20 MB/s 53s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 32 MB/1.1 GB 20 MB/s 53s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 36 MB/1.1 GB 20 MB/s 53s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 38 MB/1.1 GB 20 MB/s 53s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 43 MB/1.1 GB 20 MB/s 52s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 49 MB/1.1 GB 20 MB/s 52s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 5% ▕ ▏ 52 MB/1.1 GB 20 MB/s 52s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 56 MB/1.1 GB 20 MB/s 52s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 62 MB/1.1 GB 20 MB/s 51s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 64 MB/1.1 GB 32 MB/s 32s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 70 MB/1.1 GB 32 MB/s 32s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 73 MB/1.1 GB 32 MB/s 32s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 80 MB/1.1 GB 32 MB/s 32s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 84 MB/1.1 GB 32 MB/s 32s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 88 MB/1.1 GB 32 MB/s 32s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 93 MB/1.1 GB 32 MB/s 31s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 95 MB/1.1 GB 32 MB/s 31s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 100 MB/1.1 GB 32 MB/s 31s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 106 MB/1.1 GB 32 MB/s 31s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 108 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 113 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 115 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 120 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 124 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 126 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 12% ▕█ ▏ 130 MB/1.1 GB 36 MB/s 27s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 135 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 137 MB/1.1 GB 36 MB/s 27s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 141 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 144 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 145 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 149 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 154 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 156 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 157 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 162 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 167 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 169 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 174 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 177 MB/1.1 GB 36 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 182 MB/1.1 GB 35 MB/s 26s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 187 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 189 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 194 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 199 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 204 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 206 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 210 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 212 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 217 MB/1.1 GB 35 MB/s 25s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 222 MB/1.1 GB 36 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 225 MB/1.1 GB 36 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 231 MB/1.1 GB 36 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 236 MB/1.1 GB 36 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 237 MB/1.1 GB 36 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 237 MB/1.1 GB 36 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 237 MB/1.1 GB 36 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 237 MB/1.1 GB 36 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 239 MB/1.1 GB 36 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 246 MB/1.1 GB 36 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 247 MB/1.1 GB 35 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 252 MB/1.1 GB 35 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 257 MB/1.1 GB 35 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 259 MB/1.1 GB 35 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 264 MB/1.1 GB 35 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 267 MB/1.1 GB 35 MB/s 24s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 269 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 275 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 279 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 281 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 284 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 287 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 289 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 294 MB/1.1 GB 35 MB/s 23s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 300 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 302 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 307 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 311 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 313 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 319 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 323 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 325 MB/1.1 GB 35 MB/s 22s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 330 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 334 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 338 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 340 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 344 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 346 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 350 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 354 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 355 MB/1.1 GB 35 MB/s 21s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 359 MB/1.1 GB 37 MB/s 20s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 362 MB/1.1 GB 37 MB/s 20s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 365 MB/1.1 GB 37 MB/s 20s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 369 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 373 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 375 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 380 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 384 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 387 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 391 MB/1.1 GB 37 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 395 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 398 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 400 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 403 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 405 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 409 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 413 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 418 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 421 MB/1.1 GB 36 MB/s 19s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 38% ▕██████ ▏ 424 MB/1.1 GB 36 MB/s 18s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 425 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 427 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 431 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 433 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 437 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 441 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 444 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 446 MB/1.1 GB 35 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 451 MB/1.1 GB 35 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 453 MB/1.1 GB 35 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 456 MB/1.1 GB 34 MB/s 19s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 460 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 461 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 464 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 467 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 469 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 473 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 477 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 482 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 483 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 487 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 489 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 492 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 497 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 499 MB/1.1 GB 34 MB/s 18s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 503 MB/1.1 GB 34 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 507 MB/1.1 GB 34 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 510 MB/1.1 GB 34 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 515 MB/1.1 GB 34 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 519 MB/1.1 GB 34 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 521 MB/1.1 GB 34 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 526 MB/1.1 GB 33 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 530 MB/1.1 GB 33 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 532 MB/1.1 GB 33 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 536 MB/1.1 GB 33 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 542 MB/1.1 GB 33 MB/s 17s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 546 MB/1.1 GB 33 MB/s 16s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 548 MB/1.1 GB 33 MB/s 16s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 552 MB/1.1 GB 33 MB/s 16s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 556 MB/1.1 GB 33 MB/s 16s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 559 MB/1.1 GB 33 MB/s 16s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 563 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 568 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 569 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 573 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 575 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 581 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 585 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 587 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 589 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 593 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 595 MB/1.1 GB 34 MB/s 15s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 600 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 602 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 606 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 608 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 612 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 614 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 619 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 624 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 625 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 629 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 634 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 635 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 639 MB/1.1 GB 34 MB/s 14s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 644 MB/1.1 GB 34 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 645 MB/1.1 GB 34 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 648 MB/1.1 GB 34 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 651 MB/1.1 GB 34 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 653 MB/1.1 GB 34 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 656 MB/1.1 GB 34 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 660 MB/1.1 GB 33 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 662 MB/1.1 GB 33 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 665 MB/1.1 GB 33 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 669 MB/1.1 GB 33 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 671 MB/1.1 GB 33 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 676 MB/1.1 GB 33 MB/s 13s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 681 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 683 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 62% ▕█████████ ▏ 687 MB/1.1 GB 33 MB/s 12s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 690 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 691 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 694 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 698 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 701 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 706 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 710 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 715 MB/1.1 GB 33 MB/s 12s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 718 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 722 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 724 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 728 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 733 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 736 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 740 MB/1.1 GB 33 MB/s 11s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 745 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 749 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 752 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 757 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 759 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 764 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 768 MB/1.1 GB 33 MB/s 10s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 771 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 775 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 780 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 783 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 786 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 791 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 796 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 799 MB/1.1 GB 35 MB/s 9s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 803 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 805 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 809 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 811 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 813 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 817 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 73% ▕███████████ ▏ 821 MB/1.1 GB 35 MB/s 8s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 824 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 825 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 828 MB/1.1 GB 35 MB/s 8s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 833 MB/1.1 GB 35 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 835 MB/1.1 GB 35 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 838 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 839 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 843 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 847 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 849 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 76% ▕████████████ ▏ 854 MB/1.1 GB 34 MB/s 7s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 858 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 859 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 865 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 869 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 871 MB/1.1 GB 34 MB/s 7s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 876 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 880 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 883 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 887 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 892 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 893 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 895 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 898 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 902 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ▏ 904 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 908 MB/1.1 GB 34 MB/s 6s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 910 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 914 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 918 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 920 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 922 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 926 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 928 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 932 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 935 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 938 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 941 MB/1.1 GB 34 MB/s 5s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 945 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 948 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 953 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 957 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 960 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 963 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 967 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 969 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest █ ▏ 973 MB/1.1 GB 34 MB/s 4s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 978 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 980 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 985 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 988 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 989 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 994 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 997 MB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 34 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 3s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 35 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 34 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ██ ▏ 1.0 GB/1.1 GB 34 MB/s 2s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 34 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 1s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 33 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 99% ▕███████████████ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 32 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕███████████████ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕███████████████ ▏ 1.1 GB/1.1 GB 30 MB/s 0s\u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 26 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ███ ▏ 1.1 GB/1.1 GB 23 MB/s 0s\u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest ████▏ 1.1 GB \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B/ 387 B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B/ 387 B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B/ 387 B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest B \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \u001b[?25h\n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "verifying sha256 digest ⠦ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1G\u001b[A\u001b[2K\u001b[1Gpulling manifest \n",
+ "pulling aabd4debf0c8... 100% ▕████████████████▏ 1.1 GB \n",
+ "pulling 369ca498f347... 100% ▕████████████████▏ 387 B \n",
+ "pulling 6e4c38e1172f... 100% ▕████████████████▏ 1.1 KB \n",
+ "pulling f4d24e9138dd... 100% ▕████████████████▏ 148 B \n",
+ "pulling a85fe2a2e58e... 100% ▕████████████████▏ 487 B \n",
+ "verifying sha256 digest \n",
+ "writing manifest \n",
+ "success \u001b[?25h\n"
+ ]
+ }
+ ],
"source": [
"!ollama pull deepseek-r1:1.5b"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"id": "1d3d554b-e00d-4c08-9300-45e073950a76",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "Okay, so I need to explain the concepts behind language models (LLMs)— especially focusing on how neural networks work and what attention mechanism does. Let me start by breaking down each part.\n",
+ "\n",
+ "First, what's a neural network? I know it involves layers with neurons connected together. Each layer processes information. But where did all that come from? Oh yeah, it's inspired by the human brain. The brain has billions of neurons connected in various ways, so maybe that analogy helps some people.\n",
+ "\n",
+ "Then there are different types of neural networks like RNNs and CNNs. Hmm, I remember RNNs have loops making them \" recurrent,\" which makes them good for sequences because they can remember previous information. Then there's the CNN layer, which uses multiple layers to detect features in images. But how does this relate to language models? Maybe LLMs can use CNNs as part of their architecture.\n",
+ "\n",
+ "The core idea is something about patterns and relationships in data, so I should mention that it's similar to learning language by building up these patterns. Also, each decision helps the model understand more about the text.\n",
+ "\n",
+ "Next is attention. I think it has to do with how models focus on certain parts of the input or relevant pieces. It reduces complexity because instead of remembering every word, the model pays attention and learns context.\n",
+ "\n",
+ "Transformers are a big part here. They came up recently since older models were too slow for LLMs. Transformers have self-attention modules where each token's representation depends on others, using dot products. This helps capture long-range dependencies in text because they're processed step by step without need for sequential memory (like recurrent units). It allows the model to understand relationships across different parts of a sentence.\n",
+ "\n",
+ "What about large models? Maybe they have many layers and heavy data. Training them is computationally intensive, so techniques like pruning or quantization are used, but sometimes just adding more could still work if properly optimized and trained.\n",
+ "\n",
+ "Applications: They are good for text generation, translation, summarization, etc. Handling high-dimensional outputs with attention mechanisms helps models make sense of all the words in context.\n",
+ "\n",
+ "Challenges: Managing computational resources since they're big. Hyperparameters are tricky because you need to find right settings without too much compute time. Training might not converge as easily as smaller models due to higher complexity and data needed.\n",
+ "\n",
+ "So putting it together, a neural network in an LLM processes text by recognizing patterns through layers, using attention to focus on relevant parts, and the transformer for global dependencies efficiently with self-attention, improving large model capabilities while handling complexity.\n",
+ "\n",
+ "\n",
+ "**Definitions of Core Concepts Behind Language Models (LLMs):**\n",
+ "\n",
+ "1. **Neural Network:**\n",
+ " - A neural network is a computational system modeled after the human brain, consisting of layers of interconnected neurons. Each neuron processes information through weighted connections and applies an activation function (e.g., ReLU or softmax). Neural networks learn by adjusting these weights during training to minimize error between predictions and actual data.\n",
+ "\n",
+ "2. **Attention Mechanism:**\n",
+ " - Attention in LLMs enables the model to focus on specific parts of input text, reducing complexity from processing every word. It enhances understanding by concentrating on relevant contextual information, particularly useful in capturing long-range dependencies that are crucial for language processing.\n",
+ "\n",
+ "3. **Transformer Architecture:**\n",
+ " - Transformers revolutionized language modeling with their self-attention mechanism. Unlike traditional recurrent neural networks (RNNs), transformers use multi-head attention where each token processes its representation based on others, allowing them to learn relationships across distant parts of text efficiently without sequential memory.\n",
+ "\n",
+ "These components, when combined, enable LLMs to process and understand vast amounts of text effectively.\n"
+ ]
+ }
+ ],
"source": [
"# This may take a few minutes to run! You should then see a fascinating \"thinking\" trace inside tags, followed by some decent definitions\n",
"\n",
@@ -255,9 +989,160 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"id": "6de38216-6d1c-48c4-877b-86d403f4e0f8",
"metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Generative AI has numerous business applications across various industries, including:\n",
+ "\n",
+ "1. **Content Creation**: Generative AI can be used to generate high-quality content such as articles, social media posts, product descriptions, and even entire books.\n",
+ "2. **Marketing Automation**: Generative AI can help automate marketing tasks such as email campaigns, ad copywriting, and personalized product recommendations.\n",
+ "3. **Product Design**: Generative AI can be used to design new products, including 3D models, logos, and packaging designs.\n",
+ "4. **Data Annotation**: Generative AI can help annotate large datasets with labels, tags, and descriptions, reducing the time and cost associated with manual annotation.\n",
+ "5. **Predictive Maintenance**: Generative AI can be used to predict equipment failures, reducing downtime and improving maintenance efficiency.\n",
+ "6. **Customer Service Chatbots**: Generative AI-powered chatbots can provide personalized customer support, answering frequently asked questions and routing complex queries to human agents.\n",
+ "7. **Financial Analysis**: Generative AI can help analyze financial data, identify trends, and predict market behavior, enabling better investment decisions.\n",
+ "8. **Graphic Design**: Generative AI can be used to generate high-quality graphics, including logos, infographics, and social media posts.\n",
+ "9. **Speech Synthesis**: Generative AI-powered speech synthesis can be used to create realistic voices for audio applications, such as voice assistants or audiobooks.\n",
+ "10. **Cybersecurity Threat Detection**: Generative AI can help detect and respond to cybersecurity threats in real-time, reducing the risk of data breaches.\n",
+ "\n",
+ "Some specific business use cases include:\n",
+ "\n",
+ "* **Lululemon**: Using generative AI to design new yoga pants and athletic wear\n",
+ "* **McDonald's**: Using generative AI to create personalized marketing messages and promotions\n",
+ "* **BMW**: Using generative AI to design new car models and interior designs\n",
+ "* **Netflix**: Using generative AI to recommend personalized content to users\n",
+ "\n",
+ "These are just a few examples of the many business applications of Generative AI. As the technology continues to evolve, we can expect to see even more innovative uses across various industries.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import ollama\n",
+ "\n",
+ "response = ollama.chat(model=MODEL, messages=messages)\n",
+ "print(response['message']['content'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "54d8ae8c-14c8-4fbb-bc73-b469d677ea5c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# A class to represent a Webpage\n",
+ "# If you're not familiar with Classes, check out the \"Intermediate Python\" notebook\n",
+ "\n",
+ "# Some websites need you to use proper headers when fetching them:\n",
+ "headers = {\n",
+ " \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36\"\n",
+ "}\n",
+ "\n",
+ "class Website:\n",
+ "\n",
+ " def __init__(self, url):\n",
+ " \"\"\"\n",
+ " Create this Website object from the given url using the BeautifulSoup library\n",
+ " \"\"\"\n",
+ " self.url = url\n",
+ " response = requests.get(url, headers=headers)\n",
+ " soup = BeautifulSoup(response.content, 'html.parser')\n",
+ " self.title = soup.title.string if soup.title else \"No title found\"\n",
+ " for irrelevant in soup.body([\"script\", \"style\", \"img\", \"input\"]):\n",
+ " irrelevant.decompose()\n",
+ " self.text = soup.body.get_text(separator=\"\\n\", strip=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f1eaa8bc-f530-4ba1-a2ff-129aa317eeb3",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "72938110-1b74-4780-bd1f-7ff1102ebbd4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# A class to represent a Webpage\n",
+ "# If you're not familiar with Classes, check out the \"Intermediate Python\" notebook\n",
+ "\n",
+ "# Some websites need you to use proper headers when fetching them:\n",
+ "headers = {\n",
+ " \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36\"\n",
+ "}\n",
+ "\n",
+ "class Website:\n",
+ "\n",
+ " def __init__(self, url):\n",
+ " \"\"\"\n",
+ " Create this Website object from the given url using the BeautifulSoup library\n",
+ " \"\"\"\n",
+ " self.url = url\n",
+ " response = requests.get(url, headers=headers)\n",
+ " soup = BeautifulSoup(response.content, 'html.parser')\n",
+ " self.title = soup.title.string if soup.title else \"No title found\"\n",
+ " for irrelevant in soup.body([\"script\", \"style\", \"img\", \"input\"]):\n",
+ " irrelevant.decompose()\n",
+ " self.text = soup.body.get_text(separator=\"\\n\", strip=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "c222c909-2912-4543-bbf9-896e89e3e2cf",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\"Did you know that IBM's first database management system, called System R, was released in 1970 and only managed data stored on mainframe computers?\\n\\nNow, as for your question... the answer to 2 + 2 is 4. Simple math!\""
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Let's try one out. Change the website and add print statements to follow along.\n",
+ "\n",
+ "ed = Website(\"https://docs.databricks.com/en/catalog-explorer/index.html\")\n",
+ "\n",
+ "messages = [\n",
+ " {\"role\": \"system\", \"content\": \"You are a professional assistant that starts the response with a random fact about databases\"},\n",
+ " {\"role\": \"user\", \"content\": \"What is 2 + 2?\"}\n",
+ "]\n",
+ "\n",
+ "def summarize(url):\n",
+ " website = Website(url)\n",
+ " response = ollama_via_openai.chat.completions.create(model=MODEL,messages=messages)\n",
+ " return response.choices[0].message.content\n",
+ "summarize(\"https://docs.databricks.com/en/catalog-explorer/index.html\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a80ed79a-5742-4cf6-9354-a8780de70422",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "0c97823b-c766-47ad-a4f4-cb61d6dd67d8",
+ "metadata": {},
"outputs": [],
"source": []
}