diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..7f93ebf85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +venv +__pycache__ diff --git a/Job Recommender Project Documentation.pdf b/Job Recommender Project Documentation.pdf new file mode 100644 index 000000000..f3df448c1 Binary files /dev/null and b/Job Recommender Project Documentation.pdf differ diff --git a/README.md b/README.md index a7b40d2cc..f4bc5ba03 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,36 @@ -# CourseProject +# JobRecommendationSystem + +The topic of our project is ‘Job Recommendation System’. Being students ourselves, it’s very difficult to find the right jobs based on our resumes. Currently, we end up going through most of the job descriptions and start manually checking if the job description has the skills mentioned that match with the skills that we have. Therefore, we are trying to solve this problem by providing job recommendations based on the resume that is uploaded by the user. This way, the manual process for keyword matching based on skills is not needed anymore. + +Demo Presentation and Video: https://drive.google.com/file/d/1jN_jI4-0qTC7cz_S_diDNiNH6HTBZ1zq/view?usp=share_link + + +# Environment Setup: + + Go to https://nodejs.org/en/ and download version 18.12.1 LTS + python (3.0 +) + Install virtualenv (optional) + +# Procedure to Run Frontend + +Frontend (In a dedicated Terminal) + + cd client + npm install + npm start + Open in browser http://localhost:3001/ + + +# Procedure to Run Backend + +Backend (In a separate dedicated terminal) + + cd backend + pip install -r requirements.txt + Install these packages separately to avoid issues while running the project if needed: + pip install nltk + pip install pyPDF2 + python server.py + + -Please fork this repository and paste the github link of your fork on Microsoft CMT. Detailed instructions are on Coursera under Week 1: Course Project Overview/Week 9 Activities. diff --git a/TIS Project Progress Report.pdf b/TIS Project Progress Report.pdf new file mode 100644 index 000000000..3c8e185d6 Binary files /dev/null and b/TIS Project Progress Report.pdf differ diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 000000000..7f93ebf85 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,2 @@ +venv +__pycache__ diff --git a/backend/Job Recommendation System.pdf b/backend/Job Recommendation System.pdf new file mode 100644 index 000000000..5a1dd3de6 Binary files /dev/null and b/backend/Job Recommendation System.pdf differ diff --git a/backend/LinkedinJobs.csv b/backend/LinkedinJobs.csv new file mode 100644 index 000000000..3d33e323b --- /dev/null +++ b/backend/LinkedinJobs.csv @@ -0,0 +1,1075 @@ +link,location,title,company,salary,desc +https://www.linkedin.com/jobs/view/software-engineer-new-graduate-at-candid-health-3374639246?refId=rGqum7zwI58c6rg3zhJDrw%3D%3D&trackingId=FR%2FWXNX5NfYaiBvRoLbp%2FQ%3D%3D&position=1&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,"Software Engineer, New Graduate",Candid Health,,"## What you’ll be doing + +You’ll conceptualize, design, build, and maintain complex services/platforms/features and develop ownership over large swaths of our product + infrastructure. +You’ll interact closely with our current + prospective customers, developing intuition around their biggest pain points and thinking of creative ways to address them. +You’ll play a critical role in shaping our engineering + broader company culture and help make this the best place we’ve ever worked. ## Who you are +You are completing a Bachelors of Science or Bachelors of Art in Computer Science, Computer Engineering, Math or other similar degree. +You take pride in your craft and enjoy building high-quality software but also believe that “done is better than perfect” and have good intuition around which corners are worth cutting and which aren’t. +Experience with the technologies we currently use is a plus, but by no means required: Python, PostgreSQL, Docker, Kubernetes, React, Typescript, Google Cloud Platform, Auth0, Terraform. +You enjoy owning features end-to-end and are comfortable learning new tools or moving across the stack to do so. +You have a customer-first and learner’s mindset, and value teaching others. +You’re a clear and concise communicator; you enjoy the challenge of explaining complicated ideas in simple terms, both in-person and in writing. If you are a resident of Colorado, Connecticut, or New York, please request compensation and benefits information by emailing careers [at] joincandidhealth.com. + +We are an equal opportunity employer. We don’t discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status. We also consider for employment qualified applicants with arrest and conviction records, consistent with applicable federal, state and local law, including but not limited to the San Francisco Fair Chance Ordinance. +Show more " +https://www.linkedin.com/jobs/view/software-engineer-at-tech-firefly-3380650000?refId=rGqum7zwI58c6rg3zhJDrw%3D%3D&trackingId=LxxwBYUJaJ5i36BcSRK2cw%3D%3D&position=2&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer,Tech Firefly,,"Tech Firefly is teaming up with a law firm to hire several Full Time Software Engineers. + +We are looking for a passionate Software Engineer to design, develop and install software solutions. Software Engineer responsibilities include gathering user requirements, defining system functionality and writing code in various languages, like C# and Javascript. Our ideal candidates are familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment. Ultimately, the role of the Software Engineer is to build high-quality, innovative and fully performing software that complies with coding standards and technical design. + +Responsibilities + +Execute full software development life cycle (SDLC) +Write well-designed, testable code +Produce specifications and determine operational feasibility +Integrate software components into a fully functional software system +Develop software verification plans and quality assurance procedures +Document and maintain software functionality +Troubleshoot, debug and upgrade existing systems +Deploy programs and evaluate user feedback +Comply with project plans and industry standards + + +Requirements + +Full stack C#, HTML, CSS, JavaScript, SQL and SSRS +Enterprise Application Experience (Software Engineering/Implementation and Administration) +Strong Backend: C#, SQL and back-end enterprise application experience +Proven work experience as a Software Engineer or Software Developer +Ability to develop software in C++ or other programming languages +Excellent knowledge of relational databases, SQL and ORM technologies (JPA2, Hibernate) +BSc degree in Computer Science, Engineering or relevant field +Experience designing interactive applications + + +Benefits + +$110-130k annual salary + +Subsidized medical benefits +Show more " +https://www.linkedin.com/jobs/view/software-engineer-all-levels-at-shiftsmart-3365948131?refId=rGqum7zwI58c6rg3zhJDrw%3D%3D&trackingId=cSQhXmKkC0VQUDEnJn3Dsw%3D%3D&position=3&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer (all levels),Shiftsmart,,"Why Shiftsmart + +At Shiftsmart, we're building the future of labor. Our platform powers the modern workforce with over 1.5M workers in 57+ countries, and customers that include Google, Deloitte, Circle K, and Facebook. We've grown our business 2-3x each year since we started, with over 2M shifts worked and over $100M in wages paid to workers. We empower hourly workers to find more work, increase their earnings, and control their own schedules, while also enabling employers to increase fulfillment, reduce turnover, and improve quality. + +🚀 Join a rocketship. This is a unique opportunity to join a rapidly scaling business that is changing the way hourly labor works and capturing a $2 trillion dollar opportunity in the US alone. +🙋 Be an owner. Join a team that is challenging and supporting one another to build a great business, scale this business as their own, and instill choice and flexibility for workers in every market we touch. +💡 Captain your career path. Live, work, and breathe in an environment with limitless opportunities for growth, both professionally and personally. +💯 Become a world class executor. We believe that #ExecutionIsBinary, and are dedicated to helping you master that skill for life here and beyond. + + +We're Transforming The Labor Industry Who You Are + +The Engineering Team enables Shiftsmart to anticipate and creatively solve problems across multiple functions with solutions that have a lasting impact for both our customers (employers) and our users (workers). Our mission is simple: To build the world's leading platform for hourly workers and enterprises enabling flexibility, choice, and upward social mobility. + +What you'll do: + +Own a vertical pillar or horizontal function within our Product & Engineering team. +Drive the technical vision, influence product strategy, and conduct regular technical reviews. +Design, architect, and build highly-performant and reliable technical features, tools, and services using Node.js, React/React Native, Mongo, Python, GCP. +Lead complex technical projects from ideation and design through production and deployment. +Serve as a mentor for junior engineers and participate in scaling our team + + +Who You Are + +We're actively hiring full stack, front-end, and back-end developers across all levels (SWE, Senior, Staff, Principal). +You have 2+ years of software engineering experience. +You enjoy working cross functionally with leadership, PMs, designers, and other engineers to build products across a modern tech stack (MERN) to solve complex problems. +You are eager to work in a dynamic and fast-paced early stage startup, and have an ability to roll up your sleeves to #GetShiftDone. + + +Operating Principles @ Shiftsmart + +See Leadership Principles @ Amazon (article) + +Execution Is Binary + +We #GetShiftDone. We take immense pride in both the quality of our work and our relentless determination to deliver on our commitments. If we say we are going to do something, we do it. + +We own the outcome with an unstoppable mindset through the finish line and are impatient to move the ball forward. This means we work really hard, execute with urgency, and ruthlessly challenge timelines for anything important. As a result, we do not defer responsibility to other teams or individuals. Instead, we take the problem as far as we can and only when needed ask others for help. + +Each time a crisis or opportunity emerges we take the hill as one team, because we are allergic to the words ""it can't be done"". + +Missionaries, Not Mercenaries + +We before me. We believe in our mission to build a better world for workers. We understand why our work matters and take seriously how it impacts our customers and our partners. This belief permeates everything we do from the strategic to the mundane. + +We are energetic, ambitious, and want to win. We constantly raise the standards for ourselves and everyone around us. We show up for our customers, our partners, and most importantly our teammates, and make every effort to build lasting relationships with each of them. + +We do not measure success based on our titles or the size of our empires. This also means we put the needs of the business before the details of our job descriptions. Rather than fight for a bigger piece of the pie, we fight to grow the entire thing and recognize this is how to grow our careers too. + +Inputs > Outcomes + +We work really hard. Fundamentally changing how labor works is not easy. It often requires long days, late nights, and weekends to deliver on our commitments. We lean into this challenge. + +We focus on the process. We think in terms of value chains and appreciate that a bad process with a good outcome is simply dumb luck. + +We lead with data. We use facts, not fiction, to build narratives and make decisions. To do this we prepare written memos in advance and resist the urge to engage in endless water cooler what ifs, because we value the time and attention of our teammates. + +We hire and develop the best. When we decide to hire a new team member, we do so because we believe they will increase the talent density on our team. We view ourselves as leverage maximizers rather than inconvenience reducers and strive to increase the output of everyone we interact with. + +Honesty Over Harmony + +We share the truth even when it is painful. We do not, however, share the truth callously to hurt people's feelings or make them look bad. We also assume positive intent. If someone is not delivering in a way that we need, we ask them and tell them before assuming the worst. + +We embrace mutual feedback. As people leaders we care more about our team's growth and success than how much others like us. As individuals we seek, accept, and apply feedback. We do not give or take feedback personally because we understand it enables us to learn and grow. + +We tell the truth to ourselves. We reject a pollyannaish view of our world. Instead if something isn't going well that we are responsible for, we call it out. And when someone calls out their own truth that may be less optimal, we don't punish them for it. + +We have the meeting in the meeting. If something is broken or we disagree, we call it out and say something in the moment even if it feels uncomfortable to do so. This means that if something is broken, we do not just accept it and complain later. + +Invent & Iterate + +We are inventors @ heart. We categorically reject the phrase ""that is how it's always been done"", and constantly discover new and better ways to do more with less. This means we are resourceful and often do things that don't scale, only to create ways to scale them later. We're builders. + +We think BIG. At every level of the company, we embrace big, hairy, audacious, and transformative goals. We fear lack of progress and incremental thinking more than failing to deliver or falling short of an audacious goal. We believe courage means to try without fear and learn without ego. + +We do not let perfect get in the way of better. When faced with the choice we prioritize delivering something, even if imperfect, over endless debate and alignment. We embrace good mistakes. + +Equal opportunity employer + +Shiftsmart is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. +Show more " +https://www.linkedin.com/jobs/view/software-engineering-intern-at-the-vendry-3375064230?refId=rGqum7zwI58c6rg3zhJDrw%3D%3D&trackingId=JRXHWuFZvDsCjlSaymrf0A%3D%3D&position=4&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineering Intern,The Vendry,,"We’re seeking a college student to join our highly ambitious team that’s intent on building one of the next great technology companies. We’re backed by top investors from New York City and Silicon Valley, and you’ll have unparalleled opportunities to make an impact at a high-growth startup. + +We are a highly ambitious team that is intent on building one of the next great technology companies. As an early team member, you’ll have unparalleled opportunities to make an impact at a high-growth startup. + +We're proud to count Founder Collective, Primary Ventures, and Operator Partners as investors. + +Responsibilities + +Build, modify, and maintain web applications +Write clean, tested, and well-structured code + +Minimum Requirements + +Pursuing a BA/BS degree +Experience with Java, C++, Python, Go, JavaScript, or other web programming language +Show more " +https://www.linkedin.com/jobs/view/software-engineer-intern-summer-2023-at-electronic-arts-ea-3380692151?refId=rGqum7zwI58c6rg3zhJDrw%3D%3D&trackingId=kvy2KrsqckumaofL154ejA%3D%3D&position=5&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer Intern (Summer 2023),Electronic Arts (EA),,"EA WWCE Software Engineer Intern (Summer 2023) + +Electronic Arts is looking for high performing students to join our world-class internship experience. Summer 2023 will be better than ever as we bring all interns together on-site for orientation week and prep students for the future ways of work by offering remote and hybrid opportunities depending on your location. For more information about our Next-Gen Program, visit https://www.ea.com/careers/interns-and-university-graduates + +#WeAreEA and we exist to inspire the world to play. EA values creativity, pioneering, passion, determination, learning, and teamwork. We mean things like acting with curiosity, speaking up with original ideas, and committing to each other as one team. + +We’re looking for all the best kinds of people to make great experiences for our players. The best people want a job that inspires them, while giving them room to enjoy their lives. And we want to give them that. We celebrate diversity and inclusion by creating a place where you can come to work and be yourself. + +We are looking for a Software Engineer Intern (Summer 2023) to join our Customer Experience Innovation Labs team. This role will be responsible for learning new technologies and coming up with proof-of-concept demonstrations. To be successful, the candidate should have a firm grasp of programming concepts and be comfortable with multiple languages (and learning new ones as necessary). + +So what will you be doing as a Software Engineer Intern in Innovation Labs? + +Researching new technology areas with the potential to improve customer experience +Experimenting with new and existing technologies to prove or disprove hypotheses +Demonstrate new ideas to leadership by developing technology proof-of-concepts (POCs) in virtual sandbox environments + +Candidates Should Be + +Intellectually curious: Has a naturally curious mind and a desire to frame and solve business problems; actively seeks out best-in-class capabilities. +Critical thinker: Strong quantitative and qualitative research and analytics skills; ability to go beyond findings to insights and actionable recommendations. +Collaborative: Works well in a collaborative team environment between analysts, internal teams, external partners & clients. +Self-starter: A self-motivated individual who can take limited direction and produce tangible results; proactively develops out-of-the-box solutions with the available tools and resources. +Technology forward: Has an interest in technology and knows the relevant platforms and models; uses or has a strong understanding of emerging technology trends. +Communication: Clear and persuasive oral and written communication skills; an active listener and concise presenter. +Positive attitude: Can-do attitude; finds the bright side of even stressful situations and is willing to learn from them. + +If you’re interested in this role, you’ll need these skills or experiences: + +You are working toward a BS/MS. in Computer Science or related field. You must not be graduating earlier than 12/2023/ +Experience with front and backend development languages (Java, Python, Javascript, React, Swift, NodeJS etc.) +Knowledge of databases (e.g. MySQL). +Interest in cloud and serverless computation (AWS, Google Cloud, Azure etc.) +Knowledge of good software engineering practices. +Experience debugging and solving complex problems. +Knowledge of source code management: Perforce and Git. +General interest in gaming / the gaming industry + +About EA + +At Electronic Arts, we exist to Inspire the World to Play. We create extraordinary new game experiences for our millions of players everywhere by bringing together talented people that combine creativity, innovation, and passion. We know that our strength lies in the diversity of our people. We immerse our employees into an inclusive culture, and provide opportunities for learning and leading that allow them to do the most impactful and rewarding work of their careers. + +We put our people first. We provide comprehensive benefit packages with a focus on health and wellbeing to support your needs and help you balance your career and personal life. We provide access to dynamic and collaborative work environments, opportunities to connect and contribute through our Employee Resource Groups, and support for a balanced life with paid time off and new parent leave, plus free video games and so much more! + +Electronic Arts is an equal opportunity employer. All employment decisions are made without regard to race, color, national origin, ancestry, sex, gender, gender identity or expression, sexual orientation, age, genetic information, religion, disability, medical condition, pregnancy, marital status, family status, veteran status, or any other characteristic protected by law. Electronic Arts also makes workplace accommodations for qualified individuals with disabilities as required by applicable law. +Show more " +https://ca.linkedin.com/jobs/view/software-engineer-2023-u-s-graduate-at-atlassian-3384050478?refId=tuqZ%2FznaHyl93IxtJ%2F92kA%3D%3D&trackingId=fCOIrzWcxMVqhKqvh9Mo%2BA%3D%3D&position=1&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,"Software Engineer, 2023 U.S. Graduate",Atlassian,,"Working at Atlassian + + + + +Atlassian can hire people in any country where we have a legal entity. Assuming you have eligible working rights and a sufficient time zone overlap with your team, you can choose to work remotely or return to an office as they reopen (unless it’s necessary for your role to be performed in the office). Interviews and onboarding are conducted virtually, a part of being a distributed-first company. + + + + +Your future team + + + + +Want the freedom to be creative? How about the time and resources to make them a reality? Yes? Great. We build software for the world's most accomplished thinkers. That means we need our own team to push boundaries daily. At Atlassian, you'll be encouraged to use your imagination and try new things. You'll collaborate with some of the best minds in tech. You'll be a part of our values-driven culture, have opportunities to speak at global conferences, and participate in ShipIt—our quarterly hackathon—within your first week. + + + + +Not eligible for Visa sponsorship. Unfortunately, we do not offer U.S. work visa sponsorship to F-1 student graduates at this time. + + + + +Please note: At this time, this role is only open to entry level candidates with less than a year of professional experience (this does not include internships/co-ops) + + + + +What you'll do + + + + +On day one, you will be a valued part of our development team, trusted to make changes to code that directly improve our products, while gaining deep technical knowledge in full life-cycle product development. +You'll dream up and code new features that can be shipped straight into our products, all the while being trained by our amazing team. + + + + +Your background + + + + +Bachelor's or Masters in Computer Science / Software Engineering or a related technical field and are graduating by June 2023. +1+ years of experience with Java, Python, C, C++, or other related object-oriented programming languages +Desire to collaborate with colleagues to build technical solutions to hard problems + + + + +More About Our Team + + + + +You'll join a team that is smart and very direct. We challenge each other to improve our work, learn, and ask hard questions. We're dedicated to Agile methodology and are big believers in 'lean' (which means we don't do documentation for documentation's sake). We know the importance of validating assumptions about users and use several types of testing to figure out whether we're right (or wrong). Our bottom line is improving our user's experience—no matter what. + + + + +Our Perks & Benefits + + + + +To support you at work and play, our perks and benefits include ample time off, an annual education budget, paid volunteer days, and so much more. + + + + +About Atlassian + + + + +The world’s best teams work better together with Atlassian. From medicine and space travel, to disaster response and pizza deliveries, Atlassian software products help teams all over the planet. At Atlassian, we're motivated by a common goal: to unleash the potential of every team . + + + + +We believe that the unique contributions of all Atlassians create our success. To ensure that our products and culture continue to incorporate everyone's perspectives and experience, we never discriminate based on race, religion, national origin, gender identity or expression, sexual orientation, age, or marital, veteran, or disability status. All your information will be kept confidential according to EEO guidelines. + + + + +To learn more about our culture and hiring process, explore our Candidate Resource Hub . +Show more " +https://ca.linkedin.com/jobs/view/software-developer-new-grad-at-ixl-learning-3360846113?refId=tuqZ%2FznaHyl93IxtJ%2F92kA%3D%3D&trackingId=QRuJ7jWOf4pkDMp7kevrbg%3D%3D&position=2&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,"Software Developer, New Grad",IXL Learning,,"IXL Learning, a leading edtech company with products used by 13 million students worldwide, is seeking Software Developers who have a passion for technology and education. You will be helping us build the tools needed to provide highly-demanded new integrations for IXL’s largest school districts. + +At IXL Learning, we are dedicated to creating first-of-their-kind products that leverage cutting-edge technologies to solve seemingly intractable problems in education. Millions of users count on us to make learning as effective as can be, so we're looking for exceptional people who are committed to solving the real-world challenges faced by students and teachers around the world. + +As a Software Developer - New Grad on our Integrations team, you will design and develop the tools and systems needed to simplify the setup of IXL for schools and districts. These integrations will help IXL work seamlessly with the technology ecosystems of all of our customers. This is an amazing opportunity for you to join a mission-driven high-growth company and help us build a new engineering team from scratch in Toronto. At IXL, we find it immensely satisfying to develop products that impact the lives of millions, and we are eager to have you join our team. + +This is a full-time position in our Toronto office with a hybrid work schedule. + +What You'll Be Doing + +Design, implement, test, deploy, and refine a large set of integrations (standardized and custom) and internal tools while improving development efficiency +Find and use the best technologies to add features to our products +Implement data exchange methods and standards and develop prototypes in collaboration with product management and third-party partners as necessary +Work in a fast-paced, agile environment to ensure timely delivery of high-quality, meaningful solutions +Help to mature existing and develop new standardized processes around IXL’s technical implementations; contribute to the vision and design of a next-generation integration platform + +What We're Looking For + +Bachelor's or advanced degree in computer science or a related discipline +A solid grasp of general programming principles +Excellent programming skills in Java or other object-oriented language +Ability to work both independently and with a wide variety of teams +Knowledge of Java, SQL, JavaScript, CSS, React, Linux, and Git is a plus +Passion for improving education through technology + +At IXL, we value diversity in age, race, ethnicity, gender, sexual orientation, physical and mental ability, political and religious beliefs, and life experience, and we are proud to promote a work environment where everyone, from any background, can do their best work. IXL Learning is an Equal Opportunity Employer. + + +Show more " +https://ca.linkedin.com/jobs/view/software-engineer-at-apple-3280912654?refId=tuqZ%2FznaHyl93IxtJ%2F92kA%3D%3D&trackingId=vte35rUTgTE9V85DxPcFGA%3D%3D&position=3&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,Software Engineer,Apple,," +Summary + +The Apple Media Products Engineering team is one of the most exciting examples of Apple’s long-held passion for combining art and technology. These are the people who power the App Store, Apple TV, Apple Music, Apple Podcasts, and Apple Books. And they do it on a massive scale, meeting Apple’s high expectations with high performance to deliver a huge variety of entertainment in over 35 languages to more than 150 countries. These engineers build secure, end-to-end solutions. They develop the custom software used to process all the creative work, the tools that providers use to deliver that media, all the server-side systems, and the APIs for many Apple services. Thanks to Apple’s unique integration of hardware, software, and services, engineers here partner to get behind a single unified vision. That vision always includes a deep commitment to strengthening Apple’s privacy policy, one of Apple’s core values. Although services are a bigger part of Apple’s business than ever before, these teams remain small, forward-thinking, and cross-functional, offering greater exposure to the array of opportunities here. + + +Key Qualifications + +Experience with designing and developing globally distributed resilient applications + +Experience producing with at least one JVM based language + +Experience with testing patterns for producing high quality code (unit/integration testing) + +Experience with DevOps tools, processes, and culture + +Experience with distributed systems + +Experience supporting mission-critical and highly available systems + +Strong communication skills and ability to work effectively across multiple business and technical teams + +RESPONSIBILITIES WILL INCLUDE + +Building software and systems to manage platform infrastructure and applications + +Improving reliability, quality, and time-to-market + +Measurement and optimization of system performance + +Explore and evaluate new technologies and solutions to push our capabilities forward, getting ahead of our customers’ needs, getting people motivated to transform, innovate and continually improve + + +Description + +Apple Media Products SRE team is looking for a dedicated software engineer to join our Tools development team to help us design and develop the future of our platform. A platform that powers people’s favorite products like App Store, Apple Music, Apple TV+ and many more. + + +Education & Experience + +BS/MS in Computer Science or Equivalent (3+ years of software development or production operations experience in a large-scale environment) + + +Role Number: 200378459 + + +Show more " +https://ca.linkedin.com/jobs/view/software-engineer-i-ii-at-microsoft-3281907248?refId=tuqZ%2FznaHyl93IxtJ%2F92kA%3D%3D&trackingId=Lczk0V0WOE30KNyKy%2FdVhQ%3D%3D&position=4&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,Software Engineer I/II,Microsoft,,"Microsoft is on a mission to empower every person and every organization on the planet to achieve more. Our culture is centered on embracing a growth mindset, a theme of inspiring excellence, and encouraging teams and leaders to bring their best each day. In doing so, we create life-changing innovations that impact billions of lives around the world. You can help us to achieve our mission. To learn more please visit: https://careers.microsoft.com/mission-culture. + +Responsibilities + +We value people who can bring a diverse perspective to our product and where a developer will not just write code, but will have a real meaningful impact on the direction of the product and which features to build. We are building a team where diversity of thought and background is valued as strongly as technical skills, and where everyone is encouraged to come up with new ideas to make our customers’ lives better. + +We are looking for talented early to mid-career Software Engineers to help us deliver highly scalable services and world-class product experiences. You will have opportunities to work on multiple layers of the technology stack, ranging from customer-focused user experience work, building scalable distributed cloud services, working with big data, machine learning, and everything in between. You will learn how to design services and experiences that are required to work around the globe. You will collaborate with team members and other engineering groups in Microsoft to build full stack web applications and services using the latest web technologies in a dynamic and agile environment. You will be part of a fun-loving, diverse team that seeks challenges, loves learning and values teamwork. You will have opportunities for mentorship, career growth, and work on high-business impact areas. + +By applying to this position, you are being considered for multiple like positions within our organization for an invitation-only virtual Interview Day on Tuesday / Thursday, Month Date. Position specifics, including hiring team, location, and position details will be determined following the interview process. + +Qualifications + +Basic Qualifications: + +2+ years of experience with one or more general purpose programming languages including but not limited to: Java, C/C++, C#, Python, JavaScript, PowerShell +BSc in Computer Science or related technical field experience + +Preferred Qualifications + +Experience running and working on services at scale +Experience in developing, debugging and maintaining code in object oriented languages and database querying languages. +Strong coding, debugging, algorithm design and problem solving skills + +Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, color, family or medical care leave, gender identity or expression, genetic information, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran status, race, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws, regulations and ordinances. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. If you need assistance and/or a reasonable accommodation due to a disability during the application or the recruiting process, please send a request via the Accommodation request form. + +Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work. +Show more " +https://ca.linkedin.com/jobs/view/junior-data-scientist-at-m-m-food-market-3350469588?refId=tuqZ%2FznaHyl93IxtJ%2F92kA%3D%3D&trackingId=OqZ9MLG8h13VvSM6JKEjMA%3D%3D&position=5&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,Junior Data Scientist,M&M Food Market,,"We are looking for our next Junior Data Scientist. Could it be you? + + + + +The Junior Data Scientist will be a part of our marketing Consumer Insights and Analytics team. Reporting into the Director, Strategy, Consumer Insights and Analytics, this role will focus on developing and applying machine learning and statistical modeling techniques to support consumer marketing strategies at M&M Food Market. They will work closely with the IT, eCommerce, and Business Intelligence teams, as well as other key internal stakeholders, to research data science models and oversee end-to-end implementation. The Junior Data Scientist will lead research projects to solve the ongoing challenges while mentoring and supporting other team members. + + + + +Need more details? Keep reading… + + + + +The Junior Data Scientist will be responsible for but not limited to: + +Define data science projects from start to finish, identifying opportunities, defining the problem, building a proof of concept, and deploying a data product to improve marketing, product development, or overall business strategies. +Conduct data mining on customer, product, sales, assortment data sources for insights; generate hypotheses to test for opportunities to understand consumer behaviour and improve the merchandising and planning processes. +Develop, monitor, and enhance analytical solutions and projects in collaboration with business stakeholders and IT professionals. +Apply a wide range of statistical and quantitative analysis in practical and valuable ways. +Design custom tools to optimize data mining, cleaning, validation and analysis tasks. +Develop tools and testing models to ensure data accuracy. +Use predictive modeling to optimize marketing campaigns and customer experiences. +Participate in design workshops and document business requirements and constraints. +Program and write maintainable and well-documented scripts/applications for process automation; produce reusable machine learning pipelines while model building. +Connect with other teams to understand the go-to-market process, product lifecycle, and product/consumer strategy. +Create rich interactive visualizations through data interpretation and analysis integrating various reporting components from multiple data sources; communicate results to senior leadership. +Propose solutions and strategies to business opportunities and challenges. + + + + +So are you our next Junior Data Scientist? You could be if you are a curious self-starter who is an insightful, results-orientated, and motivated professional with exceptional interpersonal and communication skills. You have a proven ability to conduct thorough analysis using multiple data sources, evaluate and present visual results in Tableau. The Junior Data Scientist requires the ability to understand a concept from a broader perspective with strong problem-solving skills. You are adaptable and love working with people and teams from diverse skillsets and backgrounds, in a highly collaborative working environment. Someone who fosters connection by putting people first and building trusting relationships; communicates with honesty and kindness and creates the space for others to do the same; and embodies and brings to life the M&M Food Market purpose of “Helping to make a difference – every day.” + + + + +Experience, Education, and Designations: + +1+ years of work experience in data science, preferably in retail food service industry including internships +Academic background in Computer Science, Engineering, Math, Statistics, Research, or a related field +Must have experience with Tableau and Python (Jupyter, NumPy, Pandas, PySpark) +Strong SQL and/or Excel skills with the ability to learn other analytic tools +Experience in at least one of the common data science toolkits, such as scikit learn, Tensorflow, Keras, PyTorch, etc. +Demonstrated experience applying machine learning and data mining techniques + +  + +Skills, and Attributes: + + Strong problem solving and analytical skills including mining, evaluation, analysis, and visualization through Tableau +Excellent written and verbal communication skills including reports and presentations +Strong technical attitude – ability to turn business problems into analytical solution +A drive to learn and master new technologies and techniques +Possesses an entrepreneurial spirit and continuously innovates to achieve great results +Ability to take on responsibilities and work with minimal supervision +Fosters connection by putting people first and building trusting relationships +Communicates with honesty and kindness, and creates the space for others to do the same +Embodies and brings to life the M&M Food Market purpose of “Helping to make a difference – every day.” + + + + +Sounds like you? Click below to apply! + + + + +A lot has changed over 40 years of helping customers across Canada, but at the heart of what M&M Food Market does, is our people. Whether shaping the direction of the business from head office or offering customers exceptional service every day in our stores, we are successful because of our amazing team. + + + + +Here are just a few reasons to consider a career with us… + + + + +WE HAVE HEART, WE ROCK, WE GROW + + + + +We are constantly evolving. + +We believe change is a good thing. Whether it’s venturing into new markets or reinventing our current strategies, our passion leads us to new and exciting opportunities that further strengthen our position in the marketplace. + + + + +We are recognized for our work. + +M&M is a Platinum member of Canada’s 50 Best Managed Companies, having received the award for more than 12 consecutive years. We’ve also been recognized with numerous awards from the Canadian Franchise Association, as well as awards for our excellence in marketing, advertising, customer service, and community relations. + + + + +We put our customers and our employees first. + +For a retail chain such as M&M, our success depends on our customers’ satisfaction. From a corporate perspective, we also consider our stores to be our customers and when we work together as a self- supporting team, we make great things happen. + + + + +We strive to be the best. + +We are constantly growing and developing – as a company and as individuals. We encourage new ideas and ongoing learning, and we embrace diversity in order to do great work as a team. + + + + +****************************************************************************** + +M&M Food Market is committed to Diversity, Equity, and Inclusion. We believe that the wide range of perspectives that results from diversity promotes innovation and business success. Achieving diversity makes us more creative, flexible, productive, and competitive. We welcome applications from qualified individuals from all backgrounds. + +M&M Food Market strives to provide accessibility in employment to ensure equal access to employment opportunities for candidates, including persons with disabilities. We will attempt to provide accommodation to persons with disabilities in the recruitment process upon request. If you require accommodation at any point during the recruitment process, please let us know and we will work with you to meet your needs. + +Please note that final candidates for this position will be required to undergo a confidential pre-employment background check which may include but not be limited to educational, criminal, credit, and employment history verification.  + +Show more " +https://www.linkedin.com/jobs/view/software-engineer-at-apple-3357548326?refId=rxF27wM0dubMQpFrli4euw%3D%3D&trackingId=oN%2BHCHcm05il11DcoxU9Rg%3D%3D&position=1&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer,Apple,," +Summary + +We're looking for a versatile state estimation engineer to join our team. You'll be working on building software architecture designs, state estimation algorithms, and validation strategies on products that will ship to millions of people. + + +Key Qualifications + +You have deep experience in some of the following areas: perception; 3D computer vision; machine learning; sensor fusion; state estimation; and object detection, classification, and tracking + +You have a breadth of experience on at least one robotic platform (industrial manufacturing, manipulation platforms, autonomous vehicles, surgical, drones, etc) and understand how these systems are architected + +You can think at a ""system level"" about how all the pieces fit together, versus being solely focusing on a single module. + +You are a versatile software developer with experience developing and deploying perception algorithms and robotic systems + +You are a skilled software architect in the design and optimization of real time systems + +Bonus if you have iOS or other Apple software experience + + +Description + +- Solve real world problems in the areas of: perception, computer vision, machine learning, sensor fusion, state estimation, object detection, classification and tracking + + +- Work across multiple Apple product teams to integrate existing technologies into a new technology stack + + +- Build software from the ground up that scales as the problem scope increases + + +- Design novel, robust algorithms and test them on real hardware + + +- Participate in setting requirements and testing strategies for the software + + +- Work fluidly and collaboratively with other great team members + + +Education & Experience + +PhD or MS or have equivalent industry experience in a relevant subfield (robotics, computer vision, artificial intelligence, machine learning, computer science, mechanical engineering, electrical engineering, computer engineering) + + +Role Number: 200442585 + + +Show more " +https://www.linkedin.com/jobs/view/software-engineer-at-tech-firefly-3380650000?refId=rxF27wM0dubMQpFrli4euw%3D%3D&trackingId=7QvxgtE6eJ5U1KwNDhWi2Q%3D%3D&position=2&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer,Tech Firefly,,"Tech Firefly is teaming up with a law firm to hire several Full Time Software Engineers. + +We are looking for a passionate Software Engineer to design, develop and install software solutions. Software Engineer responsibilities include gathering user requirements, defining system functionality and writing code in various languages, like C# and Javascript. Our ideal candidates are familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment. Ultimately, the role of the Software Engineer is to build high-quality, innovative and fully performing software that complies with coding standards and technical design. + +Responsibilities + +Execute full software development life cycle (SDLC) +Write well-designed, testable code +Produce specifications and determine operational feasibility +Integrate software components into a fully functional software system +Develop software verification plans and quality assurance procedures +Document and maintain software functionality +Troubleshoot, debug and upgrade existing systems +Deploy programs and evaluate user feedback +Comply with project plans and industry standards + + +Requirements + +Full stack C#, HTML, CSS, JavaScript, SQL and SSRS +Enterprise Application Experience (Software Engineering/Implementation and Administration) +Strong Backend: C#, SQL and back-end enterprise application experience +Proven work experience as a Software Engineer or Software Developer +Ability to develop software in C++ or other programming languages +Excellent knowledge of relational databases, SQL and ORM technologies (JPA2, Hibernate) +BSc degree in Computer Science, Engineering or relevant field +Experience designing interactive applications + + +Benefits + +$110-130k annual salary + +Subsidized medical benefits +Show more " +https://www.linkedin.com/jobs/view/software-engineer-at-nike-3363533806?refId=rxF27wM0dubMQpFrli4euw%3D%3D&trackingId=A9%2FIZ2StwnmWL6QWEXA8Zw%3D%3D&position=3&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer,Nike,,"Become a Part of the NIKE, Inc. Team + +NIKE, Inc. does more than outfit the world’s best athletes. It is a place to explore potential, obliterate boundaries and push out the edges of what can be. The company looks for people who can grow, think, dream and create. Its culture thrives by embracing diversity and rewarding imagination. The brand seeks achievers, leaders and visionaries. At NIKE, Inc. it’s about each person bringing skills and passion to a challenging and constantly evolving game. + +NIKE is a technology company. From our flagship website and five-star mobile apps to developing products, managing big data and providing leading edge engineering and systems support, our teams at NIKE Global Technology exist to revolutionize the future at the confluence of tech and sport. We invest and develop advances in technology and employ the most creative people in the world, and then give them the support to constantly innovate, iterate and serve consumers more directly and personally. Our teams are innovative, diverse, multidisciplinary and collaborative, taking technology into the future and bringing the world with it. + +NIKE is a technology company. From our flagship website and five-star mobile apps to developing products, handling big data, and providing groundbreaking engineering and systems support, our teams at NIKE Global Technology exist to redefine the future at the confluence of tech and sport. We invest and develop advances in technology and employ the most creative people in the world, and then give them the support to constantly innovate, iterate and serve consumers more directly and personally. Our teams are innovative, diverse, multidisciplinary, and collaborative, taking technology into the future and bringing the world with it. + +Who Will You Work With + +Our communication technology team seeks to deliver a cohesive digital experience that informs, encourages, and empowers employees to reach their full potential. + +What You Will Work On + +The application engineer will be responsible for the design, support, development, and testing of internal employee-facing websites and web applications. The engineer will work with internal Nike teams to collect requirements and develop web applications. + +Design and development of technical solutions that meet the needs of the business and align with architectural and quality standards +Use version control systems (GIT, Bitbucket), issue tracking tools (Jira), and CI/CD tools using Jenkins and Terraform +Ensure SLAs (Service Level Agreements) for different interfaces are met and test them by implementing performance tests using various loads +Create dashboards and reports for monitoring system health and early detection of issues using Splunk and New Relic +Provide production support on new and existing applications +Experience with ServiceNow or other incident management tools +Develop the Web crawlers for indexing internal Nike sites +Adhere to principles of Scaled Agile and Scrum + + +What You Bring + +Bachelor’s degree in Computer Science, Information Systems, Business, or other relevant subject areas +1+ years of professional experience in application configuration or development +1+ years using web building tools like WordPress and Duda +Experience administrating enterprise social media platforms like Workvivo or Workplace +Expertise in combining multiple data sources and building reports using Google Data Studio or Tableau +Familiar with agile processes, continuous integration, and test automation +Thrive when operating in broad scope, from conception through the constant operation of 24x7 services to defined SLAs +Ability to Collaborate on road maps with Product Managers, Architects and Tech Leads to ensure feasibility and scalability of new features and improvements +Expertise using Google Analytics and Tag Manager to measure user engagement + + +NIKE, Inc. is a growth company that looks for team members to grow with it. Nike offers a generous total rewards package, casual work environment, a diverse and inclusive culture, and an electric atmosphere for professional development. No matter the location, or the role, every Nike employee shares one galvanizing mission: To bring inspiration and innovation to every athlete* in the world. + +NIKE, Inc. is committed to employing a diverse workforce. Qualified applicants will receive consideration without regard to race, color, religion, sex, national origin, age, sexual orientation, gender identity, gender expression, veteran status, or disability. + +]]> +Show more " +https://www.linkedin.com/jobs/view/software-engineer-early-career-at-lockheed-martin-3359675858?refId=rxF27wM0dubMQpFrli4euw%3D%3D&trackingId=Fh112o15dx%2BBDfQvLE7AnA%3D%3D&position=4&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer - Early Career,Lockheed Martin,,"COVID-19 continues to significantly impact our employees, families and communities. With employee health and safety as our top priority, and as a federal contractor, Lockheed Martin is taking action to address the increased risk and uncertainty COVID-19 variants pose in the workplace and ensuring we meet our commitments to national security. + + + + +To uphold safety for all employees, we will continue to request vaccination status for all Lockheed Martin employees including new hires. All current and newly hired employees are required to follow onsite safety measures based upon the COVID-19 Community Level at the specific work location. + + + + +Description:By bringing together people that use their passion for purposeful innovation, at Lockheed Martin we keep people safe and solve the world's most complex challenges. Our people are some of the greatest minds in the industry and truly make Lockheed Martin a great place to work. With our employees as our priority, we provide diverse career opportunities designed to propel development and boost agility. Our flexible schedules, competitive pay, and comprehensive benefits enable our employees to live a healthy, fulfilling life at and outside of work. At Lockheed Martin, we place an emphasis on empowering our employees by fostering innovation, integrity, and exemplifying the epitome of corporate responsibility. Your Mission is Ours. + + + + +Lockheed Martin Aeronautics in Fort Worth, TX is seeking a full-time Early Career Software Engineer. In this role, you will be a full participant on an Agile software development team participating in all phases of product development and integration. The successful candidate will have experience and/or knowledge of software development principles, fluency in mainstream programming languages, and strong teamwork skills. Must be a US Citizen; this position will require a government security clearance. This position is located at a facility that requires special access. + + + + +Basic Qualifications + + + + +Bachelor's degree in Computer Science or Computer Engineering. Other Engineering degrees considered with significant engineering software development experience. +Experience with programming software languages such as C++ and/or Python +Development in a Linux-based environment. +Experience with object oriented software development principles +Must be a US Citizen; this position will require a government security clearance. This position is located at a facility that requires special access. + + + + +Desired Skills + + + + +Agile Software Development Experience +Configuration Management Systems (e.g. Git) +Atlassian Tools (e.g. Jira, Confluence) +Ability to Travel +Ability to build and maintain relationships, collaborate with others, engage in constructive conflict, and manage interpersonal dynamics +Strong decision making and judgment +Strong oral and written communication skills + + + + +Job.Qualifications + + + + +BASIC QUALIFICATIONS: + + + + +Lockheed Martin is an Equal Opportunity/Affirmative Action Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, pregnancy, sexual orientation, gender identity, national origin, age, protected veteran status, or disability status. + + + + +Join us at Lockheed Martin, where your mission is ours. Our customers tackle the hardest missions. Those that demand extraordinary amounts of courage, resilience and precision. They’re dangerous. Critical. Sometimes they even provide an opportunity to change the world and save lives. Those are the missions we care about. + + + + +As a leading technology innovation company, Lockheed Martin’s vast team works with partners around the world to bring proven performance to our customers’ toughest challenges. Lockheed Martin has employees based in many states throughout the U.S., and Internationally, with business locations in many nations and territories. + + + + +Experience Level + + + + +4 yr and up College +Show more " +https://www.linkedin.com/jobs/view/software-engineer-backend-at-nextdoor-3357693549?refId=rxF27wM0dubMQpFrli4euw%3D%3D&trackingId=8MT6G1yYTsEN8WLOEhZuWg%3D%3D&position=5&pageNum=0&trk=public_jobs_jserp-result_search-card,United States,Software Engineer - Backend,Nextdoor,,"#TeamNextdoor + +Nextdoor is where you connect to the neighborhoods that matter to you so you can belong. Our purpose is to cultivate a kinder world where everyone has a neighborhood they can rely on. + +Neighbors around the world turn to Nextdoor daily to receive trusted information, give and get help, get things done, and build real-world connections with those nearby — neighbors, businesses, and public services. Today, neighbors rely on Nextdoor in more than 295,000 neighborhoods across 11 countries. + +Meet Your Future Neighbors + +As a Software Engineer at Nextdoor, you’ll join a focused team of developers, product managers, and designers who are passionate about using technology to cultivate a kinder world where everyone has a neighbor they can rely on. We are a small team of engineers that wear multiple hats and work across different languages and services to deliver value to our members. We care about moving fast and delivering impact, without compromising on quality and reliability. You will have the opportunity to learn from your co-workers and teach them. As a team, we will make each other better and build great software. + +The Impact You’ll Make + +We believe in empowering our teams to own all aspects of bringing Nextdoor to life. As such, you’ll get the opportunity to make key contributions across our engineering stack - this includes developing and improving frameworks across our frontend and backend services, in addition to making direct contributions to your team’s product area. + +In addition to writing code, you’ll have the opportunity to help define the features that we build, through collaboration internally, and in some cases, talking to our customers and members to understand how we can better serve them. You’ll also get the chance to collaborate with product managers and designers to drive Nextdoor forward. We believe engineers should have a stake over all aspects of the product - from coming up with the next big ideas to build, through helping set expectations and plan roadmaps, all the way through understanding the impact of new features through rigorous data analysis. As your career at Nextdoor develops, you’ll also get the chance to grow your role towards what you’re most passionate about. + +Your Responsibilities Will Include + +Backend development in a variety of languages/frameworks including: +Python/Django +Java +Golang +SQL +AWS +Collaborating with product management and design to ensure we work on the right things in the right way. +Working with other engineering teams in Toronto, San Francisco and beyond. + +What You’ll Bring to The Team + +4+ years of experience as a Software Engineer and a Bachelor's degree in Computer Science, or equivalent work experience. +Strong coding abilities in at least one language. Python or Java experience preferred. +Experience building and deploying flexible backend systems at scale. +Strong fundamental understanding of data structures and algorithms. +Strong collaboration and communication skills, both verbal and written. +Ability to be flexible and adaptable in a dynamic startup environment. +Strong desire to learn about new technologies and systems. + +At Nextdoor, we empower our employees to build stronger local communities. To create a platform where all feel welcome, we want our workforce to reflect the diversity of the neighbors we seek to serve. We encourage everyone interested in our purpose to apply. We do not discriminate on the basis of race, gender, religion, sexual orientation, age, or any other trait that unfairly targets a group of people. In accordance with the San Francisco Fair Chance Ordinance, we always consider qualified applicants with arrest and conviction records. + + +Show more " +https://ca.linkedin.com/jobs/view/software-engineer-2023-u-s-graduate-at-atlassian-3384050478?refId=b7b8pYcGksslVdH8GdxDxQ%3D%3D&trackingId=na6YvrYlz1cFCRWxVGU3%2FQ%3D%3D&position=1&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,"Software Engineer, 2023 U.S. Graduate",Atlassian,,"Working at Atlassian + + + + +Atlassian can hire people in any country where we have a legal entity. Assuming you have eligible working rights and a sufficient time zone overlap with your team, you can choose to work remotely or return to an office as they reopen (unless it’s necessary for your role to be performed in the office). Interviews and onboarding are conducted virtually, a part of being a distributed-first company. + + + + +Your future team + + + + +Want the freedom to be creative? How about the time and resources to make them a reality? Yes? Great. We build software for the world's most accomplished thinkers. That means we need our own team to push boundaries daily. At Atlassian, you'll be encouraged to use your imagination and try new things. You'll collaborate with some of the best minds in tech. You'll be a part of our values-driven culture, have opportunities to speak at global conferences, and participate in ShipIt—our quarterly hackathon—within your first week. + + + + +Not eligible for Visa sponsorship. Unfortunately, we do not offer U.S. work visa sponsorship to F-1 student graduates at this time. + + + + +Please note: At this time, this role is only open to entry level candidates with less than a year of professional experience (this does not include internships/co-ops) + + + + +What you'll do + + + + +On day one, you will be a valued part of our development team, trusted to make changes to code that directly improve our products, while gaining deep technical knowledge in full life-cycle product development. +You'll dream up and code new features that can be shipped straight into our products, all the while being trained by our amazing team. + + + + +Your background + + + + +Bachelor's or Masters in Computer Science / Software Engineering or a related technical field and are graduating by June 2023. +1+ years of experience with Java, Python, C, C++, or other related object-oriented programming languages +Desire to collaborate with colleagues to build technical solutions to hard problems + + + + +More About Our Team + + + + +You'll join a team that is smart and very direct. We challenge each other to improve our work, learn, and ask hard questions. We're dedicated to Agile methodology and are big believers in 'lean' (which means we don't do documentation for documentation's sake). We know the importance of validating assumptions about users and use several types of testing to figure out whether we're right (or wrong). Our bottom line is improving our user's experience—no matter what. + + + + +Our Perks & Benefits + + + + +To support you at work and play, our perks and benefits include ample time off, an annual education budget, paid volunteer days, and so much more. + + + + +About Atlassian + + + + +The world’s best teams work better together with Atlassian. From medicine and space travel, to disaster response and pizza deliveries, Atlassian software products help teams all over the planet. At Atlassian, we're motivated by a common goal: to unleash the potential of every team . + + + + +We believe that the unique contributions of all Atlassians create our success. To ensure that our products and culture continue to incorporate everyone's perspectives and experience, we never discriminate based on race, religion, national origin, gender identity or expression, sexual orientation, age, or marital, veteran, or disability status. All your information will be kept confidential according to EEO guidelines. + + + + +To learn more about our culture and hiring process, explore our Candidate Resource Hub . +Show more " +https://ca.linkedin.com/jobs/view/software-developer-new-grad-at-ixl-learning-3360846113?refId=b7b8pYcGksslVdH8GdxDxQ%3D%3D&trackingId=OHlFVKbaQOGvyAbUA5TUTg%3D%3D&position=2&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,"Software Developer, New Grad",IXL Learning,,"IXL Learning, a leading edtech company with products used by 13 million students worldwide, is seeking Software Developers who have a passion for technology and education. You will be helping us build the tools needed to provide highly-demanded new integrations for IXL’s largest school districts. + +At IXL Learning, we are dedicated to creating first-of-their-kind products that leverage cutting-edge technologies to solve seemingly intractable problems in education. Millions of users count on us to make learning as effective as can be, so we're looking for exceptional people who are committed to solving the real-world challenges faced by students and teachers around the world. + +As a Software Developer - New Grad on our Integrations team, you will design and develop the tools and systems needed to simplify the setup of IXL for schools and districts. These integrations will help IXL work seamlessly with the technology ecosystems of all of our customers. This is an amazing opportunity for you to join a mission-driven high-growth company and help us build a new engineering team from scratch in Toronto. At IXL, we find it immensely satisfying to develop products that impact the lives of millions, and we are eager to have you join our team. + +This is a full-time position in our Toronto office with a hybrid work schedule. + +What You'll Be Doing + +Design, implement, test, deploy, and refine a large set of integrations (standardized and custom) and internal tools while improving development efficiency +Find and use the best technologies to add features to our products +Implement data exchange methods and standards and develop prototypes in collaboration with product management and third-party partners as necessary +Work in a fast-paced, agile environment to ensure timely delivery of high-quality, meaningful solutions +Help to mature existing and develop new standardized processes around IXL’s technical implementations; contribute to the vision and design of a next-generation integration platform + +What We're Looking For + +Bachelor's or advanced degree in computer science or a related discipline +A solid grasp of general programming principles +Excellent programming skills in Java or other object-oriented language +Ability to work both independently and with a wide variety of teams +Knowledge of Java, SQL, JavaScript, CSS, React, Linux, and Git is a plus +Passion for improving education through technology + +At IXL, we value diversity in age, race, ethnicity, gender, sexual orientation, physical and mental ability, political and religious beliefs, and life experience, and we are proud to promote a work environment where everyone, from any background, can do their best work. IXL Learning is an Equal Opportunity Employer. + + +Show more " +https://ca.linkedin.com/jobs/view/software-engineer-at-apple-3280912654?refId=b7b8pYcGksslVdH8GdxDxQ%3D%3D&trackingId=vq9ssrPljnkz9tZ501l%2B0A%3D%3D&position=3&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,Software Engineer,Apple,," +Summary + +The Apple Media Products Engineering team is one of the most exciting examples of Apple’s long-held passion for combining art and technology. These are the people who power the App Store, Apple TV, Apple Music, Apple Podcasts, and Apple Books. And they do it on a massive scale, meeting Apple’s high expectations with high performance to deliver a huge variety of entertainment in over 35 languages to more than 150 countries. These engineers build secure, end-to-end solutions. They develop the custom software used to process all the creative work, the tools that providers use to deliver that media, all the server-side systems, and the APIs for many Apple services. Thanks to Apple’s unique integration of hardware, software, and services, engineers here partner to get behind a single unified vision. That vision always includes a deep commitment to strengthening Apple’s privacy policy, one of Apple’s core values. Although services are a bigger part of Apple’s business than ever before, these teams remain small, forward-thinking, and cross-functional, offering greater exposure to the array of opportunities here. + + +Key Qualifications + +Experience with designing and developing globally distributed resilient applications + +Experience producing with at least one JVM based language + +Experience with testing patterns for producing high quality code (unit/integration testing) + +Experience with DevOps tools, processes, and culture + +Experience with distributed systems + +Experience supporting mission-critical and highly available systems + +Strong communication skills and ability to work effectively across multiple business and technical teams + +RESPONSIBILITIES WILL INCLUDE + +Building software and systems to manage platform infrastructure and applications + +Improving reliability, quality, and time-to-market + +Measurement and optimization of system performance + +Explore and evaluate new technologies and solutions to push our capabilities forward, getting ahead of our customers’ needs, getting people motivated to transform, innovate and continually improve + + +Description + +Apple Media Products SRE team is looking for a dedicated software engineer to join our Tools development team to help us design and develop the future of our platform. A platform that powers people’s favorite products like App Store, Apple Music, Apple TV+ and many more. + + +Education & Experience + +BS/MS in Computer Science or Equivalent (3+ years of software development or production operations experience in a large-scale environment) + + +Role Number: 200378459 + + +Show more " +https://ca.linkedin.com/jobs/view/software-engineer-i-ii-at-microsoft-3281907248?refId=b7b8pYcGksslVdH8GdxDxQ%3D%3D&trackingId=QCDh3W63HdJ6V7IhQnoRXw%3D%3D&position=4&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,Software Engineer I/II,Microsoft,,"Microsoft is on a mission to empower every person and every organization on the planet to achieve more. Our culture is centered on embracing a growth mindset, a theme of inspiring excellence, and encouraging teams and leaders to bring their best each day. In doing so, we create life-changing innovations that impact billions of lives around the world. You can help us to achieve our mission. To learn more please visit: https://careers.microsoft.com/mission-culture. + +Responsibilities + +We value people who can bring a diverse perspective to our product and where a developer will not just write code, but will have a real meaningful impact on the direction of the product and which features to build. We are building a team where diversity of thought and background is valued as strongly as technical skills, and where everyone is encouraged to come up with new ideas to make our customers’ lives better. + +We are looking for talented early to mid-career Software Engineers to help us deliver highly scalable services and world-class product experiences. You will have opportunities to work on multiple layers of the technology stack, ranging from customer-focused user experience work, building scalable distributed cloud services, working with big data, machine learning, and everything in between. You will learn how to design services and experiences that are required to work around the globe. You will collaborate with team members and other engineering groups in Microsoft to build full stack web applications and services using the latest web technologies in a dynamic and agile environment. You will be part of a fun-loving, diverse team that seeks challenges, loves learning and values teamwork. You will have opportunities for mentorship, career growth, and work on high-business impact areas. + +By applying to this position, you are being considered for multiple like positions within our organization for an invitation-only virtual Interview Day on Tuesday / Thursday, Month Date. Position specifics, including hiring team, location, and position details will be determined following the interview process. + +Qualifications + +Basic Qualifications: + +2+ years of experience with one or more general purpose programming languages including but not limited to: Java, C/C++, C#, Python, JavaScript, PowerShell +BSc in Computer Science or related technical field experience + +Preferred Qualifications + +Experience running and working on services at scale +Experience in developing, debugging and maintaining code in object oriented languages and database querying languages. +Strong coding, debugging, algorithm design and problem solving skills + +Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, color, family or medical care leave, gender identity or expression, genetic information, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran status, race, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws, regulations and ordinances. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. If you need assistance and/or a reasonable accommodation due to a disability during the application or the recruiting process, please send a request via the Accommodation request form. + +Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work. +Show more " +https://ca.linkedin.com/jobs/view/junior-data-scientist-at-m-m-food-market-3350469588?refId=b7b8pYcGksslVdH8GdxDxQ%3D%3D&trackingId=5xz8iXgJQx3%2BmP7k7RDdTg%3D%3D&position=5&pageNum=0&trk=public_jobs_jserp-result_search-card,Canada,Junior Data Scientist,M&M Food Market,,"We are looking for our next Junior Data Scientist. Could it be you? + + + + +The Junior Data Scientist will be a part of our marketing Consumer Insights and Analytics team. Reporting into the Director, Strategy, Consumer Insights and Analytics, this role will focus on developing and applying machine learning and statistical modeling techniques to support consumer marketing strategies at M&M Food Market. They will work closely with the IT, eCommerce, and Business Intelligence teams, as well as other key internal stakeholders, to research data science models and oversee end-to-end implementation. The Junior Data Scientist will lead research projects to solve the ongoing challenges while mentoring and supporting other team members. + + + + +Need more details? Keep reading… + + + + +The Junior Data Scientist will be responsible for but not limited to: + +Define data science projects from start to finish, identifying opportunities, defining the problem, building a proof of concept, and deploying a data product to improve marketing, product development, or overall business strategies. +Conduct data mining on customer, product, sales, assortment data sources for insights; generate hypotheses to test for opportunities to understand consumer behaviour and improve the merchandising and planning processes. +Develop, monitor, and enhance analytical solutions and projects in collaboration with business stakeholders and IT professionals. +Apply a wide range of statistical and quantitative analysis in practical and valuable ways. +Design custom tools to optimize data mining, cleaning, validation and analysis tasks. +Develop tools and testing models to ensure data accuracy. +Use predictive modeling to optimize marketing campaigns and customer experiences. +Participate in design workshops and document business requirements and constraints. +Program and write maintainable and well-documented scripts/applications for process automation; produce reusable machine learning pipelines while model building. +Connect with other teams to understand the go-to-market process, product lifecycle, and product/consumer strategy. +Create rich interactive visualizations through data interpretation and analysis integrating various reporting components from multiple data sources; communicate results to senior leadership. +Propose solutions and strategies to business opportunities and challenges. + + + + +So are you our next Junior Data Scientist? You could be if you are a curious self-starter who is an insightful, results-orientated, and motivated professional with exceptional interpersonal and communication skills. You have a proven ability to conduct thorough analysis using multiple data sources, evaluate and present visual results in Tableau. The Junior Data Scientist requires the ability to understand a concept from a broader perspective with strong problem-solving skills. You are adaptable and love working with people and teams from diverse skillsets and backgrounds, in a highly collaborative working environment. Someone who fosters connection by putting people first and building trusting relationships; communicates with honesty and kindness and creates the space for others to do the same; and embodies and brings to life the M&M Food Market purpose of “Helping to make a difference – every day.” + + + + +Experience, Education, and Designations: + +1+ years of work experience in data science, preferably in retail food service industry including internships +Academic background in Computer Science, Engineering, Math, Statistics, Research, or a related field +Must have experience with Tableau and Python (Jupyter, NumPy, Pandas, PySpark) +Strong SQL and/or Excel skills with the ability to learn other analytic tools +Experience in at least one of the common data science toolkits, such as scikit learn, Tensorflow, Keras, PyTorch, etc. +Demonstrated experience applying machine learning and data mining techniques + +  + +Skills, and Attributes: + + Strong problem solving and analytical skills including mining, evaluation, analysis, and visualization through Tableau +Excellent written and verbal communication skills including reports and presentations +Strong technical attitude – ability to turn business problems into analytical solution +A drive to learn and master new technologies and techniques +Possesses an entrepreneurial spirit and continuously innovates to achieve great results +Ability to take on responsibilities and work with minimal supervision +Fosters connection by putting people first and building trusting relationships +Communicates with honesty and kindness, and creates the space for others to do the same +Embodies and brings to life the M&M Food Market purpose of “Helping to make a difference – every day.” + + + + +Sounds like you? Click below to apply! + + + + +A lot has changed over 40 years of helping customers across Canada, but at the heart of what M&M Food Market does, is our people. Whether shaping the direction of the business from head office or offering customers exceptional service every day in our stores, we are successful because of our amazing team. + + + + +Here are just a few reasons to consider a career with us… + + + + +WE HAVE HEART, WE ROCK, WE GROW + + + + +We are constantly evolving. + +We believe change is a good thing. Whether it’s venturing into new markets or reinventing our current strategies, our passion leads us to new and exciting opportunities that further strengthen our position in the marketplace. + + + + +We are recognized for our work. + +M&M is a Platinum member of Canada’s 50 Best Managed Companies, having received the award for more than 12 consecutive years. We’ve also been recognized with numerous awards from the Canadian Franchise Association, as well as awards for our excellence in marketing, advertising, customer service, and community relations. + + + + +We put our customers and our employees first. + +For a retail chain such as M&M, our success depends on our customers’ satisfaction. From a corporate perspective, we also consider our stores to be our customers and when we work together as a self- supporting team, we make great things happen. + + + + +We strive to be the best. + +We are constantly growing and developing – as a company and as individuals. We encourage new ideas and ongoing learning, and we embrace diversity in order to do great work as a team. + + + + +****************************************************************************** + +M&M Food Market is committed to Diversity, Equity, and Inclusion. We believe that the wide range of perspectives that results from diversity promotes innovation and business success. Achieving diversity makes us more creative, flexible, productive, and competitive. We welcome applications from qualified individuals from all backgrounds. + +M&M Food Market strives to provide accessibility in employment to ensure equal access to employment opportunities for candidates, including persons with disabilities. We will attempt to provide accommodation to persons with disabilities in the recruitment process upon request. If you require accommodation at any point during the recruitment process, please let us know and we will work with you to meet your needs. + +Please note that final candidates for this position will be required to undergo a confidential pre-employment background check which may include but not be limited to educational, criminal, credit, and employment history verification.  + +Show more " diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 000000000..162cd70b9 --- /dev/null +++ b/backend/README.md @@ -0,0 +1,63 @@ +# Job Recommendation By Skill Match + +Project to to create a simple skill-keyword-based job recommendation engine, which match keywords from resume to job descriptions + +## Install + +Install virtualenv +virtualenv is a tool to create isolated Python projects. Think of it, as a cleanroom, isolated from other virsions of Python and libriries. + +Enter this command into terminal + +sudo pip install virtualenv + +or if you get an error + +sudo -H pip install virtualenv + +Start virtualenv +Navigate to where you want to store your code. Create new directory. + +mkdir my_project && cd my_project + +INSIDE my_project folder create a new virtualenv + +virtualenv env + +Activate virtualenv + +source env/bin/activate + +This project requires **Python 3.0+** and the following Python libraries installed: + +- [NumPy](http://www.numpy.org/) - pip install numpy +- [Pandas](http://pandas.pydata.org) +- [NLTK Stopwords](https://www.nltk.org/book/ch02.html) +- [Selenium](https://www.seleniumhq.org/) +- [PyPDF2](https://pythonhosted.org/PyPDF2/) +- pip install -r requirements.txt + +## Code + +Code is provided in +- job_recommendation.py +- linkedin_scrapper.py +- skill_keyword_match.py +- web_scrapper.py + +## Run + +In a terminal or command window, navigate to the top-level project directory `TIS_Job_Project/` and run one of the following commands: + +Search and match jobs in all cities: +```python indeed_job_recommendation.py``` + +Search and match jobs in one city e.g. Vancouver,BC: +```python indeed_job_recommendation.py Vancouver,BC``` + +When finishes successfully, it will say 'File of recommended jobs saved'. + +## Data +Data collected from TBD + + diff --git a/backend/chromedriver b/backend/chromedriver new file mode 100755 index 000000000..0b46cc423 Binary files /dev/null and b/backend/chromedriver differ diff --git a/backend/config.py b/backend/config.py new file mode 100644 index 000000000..9107c73be --- /dev/null +++ b/backend/config.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +JOBS_LINKS_JSON_FILE = r'./data/indeed_jobs_links.json' +LINKED_JOBS_INFO_CSV_FILE = "LinkedinJobs.csv" +JOBS_INFO_JSON_FILE = r'./data/indeed_jobs_info.json' +RECOMMENDED_JOBS_FILE = r'./data/recommended_jobs' +WEBDRIVER_PATH = r'D:\chromedriver\chromedriver.exe' +JOB_LOCATIONS = ['Vancouver,BC', 'Toronto,ON', 'Montréal,QC', 'Ottawa,ON', 'Calgary,AB', 'Edmonton,AB'] +JOB_SEARCH_WORDS = '"data scientist"+OR+"data engineer"+OR+"data analyst"' +DAY_RANGE = 30 +SAMPLE_RESUME_PDF = r'./data/test_docs/Resume.pdf' diff --git a/backend/data/Ojasvi_Agarwal_Resume.pdf b/backend/data/Ojasvi_Agarwal_Resume.pdf new file mode 100644 index 000000000..be6f94d5f Binary files /dev/null and b/backend/data/Ojasvi_Agarwal_Resume.pdf differ diff --git a/backend/data/indeed_jobs_info.json b/backend/data/indeed_jobs_info.json new file mode 100644 index 000000000..d19477ee4 --- /dev/null +++ b/backend/data/indeed_jobs_info.json @@ -0,0 +1,2938 @@ +[ + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Cgq76qs9x1riGBjmQsnfnucrUKOVfT5Pe-A0xEygSLhBTTeW6-TU02X5l9SLOdv8zo9N9VeuS1eEwiZmeY9lZQfyzXsKFgrZOV6f55uUG78bZcE84WVt9GJaJDwx-bJ-3vFUbi3QlF31-sfo7tYPp5SbzSd2Su-FZHwif7NOb748CbV79vrdvpkTeK-H3oBVEOMV10_aO8nOST9ry84j9ha8OYZNn154KylEP2TCKhiTeTGDd7_UUmj0qFVoe6gZtfd8EkyoOlxEkai8vynfhy98fsuDTyiIp19MeMgI8tf88q4p1RrY_cwWHA9zUFIw6SdKbxVptl5mHj5_Xfin7whHbsfjdTX7NoaubnMUlVFZt2sVV5IcQxJUms03rpG36dKIuu7ZglGW-skCFf0l-QmlxTLd2TbUIK11SBLS0T_Ii8qaHa333Bwz1ddz9Knfq07Ms_hL3Sa6jkFv7NUpwdpevYL-wSGYlZ7p3v_Hn6Oth1LyZbVNhnBmUNhwcmHfeihqPnsDMb2POz0PL9o24uNdBJTbv80ungoRm45yvZzYosYcBj8gEzlFMp3bgr2a7sqW3iz4q5ooj5cG1Pd9avUgh6O76w_OTusDodQNz1HPOe_tMjOK-s7E2DQPgcdCyYbL4Z4dbvRbh4bOims5p-iz73Lpe5N2--_f6C4vcBkhXtqKM6qpc-&vjs=3&p=1&sk=&fvj=0", + "location": "Vancouver,BC", + "title": "Lead Data Scientist", + "company": "Invoice Simple", + "salary": NaN, + "desc": "To Apply : http://bit.ly/2MXP1V9\nInvoice Simple's mission is to build the world's simplest way to run and grow a small business. Today we help over 100,000 paying customers run their businesses simply \u2014 with your help we'll help a million+ small businesses succeed and grow!\nWe\u2019re looking for a hands on Data Scientist to join our growth team. We\u2019re looking for someone who can help us drive significant growth and performance improvements in our paid user acquisition using world class techniques.\nWe\u2019re new to data science, so we\u2019ll be expecting you to level us up significantly! We have a lot of users, and extensive existing analytics and data. We\u2019re a small team, so you\u2019ll be expected to work across the stack and organization to deliver results.\nYour objective\nHelp us build and grow the world\u2019s best paid marketing engine (for this market), by leveraging data science including analytics, reporting and prediction\nUltimately success in this role means you\u2019ll have contributed significantly to business growth by helping scaling our paid marketing campaigns to ever increasing heights\nResponsibilities\nOwn data science at Invoice Simple and know more about our users than they know about themselves \u00f0\u0178\u02dc\u2030\nDevelop and implement prediction models to optimize and measure performance of paid campaigns\nDrive data collection and analytics improvements across the organization to support your efforts\nBuild out and validate dashboards for key metrics for marketing and executive teams\nComplete regular ad-hoc analyses by translating raw data into useable information and insights\n\n\nAbout you\nA naturally creative problem solver\nDaring enough to aim for world class results\nA track record of achieving incredible results through aggressive and unconventional means\nEmploy a disciplined approach to growth and experimentation\nLeverage first principles thinking, to get to the core concepts\nAbility to discover, evaluate and quickly incorporate new strategies and tactics\nYou have an incredible intuition about data, enabling you to make accurate predictions and to quickly identify problems causing potential inaccuracies\nWhat are we looking for?\nExperience working with data warehouses, bonus for experience with Google BigQuery\nProven ability to use machine learning techniques for prediction and classification\nYou can wrangle and analyze numbers in spreadsheets with the best of them\nAbility to write SQL \u2013 window functions, views and CTEs are your friends\nUnderstanding of statistical significance and ability to use it effectively\nBonus\nExperience with mobile app install campaigns\nExperience with campaigns for SaaS for SMBs\nWritten Typecript and/or Javascript on the backend with NodeJS\nOur existing tech stack\nGoogle BigQuery for data warehousing\nFiveTran for data middle ware\nPeriscopeData for SQL dashboards\nNodeJS backend\nTo Apply : http://bit.ly/2MXP1V9" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BHCnlRI-Pt-50D52l4B9_F9JgCN9-Ilsx4somBkaRx6j4tvsXC5BoY6_XjGqepqV137EUOOj-2w2BdI64lL0mpW8kmxICums6JRT1FEOgyUuNYJDVMv4p2Esoig2mR0-yIfJ_i8wejluNuJxPYkv5C0I73Log3Xg8BVRWZyHCgKoog20oBwEkm68wqdce9uPaxjgjioWQ3sz1prxGxv_kTStWMfzr10V36RjcHQtYnx45y2Sbj_PWzTVpXKkGdfSx86z16d_Qd4orH1mb4UoBIt_KdE6vk5NBr_pBUoxfTzsdM0WEexGd-nz4ODQE_OtqLm4hWxscCAx_O80wzKPMwrWhDNwtftXoEXS-JmfrDVwd1sdz78Xeic1-waOot8Ms5F-NXyUFivSwKHN-WoXZ4fEqY0iHPlzC9BZzIX2qtKMybqNm4co7sQy2s9sM_gblqoPpjMpJZPayxUTt2dPIk83B9dEYpkKWImYyCOJBzTBxBvdm3h798&vjs=3&p=2&sk=&fvj=1", + "location": "Vancouver,BC", + "title": "Tableau Specialist", + "company": "PNI Digital Media Inc.", + "salary": NaN, + "desc": "Job Summary\nPNI Media is seeking a Tableau Specialist to join our growing Business Intelligence team, a key role which will support analytics for top tier eCommerce companies, such as Costco, Sam\u2019s Club, Staples and Fedex\nThis position will primarily focus on designing and building dynamic and powerful data visualizations for core metrics, KPIs, and ad-hoc requests across all retailers to both monitor sales performance and determine future business strategy.\nThe ideal candidate is analytical, possesses a passion for developing insights and has strong communication skills.\nLastly, the successful candidate will be able to work with internal development teams to set up and collect the right data structure.\nJob Type / Category\nDevelop Tableau dashboards and reports using visual best practices to promote user adoption and usability\nPerform installation, migration and upgrade of Tableau data sets and dashboards\nDevelop new data sets via SQL server, Google Analytics and third party connections\nOptimize data sets for Tableau Online Server environment\nManage/ oversee existing reports on Tableau server\nProvide suggestions to constantly improve internal processes and methodologies\nProvide support and cross training on Tableau to product managers, account managers and PNI\u2019s Tableau user community\nAct as backup Tableau administrator\nRequired Education, Skills and Qualifications\nBachelor's degree in Business, Economics, Finance, Engineering, Statistics, Computer Science, Mathematics or related field, or equivalent experience\n2+ years of relevant work experience in a business analyst/data analyst/statistical analysis role\n2+ years of Tableau Server/Online experience\nExperience working with efficient Tableau data join and blend strategies\nExperience configuring Tableau server with multiple third party applications\nGood understanding of database concepts including writing SQL statements\nExperience with Jira for managing tasks and a good understanding of Agile software development\nStrong troubleshooting skills\nExperience in Google analytics and web ecommerce is big plus\nJob Type: Full-time\nExperience:\nbusiness analyst/data analyst/statistical analysis: 2 years (Preferred)\nTableau Server/Online: 2 years (Required)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Cgq76qs9x1riGBjmQsnfnucrUKOVfT5Pe-A0xEygSLhBTTeW6-TU02X5l9SLOdv8w2Re459KlVD7kAiL_tqMsq1ShAOqYXRpqHnYppsKF8tIRSibkGzgJhv-J3S6_28qjPSB7pCrd9O-HzOtIJqdDeGaFowGJeFyatTuXImZJKkvSQObWfnShVBQhDpsgSq4EKX_md62qf95g-K6wchqYAxeCd_qlPOWbP-NSciGK4k7l0sk5wV7oL_YEeNUfsJncOKLJZ91M4Lfzs7gjCjmFkWp3TmMlekIs4MDdWz_sSKfc1cE9ePgM8O-EHenoNc97-FMpij1UDc_0XcgZO2gYEIboVnGf06oEpN64ukMAvJCHcIFekdGBaAp-2oDYECAYnq0pOT_WlZn3Ry7nJqSegK0J2QgZviH_37xMpHhudrZ9S7WZ7iooTjRn1pAKhRy2kPwmB7fY0TCMe0HIhbusMQR9CuVYj2y1GNFFmJznWDfZGalq2RIZBC1D4-wUtwhndWQciH4OQYivCuhqb8LRG-MGoMwt4a67IuZUIsXO2dia2_xQhiKbLxFCfHOeFh87DLvDvwu0ynOzxgeOniXt9S-rUSJr4RsaA8rjUWl7vN2punN4l_0FiDTpcq14niaN0h_9hhqPyZQWytNX5ggcdC0Yd-r1Yu6lVyA_tY2lCODUUyM0bYwaC5DTmiuZXJD0=&vjs=3&p=3&sk=&fvj=0", + "location": "Vancouver,BC", + "title": "Data Analyst \u00e2\u20ac\u201c Contract 12 Months", + "company": "Samsung", + "salary": NaN, + "desc": "Temporary\nSamsung's IoT team in Vancouver has taken a leadership role in our vision of connected intelligence. We are creating the next generation of IoT solutions, developing cloud software to activate and managing data from a wide range of connected IoT devices, from sensors to TVs to kitchen appliances to cars. As IoT evolves for new industries, we are also creating end-to-end vertical services, most recently in the energy space.\n\nWe handle massive amounts of data generated by Samsung\u2019s SmartThings Cloud. The team is responsible for turning this data into information that allows our stakeholders to make data-driven decisions, as well as collaborating with other ML and AI teams across Samsung to help them get the data they need from the IoT Cloud.\n\nWhy We Want You\nThe IoT Data Platform Team in Vancouver is looking for an experienced Data Analyst with passion for big data, streaming, and real-time analytics.\nYou have a strong analytical mind and you like to see the whole picture. You have passion for solving complex problems and have a high degree of aptitude when it comes to learning new technologies. You love data and numbers and understand how important your role is in helping with business decisions.\nWhat You\u2019ll Do\nParticipate in the full cycle from requirements and architecture, to deploying and owning the production system.\nBe asked to present your findings in the form of reports or presentations to company stakeholders\nSelf-motivated to go an dig for data understand the subject matter around it\nWork in a multi-disciplinary scrum team\nCollaborate with other groups across the organization and other projects\nWhat You Bring\nBachelor\u2019s degree in field of computer science, information systems, statistics, or data analysis\nAttitude to work with others and an aptitude to learn quickly\nWritten and verbal understanding in Korean\nProficient in SQL, to be able handle complex queries\nExperience in data visualization programs such as Power BI, Tableau or other OLAP tools\n\n\nBonus Skills\nExperience with various AWS services (EC2, S3, Lambda, Kinesis, EMR, Redshift etc)\nExperience with various Big Data technologies (Hadoop, Spark, Kafka, Flink, etc)\nScripting languages like bash, Python, etc\nAvid internet or hobbyist of IoT\nPlease email your resume to divya.n@partner.samsung.com" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Cgq76qs9x1riGBjmQsnfnucrUKOVfT5Pe-A0xEygSLhBTTeW6-TU02X5l9SLOdv8zwBxIzhhlbZpkKTnDOTigvCt_-vBe2RGtXpgUsvYqM4jEqgFPbpLmn0GD_A5yHbLwDspDJPG-W40_rTQeYoshLHJYC4UuheU_2sKWV-WL19qodlEMsTB1z9Zs1HEKhT1elaEajWuf07Enw4TR1kgxEIa9sqqbH0KapIqJEfzHcO7Yzz9vbPrQ5cAHzjvuVy2Y4OAghWKnAmu7p5H5yyQNKRntgGDmGwVPfj-FO9eTmqGLGAzJuMytrL98jM8d4W980FbTNAiyFxIwyHdQ04tsVfu9mO5-saltOaH8yedcg9AWR2ABeL16LIoRJEqmx4wxmYN1Sm6BpW0ZPZpd5A5k8ImNO6rgFA8HoXL0b7ZXe18I5dSiZ6HsFw43eC9c1nu9DlrBAGCsu_1tTHAanRLOkPUNfVD2F7isjLTcy9RVLTFXSaN3xAamZ0s93wVDeV3sOj0JzhTT5XjAN7sYhODG5RUq69S1Y9r3Fgd3pAI6pE5-2f_pl85wEiTTYqqx3NAGVDxfwo4swoZGnT-6l74dygdHlxXsUEHQpJ8IWvBNN5L1_d-9W1J040OWX5UazA4J5-0rJaHcLrkbwErkNVlnw6n3ZwidUJzhRpkLsJztdB3ONsupn-XmaFV8TdUdiX74=&vjs=3&p=4&sk=&fvj=0", + "location": "Vancouver,BC", + "title": "Data Engineer / BI Developer", + "company": "TEEMA Solutions Group", + "salary": NaN, + "desc": "Ref: DP670986822\nOverview\nThis team is building up their BI division due to demand. They are building a new reporting platform that will have BI and Data Warehousing so it is an opportunity to get in at the beginning of a major initiative to build a scalable, complete solution from the ground up. They have their strategic plan approved for the next two years and they are currently in phase one.\n\nYou are a Data Engineer with expertise in back-end BI development \u2013 ETL (SSIS), data modelling. You have expertise in MySQL or SQL Server and tools like Tableau or Power BI.\n\nYou will be working with a talented Lead/Product Owner and four developers. You will be expanding the reporting capability of the soon to launch data warehouse. Then you will help design and create datamarts for addition departments.\n\nWhy should you consider this role? Our client is a growing, recognized software product shop that has been making the news. This is an unusual opportunity to build a BI platform from the ground up. They are constantly evolving and growing so you will have opportunities for career growth. Their new classy West Coast digs have stand up desks, a balcony for BBQs and they are centrally located near transit in downtown Vancouver.\n\nWhat you need to have:\n5+ years high tech experience inclusive of Back End BI development\nETL (SSIS, SSRS, SSAS)\nData modelling\nExpertise in SQL Server or MySQL\nPower BI or Tableau\n\nPlease note: Candidates need to be authorized to work in Canada and available for interviews in Vancouver.\n\nFor information about TEEMA Solutions Group and to consider other career opportunities, please visit our website at www.teemagroup.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=64292a26b2566147&fccid=15bf0d913760cb97&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst/Scientist", + "company": "Blue Mesa Health", + "salary": NaN, + "desc": "Blue Mesa Health is on a mission to deliver world-class digital health solutions that empower individuals to live chronic disease-free. We are a global, culturally diverse company with aspirations to prevent 100 million cases of chronic disease in the next decade. Our flagship product, Transform, is an evidence-based diabetes prevention program delivered via a combination of software, connected hardware, and professional health coaching.\n\nWho are we looking for?\n\nYou are passionate about preventive health and you have a desire to make a positive impact on the world.\n\nYou feel energized when you directly or indirectly help others modify lifestyle behaviors, prevent disease, promote health, and create long-term behavior change.\nYou are ready to join a funded, early-stage startup and work with people who are building amazing health technology and sharing it with the world.\nYou are excited to work with a great team of health science, design, business and engineering professionals who challenge and inspire you every day to make great decisions and build high-quality, scalable, well-designed software.\n\nYou are excited to be part of a fast-moving, intellectually curious, growing digital health venture.\n\nOur product team supports the human relationship between program participants and their dedicated health coach.\nProjects include:\n\nA multi-platform smartphone app designed to drive behavior change through education, rich communication, and habit trigger push notifications\nBackend data integration and analysis of activity tracker and weight scale data for outcome focused decision making\nRapid iteration towards human-computer hybrid communication with both clear information design and also applications of machine learning.\n\nAbout you:\n\nWe are looking for a Data Scientist that will help us discover the information hidden in vast amounts of data, and help us make smarter decisions to deliver even better products. Your primary focus will be in applying data mining techniques, doing statistical analysis, and building high quality prediction systems integrated with our products.\nRequirements\nSelecting features, building and optimizing classifiers using machine learning techniques\nEnhancing data collection procedures to include information that is relevant for building analytic systems\nProcessing, cleansing, and verifying the integrity of data used for analysis\nDoing ad-hoc analysis and presenting results in a clear manner\nCreating automated anomaly detection systems and constant tracking of its performance\nCollaborating with product management and engineering departments to understand company needs and devise possible solutions\nKeeping up-to-date with latest technology trends\nCommunicating results and ideas to key decision makers\nQualifications\nGreat communication skills\nExperience with data visualisation tools, such as D3.js, GGplot, etc.\nProficiency in using query languages such as SQL\nExperience with common data science toolkits\nGood applied statistics skills, such as distributions, statistical testing, regression, etc.\nPreferred Qualifications\nExtensive background in data mining and statistical analysis\nAble to understand various data structures and common methods in data transformation\nExcellent pattern recognition and predictive modeling skills\nWe are a small team using a Javascript everywhere stack (Express.js on Node.js for RESTful backend, GraphQL, Angular web app, Ionic mobile app) for maximum efficiency and collaboration. The next hires will be a major part of defining our technical culture." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=f8d357bd69198dc3&fccid=a2adf92b385a0e59&vjs=3", + "location": "Vancouver,BC", + "title": "Fan Data Analyst", + "company": "Canucks Sports & Entertainment", + "salary": NaN, + "desc": "Position: Fan Data Analyst\nDepartment: Marketing\nWHO WE ARE:\nWe create unforgettable moments that unite us all. We are more than the Vancouver Canucks, an NHL team striving to hoist the Stanley Cup. We are an organization striving to foster a high-performance culture, where our staff feels valued, inspired, engaged and challenged to deliver exceptional business results. Over the next couple of years, we are committed to a 2020 vision of growing our team and our business. We are overachievers who can make things happen by bringing enthusiasm and drive to the organization with a diversity of thought, and a passion for sport.\n\nPOSITION SUMMARY:\nThis role is responsible for managing the fan data program at Canucks Sports & Entertainment. The incumbent will set the strategy for collecting and analyzing digital behavior of fans through a variety of digital touchpoints including social, website, and mobile interactions. Areas of focus include database growth, data hygiene, new data sources, and engagement of new fan segments. The candidate will also work with the Marketing team to uncover insights that inform marketing efforts and drive lead acquisition, engagement, ticket sales, and corporate partner objectives.\n\nESSENTIAL DUTIES AND RESPONSIBILITIES:\n(Other duties may be assigned as required)\nOversee data collection strategy, including execution of data engagement campaigns, monitoring of fan records, data hygiene, and sourcing new data streams\nUsing data, analyze strategic fan behaviours within key fan segments to inform overall marketing efforts, including ticket sales conversions, demand generation, and fan and lead scoring\nIdentify strategic groups within the Fan Data Hub with a focus on high value segments identified in overall corporate objectives\nManage ingestion of data collected through in-arena activities, including app engagement, POS purchase and ticket scans\nExecute campaigns to collect new records, and supplement existing records\nReview and improve the technology stack used within the fan data warehouse\n\n\nREQUIRED EXPERIENCE AND QUALIFICATIONS:\nA Business/Commerce,Computer Science or Web Development degree or diploma from a recognized institution or an equivalent combination of education and experience\nAt least three years of experience in analytics and back-end development\nA deep understanding of databases and analytics\nDatabase management experience \u2013 relational (SQL) and non-relational (MongoDB, )\nExperience with analytical tools and languages, i.e. Python, R, Scala, big data techniques, BI tools\nETL (Extract, Transform, and Load) management experience\nPrevious experience implementing services to interact with APIs - ability to connect different platforms\nA strong customer service focus\nExcellent communication skills\nProven ability to make critical decisions independently without supervision\nExcellent people skills, with an ability to work closely and cooperatively with internal and external clients at all levels\nProactive and resourceful with an ability to \u201cmake things happen\u201d\nGood balance of creative/communications instincts and logical, analytical skills\nHighly organized and detail oriented with outstanding administrative and time management skills\nStrong knowledge of Microsoft Office\nSolid work ethic with desire to contribute maximum effort to achieve team goals and revenue targets\nAbility to work evenings and weekends as required by event and promotions schedule\n\n\nInterested, qualified candidates are invited to submit their resume by clicking \u201cApply Now\u201d above. This position will remain open until filled." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4be5b57b97af7350&fccid=fe2d21eef233e94a&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Amazon.com", + "salary": NaN, + "desc": "Job Description\nAWS Support is one of the largest and fastest growing business units within AWS. We are a highly technical, innovative organization revolutionizing the customer engagement processes and offers topnotch technical support for the portfolio of products and features of AWS. We are determined to redefine the word \u201csupport\u201d and lead the industry with best in class technology.\nAWS Support Kumo Machine Learning team is looking for an exceptional engineer who is passionate about data and the insights that large amounts of data sets can provide, to fill the role of a Data Engineer our. The ideal candidate will possess both a data engineering background and a strong business acumen that enables him/her to think strategically and add value to increase the support business and the customer experience. He/she will experience a wide range of problem solving situations, strategic to real-time, requiring extensive use of data collection and analysis.\nThe successful candidate will work in lock-step with data scientists, ML scientists, business analysts, support engineers, product managers, business leaders and other stakeholders across AWS Support org. He/she will:\nDevelop and improve the current data architecture for AWS Support.\nDrive insights into contacts and customer profiles.\nImprove upon the data ingestion models, ETLs, and alarming to maintain data integrity and data avilability.\nKeep up to date with advances in big data technologies and run pilots to design the data architecture to scale with the increased data sets of customer experience on AWS\n. Assist Data Scientists and ML Scientists with Data Identification and Data Preparation phases of Data Science.\n. Partner with BAs across teams to build and verify hypothesis to improve the AWS Support business\n\nBasic Qualifications\n6+ years of work experience in using SQL and databases\nPreferred Qualifications\n\nBachelor's Degree in Computer Science or a related technical field\nCapable of investigating, familiarizing and mastering new datasets quickly\nKnowledge of a programming or scripting language (Python, Perl, or Javascript)\nExperience with Java and Map Reduce frameworks such as Hive/Hadoop.\nFamiliarity with EMR, NoSql, Dynamo DB\nStrong organizational and multitasking skills with ability to balance competing priorities.\nAn ability to work in a fast-paced environment where continuous innovation is desired and ambiguity is the norm.\nExperience with Amazon Redshift or other distributed computing technology.\nExperience designing and operating very large Data Warehouses.\nStrong data modelling skills.\nSolid Oracle and Linux skills.\nSolid communication skills and team player.\nTrack record for quickly learning new technologies\n. Solid experience in at least one reporting Tool, preferably Tableau\n. Familiarity with Amazon Web Services (EC2, EBS, S3, etc.)\n. Broad awareness of customer workloads and use cases, including performance, availability and scalability\n. Experience analyzing issues holistically, from the application tier through the database, down to the storage\n. Proven track record of automating tasks\n. Excellent communication skills." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4bffb05010e75572&fccid=e04af1524072f597&vjs=3", + "location": "Vancouver,BC", + "title": "Data Scientist (Machine Learning)", + "company": "Finger Food Studios", + "salary": NaN, + "desc": "As a Data Scientist at Finger Food, you will analyze, design, develop and deploy solutions to real world problems. Our ideal candidate marries strong cognitive and technical skills, clear communications skills, a strong desire to own their work, and the ability to collaborate in small teams. We\u2019re looking for scientists and developers with experience or knowledge in the fields of machine learning, artificial intelligence and data science. Individuals of all experience levels who have studied or worked in these fields should apply.\n\nResponsibilities:\nCollaborate in small teams to analyze, design, develop and deploy high quality data science solutions.\nWork with clients to evaluate big data problems and suggest solutions from a data science perspective.\nEmbrace new technologies and have an eagerness to learn.\nUnderstand and work with current machine learning theories and algorithms.\nWork with real world applications of ML such as Watson, Cortana, Amazon Machine Learning API, chatbots and Natural Language Processing.\nEstimate tasks and manage time effectively.\nUse tools such as JIRA and Slack.\nWork from our offices, or on-site with a client (as necessary).\n\nQualifications:\nExperience with machine learning and data science or relevant education.\nGood communicator with the ability to work in a team environment.\nFamiliarity with business intelligence and analytics platforms/tools.\n4-year Science or Engineering degree (preferred), or equivalent experience.\nIn-depth knowledge of the implementation of machine learning algorithms.\nExperience with cloud-based data science and machine learning solutions.\nSoftware development or project management experience.\nExperience working with enterprise clients." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bdb6d2d21223c4ef&fccid=0e89af315fb1f60f&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Ecoation Innovative Solutions", + "salary": NaN, + "desc": "This is an intermediate level vacancy, for a Data Engineer with 3-5 years of experience. We are searching for an applicant who is passionate about analytics, who enjoys problem-solving within a team environment and is eager to introduce new ideas. Requirements:\nA bachelor\u2019s degree in Computer Science or similar experience, MS a plus\nProficiency python\nCritical thinking, problem-solving and analytical skills\nGreat communication skills and a strong team player\nAbility to write very high quality, well-tested code\nAbility to learn and adapt to a rapidly evolving tech stack\n3+ years of relevant experience in software engineering/ development\nWhat do we look for in candidates?\n\nGoals \u2013 Ecoation are looking to provide opportunities for staff can grow within their careers, so they need to have the passion to aim high.\nPerseverance \u2013 candidates must be able to handle the inevitable adversities encountered within a growing and changing company like our start-up and grow with us.\nDrive - we don\u2019t want Ecoation to be an average company. We want to transform farming technologies by leveraging machine learning. We\u2019re looking for candidates with big aspirations.\nAcumen - Machine learning is hard. Big data is hard. The industry is evolving and changing at a rapid pace. Ecoation is looking for candidates who can not only keep up but get ahead.\nPlease note, that only applicants living in Vancouver or surrounding areas will be considered. In addition, if you are not a resident or citizen then please do ensure you already have a valid working visa providing you with legal rights to work in Canada, prior to applying." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=0b3632cd4bc797f4&fccid=bcfb39af889db96e&vjs=3", + "location": "Vancouver,BC", + "title": "Data Scientist Co\u2014op | May 2019 (8 months)", + "company": "Visier Inc.", + "salary": NaN, + "desc": "Temporary\nWe are a leading cloud-based analytics solution for business intelligence. Our technology is designed to generate, highlight and make accessible valuable business insights to our enterprise level customers that is based on the data that they give us.\nAs a co-op you\u2019re not going to work on lame non-meaningful tasks. You\u2019re going to be working on cutting-edge technology that is pushing the boundary of the advanced analytics that we provide to our customers. You will be working with the lead Data Scientist as your mentor, and together you will decide on projects based on what excites you as well as Visier\u2019s business interests. This may be a software engineering focus, e.g. enhancing our machine learning pipelines or prototyping of automated insight generation, or all the way to a research focus of unveiling compelling insights into the workforce from our unique multi-million employee cross-customers data set. But not to worry, we will start you off with Bootcamp training, that may include Scala/Client-side certification, depending on your interest. Oh, did we mention we train you?\nOur co-op experience is unique and designed to prepare you for professional success. And hey, if we like you, we\u2019ll hire you after you graduate. No questions asked \u2013 our conversion rate is impeccably high and it\u2019s how we prefer to hire anyways. If you are passionate about science as well as data and looking for an opportunity to practice your skills in an energetic and creative environment, apply now!\n\nAbout Your Mentor\nYou will be working with Anton Smessaert, Lead Data Scientist at Visier. Anton holds a PhD in Computational Physics from UBC and shifted three years ago from academia to work for Visier. As a member of the Product Management team, Anton is responsible for the development of advanced numerical algorithms and statistical techniques that generate business insights from human resource data.\n\nRemote\nWhat you\u2019ll bring to the table\u2026\n\nStrong understanding of statistics and how to apply the scientific method to data using algorithms\nCoding skills in writing Scala, Python or your favorite language\nAdvantageous would be to have some knowledge in one of the following areas:\nHypothesis testing\nMachine learning techniques\nScientific analysis and knowledge generation\nAttention to detail and knowing how to still keep the big picture in sight\nWhat you value\u2026\n\nYou are determined to succeed and committed to win. The opportunity for success is unrivaled here, but you need to supply the drive. Results matter.\nYou are passionate about science & data. Our drive is to bring advanced technology and robust scientific techniques into the business world.\nYou are accountable. This is a small company and we take responsibility for our own successes and failures.\nYou are disciplined. We do things the right way, we do not cut corners, we do not rely on smoke and mirrors; we are the real deal." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=fa3469d27b419859&fccid=8050ea68bc1f1986&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst", + "company": "Bench", + "salary": NaN, + "desc": "What's Bench? Check us out inForbes Top 30 Under 30 ( http://www.forbes.com/30-under-30-2016/enterprise-tech/ ),The Vancouver Sun ( http://www.vancouversun.com/business/story.html?id=11322339&__lsa=971b-6812 ),Inc.com ( http://www.inc.com/bartie-scott/bench-mental-health-guide.html ),Entrepreneur Magazine ( https://www.entrepreneur.com/article/281616 ), and ourInstagram ( https://www.instagram.com/benchaccounting/ ).\n\nWe're a smart and fun group of people working hard to solve a tough problem for millions of entrepreneurs. The basic foundation for success in any business is to understand its financial performance, but for many small businesses, keeping up to date on their books means trading off time spent actually running their businesses. Bench solves this dilemma by taking bookkeeping off of our clients hands. We've paired sleek, user-friendly software with a team of bookkeepers to provide monthly bookkeeping at an incredibly accessible price, giving entrepreneurs the time and the confidence to run the businesses they love.\n\nWhen you throw in with us you're not only joining a company that's changing the way business is done, you're joining at an inflection point. Bench is post Series B, capitalized by a team of Silicon Valley and New York investors. We're scaling fast and we're not slowing down anytime soon. In just a few short years, we've grown from four co-founders to over 200 Benchmates. It's been quite the ride so far and we're looking for the brightest minds who love solving tough problems to join us on this incredible leg of our journey.\n\nData Analyst\n\nBench is looking for an experienced analyst to join our Data Analytics team and help drive the understanding, growth, and success of Bench. You should have technical skills and be comfortable working in an evolving data infrastructure to help us make data informed decisions.\n\nYou will partner with business units to provide visibility into our data, craft narratives, find insights, and provide recommendations. You will work closely with our Data Engineering team to transform product and business data into insights that allow the rest of the company to make better decisions.\n\nResponsibilities:\nUse data to inform and influence the direction of roadmaps and inform business decisions\nBuild dashboards and reports to drive awareness and understanding of metrics and experiment results\nWork closely with Data Engineering to author and develop core data sets that empower operational and exploratory analyses\nProvide ad-hoc data support and analysis\nWork with product teams to define goals and identify metrics for improving existing features and new releases\nDeepen our understanding of patterns/trends in user behavior, design experiments, and uncover new opportunities\nRequirements:\nA passion for data and detail\nCuriosity, skepticism and persistence\n3 years experience in an analytical role\nStrong understanding of SQL and practical experience interacting with large data sets\nA proven track record of using quantitative analysis to impact key business or product decisions\nThe ability to clearly and effectively communicate the results of complex analyses\nUnderstanding of common statistical applications and methods (experimentation, probabilities, regression)\nFamiliarity with agile processes and issue tracking tools\nExperience building internal/production data sets and tools for ETL, experimentation, or exploration in a scripting language (Python, R, etc.)\nBachelor's degree in Computer Science, Engineering, Statistics or related field, or equivalent work experience" + }, + { + "link": "https://www.indeed.ca/company/Form-Athletica/jobs/Data-Scientist-5dad326c206d8b53?fccid=3c003f78ca8283ac&vjs=3", + "location": "Vancouver,BC", + "title": "Data Scientist", + "company": "Form Athletica", + "salary": NaN, + "desc": "FORM (www.formathletica.com) is building a new revolution in augmented reality for sports, and we\u2019re looking for a Data Scientist to join our rapidly growing team.\nAt FORM, you\u2019ll help us write the rulebook on augmented reality in a new market. You\u2019ll have the freedom to shape your role, how you own it, and how you grow with us. You\u2019ll get to wear many hats, to coach, and to learn. And you\u2019ll be part of an amazing and diverse group of people who love to work and play together.\nA Little Bit About Us\nWe\u2019re taking augmented reality into a new world. We can\u2019t say much more yet\u2014except that we\u2019re the best at what we do. That\u2019s because we dare to try things nobody has tried before. It\u2019s because we never lose sight of what really matters. And it\u2019s because we care about people, and people come first in everything we build.\nFORM is run by a team of industry veterans with a reputation for creating amazing, industry-first products. This includes part of the team that introduced the world\u2019s first consumer smart eyewear in 2010.\nOur founder and CEO, Dan Eisenhardt, has been building the future of augmented reality for the past ten years\u2014first as co-founder and CEO of Recon Instruments, then, after selling Recon to Intel, as General Manager of Intel\u2019s Head-Worn Devices Group, and now at FORM.\nTo learn more, visit www.formathletica.com.\nPosition Overview\nAs a member of the machine learning team, you\u2019ll contribute to all aspects of FORM\u2019s data pipeline. This includes conducting field trials to gather data, and organizing, analyzing, and drawing meaningful conclusions from collected data. Working closely with our engineering team, you\u2019ll also make essential contributions to the development of our industry-leading wearable technology.\nTo succeed in this role, you\u2019ll need a thorough understanding of human body kinematics and experience with analyzing inertial measurement systems data. You will have an advanced degree in Computer Science, Biomedical Engineering, or equivalent, specializing in algorithms, data science, or signal processing.\nPrimary Responsibilities\nUse machine learning techniques to perform research and analysis on inertial measurement systems data\nDesign extremely robust and lightweight algorithms for deployment in realtime on wearable devices\nAssist in designing and implementing experiments to collect inertial data from our product and prototypes\nDevelop DSP and ML-based algorithms and mathematical models that will generate meaningful insights for our users\nPerform research in machine learning and apply this research to modern real-world problems\nEvaluate applied products end-to-end to determine where and how to apply deep learning techniques and how to evaluate different approaches\nPresent experimental results and research findings clearly and concisely both internally and externally\nSoftware development in MATLAB, Python, etc.\nCritical interpretation and analysis of relevant academic papers\nApply the latest machine learning techniques to make on-the-fly conclusions\nRequired Skills and Qualifications\nBackground in signal processing algorithms with demonstrated expertise in time-domain and frequency-domain discrete-time signal processing algorithms\nSolid understanding of the theory and practice of machine learning algorithms:\nDeep learning\nEnsemble techniques * Experience building functional prototypes in Matlab/Python/R and C/C++\nIndustry experience or equivalent academic impact with focus on machine learning or signal processing\nA record of publishing papers in journals or conferences demonstrating contributions to your field of study\nHands-on use of inertial measurement systems\nWorking knowledge of statistical principles such as variability, bias, and noise\nWell-versed in classification methods using machine learning of noisy data\nHas worked with large data sets and is comfortable in at least one scripting language\nAdditional Skills\nExperience in fast-paced, energetic startup environment\nGreat communication and interpersonal skills\nAbility to effectively multitask and wear many hats\nEntrepreneurial spirit\u2014self-starter and proactive\nFlexible and adaptable to rapidly changing business conditions and priorities\nJob Type: Full-time\nLocation:\nVancouver (Preferred)" + }, + { + "link": "https://www.indeed.ca/company/REBCA/jobs/Senior-Data-Engineer-3c8bffbec9bfede9?fccid=f5906d665e18e186&vjs=3", + "location": "Vancouver,BC", + "title": "Senior Data Engineer", + "company": "REBCA", + "salary": "$100,000 - $130,000 a year", + "desc": "$100,000 - $130,000 a year\nWe are looking for senior data engineer to join our talented and amazing team in Vancouver.\nREBCA is an innovative startup in the real estate industry that is determined to introduce exciting and groundbreaking changes to the industry. Our vision is to bring forth unprecedented levels of responsiveness, efficiency, convenience, and transparency in different aspects of the real estate services.\nIf you are an ambitious individual interested in joining a team to help shape the future of the real estate industry, we encourage you to apply!\nResponsibilities:\nDevelop, maintain and refine advanced models to provide valuable insights for strategic decision making\nIdentify opportunities where data solutions can be developed to add value across the organization.\nUse statistical and machine learning techniques to provide insight on all aspects of REBCA's business and identify opportunities for enhancement.\nWork with department teams on a range of business problems, identifying and supporting the implementation of solutions to drive improved business results through a combination of advanced analytics, process engineering and usage of new data discovery tools.\nSuggest and evaluate potential solutions derived from the output of predictive models, turning them into tangible cost benefits for the given business area.\nCollaborate with key business stakeholders and executive team to enhance and/or develop new products, services and experiences.\nResearch and develop new ways to apply and analyze experiments to benefit the organization.\nPerform database monitoring, maintenance, reorganizations, resource management, schema management, and capacity planning and performance tuning for the company's databases.\nQualifications:\n3+ years experience of implementing and/or maintaining a data processing pipeline and its underlying infrastructure\n4+ years working experience and education in Big Data platforms\nProficiency in object-oriented/object function scripting languages: Python, Scala, Java\nKnowledge of data modeling and understanding of different data structures and their benefits and limitations under particular use cases\nKnowledge of GCP technologies such as Big Query ML, Cloud Machine Learning Engine, Dialogflow...etc is a plus\nPerks:\nStock Options\nHealth & Dental Benefits\nGrowth Opportunities\nSocial Events\nCollaborative Team Environment\nFlexible Hours\nConvenient Vancouver Office location and easily accessible by transit\nAdditional Info about this Position:\nREBCA is a new startup company with plans for rapid growth. We fully encourage and support our staff to grow and specialize in areas they are passionate in.\nJob Type: Full-time\nSalary: $100,000.00 to $130,000.00 /year" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1517e0b3bbf5f9d8&fccid=97b60a8911a47812&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst", + "company": "Axiom Zen", + "salary": NaN, + "desc": "We're looking for a Data Analyst to build foundational tools and processes and to translate data into narratives and insights that shape our business decisions. Every member of our team shares a common vision: to create the future we want to live in. We need the right people to help us realize that vision. This position is based in our Vancouver office.\n\nWe value that each candidate brings their own unique mix of skill and experience. We set a high bar for our team members and ensure they have the support and guidance not just to succeed, but to excel.\n\nA little about us:\nCryptoKitties is the world's most popular blockchain game, accounting for 25% of the traffic on the Ethereum network upon launch. Unlike cryptocurrencies such as Bitcoin or ether, CryptoKitties are crypto collectibles that secure ownership of digital art via distributed ledger technology. Since launching, tens of millions of US dollars in transactions have been conducted on the platform, with some of the game\u2019s most popular cats selling for the equivalent of over US$150,000. The cultural phenomenon has been featured by The Wall Street Journal, Forbes, The New York Times, and VICE.\n\nWe created CryptoKitties to explore the concept of digital scarcity and introduce blockchain technology to everyday consumers, because we want to shape the future of blockchain. Our team of 30+ world class engineers, designers, and product leads set industry standards and pioneer innovative blockchain advancements, including developing a new type of non-fungible token, ERC-721. Recent funding includes investments from leading firms Andreessen Horowitz and Union Square Ventures.\n\nOur team combines creativity and experience to test new ground in game-making\u2014our mission is to inspire delight with the goal of attracting the first billion consumers to the world of blockchain games and digital assets.\n\nYour mission:\nTurn data into actionable insights in the CryptoKitties portfolio.\nWhat we\u2019ll accomplish together:\nExplore how users are interacting with a decentralized gaming product to pave the way for navigating business intelligence in gaming and blockchain.\nBreak down the language barrier between raw data and analytics to deliver actionable insights by turning complex problems into structured projects with clear business objectives.\nCreate narratives from the metrics produced by a unique game environment to inform high-level decision making and goal setting, fundamentally impacting business planning.\nDoes this describe you?\nYou\u2019re a strong communicator who can convey even the most complex analyses into compelling narratives using both language and visualizations.\nHave experience in mobile, social, or online gaming, and can define and leverage impactful metrics to provide the insight to make savvy decisions with players in mind.\nHave experience in instrumenting and gathering data for analysis to provide actionable recommendations to the team.\nHave experience with the tools we use: Mixpanel, Google Analytics, Meltwater, Google BigQuery, Google Data Studio, and Jupyter Notebooks.\nProficient in Python (or the demonstrated ability to learn new languages quickly) and SQL queries.\nCan process data using different tools and will help pick the best for each context (R, SQL, Tableau, and Mixpanel).\nProvide data exploration and analysis to various product teams.\nHave strong math skills, particularly in statistical analysis.\n\n\nMore about CryptoKitties:\nAt CryptoKitties we recruit the best and foster an environment that enables our team. That means a workplace that is diverse, inclusive, and open-minded. We welcome applicants of all backgrounds, regardless of race, colour, religion, sexual orientation, gender identity, national origin, or disability.\n\nWe offer compensation commensurate with the high level of talent we seek, a dog-friendly office\u2013our dogs are the cutest in the industry, and we won\u2019t be told otherwise\u2013extensive benefits, and flexible time off policy." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=aeaed95159b8f2ca&fccid=f31ab15e49b41186&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Code Pilot", + "salary": NaN, + "desc": "Code Pilot is replacing the crusty old resume with a data science based portfolio for engineers, and we're looking for a Data Engineer with data integration expertise and a passion for changing the data landscape. If you are interested in working for a data driven company on the edge of industry disruption, we'd love to talk with you. And if we ask you about bulk batch high volume data processing and your eyes light up and your brain goes into overdrive, we're talking to the right person.\n\n-------------------\n\nWe are looking for:\n-------------------\n\nA new team member to support the data development & processing for one of our hiring partners.\n\n------------------------------\nWhat will keep you challenged?\n------------------------------\n\nDesign, develop, automate, monitor and maintain Extract Transform Load (ETL) data movement applications using our preferred ETL tools and techniques.\nPerformance tune ETL applications to manage high volume batch data transfer to and from internal and external system locations.\nTroubleshoot data issues, recommend, test and implement solutions.\nDevelop and document technical requirements and solutions.\nParticipate in design and code reviews.\nTroubleshoot issues making recommendations and delivering on those recommendations.\nEngage in project planning and delivering to commitments.\nParticipate in daily stand-up meetings, planning meetings and review sessions (using Scrum / Agile methodology).\nInteract with cross-functional teams to ensure complete delivery of solutions.\nAssist with configuration of applications software.\n----------------------------------------\nWhich traits contribute to your success?\n----------------------------------------\n\nPassion - for software development (algorithms, design patterns, clean code, agile processes, data structures).\nHumility - Outstanding engineers display inverse proportions of talent to humility.\nMission Oriented - A dogged commitment to getting the job done is crucial.\nHighly Competent - Software Engineering at the top level requires highly motivated individuals who are constantly learning and adapting.\nHighly Adaptive - Mike Tyson said it best, \"Everyone has a plan 'till they get punched in the mouth.\" Developing software at the top level requires incredibly adaptability and agility. Nothing ever goes the way you want, and anything valuable probably doesn't exist the way you want it.\nShip or Quit - High performance software teams have one unifying quality, they ship, a lot. So if you're a fellow Ship talker, you'll love it here.\n-------------------------------------------\n\nSome technologies you will be working with:\n-------------------------------------------\n\nETL tools (ie, Ab Initio, Pentaho, Talend, SSIS)\nProgramming languages Java (Groovy), JavaScript, SQL, or PL/SQL\nSQL and relational platforms (PostgreSQL, Oracle)\nRevision Control (e.g., Subversion)\nNoSQL databases (Cassandra)\n---------------\nWhy Code Pilot?\n---------------\n\nCode Pilot is a new startup and relatively unheard of. We're currently 4 people, all co-founders, based in Austin, TX. Given the rigor and process we adopt to hire engineers, you might be asking yourself, why invest your time and effort to simply apply?\n\nWe're hoping if you've reached this part of the posting, you've already noticed the care and attention we've invested in how we hire engineers. We're not interested in the instant gratification someone can provide by being able to \"code\", and frankly, as an engineer who is passionate about the craft, you shouldn't be either. We're passionate about the discipline of engineering, and what it takes to develop world class engineers. To that end, we don't care if you've got 1 year or 20 years experience, we don't care if you went to MIT or are self-taught, hell, we don't care if your favorite programming language is Ruby (although we will help you forget everything you know about it pretty quickly). What we care about is your insatiable desire to be pressure tested in a credible engineering environment that brings out your best." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=310c88e30cec3af9&fccid=5012f98464fbca70&vjs=3", + "location": "Vancouver,BC", + "title": "DATA ANALYST", + "company": "GoTo Pallets", + "salary": NaN, + "desc": "We are looking for an experienced Data Analyst to help our team collect, organize and analyze key data points and produce analytical reports on specific patterns with the aim of improving overall end-user experience.\n\nACCOUNTABILITIES\nResponsible for all activities surrounding the SQL Server database.\nMust be able to interpret requirements and implement into software solution.\nAbility to diagnose complex system problems under limited supervision.\nExperience with stored procedure writing\nTest, evaluate and integrate third party tools with existing applications.\nExperience with SSIS, SSRS, and SSAS\nHighly proficient in SQL (T-SQL or PL/SQL)\nDevelop structures, procedures and triggers to support data storage.\n\nREQUIRED SKILLS AND QUALIFICATIONS:\nDegree or diploma in Computer Science or Information Technology.\nSelf-motivated and able to work independently with minimum supervision.\nWork well in an agile environment, able to efficiently interact with business user and business analyst to pin down the requirements and provide sounds approach.\nKnowledge of UML, process flow and data flow diagram.\nExemplary communications skills specifically in managing complex/technical information to a wide audience\nExercise a small sample of database administrator (DBA) related tasks (index tuning, query optimization) for efficient operation of database\nWork with IT infrastructure staff to ensure proper database backup and resources\nCompensation\nEmployee will be paid a competitive base salary and annual bonuses. Goto Pallets also offers medical and dental benefit packages and stock option benefits.\n\nHow to Apply\nIf you think you\u2019re a great fit for this position, email careers@gotopallets.com." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2b943a97c4257feb&fccid=10b5c722d846df43&vjs=3", + "location": "Vancouver,BC", + "title": "Data Scientist - NuData Security", + "company": "MasterCard", + "salary": NaN, + "desc": "Mastercard's Enterprise Security Solutions organization develops and delivers world-class security products and services for customers across the globe. NuData Security predicts fraudulent transactions by identifying good users from bad, based on their online behavior. By analyzing over 38 billion behaviors annually, NuData harnesses the power of behavioral and biometric analysis to empower its clients to predict fraud and verify the user behind the device. This allows clients to predict fraud before a critical decision, reduce customer insult, and investigate bad actors efficiently.\n\nRole\nWe are looking for a Data Scientist to join our team in our Vancouver office. This is a key role within the team responsible for researching and developing NuData\u2019s security solutions and you\u2019ll have exciting responsibilities, including:\n\nDesigning, building and deploying machine learning models in collaboration with an agile, high-functioning Data Science team.\nIdentifying new opportunities in data collection, feature creation, feature selection, model tuning and evaluation workflow, then taking those ideas from first concepts to live product integrations.\nImplementing effective monitoring and benchmarking for models and targeting improvements via thorough analysis of massively parallel model deployments.\nPartner with NuData\u2019s Data Science and Data Engineering teams to identify and drive opportunities, pioneering the algorithms and systems that power our commercial products.\n\n\n\n\nAll About You\nIdeally, you\u2019re:\nExperienced in deploying machine learning models to solve real problems and generate competitive edge. You understand good deployment practices and have experience with processes like containerization. Ideally you have successfully developed, deployed, monitored and improved on production models in business contexts.\nA capable coder, able to write well-abstracted, reusable, resilient code in Python, Java or Scala. You\u2019re experienced with web services (e.g. EC2, EMR, ECR, Lambda, Sagemaker, Glue, Kinesis, Redshift), and machine learning tools (e.g. Tensorflow, Keras, MXNet, Gluon).\nExperienced working with cloud environments. You understand the benefits of cloud infrastructure and know how to design an effective machine learning pipeline in AWS or Google Cloud to automate and scale out machine learning workflows. You have the vision to see what the next generation ML infrastructure looks like.\nFamiliar with statistical and machine learning concepts. You\u2019re able to inform design discussions and support your teammates via collaborative design, review and recommendations.\nA capable communicator in visual and verbal channels, able to explain decisions or concepts to colleagues and provide clear, actionable recommendations.\n\nIt also helps if you are:\nCollaborative. We do our best work as a team, which means sharing, being open to support and giving constructive input.\nEvidence-based. We work to eliminate assumptions and test our hypotheses, and we value rigor.\nResponsible. We offer the opportunity to drive major projects that protect consumers every day, internationally. We are looking for colleagues who care about that.\nMotivated. We\u2019re a team of data scientists with personal and collaborative side projects, and we\u2019re looking for someone who shares our enthusiasm.\n\n\nMastercard is an inclusive Equal Employment Opportunity employer that considers applicants without regard to gender, gender identity, sexual orientation, race, ethnicity, disabled or veteran status, or any other characteristic protected by law.\n\nIf you require accommodations or assistance to complete the online application process, please contact reasonable.accommodation@mastercard.com and identify the type of accommodation or assistance you are requesting. Do not include any medical or health information in this email. The Reasonable Accommodations team will respond to your email promptly." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=768d11c7af0fab9d&fccid=c26d104f25f1364f&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst (Player Information Network)", + "company": "Keywords Studios", + "salary": NaN, + "desc": "The Data Analyst will play a key role in analyzing operational data to improve Quality Verification strategies. You should be a sharp, curious, and analytic individual who has a passion for diving into data to solve business problems. Your insights will influence how we build and verify the quality of ours games\n\nRequirements:\nRequirements\nEducation, knowledge or analytical experience\nComputer Science, Statistics, Engineering, Mathematics, Operations Research, etc.)\nVisual aptitude for displaying results in a meaningful matter\nUnderstanding of a programming language (R, PHP, or Python)\nStrong data visualization techniques for building dashboards, charts, and reports\nAbility to present results to clients in clear and concise manner\nSelf-motivated and self-driven, with demonstrated ability to learn new concepts quickly and independently\nKnowledge of how to analyze data \u2013 ideally with some background in math and statistics\nSome MS Office exp. (Excel, Word, Outlook, etc.)\nIncluding VBA, PivotTables, and array functions\nPower BI and/or Tableau experience a bonus\nGood working knowledge of SQL queries for data retrieval\nCapability to understand and present data in a visual way with knowledge of tools for reporting \u2013 includes understanding metrics and KPIs\nWork well in a team and communicate with various levels of the organization\nDaily/weekly tasks\nReceives questions from internal customers, understands the questions, and determines the data needed to answer them with supervision & support Manage assigned work using project tools and working with the leadership team Imports, transforms and cleanses data from a variety of sources Defines data model for cleaned data to create highly structured, reproducible and analyzable data sets Provide data visualization by building dashboards, charts, and reports that do not require manual updates Perform quality assurance on generated results to ensure accuracy and consistency Builds strong relationships across the data analyst community, to share knowledge and learn from others" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4b27a81685e26637&fccid=3babf6ec6b04c340&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Hothead Games", + "salary": NaN, + "desc": "Permanent\nHothead Games is mobile game development studio focused on free-to-play for iOS and Android devices. Millions of people play our games and this generates large amounts of data. Transforming this data to make it both meaningful and actionable is a key priority at Hothead.\nYou enjoy a mix of dev ops and development, by configuring and managing AWS infrastructure services and writing your own code and scripts. You're a problem solver, right down to digging through logs to figure out what might have happened.\nYou have professional software experience and know how to manage your own time. You are a great communicator and frequently find yourself being the organizer of your group.\n\nWhat You'll Do:\nConfigure, monitor and maintain multiple AWS services that support our existing big data pipeline\nHelp develop and test our next generation of pipeline\nIdentify and implement improvements to help keep our AWS service costs down to earth\nWork with data engineers, analysts, data scientists, and game developers to determine the data needs of our games\nStructure data and write SQL queries to enable the processing vast amounts of data\nWrite code and evaluate 3rd party software to help the team provide the appropriate services to the company\n\nWhat You Bring:\nA bachelor's degree in computer science or related discipline\nA good knowledge of AWS services and hands-on experience managing those services\nStrong Python and object oriented coding skills\nExperience with SQL and database management\nExperience developing software in a professional environment including source code control, documentation, automated testing,live deployment, and continuous integration\nGreat communication and interpersonal skills that can bring varied people together and get things done\n\nBonus Points:\nExperience with map/reduce and big data ETL processes using Spark or Hadoop\nExperience mentoring and leading other developers\nExperience and excitement in building infrastructure that scales to hundreds of terabytes\nAn enjoyment of mobile games\n\nThis full-time permanent position is for our Vancouver office, located at 1555 West Pender Street, in beautiful Coal Harbour. Compensation includes competitive salary and vacation, MSP and Extended Health coverage. Other cool perks include an in-house gym, on-site Chiropractor/RMT/ Physiotherapy, yoga/fitness classes, RRSP matching, company golfing, major/minor league sports events, summer rooftop BBQs, snacks and beverages, weekly lunch & learn's, beer Friday's and most of all, amazing people to work with!\n\nWHY BEING INCLUSIVE IS IMPORTANT TO US?\nAt Hothead Games, we are an Equal Opportunity employer and we value the diversity of the people we hire and serve. We strive to build and grow our team that fosters variety in backgrounds, perspectives, experiences and skills. We embrace inclusiveness in our workplace, so we can utilize each person\u2019s talents and strengths to make great games.\nIf you're seeking an awesome new challenge in a fun and engaging studio, we invite you to apply and talk about the possibilities of beginning a rewarding new chapter of your career." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8bd976ac2611971c&fccid=57654f228eb0dab6&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst", + "company": "Gevity Consulting Inc.", + "salary": NaN, + "desc": "About our Company\nGevity is an international informatics and management consulting company offering a full range of interdisciplinary professional services to clients seeking to build sustainable and effective healthcare and social services systems. Through our focus on the unique needs of the healthcare, social services and life sciences sectors, we work to support healthier lives through connected systems. Gevity\u2019s services range from strategic consultancy to system integration.\nEquality of opportunity and diversity of our company is important to us. We do not discriminate on the basis of race, religion, color, ethnicity, gender, sexual orientation, age, marital status, veteran status or disability status.\nBackground\nWe are currently looking for a Data Analyst to join our team. The ideal individual will be tenacious, with a strong attention to detail and a track record of delivering projects that help their clients.\nRequired Knowledge & Skills:\nA minimum of 8 years of business analysis experience or a combination of work experience and relevant education and/or certifications;\nAbility to perform data validation and user acceptance testing while managing client expectations;\nAnalytical and broad-based technical knowledge/skills with ability to think through details and tactics without losing sight of overall strategic goals;\nIntermediate-level business documentation/ writing skills within an IT focused project;\nExceptional critical thinking skills;\nTransformational awareness and expertise;\nExceptional client engagement / interpersonal skills and ability to effectively facilitate discussions with a diverse group of stakeholders and users;\nDemonstrated successful experience working on a technical implementation project;\nAbility to describe business outcome and benefits in layman terms;\nAbility to extract information and knowledge from complex sources;\nUnderstanding of how to interpret customer business and clinical needs;\nAbility to meet deadlines in a fast-paced work environment \u2013 proven organizational and time management skills;\nAbility to work independently and within a team;\nExcellent proficiency with MS Office toolsets (Word, Excel, PowerPoint, Project);\nExcellent written and verbal communication, including business and technical writing skills;\nAbility to work independently and within a team, influencing and supporting;\nStrong negotiation & critical thinking skills;\nDemonstrated experience building relationships with internal and external stakeholders.\nTechnical:\n3+ years of working with SQL/TSQ, XML and related tools (XSL/XPath);\n2+ years of working with a scripting language (Bash/JavaScript/Python/Perl/etc)\nData transformation and mapping (ex. XML, XSL/XPath);\nScripting (ex. Python) or development (ex. Java/C#) ;\nFamiliarity with databases such as MSSQL, Oracle, MySQL, etc.\nAssets:\nA Bachelor\u2019s Degree in a clinical or technical discipline relevant to the role;\nAwareness of data migration standards an asset;\nPrior experience working on IT/infrastructure and/or clinical/healthcare projects is an asset;\nExperience working with BC Health Authorities is highly preferred;\nAny other industry recognized certifications, specifically in Business Analysis (CBAP), Change Management (PROSCI) or Agile.\nShortlisted candidates for this opportunity will require a high-level approach to the project work, detailing your experience offering business analysis consulting, 3 detailed project examples and 3 detailed references." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=f8014320a19d6bc5&fccid=7b7909227bb8e2af&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Unbounce", + "salary": NaN, + "desc": "If you are a software developer who would enjoy the opportunity to work with a distributed data pipeline system supporting a huge team of engineers and business users alike, then read on! We have an opportunity for a Data Engineer to help us build out a company-wide eventing system that will integrate our products and reporting tools. This will involve an opportunity to work with stakeholders across Unbounce at every level, coordinating data requirements for all teams ranging from product to marketing; building new systems with modern tooling, mentoring your team and helping engineer upgrade paths for legacy systems.\nAt Unbounce, we help marketers and small businesses provide millions of people around the world the ability to find what they need online via better marketing experiences using our tools. On the inside, our market-leading SaaS company is rooted in good people, good culture, a dedication to learning, and we enjoy deep supportive ties in the local tech community.\n\nA Little Bit About You:\nYou understand that the best successes are team successes and mentor and coach those around you to improve their abilities. A successful day could involve solving problems by yourself, pairing with your peers, whiteboarding a technical problem with a team or running a session introducing new tech to the department\nYou seek and provide code reviews regularly; see the benefit of continuous integration; test frequently and extensively and deploy rapidly.\nYou\u2019ve worked and enjoy working with data analyst teams\nYou\u2019re excited about the data space and tooling-and you know when different tools are appropriate\n\n\nWhat Impact will you have on Unbounce?\nYour work will feed Unbounce\u2019s endless appetite for data, both big and small, and be the basis for everything from strategic decisions to product operations\nTackle some high-complexity and high-volume data integration and scaling work\nCollaborate with analysts and product teams to help answer interesting, tough, and important questions\nCollaborate with technical leaders to define the data roadmap and how we execute it\n\n\nSome examples of what you will have the opportunity to learn in this role:\nEvent-based data systems and their impact on business operations, data analysis, and software design\nDistributed system design, construction, and operation best practices, including the use of tools such as Docker, Kubernetes, and AWS\nData science libraries and tools, as well as distributed computation and workflow tooling\nDeepening your mentorship and leadership skills both within the team, and across the data organization and company.\nWe believe the ideal candidate will have experience in:\nAt least 4 years experience in a combination of backend engineering, data engineering, or systems engineering\nSome experience with either Devops or System engineering practices and tooling\nExperience with Python and SQL\nFull development lifecycle for distributed systems - from idea and design through to development and to support and operations and uptime" + }, + { + "link": "https://www.indeed.ca/rc/clk?cmp=BC-Centre-for-Excellence-in-HIV%2FAIDS&ti=Data+Analyst&jk=01e6338cbbf358b4&fccid=975a6cc122de694c&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst - Epidemiology and Population Health", + "company": "BC Center for Excellence in HIV/AIDS", + "salary": NaN, + "desc": "Temporary\n-- DATA ANALYST --\nBC Centre for Excellence in HIV/AIDS\nPlease note: Only Canadian Citizens, legal residents or residents with a legal work permit will be considered.\nSTATUS: This is a 1 year full time position with a possibility of extension.\nJOB START DATE: As soon as possible\nSALARY: Commensurate with qualifications and experience\nLOCATION: One position at BC Centre for Excellence in HIV/AIDS, Vancouver, BC at 1081 Burrard Street, Vancouver, BC (St. Paul\u2019s Hospital), one position at 625 Powell Street, Vancouver, BC\nJOB: Responsible for ongoing analysis of healthcare information, obtained from a variety of sources, including patient care, financial, and demographic data. Involves development and preparation of information products for staff. Requires the ability to analyze healthcare data from conceptualization through presentation of the data. Requires proficiency with analytical tools (SAS, Oracle SQL, Excel), knowledge of data analysis methodology, use of presentation software and strong communication skills.\nORGANIZATION: The BC-CfE currently employs a team of Statisticians, Programmers, Data Managers, Clinical Research Assistants, Data Analysts and Data Entry Clerks who work collaboratively on cohort-based epidemiological and clinical studies. The BC-CfE is a world-renowned HIV/AIDS research centre including Research Laboratory, Clinical Trials, Drug Treatment Program, Epidemiology and Professional Education Programs.\nBENEFITS: Employee benefits include medical, dental, as well as accrued vacation and sick time\nJOB RESPONSIBILITIES:\nDevelop useful and insightful information from a variety of data sources\nDevelop programs, methodologies, and files for analyzing and presenting data\nUse and support database applications and analytical tools: evaluate data quality, applications, and functions, produce output and maintain operation\nResearch new data sources and analytical tools; contribute to new product development and improvement in product delivery and presentation\nData retrieval and management of databases for cohort-based studies, including writing computer programs and macros to capture and edit data\nMaintaining confidentiality in dealing with all matters\n*\nJOB QUALIFICATIONS:\nBachelor\u2019s degree or higher in relevant field in Computer Science or Medical Health Information or equivalent qualifications\nUndergraduate or graduate coursework in statistics, data analysis, research methods, Oracle programming\nTwo to five years of experience in data analysis, decision support, including demonstrated proficiency with analytical software\nExperience working with a variety of information systems and data files, including large and complex files: analyzing file structure, using and creating file layouts, transforming raw data into finished products\nDemonstrated experience and expertise with SAS and/or Oracle SQL programming language required\nDemonstrated experience using advanced Excel features and techniques required\nDemonstrated experience in analysis and presentation of data required\nFamiliar with various types and sources of health care information, including financial and patient-level data files\nAbility to self-motivate, with managerial, leadership and project management skills\nExcellent oral and written communication, organizational, multi-tasking and problem-solving skills, with the ability to work independently within a team environment as well as the ability to work under pressure to meet deadlines\nKnowledge of HIV/AIDS, viral hepatitis, and/or medical terminology\nPlease include in your letter of submission:\nCurriculum Vitae\nCover letter detailing experience and interests\nSalary expectation and availability\nRecent published peer reviewed papers, if applicable\nCONTACT:\nc/o HR Coordinator, BC Centre for Excellence in HIV/AIDS, 613-1081 Burrard Street, Vancouver, BC, V6Z 1Y6 FAX: 604-806-8464\nAPPLICATION DEADLINE: October 19, 2018\nNote: Applications received without a cover letter will NOT be considered. Only candidate that are selected for an interview will be contacted.\nJob Types: Full-time, Temporary" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a8a6de0753239320&fccid=3dbbfe2513485c9d&vjs=3", + "location": "Vancouver,BC", + "title": "Marketing Data Analyst BurnabyHead Office", + "company": "Best Buy Canada", + "salary": NaN, + "desc": "Marketing Data Analyst\nMarketing\nOur Marketing Teams at Best Buy Canada are home to some of the most creative and strategic thinkers in the company. From graphic designers to writers, media analysts to the managers who bring it all together, Marketing is made up of diverse and talented people all committed to one goal: building lasting relationships with our customers.\nThe Marketing Data Analyst is an expert on customer behavioral data. This individual will write complex SQL queries to identify customer behavioral trends, build forecasts, and provide actionable insights to drive the business. This individual will also define and monitor customer lifetime value and identify highly valuable segments to support the CRM strategy. The Marketing Data Analyst will report to the Manager, Omnichannel Audience Strategy and will support customer segmentation and profiling strategies while being committed to data quality and work with stakeholders to improve customer identification rates and data integrity.\nAs a Marketing Data Analyst you will\u2026\nDevelop SQL queries that identify customer segments and targeting opportunities while helping support customer segmentation and profiling strategies\nLeverage SQL, APIs, Data Mining, Statistical Modelling and other technical skills to extract data and enhance queries, reporting and analysis\nManage and manipulate real-time data sets spanning millions of customers\nAct as an internal expert on customer data, its accuracy and applicability to marketing analytics\nLead efforts to resolve data quality issues by identifying root-cause errors and presenting potential solutions\nPartner with stakeholders from Retail Operations, IT, eCommerce and Legal to improve customer identification rates and to enhance the customer data quality\nWe hope you are passionate about\u2026\nLogic and critical thinking \u2013 loves data, data analysis, testing & learning and has a high degree of analytical curiosity\nCommunication \u2013 you excel at cross-functional collaboration and communication, with the ability to communicate methods and results to both technical and non-technical audiences\nDetails \u2013 an exceptional eye for audit beyond just checking code, including understanding the business, data, and volumes/metrics to identify anomalies or errors is key\nThe experience we need\u2026\n3+ years of experience working with customer data using database applications and tools, statistics, modeling, and data mining\n3+ years of strong knowledge of relational databases, database querying, data visualization tools, and intermediate to advanced SQL expertise\n3+ years of Business & Marketing experience\nExperience working with large and diverse data sets, preferably in a marketing capacity\nStrong problem-solving skills and ability to apply creativity to improve processes\nBachelor\u2019s Degree (Major in Marketing or Business, Minor in Mathematics, Statistics or Computer Science preferred)\nBonus points\u2026\nMicrosoft Power BI and SSRS experience\nAdobe Audience Manager, Salesforce Audience Builder, or similar DMP experience\nAdobe Analytics or Google Analytics experience\nWe believe we have the unique opportunity to help customers enrich their lives and pursue their passions with the help of technology" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=78dfbdda046c1491&fccid=e3cac5d9004ebbd4&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst, Operations - Management Resource Centre", + "company": "Global Container Terminals Canada", + "salary": NaN, + "desc": "GCT Canada is the largest terminal operator and maritime employer in the country. We are the major entry point for international trade in Canada, totaling over $2 billion in economic output each year. Operating on the West Coast for over a hundred years, with the support of our people, we played a major role in the development of the Asia Pacific Gateway.\nWe offer rewarding opportunities for team-oriented individuals who thrive in a fast-paced environment that are accountable, innovative, and driven to achieve challenging goals. We have an opportunity for a Data Analyst, Operations within our Management Resource Centre (MRC) at our Head Office location in Vancouver, BC.\n\nKey Responsibilities\nReporting to the Manager, MRC, you will be responsible for providing big data analytics insight regarding operations at Deltaport and Vanterm, and developing existing and new analytics processes. You will also be responsible for weekly administrative tasks such as project cargo cost quotes and inquiries as well as the flash report which is the terminal operational weekly report for the CEO and GCT executive management.\nGeneral Duties\nIdentify and define methods to quantify the performance of terminal operations\nApply statistical, linear programming, optimization/emulation and regression analysis to multivariate cost drivers in the terminal overall and distinctively in each of vessel, yard, rail and truck operations\nUtilize data analysis capability to derive insights for terminal managers and executive leaders on profitability, cost reduction and all aspects of terminal optimization.\nRespond to data inquiries from various groups within the organization and implement regular or ad hoc reports as needed\nEnsure analytics processes are verified, well communicated and promote actionable insights that drive operational efficiency and revenue growth\nCoordinate feasibility assessments and quotes for OOG/Breakbulk requests\nAssist finance department in preparation of annual budget and quarterly forecasts\nActively acquire new skills required to continuously improve analytics methods\nComplete additional duties as required\nRequirements\nEducation & Experience:\nYou bring the following knowledge and experience:\nSuperior attention to detail along with superior proven analytical and problem solving skills in large complex data environments\nDemonstrated ability to work effectively in a dynamic environment that requires flexibility as well as proactive planning and organizational skills\nExperience with computer programming, database systems, and basic data analysis / statistical methods\nExperience with SQL (Structured Query Language) and Visual Basic\nPreferably with experience in linear programing and data optimization\nBroad working knowledge of marine terminal operations\nStrong written and verbal communication skills\nDemonstrated ability to work in a self-directed manner and to work effectively within a team\nCost accounting of production operations environment and prior relationships with ocean carriers are an asset\nThis position may require occasional overtime hours and flexibility to work afternoons/weekend shifts on an as-need basis.\nThese capabilities have typically been developed through a degree in computing science/operations research/statistics/big data analytics or related field and approximately +2 years of experience in a marine terminal/operations environment.\nLeadership Practices\nModel the Way \u2013 Leaders find their voice by clarifying their personal values and expressing them in a style that is authentically their own, and they set the example by aligning actions with shared values.\nInspire a Shared Vision \u2013 Leaders envision the future by imagining exciting and ennobling possibilities and enlisting others in a common vision by appealing to shared aspirations.\nChallenge the Process \u2013 Leaders search for opportunities by seeking innovative ways to change, grow, and improve. They also experiment and take risks by constantly generating small wins and learning from mistakes.\nEnable Others to Act \u2013 Leaders foster collaboration by promoting cooperative goals and building trust. They strengthen others by sharing power and discretion.\nEncourage the Heart \u2013 Leaders recognize contributions by showing appreciation for individual excellence. They also celebrate values and victories by creating spirit of community.\nTo Apply\nTo take your career where tomorrow arrives today, visit our website for a more detailed job description: http://globalterminalscanada.com/content/careers . Click on Career Opportunities and apply online.\nSafety. Pride. Professionalism." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a08bd1b161ec2969&fccid=617d7f961cfcf54a&vjs=3", + "location": "Vancouver,BC", + "title": "FIFA - Data Scientist (Temporary)", + "company": "Electronic Arts", + "salary": NaN, + "desc": "Temporary\nRequisition Number:151388\nLocation:Vancouver\nDate Opened:2018-07-04\nElectronic Arts Inc. is a leading global interactive entertainment software company. EA delivers games, content and online services for Internet-connected consoles, personal computers, mobile phones and tablets.\nPosition Title: Game Security Data Scientist (Temporary)\nThere are millions of EA Sports players generating billions of events every day. We would like to use the high-volume of data streams to detect and anticipate Security threats and issues as soon as possible. The Game Security Data Scientist will be tasked with using big data, machine learning and visualization techniques to find patterns and correlations that will help keep the EA Sports platform safe and secure.\nThis role is at the intersection of security and data science and so the candidate should be able to adopt a security mindset to predict the adversaries\u2019 moves. The candidate should be able to leverage various statistical, AI, and machine learning methods to detect anomalies and fraudulent behavior.\nAreas to Explore:\nDetect patterns associated with fraudulent accounts, and anomalous behavior.\nSetup monitoring and alerting mechanisms.\nVisualize Big Security Data in a meaningful way\nSocial network analysis (SNA)\nDeliverables:\nDepending on the applicant\u2019s skill, aptitude and interest:\nMachine learning algorithm that successfully detects fraud and other security threats\nData visualization tools which helps detect anomalies and other threats\nReport evaluating the success or failure of the experiment(s), and ideas for next steps\nRequired Experience:\nDepending on the applicant\u2019s skill, aptitude and interest:\nExperience with SQL and no-SQL databases.\nApplied machine learning experience and familiarity with standard techniques, relevant tools and libraries.\nAbility to think and solve scientific problems and invent new methods.\nFamiliarity with programming languages such as Python, Java, C/C++, Scala, etc.\nPreferred Experience:\nA Master or PhD in Computer Science, Mathematics, or Electrical Engineering with specialization in machine learning, information security, artificial intelligence, decision support/making or other related fields.\nFamiliarity with Big Data tools such as Splunk, Hadoop, Spark, etc.\nExposure to Security in areas such as network/software security and a good understanding of security data, attack vectors and more.\nExperience with Visualization tools and libraries such as Tableau, SAS VA, Matplotlib, etc.\nSoftware development experience.\nWe Thought You Might Also Want to Know:\nMore about our location: http://careers.ea.com/our-locations/burnaby-eav\nContact me: Jesenka Duranovic, Recruiter, jduranovic@ea.com; @jesenka088\nEA is an equal opportunity employer. All employment decisions are made without regard to race, color, national origin, ancestry, sex, gender, gender identity or expression, sexual orientation, age, genetic information, religion, disability, medical condition, pregnancy, marital status, family status, veteran status, or any other characteristic protected by law. EA also makes workplace accommodations for qualified individuals with disabilities as required by applicable law." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b29f95c6615b277f&fccid=f66f721a44de3765&vjs=3", + "location": "Vancouver,BC", + "title": "Health Data Analyst - Perinatal Services BC", + "company": "PHSA", + "salary": NaN, + "desc": "Perinatal Services BC (PSBC) provides leadership across the continuum of perinatal care in the province, focusing on perinatal system planning, service delivery and quality improvement. As an agency of the Provincial Health Services Authority (PHSA), PSBC supports PHSA\u2019s three primary strategic directions: Improving quality outcomes and providing better value for patients; Promoting healthier populations; Contributing to a sustainable health care system.\n\nThe Perinatal Services BC vision is Healthy women having healthy pregnancies and infants. Our mission statement is through partnerships and collaboration and by building a high quality system of care across the continuum; we will optimize pregnancy & birth outcomes as a foundation for a healthy population. By working with stakeholders from across the province and within all Health Authorities we will build on the collective wisdom, knowledge and energy to bring this vision and mission to life, always putting women, newborns and their families in the centre of all our decision making.\n\nPerinatal Services BC is a part of the Provincial Health Services Authority (PHSA), which plans, manages and evaluates selected specialty and province-wide health care services across BC. PHSA embodies values that reflect a commitment to excellence. These include: Patients first \u2022 Respect people \u2022 Be compassionate \u2022 Dare to innovate \u2022 Cultivate partnerships \u2022 Serve with purpose.\n\nHealth Data Analyst\nReq# 75940\nRegular Full Time\nVancouver, BC\n\nReporting to the Provincial Director, Surveillance and Research, the Health Data Analyst is proficient on the use, design and reporting of selected database(s) in the Perinatal Data Registry of Perinatal Services BC (PSBC) and is responsible for the development, data extraction, validation, statistical analysis and ongoing generation of standard and ad hoc reports on behalf of PSBC. The Health Data Analyst collaborates with internal and external personnel within PSBC to produce high quality, reliable, relevant, and meaningfully displayed information to key stakeholders, clinicians, policymakers and administrators within Health Authorities, the Ministry of Health, and academic researchers. The role will support surveillance, research, and quality improvement activities that inform evidence-based decision making, clinical practice, and optimize health and wellbeing for women and newborns in BC. The incumbent must provide concreate examples which illustrate how they meet the required qualifications outlined below and clearly state their experiences with the collection, compilation, maintenance, and statistical analysis of complex administrative health and clinical data sets.\n\nKey Accountabilities:\nReceives and facilitates internal and external data requests for planning, quality improvement and research purposes including review of data requests, performing data retrieval, data manipulation, merging, and information summaries.\nProduces regular and ad hoc reports of performance indicators that monitor trends, utilization and quality for PSBC, including data interpretation, analysis and validation of clinical information.\nDevelops and generates standard and ad hoc reports and provides critical analysis for the purpose of communicating findings to internal and external stakeholders.\nWorks with relevant stakeholders to ensure the reporting needs are met for assigned databases such as the Prenatal Genetic Screening Integrated Outcomes Database and Perinatal Database.\nLinks data sources from other major health information systems such as the MoH (DAD, Pharmanet, MSP) and Vital Statistics.\nAdvises on data quality and data limitation for analytic purposes. Adheres to privacy and confidentiality policies and measures to protect data and information sources.\nDevelops project and research proposals, technical documents, educational resources that provide critical analysis of the data generated.\nQualifications:\n\nEducation, Experience and Training\nA level of education, training and experience equivalent to a Bachelor\u2019s Degree in Health Informatics, Statistics, Economics, or a related program\nA minimum of three (3) years recent related experience.\nPlease provide a cover letter indicating why you are interested in working with Perinatal Services BCand how your skills and experience make you an ideal candidate for the position.\nSkills and Abilities\nDemonstrated ability to design, generate, analyze and present statistics in a readily understandable format.\nExperience using medical classification and terminology systems, such as CIHI\u2019s ICD-10 CA and SNOMED-CT.\nProficiency in the use of database applications and other computer software applications, including but not limited to spreadsheets, statistical analysis, graphics applications and word processors.\nProficiency in SAS or R statistical packages considered an asset.\nWorking knowledge of Freedom of Information and Protection of Privacy legislation.\nStrong verbal and written communication skills and the ability to work both independently as well as within a team setting.\nAbility to coordinate, prioritize and complete multiple projects and to adjust project plans as necessary.\n\nWe invite you to apply by clicking on the \"Apply Now\" button where you can register for the first time or enter your Username and Password in order to re-access your profile on our system.\n\nApplications will be accepted until this position has been filled.\n\nFor more information on all that the PHSA has to offer, please visit: http://jobs.phsa.ca\n\nFor more information on Perinatal Services BC please visit http://www.perinatalservicesbc.ca/\n\nPHSA is committed to employment equity and hires on the basis of merit. We encourage applications from all qualified individuals, including Aboriginal peoples, persons with disabilities and members of visible minorities." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bbf2f2582afa054d&fccid=5fb7bb595ce3e3cf&vjs=3", + "location": "Vancouver,BC", + "title": "Data Scientist", + "company": "Left", + "salary": NaN, + "desc": "We're Left, a technology company based in the Vancouver suburb of Maple Ridge. A certified B Corp, Left is committed to \"doing things right\": making our mark on the world in a positive way with technology and innovation. Our top-notch culture and award-winning Community Engagement Program have led us to be awarded \"Best Workplace BC\", recognized by the BC Tech Association as the best in BC for \"work, life, and play\" and winner of the 2018 BambooHR Hero Award.\n\nAt the heart of our business we're building RightMesh, a platform to connect the next billion people without infrastructure using a fully-distributed mobile mesh network for Android, IoT hardware, and other mobile devices.\n\nLeft Travel Inc. ( http://www.lefttravel.com/ ), a subsidiary ofLeft ( http://left.io/ ), is made up of a small (but mighty) team which believes the search for the perfect vacation rental should be easy. The Lead Data Scientist's primary goal will be to help build and lead a team to solve the most complex prediction and algorithm problems currently confronted at Left Travel. He or she will work closely with leadership to understand and influence strategic product directions by communicating highly complex results in clear, actionable insights.\n\nWe value and believe that the relationship between travellers and their hosts should be simple, comfortable, and direct. We have an extensive travel brand portfolio that includesRentByOwner.com ( http://www.rentbyowner.com/ ),RentalHomes.com ( https://www.rentalhomes.com/ ),SellOffRentals.com ( https://www.selloffrentals.com/ ),Stays.io ( https://www.stays.io/ ), and others. Most of your time will be spent working with these brands, analyzing the data and optimizing campaigns to make them bigger and better than they already are.\n\nWhere does all this cool stuff happen? Our space is a physical representation of our core values. With an open concept built to encourage community, including a large communal kitchen, fully equipped games room and plenty of chill spots to relax, our Lefties feel as comfy here as at home. Family is important to us, and our office provides an inclusive environment for all on our team no matter what age or stage of life. Being in Maple Ridge, we are perfectly located for both city dwellers - only a 40 minute drive from downtown - and for those who prefer the 'burbs.\n\nYou have room to breathe out here and can afford to exhale. Not only do you get greater balance in your life, but you get to keep way more of what you earn. The difference is substantial (Hint: for a family of 4, it could be more than $50,000 in your pocket every year!). Calculate how much you would save by living and working in Maple Ridge here: http://www.costofliving.welcomebc.ca/ ( http://www.costofliving.welcomebc.ca/ )\n\nAre you ready to join us and change the world yet?\n\nAbout the Job: So what will you be doing?\n\nTaking new machine learning and/or optimization algorithms from prototype into production\nExploring and understanding our data set, and working with our team to develop our demand forecasting and web automated bidding.\nWorking with others to create data visualizations, design data pipelines, and determine the efficacy of new data\nThis position will be depended on to provide guidance and advice to other members of the data team and help foster a collaborative environment.\nCollaboration and mentorship with remotely distributed development teams will be expected.\nEssential Skills: What do you need to get here?\n\nDegree or equivalent in Computer Science, Math, Economics, Statistics, Operation Research, Masters preferred\n3+ years of hands-on experience with SQL data extraction scripts, data architecture, data blending, data transformation and data warehousing involving very large datasets and multiple data sources\nStrong experience in data analysis and coding predictive models and algorithms using Python, R, MLlib or Spark\nSolid skills in MySQL, PostgreSQL, MongoDB, REST and GET APIs\nFamiliarity with Cloud solution for data storage, processing and consumption for NoSQL databases on services such as Google Cloud Platform, AWS, and Azure;\nA strong desire to reinvent online travel booking and travel search industries\nAssets\n\nExperience working in digital marketing industry\nProficiency in business intelligence tools, such as Tableau, Power BI, Qlikview etc\nPrevious Lead experience in agile development environment\nAbility to translate business needs into actionable data solutions\nExperience with supervised and unsupervised machine learning.\nExperience in the creation and implementation of algorithms and statistical techniques to resolve data science problems.\nExperience with text analytics and natural language processing (NLP).\nCompensation & Next Steps\n\nIn 2017, to remove any unconscious bias out of our salary process, we revamped our salary structure to be transparent in who we are and what we pay. We offer a highly competitive compensation based on an annual external salary report to ensure pay equality.\nWe also offer many perks (including a comprehensive benefits plan, RRSP matching program, lower cost of living, etc.) and a culture and work/life balance that other companies simply can't match, creating a total package that is hard to beat.\n\nIf you are interested in working in a world-class business, then please apply below. No phone calls or unexpected visits please.\n\nLeft is a small, but growing company. Fit and a willingness to learn is more important than experience. Thanks in advance for considering us.\n\nLearn more about RightMesh AG, a project of Left at www.rightmesh.io ( http://www.rightmesh.io ).\n\nWe are an equal opportunity employer and love diversity at our company! We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, or disability status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=654b0f84f03f3689&fccid=de702c22a3b62c95&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst", + "company": "Acara Solutions", + "salary": NaN, + "desc": "- Objectives: To provide business support used in client decision making through the analysis and reporting of quality assurance data collected through Bureau Veritas Consumer Products Services (BVCPS) online data repository, OneSource\u2122. -Roles & Responsibilities: -Acts as the business or data analyst depending on the business demand -Through the use of a variety of analytical and quantitative methods, comprehends and optimizes an organization's supply chain quality analysis, demand analysis, market analysis, forecasting. -Compiles all relevant information, including quality and procurement metrics, distribution data, productivity and customer demand, examines inefficiencies and develops solutions for them. -Maintains detailed reports of his findings, routinely reports to company management, making recommendations as necessary. -Analyses data and interpret results through software tools -Prepares data for presentation by organizing and checking for inaccuracies -Analyze and interpret statistical data in order to identify relationships and trends -Report the results of statistical analyses, including information in the form of graphs, charts and tables -Is comfortable at Simulation, modeling, scenario and trend analysis -Serve as the client\u2019s primary point of contact for inquiries and requests concerning the OneSource\u2122 system -Delivers solutions within established timeframes that meet or exceed client expectations -Directly engage with BV's customers directly on requirements analysis and to explain the findings of the information/business analysis -Responsible for developing strong relationships with client quality assurance, production, design, sourcing and buying teams -Implement new features as they become available; provide onsite OneSource\u2122 training to client -Provides appropriate level of user acceptance testing as needed -Skills: -Excellent leadership, teamwork, and organization. -Excellent oral and written communication skills -MS-Office toolset expertise a must. -Advanced Microsoft Excel skills including pivot tables, macros and v-lookups -Critical reasoning skills -Ability to \u201cthink outside the box\u201d, comfortable with deadlines -Ability to work well in team settings with attention to detail -Excellence at analysis of information (pattern/trend recognition, statistical analysis, implication analysis, etc) -Critical reasoning skills -Retail experience a plus -Knowledge/experience in Information Management, Enterprise Architecture and/or IT a strong plus. -Understanding of IT application development lifecycle a plus\nRequired Skills / Qualifications:\n4 year degree in Business, IT or related discipline.\n2-6 years of professional experience (2 years directly related to IM or functional area); or\nEquivalent combination of education/experience\n\nGo Beyond. www.superiorjobs.com.\nEEO Employer - Minorities / Females / Disabled / Veterans / Sexual Orientation / Gender Identity." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1cb11071375b0262&fccid=3dbbfe2513485c9d&vjs=3", + "location": "Vancouver,BC", + "title": "Senior Data Engineer BurnabyHead Office", + "company": "Best Buy Canada", + "salary": NaN, + "desc": "Does the intersection of big data and cloud technology excite you? Are you craving an opportunity to explore, create, implement, and evaluate new systems and technologies that can support the largest tech retailer in the country? Do you want to work with the best tech and data tools available? If yes, we\u2019re looking for someone like you to join our team as a Senior Data Engineer.\nAt Best Buy Canada, we believe empowered people and teams make smarter, faster, and more creative decisions. Our IT department is an Agile environment, where the distance between any one person and senior leadership is microscopic. Here, you\u2019ll work on something big, small, or super cool and before you can blink 100,000 people will see it. You\u2019ll create fast, learn fast, and develop fast. Oh, and sometimes you\u2019ll fail fast too. That\u2019s ok. (Honestly.) It\u2019s all part of the process.\nAs a Senior Data Engineer on our IT team, you\u2019ll be instrumental in advancing the capabilities of our Cloud-hosted Data Platform. You\u2019ll take the lead on evaluating new technology solutions to ensure they can scale in a way that supports a retailer of our size. You\u2019ll also get to roll up your sleeves a bit by building data pipelines, creating APIs, designing in-house applications, and mentoring junior team members.\n\nWhat you\u2019ll be doing:\nActing as a key contributor to the Best Buy Cloud Data Platform by improving the quality of our data tools and infrastructure\nBuilding data pipelines capable of processing large volumes of data in real time and batch\nDesigning and creating APIs, applications, and protocols for other teams to access and discover data\nExploring and evaluating new technologies and methodologies to drive innovation and efficiency\nMentoring team members on the best practices for developing on cloud-based big data architecture\nDesigning and implementing data flows, data lakes, and analytical solutions that cut across the entire company\nStructuring data using the best practices in data modelling and ETL/ELT processes, as well as SQL, NoSQL, and OLAP technologies\nAccelerating our data flows by leveraging stream processing and real-time data transfer methods\nCoordinating with business partners to proactively improve the value of data models\nIdentifying pain points, limitations, and opportunities in existing data models\nResearching and advising on modern data engineering techniques\nRecommending and supporting tools and services for the management of our data and machine learning models\nWorking closely with other technology teams in the company to create automation, improve restorability, and proactively identify anomalies\nContinually improving the discoverability and reliability of data by creating and managing both metadata and data lineage\nOptimizing and simplifying data sets for use in self-serve reporting and analysis\n\nWhat you\u2019ll need to succeed:\nBachelor's degree in computer science, mathematics, or a related technical field\n4-5 years of experience as a data engineer, analytics engineer, business intelligence developer, or similar\n1-2 years of experience working with data in Microsoft Azure, Google Cloud, or AWS\nProven experience evaluating and implementing big data technologies that supported upwards of 100TB of data\nExperience conceptualizing and architecting large-scale technology solutions\nExperience creating resilient data and analytical flows in a mission-critical setting\nExperience transforming large scale data sets using SQL, Spark, or other big data technologies\nExperience with a data platform that supports a diverse set of users, subject areas, and data structures (JSON, blob)\nExperience with big data solutions like Hadoop, Spark, Hive, Cosmos DB, Azure Data Lake, and Kafka\nStrong understanding of relational database concepts, with a solid knowledge of star schema, Oracle, PL/SQL, and OLAP\nHighly collaborative mindset that allows you to build trust and accountability\nNatural curiosity to explore and entertain fresh ideas and feedback\nAbility to embrace change with positivity and enthusiasm\n\nWhat\u2019s waiting for you at head office:\nOur goal is work-life harmony for every employee. Don\u2019t feel like driving to work each day? Hop on our free shuttle service that runs between our head office and the SkyTrain at Metrotown. Can\u2019t find the time to work out as much as you\u2019d like? Hit the treadmill, stationary bike, or weight room in our 24-hour on-site gym staffed by professional trainers. No time to pack a lunch or make breakfast? Our fully catered (and partially subsidized!) cafeteria serves everything from eggs benny and French toast to fresh-made sandwiches, stir fry, pasta, entr\u00e9es, and more.\nWe also believe an amazing work-life harmony includes continual learning and growth\u2026 on company time. That\u2019s why everyone in our eCommerce and IT departments has their own professional career coach, career development plan, and access to a series of in-house development seminars.\n\nThere\u2019s more, too:\nCompetitive benefits, including a variety of options for extended health, dental, and life insurance\nRegistered Pension Plan where the company matches your contributions, dollar for dollar\nEmployee stock purchase plan, with the company matching up to 5% of your eligible contributions\nSignificant employee discounts both in-store and online\nCoffee bar that serves Starbucks and Seattle\u2019s Best Coffee\nEasy access to riverside trails and parks when you need to unplug and take a break\nFree parking in our lot and loads of free street parking in the area\nOn-site dry cleaning drop off and pick up service\nOpportunity to participate in regular hackathons and other similar events\n\nIf this sounds like a perfect fit, we want to hear from you! Send us your resume and cover letter to apply. Best Buy Canada is an equal opportunity employer and does not discriminate based on gender, race, or sexual orientation." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=39ec45c76602ede9&fccid=c26d104f25f1364f&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Keywords Studios", + "salary": NaN, + "desc": "Data Engineer, working with a team of highly skilled developers and delivering complex development projects for internal systems across a variety of products and technologies.\nThis role offers challenges across a wide variety of projects and responsibilities, including the opportunity to influence the future direction of the department and systems used across the business.\nTo apply for this role, you must have a proven technical capability and a track record in software development/ data engineering. You are a motivated individual who is experienced in taking responsibility and can independently deliver results on both departmental and business projects.\n\nRequirements:\nRequirements\nBachelor\u2019s or Master\u2019s degree in computer science or software engineering\nAdvanced working SQL knowledge and experience working with relational databases, query authoring (SQL) as well as working familiarity with a variety of databases\nExperience building and optimizing \u2018big data\u2019 data pipelines, architectures and data sets\nWorking knowledge of message queuing, stream processing, and highly scalable \u2018big data\u2019 data stores\nStrong analytic skills related to working with unstructured datasets\nExperience performing root cause analysis on internal and external data and processes to answer specific business questions and identify opportunities for improvement\nExperience working with big data technologies including HDFS, Hive, Spark, Storm and Impala\nExperience in the development of software using Python, SQL, NoSql and SnowSQL\nExperience in the physical and logical design of database architecture for relational databases, data warehouses and data lakes.\nExperience with database optimization, data replication, database recovery, DR failover and H/A solutions and performance tuning.\nExperience with distributed computing using a cloud based tech stack on platforms such as AWS and Azure.\nExcellent personal organization and ability to prioritize and carry out multiple tasks\nAbility to adapt to new technology and research troubleshooting techniques and best practices\nAbility to efficiently debug problems and issues with little supervisors input\nAble to influence and drive projects to meet key milestones and overcome challenges\nDaily/weekly tasks\nDesign, model, develop and maintain data sets to support reporting analytics and exploratory analysis\nCapable of understanding and contributing to the technical solution from design through to code level\nContribute to technical design and ongoing development of our custom ETL solutions and analytics platforms, and help drive continuous improvement of design and delivery standards\nWork with big data developers to build scalable and supportable infrastructure\nEmploy a variety of languages and tools (e.g. scripting languages) to marry systems together\nAssess, recommend and support the implementation available and emerging big data technologies\nParticipate in reviews and meetings\nRecommend ways to improve data reliability, efficiency and quality\nCollaborate with data architects, modelers and IT team members on project goals\nContribute to post implementation reviews helping to demonstrate success\nWork on a wide range of projects involving the implementation of new and existing systems, solutions and processes" + }, + { + "link": "https://www.indeed.ca/company/VMC-(Keywords-Studios)/jobs/Data-Engineer-6cc8e6ed3b3f0375?fccid=703901107d985753&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "VMC (Keywords Studios)", + "salary": NaN, + "desc": "Contract\nData Engineer\nWorking with a team of highly skilled developers and delivering complex development projects for internal systems across a variety of products and technologies.\nThis role offers challenges across a wide variety of projects and responsibilities, including the opportunity to influence the future direction of the department and systems used across the business.\nTo apply for this role, you must have a proven technical capability and a track record in software development/ data engineering. You are a motivated individual who is experienced in taking responsibility and can independently deliver results on both departmental and business projects.\nRequirements\nBachelor\u2019s or Master\u2019s degree in computer science or software engineering\nAdvanced working SQL knowledge and experience working with relational databases, query authoring (SQL) as well as working familiarity with a variety of databases\nExperience building and optimizing \u2018big data\u2019 data pipelines, architectures and data sets\nWorking knowledge of message queuing, stream processing, and highly scalable \u2018big data\u2019 data stores\nStrong analytic skills related to working with unstructured datasets\nExperience performing root cause analysis on internal and external data and processes to answer specific business questions and identify opportunities for improvement\nExperience working with big data technologies including HDFS, Hive, Spark, Storm and Impala\nExperience in the development of software using Python, SQL, NoSql and SnowSQL\nExperience in the physical and logical design of database architecture for relational databases, data warehouses and data lakes.\nExperience with database optimization, data replication, database recovery, DR failover and H/A solutions and performance tuning.\nExperience with distributed computing using a cloud based tech stack on platforms such as AWS and Azure.\nExcellent personal organization and ability to prioritize and carry out multiple tasks\nAbility to adapt to new technology and research troubleshooting techniques and best practices\nAbility to efficiently debug problems and issues with little supervisors input\nAble to influence and drive projects to meet key milestones and overcome challenges\nDaily/weekly tasks\nDesign, model, develop and maintain data sets to support reporting analytics and exploratory analysis\nCapable of understanding and contributing to the technical solution from design through to code level\nContribute to technical design and ongoing development of our custom ETL solutions and analytics platforms, and help drive continuous improvement of design and delivery standards\nWork with big data developers to build scalable and supportable infrastructure\nEmploy a variety of languages and tools (e.g. scripting languages) to marry systems together\nAssess, recommend and support the implementation available and emerging big data technologies\nParticipate in reviews and meetings\nRecommend ways to improve data reliability, efficiency and quality\nCollaborate with data architects, modelers and IT team members on project goals\nContribute to post implementation reviews helping to demonstrate success\nWork on a wide range of projects involving the implementation of new and existing systems, solutions and processes\nJob Types: Full-time, Contract" + }, + { + "link": "https://www.indeed.ca/company/Cumul8/jobs/Data-Science-Software-Engineer-9d921dde7c044f07?fccid=36c763ebdf78a8b1&vjs=3", + "location": "Vancouver,BC", + "title": "Data Science Software Engineer", + "company": "Cumul8 Technologies", + "salary": NaN, + "desc": "Data Science Software Engineer\nWhat will you do?\nCumul8 is a real-time data visualization and analytics platform serving large, varied clients.\nOur data science team is responsible for the machine learning core of Cumul8, from infrastructure to analytics and model development, that gives Cumul8 an ability to help users monitor, understand, and leverage their data for better decisions.\nAs a Cumul8 data scientist, you will not only have an opportunity to directly help clients maximize the value of their data, but also create and deploy machine learning driven features in collaboration with our talented development team.\nWhat will your responsibilities be?\nData understanding, either with clients directly or as part of feature development.\nDevelopment of intelligent features, partaking in various stages from design to deployment.\nResearch and recommend on best designs and methods.\nEngage with an experienced team of developers in an agile environment\nLearn and stay engaged on big data and data science technologies.\nHelp promote data-driven culture within the company and beyond.\nWhat qualifications do we look for?\nStrong ability in Python. Familiarity in another scientific computing language like R or Julia is a bonus.\n2 years + of exposure/Back End Development experience.\nStrong software fundamentals, e.g. algorithms and data structures.\nGood fundamentals in statistical modeling and inference\nComfortable dealing with a variety of types of data.\nOpen communicator and enjoys a constructive, collaborative working environment.\nFamiliar with team technologies, e.g. Git, Jira, etc.\nBachelor degree (or above) in computer science or related fields like electrical/computer engineering/statistics/mathematics/physics also welcome.\nStrong written/oral communication skills.\nBonus\nExperience in web stacks (e.g. microservices, containers, databases, security), distributed computation (e.g. Hadoop, Spark, or similar), or research experience in statistics, machine learning, and/or AI would be welcomed.\nJob Type: Full-time\nExperience:\nMachine Learning: 2 years (Preferred)\nBack End development: 2 years (Preferred)\nEducation:\nBachelor's Degree (Preferred)\nLocation:\nVancouver, BC (Required)" + }, + { + "link": "https://www.indeed.ca/company/Ecoation-Innovative-Solution/jobs/Data-Engineer-d0aae881d92c4271?fccid=1775d6ec6cfce0bd&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "Ecoation", + "salary": "$60,000 - $80,000 a year", + "desc": "$60,000 - $80,000 a year\n[Only apply if you live in Vancouver and have a valid work visa in Canada]\nThe company\u2026\nEcoation is doing their part to help shape the future of Agriculture and food production by designing and developing robotics and AI systems that detect crop issues in commercial greenhouses. We are the proud winners of the 2018 GreenTech Innovation Concept and New Ventures BC 2017 Awards.\nDo your best, then try to do even better. Never give up, be persistent. Maximise every single opportunity. Honour food and its products. Make the world a better place. This is what Ecoation is all about. Find out more about our company at www.ecoation.com.\nThe role\u2026\nWe are seeking to fill an intermediate level opening in our Backend team. If the above core values resonate with you and you believe you can satisfy the following job requirements, we would like to hear from you.\nResponsibilities:\n*Create and improve the suite of tools that enable the entire ecoation ecosystem to connect.\n*Data Managment\n*Own entire features from specification to shipping\n*Work effectively with a high degree of autonomy, within a collaboratively minded team\n*Participate in the entire development lifecycle, from concept to release.\n*Participate in all phases of quality assurance and defect resolution.\n*Highly eager to learn new things and bring new ideas to the team.\n*Ability to optimize and scale up the existing model/framework.\nRequirements:\n* A bachelor\u2019s degree in Computer Science or similar experience, MS a plus\n* Proficiency python\n* Critical thinking, problem-solving and analytical skills\n* Great communication skills and a strong team player\n* Ability to write very high quality, well-tested code\n* Ability to learn and adapt to a rapidly evolving tech stack\n* 3+ years of relevant experience in software engineering/ development\nWhat do we look for in candidates?\n* Opportunity - Can ecoation provide an environment for the candidate to grow their career?\n* Perseverance - Will the candidate deal well the inevitable adversity encountered in a growing company?\n* Drive - We don\u2019t want ecoation to be an average company. We want to transform farming technologies by leveraging data. We\u2019re looking for candidates with big aspirations for their careers and their lives.\n*Acumen - Machine learning is hard. Big data is hard. The space is evolving and changing at a rapid pace. Ecoation is looking for candidates who can not only keep up but get ahead.\nJob Type: Full-time\nSalary: $60,000.00 to $80,000.00 /year\nExperience:\nSoftware Development: 3 years (Required)\npython: 3 years (Required)\nLocation:\nVancouver, BC (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=236221bbffe731c5&fccid=89ea848be3fa4cf9&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer", + "company": "BuildDirect", + "salary": NaN, + "desc": "What You'll Do\nCreate and maintain optimal data pipeline architecture.\nIdentify, design, and implement internal process improvements: re-designing infrastructure for greater scalability, automating manual processes, optimizing data delivery, etc.\nBuild the infrastructure required for optimal extraction, transformation, and loading of data from a wide variety of data sources using SQL and AWS big data technologies.\nWork with stakeholders including the Executive, Product, Data and Design teams to assist with data-related technical issues and support their data infrastructure needs.\nCreate data tools for analytics and data scientist team members that assist them in building and optimizing our product into an innovative industry leader.\nWhat You\u2019ll Need\nExperience supporting and working with cross-functional teams in a dynamic environment.\nBachelor or Master degree in Computer Science, Statistics, Informatics, Information Systems or another quantitative field.\nExperience with data pipeline and workflow management tools: Airflow, Luigi, Amazon Data Pipeline and etc.\nExperience with AWS cloud services: EC2, EMR, RDS, Redshift, Lambda.\nExperience with stream-processing systems: Kinesis, Storm, Spark-Streaming, etc.\nExperience with one of the object-oriented/scripting languages: Python, Scala, Java, etc.\nExcellent team player who lends support and guidance and shares concern, problems and opportunities.\nBonus Experience with big data tools: Hadoop, Spark, Kafka, etc.\nWhat You Must Have\nSelf-directed and comfortable supporting the data needs of multiple teams, systems and products in a fast-paced and dynamic environment.\nExcited by the prospect of optimizing or re-designing our company\u2019s data architecture to support our next generation products and data initiatives.\nAn audacious spirit that embraces uncertainty and challenges with enthusiasm\nHigh levels of integrity and a commitment to do what you say you are going to do\nStrong entrepreneurial spirit that has grit, determination and challenges the status quo\nHigh degree of empathy and the ability to see other\u2019s perspective\nStrong sense of curiosity and the desire to learn and get better everyday\nA little more about us\u2026\n\nBuildDirect is reinventing the home improvement industry with the first artificial intelligence (AI)-driven technology platform for heavyweight products. The BuildDirect platform includes two core business units:\nBuildDirect Marketplace: An online marketplace that offers Homeowners and Pro Buyers the ability to purchase heavyweight home improvement products direct from Sellers and receive efficient direct-to-home (or jobsite) shipping of those products.\nGateway Supply Chain: The first anywhere-to-the-home supply chain for heavy and bulky goods that equips manufacturers, distributors and retailers with efficient and cost-effective shipping solutions to move their products from anywhere in the world, to locations across North America.\nThe platform is powered by proprietary AI, machine learning, and predictive analytics that drives robust efficiencies for the innovation of heavyweight product services, distribution, and sales across buyers, sellers, shippers, and everyone in between.\n\nBuildDirect is headquartered in Vancouver, British Columbia with warehouse locations across North America." + }, + { + "link": "https://www.indeed.ca/company/intellectfaces/jobs/Data-Engineer-Big-Data-Developer-26fadf56428127b4?fccid=b2c86945db726617&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer/Big data developer", + "company": "intellectfaces", + "salary": NaN, + "desc": "Permanent\nResponsibilities and Duties\n1. Hands-on experience with Scala and Python programming languages\n2. Strong understanding of development stack in Hadoop ecosystem\n3. Minimum of 4 to 5 years of development experience handling variety of data (structured/unstructured), data formats ( flat files, XML,JSON,relational,legacy) and data storage (HDFS, Hbase, NoSQL databases)\n4. Application tuning and optimization experience on big data platforms\n5. Applied knowledge of modern data architectures on big data platforms\n6. Data preparation, data curation and data wrangling experience with large datasets\n7. Experience with complex data mappings and transformation initiatives\n8. Data analysis using Hive, apache drill, Impala or other open source/proprietary analytical tools\n9. Knowledge of distributed platforms and Unix shell scripting\nRequired Experience, Skills and Qualifications\nAdditionally, preference would be given to following skills\n1. Working experience with MapR converged platform and development using apache spark & Scala programming language\n2. Experience with streamsets technology for data ingestion\n3. Experience with metadata management and testing automation for applications on big data platforms.\n4. Data migration experience from traditional/relational data management stores to open source hadoop based platform distributions.\nJob Types: Full-time, Permanent\nExperience:\nprofessional: 10 years (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bba520d206c7bee3&fccid=9e215d88a6b33622&vjs=3", + "location": "Vancouver,BC", + "title": "Data Engineer Consultant/Senior Consultant. Deloitte Omnia", + "company": "Deloitte", + "salary": NaN, + "desc": "Job Type: Permanent\nPrimary Location: Vancouver, British Columbia, Canada\nAll Available Locations: Vancouver\n\nExternal Posting Description\n\n\n\nOmnia AI, Deloitte\u2019s Artificial Intelligence practice (AI) practice is comprised of specialized experts with hands-on experience, and cutting-edge information assets that facilitate successful AI transformations. We develop AI-enabled solutions to address all aspects of a client\u2019s transformative journey with disciplined focus on business outcomes.\n\nRole Description:\n\nAs a Consultant, in addition to the above, you will be responsible for:\n\nFacilitating client interactions and project tasks including requirements gathering, brainstorming, wireframing, and development of concept presentation materials\nAssisting with the development of technical artifacts, solution architectures, data models and data constructs, data pipeline designs, ingestion and data consumption frameworks\nManaging multiple project timelines and deliverables concurrently, in both a participatory and leadership capacity.\nCommunicate lessons, experience, and knowledge to client stakeholders and Deloitte team members\nProvide production support and on-call support when needed as a subject matter expert.\nAssist in different areas of project management, including client projects and internal initiatives\n\nAs a Senior Consultant, in addition to the above, you will be responsible for:\n\nLeading client interactions and project tasks including requirements gathering, brainstorming, wireframing, and development of concept presentation materials\nDeveloping technical artifacts, solution architectures, data models and data constructs, data pipeline designs, ingestion and data consumption frameworks\nLeading other client and Deloitte team members in client interactions and project tasks\nProviding mentorship and guidance to junior team members for professional development\n\n\n\n\nExternal Posting Qualifications\n\n\nSuccessful candidates will have the following qualifications and characteristics:\n\nCloud platform experience and skills to leverage the services and tools offered on Azure, AWS or Google is required\nData integration, transformation and wrangling experience using (one or more) Talend, DataStage, Informatica, SSIS, StreamSets, Trifacta, Alteryx, SAS or similar tools is required\nDatabase and programming languages experience and data manipulation using (one or more) SQL Server, Oracle, SAP HANA, Hive, HBase, NoSQL databases, or similar tools is required\nData discovery, visualization and reporting experience using (one or more) Tableau, Qlik, PowerBI, Sisense, Looker, Cognos, or similar tools is required\nExperience with data lakes, data warehouses, dimensional models (OLAP), data marts, master data, data governance and data quality is an asset\nExperience with Hadoop using Java, Sqoop, Kafka, Parquet, Scala, or other relevant Hadoop technologies is an asset\nProject management experience is an asset\nAbility to work with data with significant ambiguity, develop creative approaches to analytical problems, and interpret data and results from a business/industry perspective\nEnthusiastic about solving complex problems with a variety of analytical tools\nProfessional services, consulting, or advisory experience is an asset\nStrong oral and written communication skills\nInterest in continuing to develop analytical and business development skills\n1+ years (analyst) or 3+ years (senior) relevant work experience with applying analytics or working with data in any industry\nBA/BSc degree in Applied Mathematics, Statistics, Epidemiology, Computer Science, Engineering, or related field is required. Advanced degree (MA/MSc, equivalent or higher) is preferred.\n\n\n\nWhy Deloitte?\nLaunch your career with The One Firm where you can make a greater impact than you ever thought possible. With endless opportunities at every turn, and a culture built to support and drive our people to be the very best they can be, Deloitte is The One Firm for you to learn, grow, create, and lead.\nAt Deloitte, we understand that everyone, and their career goals, are different. As a firm, we help create the conditions and opportunities that will enable our people to thrive \u2013 both professionally and personally. We do this by making three commitments to our people:\nYou will lead at every level: We grow the world\u2019s best leaders so you can achieve the impact you seek, faster.\nYou can work your way: We give you the means to work how you want, and we have innovative spaces and the mindset to help you be wildly successful.\nYou will feel included and inspired: We create a deep sense of belonging where you can bring your whole self to work.\nApply now and let us show you how to push your career to the next level at Deloitte. The One Firm. For You.\nDeloitte is an inclusive employer dedicated to building a diverse workforce. We encourage applications from all qualified candidates and will accommodate applicants\u2019 needs under the respective provincial human rights codes throughout all stages of the recruitment and selection process. Please advise the Recruiter to ensure your accessibility needs are accommodated throughout this process. Information received relating to accommodation will be addressed confidentially.\nWe thank all applicants in advance for their interest; however, only those candidates selected for an interview will be contacted\n41542" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=79199063508bc204&fccid=b0fba60337a02c72&vjs=3", + "location": "Vancouver,BC", + "title": "Senior Data Engineer", + "company": "Mobify", + "salary": NaN, + "desc": "Mobify is looking for a Senior Data Engineer to join our team!\nMobify\u2019s data pipeline processes billions of events every month from web browsers interacting with Progressive Web Apps. It is built on AWS Elastic Beanstalk, Kafka, EMR (using Flink), S3, Luigi and Redshift.\n\nWe use the data to help retailers make data-driven decisions using analytics dashboards, provide insights about mobile shopping trends to the community, and improve our products.\n\nAs a member of Mobify\u2019s Data Engineering team, you\u2019ll own data driven features from inception to implementation. You\u2019ll champion data quality while working to improve the latency and throughput of our pipeline and reducing maintenance overhead.\nWhat You'll Do\nWrite, test and release the code to power Mobify\u2019s data pipeline\nObserve, maintain, and improve system performance\nPlan, test and implement changes to architecture\nCollaborate in code and design reviews\nSupport other engineers and data scientists in furthering their knowledge, and taking on more ownership\nPractice modern data engineering. We\u2019re using Kafka, Flink, S3, Redshift, and Luigi\nProvide insight into product strategy alongside data scientists, engineers, designers, and product managers\nApply software development best practices from our Developer Values and Coding Style\nPresent your work, and learn from others, at our internal Engineering Meetups\nContribute to a platform that powers billions of pageviews a month!\nRecommending upgrades or optimizations to existing systems\nWho You Are\nYou have worked on and operationally maintained a data processing pipeline and its underlying infrastructure, handling large volumes of data, deployed on AWS or another IaaS or PaaS provider\nYou have previous experience working with at least one big data technology like Kafka, Flink or Redshift\nYou are proficient using Python, Scala or another programming language\nYou have advanced skills designing and maintaining database schemas, and writing performant queries with SQL\nYou\u2019re a strong communicator who loves to collaborate with a team and customers\nYou have a growth mindset and are open and willing to both accept and give feedback" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e4d37b521d4e4f91&fccid=641199101caf07fe&vjs=3", + "location": "Vancouver,BC", + "title": "Senior Data Scientist", + "company": "Finning International Inc.", + "salary": NaN, + "desc": "At Finning Digital, we\u2019re connecting customers, equipment, operators and data to create new value, both for Finning and for our customers \u2013 and revolutionizing an industry.\n\nThis is your opportunity to make a unique and measurable impact on a transforming business.\nBackground\n\nWe are grounded in the strength and legacy of Finning \u2013 and incubating a new and entrepreneurial business. You will be part of the start-up leadership team shaping the opportunity and executing together. If you crave the excitement of breaking new ground and growing a business, while appreciating the strength of a solid foundation and brand, you\u2019ll fit right in. Finning is the world\u2019s largest Cat\u00ae dealer, delivering unrivalled service to customers in mining, construction, power systems and forestry for over 80 years. We\u2019re proud of our legacy of providing the products and services that fuel our customers\u2019 businesses and drive our business economies.\n\nWe\u2019re also innovators, and in Finning Digital we see a powerful opportunity. The business case is clear. Digital technologies, data and analytics can be harnessed to bring new solutions to the heavy equipment business \u2013 a sector where we see the perfect combination of large investments in equipment with limited introduction and adoption of technologies that can drive significant\nadditional ROI.\n\nAs a Sr. Data Scientist, you\u2019ll be focused on solving real world business challenges and optimizing our business performance across a wide range of areas from supply chain, pricing, and sales, and offering advanced analytical solutions for maintenance program optimization, inventory optimization, fuel optimization, scheduling optimization, amongst others to Finning customers. You\u2019ll rely on your background and love for Statistics, Modelling, Machine Learning, and Optimization for rapid problem solving, developing and/or hacking POC solutions to test the validity of models and concepts, validation and verification of results, and working with data architects and data engineers to build end-to-end data processing pipelines.\n\nIn this business facing role, you\u2019ll need not only excellent communication skills, but the ability to translate complex concepts into more digestible terms, you\u2019ll be managing stakeholder expectations during this process and helping to evangelise the power of data driven decisions. As a senior member of the team, you\u2019ll also be asked to mentor other team members and co-ops, across technology and coding, algorithm selection and business acumen, keeping everyone focused on the business. You\u2019ll also work in collaboration with other members on the Finning Digital teams, including Project Managers, Product Managers, Visual Analysts, Architects, Software and Data Engineers and more as we continue to explore new areas inside and outside of business, on our digital journey.\n\nJob Description:\nWhat You'll Do:\nWork with the business and non-technical stakeholders to discover and document Problem Formulation through gathering requirements and understanding the core problem\nHelp leadership with prioritization of backlog of projects based on impact, importance and resourcing\nCommunicate and \u2018translate\u2019 quantitative findings (storytelling with data), make meaningful conclusions and recommendations, identify and interpret trends and relationships to product and business stakeholders\nIdentify requirements and build forecasting methodology and tools that are statistically grounded but also explainable operationally, applying technical skills that allowing models to intelligently adapt to changing attributes, include demand patterns or technology capability\nDevelop new statistical methodology that can be used to cluster, classify and predict business outcomes. This includes methods to optimize inventory prediction accuracy and to better understand and mitigate model variance drivers.\nResearch machine learning algorithms and implement by tailoring to particular business needs and tested on large datasets and communicating your findings in public research settings\nCreate automated metrics using complex databases\nProviding analytical network support to improve quality and standard work result\nYou drive the continually improvement of ongoing reporting and analysis processes, automating and/or simplifying self-service support\nPresent to and influence senior management at both strategic and tactical levels while also proposing best in class technical and architecture solutions\nActively solicit and accept design feedback from cross functional teams across a variety of high visibility projects\nStay abreast of innovations in Cloud infrastructure, Business Intelligence, Analytics and Data Warehouse tools and technologies\n\nWho You Are:\nPhD or Masters graduate in Statistics, Mathematics, Computer Science, or other technical field from an accredited university\n3-5 years\u2019 of post education experience in engineering, data science, analytics or modern business intelligence experience with an emphasis on enterprise digital/customer analytics\nExperience with statistical analysis, regression modeling and forecasting, time series analysis, data mining, financial analysis, and demand modelling\nExceptional communicator, collaborator, and influencer, and enjoy working with non-technical business stakeholders\nExperience in Statistical Software such as R, Alteryx, SAS, SPSS, Azure ML\nProficiency with TABLEAU, Microsoft Excel to include making charts, data manipulation, pivot tables, creating macros, and visual basic knowledge\nAble to write SQL scripts for analysis and reporting (SQL, MySQL)\nExperience processing, filtering, and presenting large quantities (100K to Millions of rows) of data\nComfortable balancing multiple projects and priorities in a highly dynamic, rapidly growing and evolving environment.\nYou participate in MeetUps, Product Camps, and other local industry activities as a Brand Ambassador\nYou have a great sense of humour \u2013 we work extremely hard, and have fun doing it!\nYou are a Swiss army knife with a wide range of skills and do what it takes to get the job done! You are resourceful, persistent, and constantly innovative!\nExperience using one or more Python, VBA, MATLAB, Java, C++ programming languages is nice to have\n\n\nWe are committed to diversity at Finning, to building and sustaining a diverse and inclusive workforce and as an equal opportunity employer we encourage applications from all qualified individuals. Finning does not discriminate against applicants based on genders, races, national and ethnic origins, religions, ages, sexual orientation, marital and family status, and/or mental or physical disabilities." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e1adddc995aadee5&fccid=a70da4ce69476a23&vjs=3", + "location": "Vancouver,BC", + "title": "Senior Data Engineer", + "company": "ICBC", + "salary": NaN, + "desc": "Temporary\nA career at ICBC is an opportunity to be part of a talented, diverse and inclusive team that is driven to serve its customers and\n\ncommunity. Make the most of your skills and take the opportunity to grow and develop your career. You can expect a\n\ncompetitive salary, comprehensive benefits and a challenging work environment. Drive your career with us.\n\nICBC is committed to being an inclusive employer, one that reflects the diversity of the people and communities of British\n\nColumbia.\n\nSenior Data Engineer\n\nJob Title: Bus Insights Advisor Reference Number: 111647\n\nLocation: North Vancouver Employment Type: Temporary Full Time\n\nHours of Work: 7.5 hr Day Shift (M-F) Posted Date: 2018/10/04\n\nPosition Highlights\n\nAs a Senior Data Engineer, you will join the Information Management team and focus on developing big data solutions for the\n\ncorporation\u2019s reporting and analytics needs. You would be working closely with business partners and stakeholders to\n\nunderstand the business context and work with architects to meet their decision-support requirements.\n\nAs the consolidation point for all business intelligence and business analytics functions across ICBC, the Information\n\nManagement team's goal is to empower the organization to drive efficiencies and savings across all facets of the business. This\n\nis accomplished by providing internal and external customers with precision reporting, query and analysis, statistical, descriptive\n\nanalysis, and performance measurement (dashboards, scorecards and indicators).\n\nPosition Requirements\n\nAccountabilities for this role will include:\nWorking in collaboration with customers across the organization (Claims, Insurance, Finance etc.) to plan, scope, execute and\nsustain data-based solutions\n\nRespond to internal and external ad hoc requests, review and clarify data requirements, ensuring report content is acceptable\nwithin policy and privacy protocols\n\nProviding subject matter expertise within the department and to clients on data sources, reporting workflows, business process,\nand the appropriate tools with which to analyze their data\n\nParticipate in discussions with corporate data user teams, developing data validation and test plans, performing user\nacceptance testing, and providing feedback to development and sustainment teams\n\nConduct analysis for moderate to complex requests, defining data fields and determining data availability, developing\ninformation layout, format and interactivity. Presenting findings and providing clarification.\n\nTo make an immediate contribution, the following key drivers are essential for success:\n\nAdvanced skill level in SQL development\nKnowledge of In-memory technology such as Spark, HANA or DB2 Blu Acceleration\nHRERC37B\n\nWorking experience or education in Big Data platforms, ideally with exposure to Hadoop ecosystem (HDFS, Pig, Hive, SPARK,\nBig SQL, NoSQL, YARN)\n\nProficiency in object-oriented/object function scripting languages: Python, Scala, Java etc\nKnowledge of data modeling and understanding of different data structures and their benefits and limitations under particular\nuse cases\n\nExperience or knowledge in designing efficient and robust ETL workflows\nDetail-oriented with demonstrated ability to meet deadlines, manage multiple priorities and work effectively under pressure\nStrong data quality management process understanding, data analysis and data profiling\nAbility to apply critical thinking skills to troubleshoot and perform root cause analysis on technical problems and solution\ndesign.\n\nProven ability to lead the team and experienced in delivering projects using Agile Methodologies.\nExperience with reporting and visualization tools, such as Business Objects or Tableau, user interface design, and iterative\ncustomer-driven design processes would be an asset.\n\nExcellent interpersonal, verbal and written communication skills to work with Managers, Directors & Executive level\nstakeholders.\n\nPrior technical experience with Auto Insurance industry will be added advantage.\nHRERC37B" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bfccd941ed7c5b81&fccid=c6d2a28efe7e3280&vjs=3", + "location": "Vancouver,BC", + "title": "Data Analyst \u2013 Contract 12 Months", + "company": "Samsung Vancouver R&D Lab", + "salary": NaN, + "desc": "Temporary\nData Analyst - Contract 12 Months\n\nSamsung's IoT team in Vancouver has taken a leadership role in our vision of connected intelligence. We are creating the next generation of IoT solutions, developing cloud software to activate and managing data from a wide range of connected IoT devices, from sensors to TVs to kitchen appliances to cars. As IoT evolves for new industries, we are also creating end-to-end vertical services, most recently in the energy space.\n\nWe handle massive amounts of data generated by Samsung's SmartThings Cloud. The team is responsible for turning this data into information that allows our stakeholders to make data-driven decisions, as well as collaborating with other ML and AI teams across Samsung to help them get the data they need from the IoT Cloud.\nWhy We Want You\n\nThe IoT Data Platform Team in Vancouver is looking for an experienced Data Analyst with passion for big data, streaming, and real-time analytics.\n\nYou have a strong analytical mind and you like to see the whole picture. You have passion for solving complex problems and have a high degree of aptitude when it comes to learning new technologies. You love data and numbers and understand how important your role is in helping with business decisions.\n\nWhat You'll Do\nParticipate in the full cycle from requirements and architecture, to deploying and owning the production system.\nBe asked to present your findings in the form of reports or presentations to company stakeholders\nSelf-motivated to go an dig for data understand the subject matter around it\nWork in a multi-disciplinary scrum team\nCollaborate with other groups across the organization and other projects\n\n\nWhat You Bring\n\nBachelor's degree in field of computer science, information systems, statistics, or data analysis\nAttitude to work with others and an aptitude to learn quickly\nWritten and verbal understanding in Korean\nProficient in SQL, to be able handle complex queries\nExperience in data visualization programs such as Power BI, Tableau or other OLAP tools\n\n\nBonus Skills\n\nExperience with various AWS services (EC2, S3, Lambda, Kinesis, EMR, Redshift etc)\nExperience with various Big Data technologies (Hadoop, Spark, Kafka, Flink, etc)\nScripting languages like bash, Python, etc\nAvid internet or hobbyist of IoT\n\n\nPlease email your resume to divya.n@partner.samsung.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8f4100525e26cd57&fccid=1074c377135e4e8f&vjs=3", + "location": "Vancouver,BC", + "title": "Client Care Representative", + "company": "Canada Drives", + "salary": "$28,000 - $31,200 a year", + "desc": "$28,000 - $31,200 a year\nCanada Drives is a young, dynamic, and fast growing company. We work with dealerships and finance partners across Canada to ensure that every one of our customers has access to the auto financing they need. Our office is located in the heart of downtown Vancouver and we want you to join our growing team!\n\nWhat You'll Be Doing:\nResponding to all post sign-up customer inquiries via telephone, email and text message.\nMaking outbound phone, email and text communications to customers who have missed payments.\nReceiving inbound transfers from sales representatives and handling each client with care and concern.\nHandling difficult and confrontational customer conversations.\nEntering data regarding missed payments and payment arrangements into our delinquency tracking system and our Loan Management System.\nWorking with our data analyst to track the success of arrangements and make adjustments to increase the success rate.\nContinuously reviewing and improving customer service procedures.\nWhat You Should Already Have:\nPrevious call center, customer service or telesales experience an asset.\nPrevious experience working with Excel a must.\nAttention to detail a must.\nStrong sales skills in order to re-sell the benefits of the program to customers.\nStrong math skills for calculating overdue amounts and make up payments.\nAbility to consistently work with upset customers.\nWhat We Will Give You:\nCompetitive total compensation package which includes:\nB ase salary of $28,000- $31,200 depending on experience.\nComprehensive health, dental and vision coverage.\nCompany paid monthly MSP premiums.\nCompany Paid Monthly Transit Pass.\nFree breakfast and lunch provided on site daily.\nhttps://www.glassdoor.ca/Reviews/Canada-Drives-Reviews-E984190.htm\n\nhttps://www.facebook.com/canadadrives/\n\nhttps://en.wikipedia.org/wiki/Canada_Drives\n\nhttps://twitter.com/canadadrives?lang=en\n\nhttps://ca.linkedin.com/company/canada-drives" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ee3f564164d2074c&fccid=e671f6b2e57dc9e3&vjs=3", + "location": "Vancouver,BC", + "title": "Lead Data Engineer", + "company": "Ignite Technical Resources", + "salary": NaN, + "desc": "Permanent\nLead Data Engineer - Permanent Position in Downtown Vancouver:\nOn behalf of our local, Downtown Vancouver client, Ignite Technical Resources is seeking a Lead Developer for their Data Analytics Team to join on a Permanent basis.\nIn this role, you will be managing a Data Analytics team of up to 3 Developers and will have accountability for architecture and system design.\nHeavy work/life balance (5 weeks of vacation to start*), shortened workweeks in the summer (paid), a fantastic team, fully stocked kitchen, and a health benefits package is among the perks.\nYou will have the opportunity to learn cutting edge technologies and will be exposed to strong Agile/Scrum teams alike within the company. Entirely based on AWS, their customers are worldwide enterprises where you'll be a big part in shaping their system and building their team.\nResponsibilities:\nThis role is very hands on and will be focused on system architecture, software design, research, testing and development (80% hands on, 20% leadership)\nPlan, design and coordinate the development of new software components for their data aggregation and storage systems\nMentor, train, and on-board new hires and participate in code reviews and other technical discussions\nWork together with the team to manage the operations of data processing and storage systems to ensure efficiency whilst upgrading and developing maintenance procedures as needed\nDraft technical documentation of software, development environments, production environments, as well as procedures\nLead team meetings and discussions for estimation, software design, software development, and code reviews\nSkills and Abilities:\nExperience leading teams on projects with data pipelines in a large-scale production environment (MapReduce, Streaming, Batching or similar frameworks)\nWill have experience and be comfortable in managing teams, leading, conducting code reviews, training, etc.\nWill have experience with system architecture, software design, research, testing, and development\nBuilding data pipelines (AWS EMR, AWS Data Pipeline, ECS, SQS or similar technologies)\nData pipeline language experience\nKnowledge of ETL based frameworks\nExperience with Scripting Languages\nSQL databases experience\nBDD or TDD development in an Agile-like process\nPost-secondary diploma or equivalent degree in computer science, engineering, or a related discipline\nPerks:\n5 weeks of vacation to start*\nShortened Summer hours: Every Friday is only a 6-hour workday!\nAmazing benefits program including a health and wellness spending account of $2400 in addition/on top of the benefits coverage that is already provided\nFully stocked kitchen (breakfast, snacks, etc.)\nPositive, collaborative, and fun team environment with a culture that accepts all individuals\nAbility to learn and be exposed to cutting edge technologies\nPlenty of opportunities for further education and career growth\nTerms:\nThis is a full-time permanent role based in Downtown, Vancouver. Work environment is casual and comfortable.\nDue to the volume of resumes, only those candidates being considered will be contacted.\nIgnite Technical Resources is a Vancouver-based Information Technology resourcing firm built around three principles: speed, efficiency and quality. We provide highly trained and qualified technical consultants to your organization as a flexible work force option.\nIgnite. Wired for people.\nFollow Ignite on Twitter @ignitetechnical and become a fan on Facebook for up-to-date information about our company including job postings!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=757ce5f6977f2a97&fccid=be4f0a335d8eebed&vjs=3", + "location": "Vancouver,BC", + "title": "Applications Support Analyst", + "company": "Coast Capital Savings Credit Union", + "salary": NaN, + "desc": "Oct 09, 2018\n\nTogether, we help empower you to achieve what\u2019s important in your life.\n\nWhat\u2019s the job?\n\nThe Applications Support Analyst (Corporate Applications or Core Banking) will provide an outstanding support service experience to our clients and ensure the timely resolution of support incidents or service requests. The Applications Support Analyst must be knowledgeable of technology processes and coordinate with internal departments as well as follow documented departmental procedures and guidelines. The ASA resolves issues directly where possible by investigating and documenting the business and systems cause, troubleshooting, proposing and validating solutions to the issue or by managing issues through to resolution by tracking and documenting their concerns for escalation to Tier 3 support.\n\nWhat you\u2019ll get to do:\nWork and communicate within a diverse cross functional team and vendor resources team, striving to meet our Service Level Agreements and clients expectations\n\nInvestigate client data issues and collaborate with clients to identify issues or defects\n\nDocument required bug-fixes, feature requests and solutions to known issues.\n\nCollaborate in creating a reference archive.\n\nEducate other staff and stakeholders on technical issues as needed and train on work arounds as necessary\n\nMentor Tier 1 team members and help build the client knowledge base.\n\nManage Service requests according to predefined processes and procedures and escalate cases to Tier 3 Support as appropriate and necessary\n\nMaintain issue tracking system in order to keep internal/external stake holders informed of case progress.\n\nUtilize existing systems and tools to properly progress all open issues to closure\n\nCore Banking: Become an expert of the Banking application and understand its advanced functionality. Collaborate with other application subject matter experts as necessary to determine root cause and workarounds\n\nCorporate Applications: Become an expert of applications under the department portfolio and understand their advanced functionality. Collaborate with other application subject matter experts as necessary to determine root cause and workarounds\n\nCollaborate with Quality Assurance to validate workarounds or fixes\n\nReceive and prioritize a significant volume of Service Requests\n\nMaintain current knowledge of defects and recognize patterns or trends which may identify a common cause\n\nWho are we looking for?\n\nDiploma in Information Technology or Application support\n\nMinimum 4 \u2013 6 Years of Job-Related Experience\n\nMinimum of 5 years of experience providing application support for a multi-channel digital application (web & Mobile), ESB, API Integration or CRM. Prior Salesforce or Muesoft experience an asset.\n\nCore Banking App Support: Minimum of 5 years experience providing application support for an ERP or CRM. Prior experience supporting T24 or other banking applications an asset.\n\nSolid skill with MS Office tool set, MS Access, and Visio.\n\nCorporate Applications: Solid skill with web based applications: HTML, JavaScript, CSS, Java, C#\n\nSolid knowledge of databases (data analysis and report): T-SQL, SQL Server\n\nSolid ability and motivation to adapt to and learn new technologies.\n\nAdvanced troubleshooting and root cause analysis skills\n\nCore Banking: Solid skill with ERP or CRM application and data access mechanisms inlcuding SQL C# etc.\n\nAdvanced client management, customer service skills\n\nAdvanced professionalism within all forms of communication with excellent written and oral communication skills appropriate for varied audiences.\n\nDemonstrated ability to communicate and work effectively with management, clients and peers, even in stressful situations\n\nExceptional attention to detail\n\nSolid ability to effectively prioritize and manage multiple concurrent tasks\n\nAdvanced ability to approach problems with high-energy, a positive attitude and to look for the opportunities presented within challenges.\n\nAdvanced and demonstrated critical thinking and problem solving skills\n\nDemonstrated ability to collaborate effectively and work independently\n\nWhy join Coast Capital Savings?\n\nWe don\u2019t mean to toot our own horn, but\u2026\n\nWe improve Canadians\u2019 financial well-being through providing simple financial help.\n\nEmployees do what\u2019s best for our members. Every day.\n\nWe believe in being a great corporate citizen so we invest in our local communities by donating our time, money and expertise.\n\nOur employees take advantage of the many opportunities to grow their careers.\n\nEmployees love having a cool place to work, which includes wearing their jeans on Fridays & Saturdays and being recognized with a virtual (and, at times, an actual) high-five.\n\nOur inspiring leaders help our employees develop their talents and encourage them to be their fabulous selves.\n\nWe have a unique culture where we take our business seriously, but ourselves, not so much.\n\nIn 2017, we earned double kudos by being named one of BC\u2019s Top Employers and one of Canada\u2019s Best Managed Companies \u2013 two of the nation\u2019s most coveted business ads, may we add.\n\nDoes this position inspire you? If so, apply on-line today at Coast Capital Savings.\n\nJob Segment:\nHelp Desk, Information Technology, Developer, Data Analyst, Database, Technology, Data" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4d8e3515c624d7a3&fccid=1468513ebc10d6b8&vjs=3", + "location": "Vancouver,BC", + "title": "Specialist, Data Analytics PDS", + "company": "First Nations Health Authority", + "salary": NaN, + "desc": "Temporary\nAre you an expert at analyzing data and finding insights in complex data sets? If you can thrive in a dynamic, fast-paced environment, where you will play a key role in supporting strategic priorities for the health and wellness of BC First Nations, this may be the perfect opportunity for you.\n\nAs the Specialist, Data Analytics Prescription Drug Safety (PDS), you will plan and implement projects as well as perform leading-edge data analytics that support effective service delivery. You will interface with management, health professionals and program resources to develop models, reports, scripts and decision support tools. You will also provide technical expertise and act as a mentor to other team members.\nPrimary Responsibilities\nLeads data analytics projects in designing and performing experiments / hypothesis testing to predictive future results and outcomes relating to prediction of complex issues such as future service demand, budget forecasting, identification of potential fraud, and/or health risks among benefit claimants\nCollaborates with health professionals, program leaders and management to analyze large, complex health and wellness datasets and makes recommendations using data analytics model to inform FNHA strategic papers, proposals and briefing notes\nCollaborates with stakeholders to design and implement departmental performance measures supporting Health Benefits\u2019 strategic priorities\nPrepares and presents complex datasets, analytical reports and cost analyses (both descriptive and predictive) to management, program experts and health and wellness system partners\nWorks with internal and external partners for data identification, data analysis, data reporting and to develop workflow and process maps\nDevelops, plans, monitors, and leads the designs and implementation of analytical models using regression, classification and other algorithms to support quantitative program analysis, health measurement and service delivery\nDevelops advanced/interactive data visualizations using Tableau and R in order to communicate complex concepts visually\nDevelops, tests and implements forecasting models to identify and predict future trends in benefit utilization\nDevelops, recommends and implements procedures and guidelines on data quality audits and investigations to assess data sources, identifying opportunities and gaps\nWrites scripts using SQL, Datawatch, R, Python, and other tools to automate data cleansing and analysis from diverse data sources, including SQL data warehouse, text data files, and web data\nPresents data and findings in a variety of means, including but not limited to, charts, graphs, interactive dashboards, and written reports\nAssists in the identification of requirements for Health Benefits information systems and other data resources in order to increase the overall team\u2019s analytic and reporting capacity\nLiaises with business intelligence / data warehouse team members who manage the data warehouse, identifying requirements and opportunities for improved performance, productivity and functionality\nEnsures that data analysis is completed in compliance with data privacy policies and best practices\nLeads the adoption of analytical best practices, new analytical tools and technologies\nLeads by example, providing guidance and mentorship to data analyst team members\nPerforms other related duties as assigned\nQualifications\nEducation\nBachelor\u2019s degree in Analytics, Statistics, Computer Science, Health Informatics, Operations Research or a relevant field of study, or an acceptable combination of education, training and experience\nRecognized data science certification or equivalent\nExperience\n5-7 years of significant, recent and relevant experience leading complex analytical work, preferable in healthcare, using scripting languages and query languages\nExperience with predictive modelling (usually acquired over a period of 3+ years\u2019 - experience gained in professional, academic and data science competitions will be considered)\nHands-on experience with analytical models, methods and techniques, such as linear regression, logistic regression, association rules data mining, ARIMA time series analysis, decision trees, random forests and support vector machine.\nExperience with data visualization and dashboard design software such as Tableau, Power BI\nExperience with business intelligence, data warehouse technologies, with strong SQL skills\nDemonstrated experience in the use of analytical / statistical software such as SQL, Datawatch, R and Python. Advanced R scripting skills are a requirement\nExperience analyzing pharmacy and health data\nExperience analyzing financial data\nMastery in MS Excel; able to perform pivot tables, pivot charts, and advanced functions in MS Excel\nExperience in working with First Nations is an asset\nKnowledge, Skills, and Abilities\nKnowledge\nKnowledge of Big Data systems and opportunities, challenges and risks as they pertain to healthcare\nKnowledge of health related programs and services within First Nations communities is an asset\nKnowledge of the BC health care system is an asset\nAbilities\nStrong quantitative and qualitative analytical skills to assess health programs and services\nAbility to design and test hypotheses, build, test and validate models, and select the best predictive models using diagnostic approaches\nAdvanced proficiency in the use of office productivity software (Microsoft Office suite of products)\nAnalyze and apply critical thinking to assess, determine options, and make recommendations which are outcome-based and include risk management analysis\nWrite reports which present findings in a manner which is easily understandable by a wide audience of end users\nCompetencies\nAwareness - Thorough knowledge of the current First Nations health governance landscape in BC.\nLeadership \u2013Influencing, motivating, and inspiring others through direct and indirect means to accomplish organizational objectives including people and partnership development in a manner consistent with the 7 Directives, Shared Values, and Wellness Operating Principles. Able to champion change, in partnership with others, by living the First Nations perspective of health and wellness.\nDecision making - Uses sound judgment to make good decisions based on information gathered and analyzed. Considers all pertinent facts and alternatives before deciding on the most appropriate action. Commits to decision.\nProblem solving - Analyzes problem by gathering and organizing all relevant information. Identifies cause and effect relationships. Comes up with appropriate solutions with minimal supervision.\nTeamwork/collaboration \u2013 Strong interpersonal skills. Interacts with people effectively. Able and willing to share and receive information. Collaborates within the group and across groups. Supports group decisions. Puts group goals ahead of own goals.\nAdaptability - Adapts to changing work environments, work priorities and organizational needs. Able to effectively deal with change and diverse people.\nPlanning/Organizing \u2013 Proactively plans and organizes tasks and work responsibilities to achieve objectives. Sets priorities and schedules activities. Allocates and uses resources properly.\nWork standards - Sets and maintains high professional and performance standards. Pays close attention to detail, accuracy, quality, and ensures follow through.\nMotivation - Displays energy and enthusiasm in approaching the job. Commits to putting in additional effort. Maintains high level of productivity. Self-directed.\nInitiative - Takes action to influence events. Generates ideas for improvement, takes advantage of opportunities, suggests innovations, does more than required.\nIntegrity - Shares complete and accurate information. Maintains confidentiality of highly sensitive information. Adheres to organizational policies and procedures. Meets own commitments.\nReliability - Takes personal responsibility for job performance. Completes work in a timely and consistent manner. Sticks to commitments and reports back on status of assigned tasks.\nCommunication - Strong written and oral communication skills. Expresses ideas succinctly and effectively. Organizes and delivers information appropriately. Listens actively.\nStress tolerance - Displays emotional resilience and the ability to withstand pressure on an on-going basis. Deals with difficult situations while maintaining performance and professionalism. Seeks support from others when necessary. Uses appropriate coping techniques.\nDeadline Sunday, October 28, 2018 at 4:00PM Date Added 10/12/2018 End Date 3/31/2020 Organization First Nations Health Authority Website FNHA Career Department 6000-First Nations Health Benefits Hours per week 37.5 Supervisor Level None Union Code NonUnion PN Number 1068 Reg/Temp Temp (Temporary) Region Corporate Office" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1b6f98fb67b0e587&fccid=1468513ebc10d6b8&vjs=3", + "location": "Vancouver,BC", + "title": "Specialist, Data Analytics", + "company": "First Nations Health Authority", + "salary": NaN, + "desc": "Permanent\nAre you an expert at analyzing data and finding insights in complex data sets? If you can thrive in a dynamic, fast-paced environment, where you will play a key role in supporting strategic priorities for the health and wellness of BC First Nations, this may be the perfect opportunity for you.\n\nIn this role, you will plan and implement projects as well as perform leading-edge data analytics that support effective service delivery. You will interface with management, health professionals and program resources to develop models, reports, scripts and decision support tools. You will also provide technical expertise and act as a mentor to other team members.\nPrimary Responsibilities\nLeads data analytics projects in designing and performing experiments / hypothesis testing to predictive future results and outcomes relating to prediction of complex issues such as future service demand, budget forecasting, identification of potential fraud, and/or health risks among benefit claimants\nCollaborates with health professionals, program leaders and management to analyze large, complex health and wellness datasets and makes recommendations using data analytics model to inform FNHA strategic papers, proposals and briefing notes\nCollaborates with stakeholders to design and implement departmental performance measures supporting Health Benefits\u2019 strategic priorities\nPrepares and presents complex datasets, analytical reports and cost analyses (both descriptive and predictive) to management, program experts and health and wellness system partners\nWorks with internal and external partners for data identification, data analysis, data reporting and to develop workflow and process maps\nDevelops, recommends and implements procedures and guidelines on data quality audits and investigations to assess data sources, identifying opportunities and gaps\nDevelops advanced/interactive data visualizations using Tableau and R in order to communicate complex concepts visually\nDevelops, plans, monitors, and leads the designs and implementation of analytical models using regression, classification and other algorithms to support quantitative program analysis, health measurement and service delivery\nDevelops, tests and implements forecasting models to identify and predict future trends in benefit utilization\nWrites scripts using SQL, Datawatch, R, Python, and other tools to automate data cleansing and analysis from diverse data sources, including SQL data warehouse, text data files, and web data\nPresents data and findings in a variety of means, including but not limited to, charts, graphs, interactive dashboards, and written reports\nAssists in the identification of requirements for Health Benefits information systems and other data resources in order to increase the overall team\u2019s analytic and reporting capacity\nLiaises with business intelligence / data warehouse team members who manage the data warehouse, identifying requirements and opportunities for improved performance, productivity and functionality\nEnsures that data analysis is completed in compliance with data privacy policies and best practices\nLeads the adoption of analytical best practices, new analytical tools and technologies\nLeads by example, providing guidance and mentorship to data analyst team members\nPerforms other related duties as assigned\nQualifications\nEducation\nBachelor\u2019s degree in Analytics, Statistics, Computer Science, Health Informatics, Operations Research or a relevant field of study, or an acceptable combination of education, training and experience\nRecognized data science certification or equivalent\nExperience\n5-7 years of significant, recent and relevant experience leading complex analytical work, preferable in healthcare, using scripting languages and query languages\nExperience with predictive modelling (usually acquired over a period of 3+ years\u2019 - experience gained in professional, academic and data science competitions will be considered)\nHands-on experience with analytical models, methods and techniques, such as linear regression, logistic regression, association rules data mining, ARIMA time series analysis, decision trees, random forests and support vector machine\nExperience with data visualization and dashboard design software such as Tableau, Power BI\nExperience with business intelligence, data warehouse technologies, with strong SQL skills\nDemonstrated experience in the use of analytical / statistical software such as SQL, Datawatch, R and Python. Advanced R scripting skills are a requirement\nExperience analyzing financial data\nMastery in MS Excel; able to perform pivot tables, pivot charts, and advanced functions in MS Excel\nExperience in working with First Nations is an asset\nKnowledge, Skills, and Abilities\nKnowledge\nKnowledge of Big Data systems and opportunities, challenges and risks as they pertain to healthcare\nKnowledge of health related programs and services within First Nations communities is an asset\nKnowledge of the BC health care system is an asset Abilities\nStrong quantitative and qualitative analytical skills to assess health programs and services\nAbility to design and test hypotheses, build, test and validate models, and select the best predictive models using MSE, AIC and other diagnostic approaches\nAdvanced proficiency in the use of office productivity software (Microsoft Office suite of products)\nAnalyze and apply critical thinking to assess, determine options, and make recommendations which are outcome-based and include risk management analysis\nWrite reports which present findings in a manner which is easily understandable by a wide audience of end users\nCompetencies\nCompetencies\nAwareness - Thorough knowledge of the current First Nations health governance landscape in BC.\nLeadership \u2013Influencing, motivating, and inspiring others through direct and indirect means to accomplish organizational objectives including people and partnership development in a manner consistent with the 7 Directives, Shared Values, and Wellness Operating Principles. Able to champion change, in partnership with others, by living the First Nations perspective of health and wellness.\nDecision making - Uses sound judgment to make good decisions based on information gathered and analyzed. Considers all pertinent facts and alternatives before deciding on the most appropriate action. Commits to decision.\nProblem solving - Analyzes problem by gathering and organizing all relevant information. Identifies cause and effect relationships. Comes up with appropriate solutions with minimal supervision.\nTeamwork/collaboration \u2013 Strong interpersonal skills. Interacts with people effectively. Able and willing to share and receive information. Collaborates within the group and across groups. Supports group decisions. Puts group goals ahead of own goals.\nAdaptability - Adapts to changing work environments, work priorities and organizational needs. Able to effectively deal with change and diverse people.\nPlanning/Organizing \u2013 Proactively plans and organizes tasks and work responsibilities to achieve objectives. Sets priorities and schedules activities. Allocates and uses resources properly.\nWork standards - Sets and maintains high professional and performance standards. Pays close attention to detail, accuracy, quality, and ensures follow through.\nMotivation - Displays energy and enthusiasm in approaching the job. Commits to putting in additional effort. Maintains high level of productivity. Self-directed.\nInitiative - Takes action to influence events. Generates ideas for improvement, takes advantage of opportunities, suggests innovations, does more than required.\nIntegrity - Shares complete and accurate information. Maintains confidentiality of highly sensitive information. Adheres to organizational policies and procedures. Meets own commitments.\nReliability - Takes personal responsibility for job performance. Completes work in a timely and consistent manner. Sticks to commitments and reports back on status of assigned tasks.\nCommunication - Strong written and oral communication skills. Expresses ideas succinctly and effectively. Organizes and delivers information appropriately. Listens actively.\nStress tolerance - Displays emotional resilience and the ability to withstand pressure on an on-going basis. Deals with difficult situations while maintaining performance and professionalism. Seeks support from others when necessary. Uses appropriate coping techniques.\nDeadline October 28, 2018 at 4:00PM Date Added 10/12/2018 Organization First Nations Health Authority Job Board Category Analyst Website FNHA Career Department 6000-First Nations Health Benefits Hours per week 37.5 Supervisor Level None Union Code NonUnion Reg/Temp Regular (Permanent) Region Corporate Office" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=cf67382b7734dea5&fccid=ca6562c8f6a697ad&vjs=3", + "location": "Vancouver,BC", + "title": "BI Analyst", + "company": "Tundra Technical Solutions", + "salary": NaN, + "desc": "Contract\nBUSINESS INTELLIGENCE ANALYST\nWork Location: downtown Vancouver, BC\nPosition Category: 1-year contract\nOur Business Intelligence and Analytics team integrates data and develops modern reporting solutions, provides advanced analytics to all business units across the organization to generate insights and foster innovation.\nAs the Business Intelligence Data Analyst in this team, you possess very strong analytical skill and the proven ability to gather, view and analyze all forms of information in details. You will work directly with the business stakeholders. You will have excellent familiarity of data analysis process and systems and outstanding interpersonal skills. Previous experience in Microsoft BI technology such as SQL Server, Power BI and Azure is required. You will identify the business needs and requirements, then process data from multiple sources, and deliver analytical results. You will be a key contributor who enables Aurora to make decisions by turning data into actionable insights.\nWe are looking for a highly motivated team player who is always able to deliver on time. Apply if you love data and analytics, are innovative, love to advocate for change and desire to develop strong working relationships with smart people in a new and fast growing international business.\n\nMAIN RESPONSIBILITIES:\nMaintain strong relationships and work closely with stakeholders to ensure business needs are addressed. Collaborate in small groups to gather requirements, translate requirements into analytical project plan.\nExtract and merge data sets from multiple data sources. Perform data cleansing, transformation, exploration, analysis and visualization with Microsoft BI technologies.\nSupport day-to-day requests for data analysis such as marketing campaigns, decision support, KPI\u2019s.\nUse advanced techniques, conduct in-depth analytics for strategic initiatives as directed by the management.\nWork side-by-side with the business stakeholders, iterate the analytical work in an agile fashion to deliver insights.\nParticipate in the Enterprise Data Warehouse development and other projects as directed by the management.\nManage multiple project simultaneously while exhibiting professionalism to ensure an incredible stakeholder experience.\n\n\nJOB REQUIREMENTS:\nA university degree or diploma in Statistics, Mathematics or similar disciplines plus 5+ years of work experience in Data Analytics/Business Intelligence.\nBusiness acumen in the context of the financial industry\nVery strong experience in database systems including data warehouses and multi-dimensional analytic solutions. Very strong experience working with various data types.\nOutstanding skills in Microsoft BI technologies including SQL Server, Power BI, and Azure environment. Excellent SQL skills to write complex queries to pull data.\nExpert level skills in Excel and other MS Office tools.\nStrong Agile project experience with proven ability to prioritize and manage time.\nDemonstrated success with strategic analytical projects, working with various stakeholders across the business areas.\nDemonstrated ability managing deadlines, workload, and multiple complex projects.\n\n\nIf you are interested in this job opportunity, please send your resume to Audrey at athorgrimson@tundratechnical.ca. Thanks!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b197c98dc560a552&fccid=1dcb6e55736b1e71&vjs=3", + "location": "Vancouver,BC", + "title": "Plant Pathologist", + "company": "Terramera", + "salary": NaN, + "desc": "OVERVIEW\nWe are currently seeking passionate candidates with a PhD in Plant Pathology and strong drive to understand the mechanism of action of natural actives to fully utilize their potential in controlling plant diseases. This position will work closely with our other scientists in Plant Physiology, Entomology and Nematology, as well as greenhouse team, who run our automated plant growth facility in Downtown Vancouver. In collaboration with the High Throughput Screening (HTS) Manager, this position will convert plant disease assays into high throughput format and support the HTS Manager with the generation of high quality in-vitro and in-planta screening data. This position will also work closely with our Engineers and Data Scientist to develop image-derived disease evaluations in support of automated analysis of experimental results.\nYOUR MISSION\nTo develop Terramera\u2019s fungicide assays and scientifically support the high through-put screening activities related to fungicide development. To apply your deep understanding of plant diseases and pathogenesis to develop disease models for the successful testing of natural actives using Terramera\u2019s targeted delivery technologies.\nRESPONSIBILITIES\nDevelop in-vitro and in-planta bioassays to study the efficacy of fungicides;\nEnsure scientific validity of high through-put fungicide screening results;\nMentor junior scientists to apply academic knowledge to industry challenges; and\nCommunicate and collaborate effectively with interfacing scientists and engineers on interdisciplinary activities.\nREQUIREMENTS\nPhD in Plant Pathology;\nKnowledge of mechanisms of action of natural fungicides;\nKnowledge of plant biology and plant defences;\nExperience with systemic plant delivery;\nExperience with large scale efficacy testing and data analysis; and\nExperience with interdisciplinary communication and working in a start-up environment.\nQUALITIES WE\u2019RE LOOKING FOR\nDemonstrated ability in problem solving and working in a dynamic environment;\nCuriosity and creativity in meeting challenges and obstacles;\nDesire for interdisciplinary collaboration and openness to \u201cout of the box\u201d ideas; and\nPositive \u201ccan do\u201d attitude and proactive flexible leadership style driven by vision, passion and persistence.\nLOCATION\nVancouver, BC\nWHO WE ARE\nTerramera is an award-winning Vancouver, Canada-based sustainable agriculture cleantech company using chemistry, machine learning and AI technologies to develop and optimize safer, more effective plant-based replacements to toxic chemical pesticides and synthetic fertilizers.\nWHY US?\nOur goals are big, hairy and audacious. We\u2019re striving to reduce the use of toxic chemical pesticides by 80%, help increase global food production by 20% and positively impact a billion people by 2028. Our unique and proprietary technologies enable us to increase the efficacy of active ingredients such as neem oil by delivering them into target cells, which results in revolutionary, high-performance plant-based products for conventional and organic agriculture use.\n***\nTerramera is committed to a diverse workforce and we are an equal opportunity employer.\nOur success begins with our people. We\u2019re looking for A-Players who are passionate about making a difference as we are and thrive in environments that are dynamic, challenging and rewarding. Join our movement, as we set a new standard and change the world together as a highly dedicated, innovative, future-focused and solutions-oriented team.\n\nWhile we thank all applicants for their interest, only short-listed candidates will be contacted. For more information on Terramera, please visit our website at www.terramera.com\nAPPLICATION DEADLINE\nApplications will be accepted on a rolling basis." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=07a223499ee23046&fccid=e98b37c86f8eec83&vjs=3", + "location": "Vancouver,BC", + "title": "Systems Specialist Health Records (CHIMA)", + "company": "Providence Health Care", + "salary": NaN, + "desc": "Temporary\nReporting to the Manager, the System Application Coordinator provides primary support of all assigned Health Record computer applications within designated sites/organizations and acts in accordance with the organization\u2019s philosophies, goals and objectives.\nSkills\nAbility to organize and prioritize workload.\nAbility to problem-solve.\nKnowledge of related computer software and equipment including advanced knowledge of current database and report writing software.\nAbility to communicate effectively both verbally and in writing.\nAbility to work to deadlines under pressure, with minimal supervision and frequent interruptions.\nAbility to deal effectively with others and maintain cooperative working relationships.\nPhysical ability to perform the duties of the position.\nEducation\nGraduation from a CCHRA approved Health Record Administrator program. Canadian Health Information Management Association (CHIMA) Certified. Two (2) years\u2019 recent, related experience as a Health Record Administrator in a multi-service facility, including one year as a data analyst or systems application coordinator, or an equivalent combination of education, training and experience.\nDuties\nProvides support for assigned applications (eg. MRI, ITS, DPT, ABS, Cactus, etc), including testing of changes/updates, setup, and first line trouble-shooting.\nActs as a liaison between health records and the vendor application specialist and/or IS for issues such as dictionary building, interfaces, and integration with other clinical information systems.\nActs as primary contact to third party vendors that affect or interact with the assigned applications (eg. Meditrain, Med2020).\nParticipates in projects that affect the assigned applications by methods such as modifying the applications, providing input into project direction and specifications, and building dictionaries.\nWrites custom reports and edits routine reports as required.\nMaintains the FHA intranet website for assigned areas.\nTrains front line staff on the use of the assigned applications including holding information or training sessions, and developing training material.\nFaciliates application access for users of the assigned applications by designating user access or arranging access with IS.\nDevelops and maintains policies, procedures and manuals for the assigned systems as required.\nRecommends and coordinates changes and enhancements to assigned systems.\nMeets with other information systems coordinators/specialists within the Fraser Health to exchange information and expertise on current and future implementations.\nParticipates on FHA committees as required" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=fd6529b54d58e5e4&fccid=a80fee72384b4211&vjs=3", + "location": "Vancouver,BC", + "title": "Project Information Manager", + "company": "Fluor Corporation", + "salary": NaN, + "desc": "The Senior Project Information Manager (PIM) acts as the Project Manager of automation technology for the project, managing the information technology, automation and information/data management requirements for the project team. The PIM is charged with maximizing the efficiency of the project team and achieving the project goals through the best application of automation technology tools and methods. Working with the department manager, this role may coordinate and manage automation activities on a project. This role may manage or supervise others.\nApply effective knowledge sharing behaviors in the use of Fluor\u2019s knowledge management portals and communities\nWork with the client and project management to analyze and develop the work process, and identify the desired electronic interaction between the client and Fluor\nCoordinate the automation scope, services, budget, and schedule\nCoordinate design automation kickoff activities and provide overall cross-discipline automation coordination\nIdentify and coordinate the automation project turnover and close-out activities\nWork with the project management team in identifying the key automation requirements and issues for the client, contractor, partner, and Fluor as related to the project, including identification of specific technology and tools requested by the client to be used in project execution and those tools required by the Fluor project execution team\nOther duties as assigned\nTo be Considered Candidates:\nMust be authorized to work in the country where the position is located and be able to interview on site., Must be authorized to work in the country where the position is located.\nBasic Job Requirements\nAccredited four (4) year degree or global equivalent in applicable field of study and eight (8) years of work-related experience or a combination of education and directly related experience equal to twelve (12) years if non-degreed; some locations may have additional or different qualifications in order to comply with local requirements\nAbility to communicate effectively with audiences that include but are not limited to management, coworkers, clients, vendors, contractors, and other stakeholders\nJob related technical knowledge necessary to complete the job\nAbility to learn and apply knowledge of applicable local, state/province, and federal/national statutes and guidelines\nAbility to attend to detail and work in a time-conscious and time-effective manner\nOther Job Requirements\nSpecialize in facilitating business process management sessions and workshops\nSpecialize in data analyst skills and/or data quality management\nSpecialize in business process modeling and management\nConduct surveillance of industry, client, and competitor intelligence (e.g., conferences, seminars, etc.)\nConduct training courses for specialties or Project Information Management (PIM) procedures and solutions\nSupport Excel To Win (ETW) Strategies\nSupport Business Transformation & Innovation (BT&I) initiatives\nPreferred Qualifications\nAccredited four (4) year degree or two (2) year diploma, or global equivalent, in Engineering, Procurement, Fabrication, Construction, or Computer Science is preferred\nSix (6) years of experience in project management or information management lead position\nTwo (2) years of experience in Project Information Management/Information Technology/Automation\nThree (3) years of experience in Automation support, Computer Aided Design (CAD) coordination, Project Controls, Engineering, or Procurement/contracts, or equivalent is recommended\nDegree Required\nYes\nRequisition Number\n111902BR" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c8ed81a6941693dd&fccid=0bc2afe8689f3cc6&vjs=3", + "location": "Vancouver,BC", + "title": "Data Architect", + "company": "Annex Consulting Group", + "salary": NaN, + "desc": "Permanent\nData Engineer\n1-year Term employment\n\nOur public-sector client is seeking an experience Data engineer to join them in their Information Management Team for a term employment project. In this role you will work closely with business partners to identify any analytics gaps. Then you will translate those requirements into technical specifications. Your role is to empower the organization by driving efficiencies. If this interests you please submit your resume today!\n\nExperience required:\nExpert in SQL development\nKnowledge of Spark, HANA or DB2 Blu Acceleration\nWorking experience or education in Big Data platforms\nExposure to Hadoop ecosystem (HDFS, Pig, Hive, SPARK, Big SQL, NoSQL, YARN)\nProficient in object-oriented/object function scripting languages: Python, Scala, Java\nKnowledge of data modeling and different data structures" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bf2ee5acddee17d0&fccid=c467efa14d7654d8&vjs=3", + "location": "Vancouver,BC", + "title": "TABLEAU SPECIALIST", + "company": "PNI Digital Media", + "salary": NaN, + "desc": "PNI Media is seeking a Tableau Specialist to join our growing Business Intelligence team, a key role which will support analytics for top tier eCommerce companies, such as Costco, Sam\u2019s Club, Staples and Fedex.\nJob Description\nThis position will primarily focus on designing and building dynamic and powerful data visualizations for core metrics, KPIs, and ad-hoc requests across all retailers to both monitor sales performance and determine future business strategy.\nThe ideal candidate is analytical, possesses a passion for developing insights and has strong communication skills.\nLastly, the successful candidate will be able to work with internal development teams to set up and collect the right data structure.\nResponsibilities\nDevelop Tableau dashboards and reports using visual best practices to promote user adoption and usability\nPerform installation, migration and upgrade of Tableau data sets and dashboards\nDevelop new data sets via SQL server, Google Analytics and third party connections\nOptimize data sets for Tableau Online Server environment\nManage/ oversee existing reports on Tableau server\nProvide suggestions to constantly improve internal processes and methodologies\nProvide support and cross training on Tableau to product managers, account managers and PNI\u2019s Tableau user community\nAct as backup Tableau administrator\nQualification\nBachelor's degree in Business, Economics, Finance, Engineering, Statistics, Computer Science, Mathematics or related field, or equivalent experience\n2+ years of relevant work experience in a business analyst/data analyst/statistical analysis role\n2+ years of Tableau Server/Online experience\nExperience working with efficient Tableau data join and blend strategies\nExperience configuring Tableau server with multiple third party applications\nGood understanding of database concepts including writing SQL statements\nExperience with Jira for managing tasks and a good understanding of Agile software development\nStrong troubleshooting skills\nExperience in Google analytics and web ecommerce is big plus" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d91c36e0181dfebd&fccid=97cd3e8cf73f8391&vjs=3", + "location": "Vancouver,BC", + "title": "Senior Business Analyst", + "company": "CCSCU", + "salary": NaN, + "desc": "What\u2019s the job?\n\nDoes working on complex programs with ambiguous solutions seem to characterize your Business Analysis experience? If you are passionate about bringing together people from different perspectives and shepherding the solution to achieve business goals, this may be the perfect fit for you. This role plays a key role in the execution of strategy by understanding project goals, implementing business processes that effectively leverage technology and using mechanisms to monitor and manage business progress.\n\nWhat you\u2019ll get to do:\nSupport the development of the application roadmap that drives business value and leverages technology investments\n\nSupport the development and deployment of organizational metrics to monitor performance\n\nDocument current state and create future state solution that articulates the people, process, and technology required\n\nPerform data analysis, identify the gap(s) in organizational capabilities and develop roadmap to solve the business need\n\nDesign business process and configure user applications to solve business need\n\nExplore and capture business and stakeholder requirements\n\nCreate, execute and facilitate organizational change management plan\n\nEngage with cross functional teams and work with subject matter experts to create effective solutions\n\nWho are we looking for?\n\nTo answer that question, we are looking for someone who has a passion for change and who can effectively navigate that, sometimes bumpy, terrain. Moreover you can see the big picture and can effectively communicate that vision to your business partners to secure their support.\n\nYour resume lists a minimum of 10 years\u2019 experience of technology implementation experience as a stream or project lead.\n\nYour Business Administration or Information Technologies degree proudly hangs on your wall and you have a thirst for always learning something new.\n\nYou have proven your excellent comprehension of information systems technologies and application architectures in your previous work experiences\n\nYou bring experience in Software development and/or software applications management\n\nIn your current role you\u2019ve demonstrated your excellent organizational change management skills and you\u2019ve effectively applied your knowledge of tools, concepts and methodologies.\n\nYou have hands-on experience with the development, delivery and facilitation of training curriculum\n\nOver the years you\u2019ve refined your writing skills, including the design and completion of professional reports and documents\n\nExperience in financial institution an asset so you can bring an in-depth understanding of banking business models and the regulatory environment and during this time you learned about banking e-systems such as internet online banking, mobile banking and mobile payments\n\nCPA, MBA, CCBA, CBAP, ACMP, Lean Six Sigma Certification an asset. Comparable combination of experience and education will be considered\n\nWhy join Coast Capital Savings?\n\nWe don\u2019t mean to toot our own horn, but\u2026\n\nWe improve Canadians\u2019 financial well-being through providing simple financial help.\n\nEmployees do what\u2019s best for our members. Every day.\n\nWe believe in being a great corporate citizen so we invest in our local communities by donating our time, money and expertise.\n\nOur employees take advantage of the many opportunities to grow their careers.\n\nEmployees love having a cool place to work, which includes wearing their jeans on Fridays & Saturdays and being recognized with a virtual (and, at times, an actual) high-five.\n\nOur inspiring leaders help our employees develop their talents and encourage them to be their fabulous selves.\n\nWe have a unique culture where we take our business seriously, but ourselves, not so much.\n\nIn 2017, we earned double kudos by being named one of BC\u2019s Top Employers and one of Canada\u2019s Best Managed Companies \u2013 two of the nation\u2019s most coveted business ads, may we add.\n\nDoes this position inspire you? If so, apply on-line today at Coast Capital Savings.\n\nJob Segment:\nBusiness Analyst, Law, Information Systems, Data Analyst, Finance, Legal, Technology, Data" + }, + { + "link": "https://www.indeed.ca/company/PNI-Digital-Media/jobs/Tableau-Specialist-e9f95a0a48565554?fccid=7f5120e40ea6d382&vjs=3", + "location": "Vancouver,BC", + "title": "Tableau Specialist", + "company": "PNI Digital Media Inc.", + "salary": NaN, + "desc": "Job Summary\nPNI Media is seeking a Tableau Specialist to join our growing Business Intelligence team, a key role which will support analytics for top tier eCommerce companies, such as Costco, Sam\u2019s Club, Staples and Fedex\nThis position will primarily focus on designing and building dynamic and powerful data visualizations for core metrics, KPIs, and ad-hoc requests across all retailers to both monitor sales performance and determine future business strategy.\nThe ideal candidate is analytical, possesses a passion for developing insights and has strong communication skills.\nLastly, the successful candidate will be able to work with internal development teams to set up and collect the right data structure.\nJob Type / Category\nDevelop Tableau dashboards and reports using visual best practices to promote user adoption and usability\nPerform installation, migration and upgrade of Tableau data sets and dashboards\nDevelop new data sets via SQL server, Google Analytics and third party connections\nOptimize data sets for Tableau Online Server environment\nManage/ oversee existing reports on Tableau server\nProvide suggestions to constantly improve internal processes and methodologies\nProvide support and cross training on Tableau to product managers, account managers and PNI\u2019s Tableau user community\nAct as backup Tableau administrator\nRequired Education, Skills and Qualifications\nBachelor's degree in Business, Economics, Finance, Engineering, Statistics, Computer Science, Mathematics or related field, or equivalent experience\n2+ years of relevant work experience in a business analyst/data analyst/statistical analysis role\n2+ years of Tableau Server/Online experience\nExperience working with efficient Tableau data join and blend strategies\nExperience configuring Tableau server with multiple third party applications\nGood understanding of database concepts including writing SQL statements\nExperience with Jira for managing tasks and a good understanding of Agile software development\nStrong troubleshooting skills\nExperience in Google analytics and web ecommerce is big plus\nJob Type: Full-time\nExperience:\nbusiness analyst/data analyst/statistical analysis: 2 years (Preferred)\nTableau Server/Online: 2 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=0bf5a67d2d677439&fccid=c6d2a28efe7e3280&vjs=3", + "location": "Vancouver,BC", + "title": "Senior/Intermediate Big Data Developer, IoT Cloud", + "company": "Samsung Vancouver R&D Lab", + "salary": NaN, + "desc": "Position Summary\n\nSamsung's IoT team in Vancouver has taken a leadership role in our vision of connected intelligence. We are creating the next generation of IoT solutions, developing cloud software to activate and manage data from a wide range of connected IoT devices, from sensors to TVs to kitchen appliances to cars. As IoT evolves for new industries, we are also creating end-to-end vertical services, most recently in the energy space.\n\nThe IoT Data Platform team in Vancouver handles massive amounts of data generates by Samsung's SmartThings Cloud. The team is responsible for turning this data into information that allows our stakeholders to make data-driven decisions, as well as collaborating with other ML and AI teams across Samsung to help them get the data they need from the IoT Cloud.\n\nWhy We Want You\nThe IoT Data Platform Team in Vancouver is looking for a highly motivated and experienced Big Data Engineer with passion for big data, streaming, real-time analytics, and who participate in the full cycle from requirements and architecture, to deploying and owning the production system.\n\nYou will join and collaborate with a talented team of the best and brightest IoT Engineers, Big Data Developers, DevOps, Data Scientists and Performance Engineers who work on leading edge technologies and projects that touch millions of people.\nFirst and foremost, you are a team player and know how to work well with others. You have a strong analytical mind and you like to see the whole picture. You have passion for solving complex problems and have a high degree of aptitude when it comes to learning new technologies. You love data and numbers and understand how important your role is in helping with business decisions.\nRole and Responsibilities\nBe constantly challenged to learn and grow with new technologies and complex problems\nHave shared ownership of the cloud-based products and services you build\nImplement highly scalable big data systems in a cloud environment\nWork in a multi-disciplinary scrum team\nCollaborate with other groups across the organization and other projects\nSkills and Qualifications\nAttitude to work with others and an aptitude to learn quickly\nBS or MS in Computer Science or equivalent experience\nMinimum 7 years of relevant work experience\nHands-on understanding of scalability and high availability systems\nProficient in Java and/or Scala programming language\nExperience with various Big Data technologies (Hadoop, Spark, Kafka, Flink, etc)\nExperience with various AWS services (EC2, S3, Lambda, Kinesis, EMR, Redshift etc)\nProficient in scripting languages like bash, Python, etc\nStrong knowledge of SQL and NoSQL databases (HBase, Cassandra, etc)\nBonus Skills\nDevOps skills: create build & install scripts, create/manage dockers, UNIX-based systems management, release management, production monitoring, security assessments, etc\nKnowledge of machine learning and deep learning\nExperience with Git and Jenkins\nAgile/Scrum software development methodologies\nSamsung is an equal employment opportunity employer.\n\nSamsung has an accommodation process in place and provides accommodations for job applicants with disabilities as appropriate. Assessment and selection materials and procedures can be made available in accessible formats and methods as appropriate. If you require a specific accommodation because of disability or medical need, please let us know when selected to take part in our recruitment process so that reasonable arrangements can be made for the appropriate accommodations to be in place as you move through our process.\n\nWe thank you for your interest in working for Samsung. Only candidates selected for an interview will be contacted." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0D4_ZmNj5BvjIrs43CESlSX_bt8n2dh_vtkkxnGcsd4Y-0fH9lqkD2lj6pMRrVuS4jR-QYAPzhOnFW9tdZvLxsyfQg6svm-vl5cpEGGBjAJYtbYfB5f25HEsBGKAIMmDRFBeB0F6Y84c6CMrxG2GYxtBzBnZtMqsO9zQJQrEZ14XJHcvyNUWchq6ndjMRb7q3NeP3-37BpYZyuAJCnfIAv1qgu7Ob6_aV7epqWmpg91arwnDKbC34ilKg-2c3E3oIKAuOYI56Hqf3YRRFn2xUtrJUe4EiVQrY3OS2hbkMNEM-01INv5R4VX82f6i-aAhA-pqTGYx6J11L177jDBj2BlNSPlz5vgJR2ZJ1oy1R4V_tXVP_mf5zhZ4tPfBdxqQclhXKjYRk0hW7brOKZ7iCC3HfYUWKEXR5Dgm6G_edrrL9NFi4u_JnjGtm46H0BgGUbi1V1-lWN_7X1tIdTiwns-_p-yq24SMP4=&vjs=3&p=5&sk=&fvj=0", + "location": "Vancouver,BC", + "title": "Data Architect", + "company": "Annex Consulting Group", + "salary": NaN, + "desc": "Permanent\nData Engineer\n1-year Term employment\n\nOur public-sector client is seeking an experience Data engineer to join them in their Information Management Team for a term employment project. In this role you will work closely with business partners to identify any analytics gaps. Then you will translate those requirements into technical specifications. Your role is to empower the organization by driving efficiencies. If this interests you please submit your resume today!\n\nExperience required:\nExpert in SQL development\nKnowledge of Spark, HANA or DB2 Blu Acceleration\nWorking experience or education in Big Data platforms\nExposure to Hadoop ecosystem (HDFS, Pig, Hive, SPARK, Big SQL, NoSQL, YARN)\nProficient in object-oriented/object function scripting languages: Python, Scala, Java\nKnowledge of data modeling and different data structures" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrIC7ba-c9WBCFccyPj-p-NVsbRmEJW59M_8u4WRwgk-ycwwrtTu2I9Dde4d5HvHJTKL6YEpVAaMLAPurcD6Mu6DGOPaaxQza-Cac7qhtuA-I8kr0K7yUn5viSVTJPMhhM793Dh2sTfuKcajkfG3MglsouV1sYsynI7AchwJziP1YsmkTSFBioQJZQEsp0bHDveP-Ipd-JHJGKBeUyfmC7dps8ZfakToHI5GIoQtJWycvgrd5YQuwdt1P5QwH0_ikJ8JtFJuCAvY4UAM6aei7rHuPgsXuX1mmuUdUSkuB7rXQQEuyzsgX0wu6dxTEYcOHr6FD-rqh_JTEkSyae744yoEuIOVXFKlbnkfuDaaNUVuoimiXCLDi0H-U_h1PXqJ7QyrBHVzGzt8ogpJXM5nUYU0BCBK2kJuGYY42P41HJ2rbOKD6p98aezhaRpkzOllJmj6JrjV6XEq-6g9U_UTfp1wY58qFqRZmMQyULeLeGTv9fuv1kLhGUULZJPERkwwqw8PmG1FiWLCoPLW1_GlYXAIFEN4pETg85YPDx-lwtw5tZQ==&vjs=3&p=1&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Senior Data Analyst", + "company": "Sun Life Financial", + "salary": NaN, + "desc": "At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nSun Life has launched an ambitious journey to deploy data as a foundational pillar and strategy across the whole business. Be a part of an exciting and challenging opportunity by becoming part of the analytics community helping to accelerate the growth and application of data science capabilities.\n\nAs the Senior Data Analyst (Senior Analyst, Client Insights), you will be part of a large analytics community and will be focused within the Individual Insurance & Wealth (IIW) management business helping the team by, but not limited to, mining data for business insights, analyzing and interpreting trends using statistical tools and techniques, reporting on business performance, and triaging code and data-related issues.\n\nWithin SLF Canada, IIW is one of the largest business units, with over 1,700 employees. Individual accounts for approximately 20% of worldwide earnings in the overall Sun Life Financial group of companies, and over 45% of Canadian earnings. We manufacture and distribute leading-edge life insurance, health insurance and wealth management products and solutions for over two million individual customers.\n\nThe Senior Data Analyst (Senior Analyst, Client Insights), role sits in the client experience insights team within IIW, a team focused on using data and analytics to understand our clients and how our business can best support them in achieving their goals of lifetime financial security and living healthier lives. The team supports the IIW marketing team, but this role will be focused on short to medium term special projects, tackling the most pressing business issues using data and analytics to change decisions and the way we do business.\n\nSun Life views success in this role related to 4 key characteristics:\nFierce curiosity. You are drawn to discovering and leveraging new data and taking on challenging business puzzles. Understanding business. We\u2019ve got a lot of data, but it\u2019s not going to turn itself into insights, and you can\u2019t help with that unless you understand what the numbers mean. A passion for solving problems. The most successful data analysts don\u2019t just spin data and give numbers, they solve the problem. Technical skills. How to wrangle structured data is a must (i.e., SQL) with strong SAS skills needed currently and the opportunity to move to other analytical tools (R, Python etc) as our data environment matures.\n\nAccountabilities:\nAnalyze and interpret data to identify key insights and opportunities to better understand advisor and client behaviour through data mining client databases and other information systems, including analysis of CRM data, web and mobile applications to enhance the advisor and client experience\nHelp tackle key business problems via analytical work, from requirements specification, data gathering, analyst and statistical model building to presentations and adoption\nWork closely with stakeholders across Sun Life as a subject matter expert in the individual client data and to understand their business problems and how data can be best leveraged to inform decisions\nAbility to draw out business insights from analytical output and work with team leads to put together business recommendations.\nPut together effective presentations of findings and desire to present to multiple levels of stakeholders\nLeverage internal training, peers and other sources to continue to grow capabilities\nAn active contributing member to the analytics academy to help foster and grow the data science community at Sun Life\n\nKnowledge, Skills & Abilities:\n5+ years working with data (i.e., quantitative analysis experience, including handling, manipulating and analyzing data and creating analytical reports)\nComfortable writing complex SQL queries to extract and integrate data from multiple database sources\nExperience with building predictive and prescriptive models in a business setting (i.e., regression, decision trees, deep learning etc.)\nExpert using SAS to work with data, including macros\nExperience with BI tools such as Tableau to aid in effective and concise oral and written storytelling and insights communication\nAbility to work as a team to help deliver multiple projects with courage in managing expectations of team leaders\nDemonstrated business acumen and ability to translate knowledge of audience insights into marketing strategies\nProven track record of successfully operating in a matrix environment with cross-function team participation successes\nStrong partnering approach with a commitment to meeting internal and external business partners' unique needs and expectations\nBSc in a statistical, mathematical, or technical field (i.e., computer science)\n\nNice to haves:\nPast experience in life insurance/wealth management, or other financial services industry (e.g., retail banking, credit card, re-insurance and casualty insurance)\nMSc preferably in a statistical, mathematical, or technical field (i.e., computer science)\nAdditional statistical programming languages (i.e., Python/R)\nExperience working with unstructured data\nBig Data Technologies: Hadoop, HDFS, Hive, HBase, Storm, Spark, Kafka, etc.\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process or those needing job postings in an alternative format may e-mail a request to \u2018thebrightside@sunlife.com\u2019.\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\nLI-AD1\n\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n30/10/2018" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aqmv_5JD5v6gg1ICRL12VY6BolF0XAUkQtat1DEGOKAXfQ1dVUDIPnIZ_mCCh7xlyQW7DAuc1kdzDGEwToHb14mp3uMqX0pcouZuLjYghzjGEEZCxVwhcSYtd9FBhxZEFmSBw17mleeeHpUQJadVhpVkLEJ69jQ1F4IBvMjPekE3zHkIVo1PiUbN93MwjyieGnHvgbTSiDRRIaKbFODxQROSMgEFLqoslUSzqpIc7PE58RkSxX5RH85kBv7EISOGEGKIQvHOK_j5u2fCnWXJoBSfsQGFyeNme1FYxqWTIFA5cNtFq1lNRKQxb_8QOlUkiNjm9dxteMzW4MHFmYxSZ-DThFsZ71uXbY2M-XxopqHDCz56TkkNc_89vquKC5EWrwKfXyYhuFWF1j7LbhVQn1wfGlxVSbcR601L1EBjAucsLELAddKrBI9SKBGC3-VsnYjb2ntUzdDzUBuJqUJA5TqfnQ2u4CpnRw7hTfM_fC0kNTWTv4iShhEMQxX-sUAWckOu2ftsEv68CrqP4AXK2K3V2f_KVklDX2BqwGnLV6ybsfWhFDmAYKPjA9YbRlREONND4JBCja9at5edJLvnG2pvjtDKJTKTOw-aVi3GpUFhrlE3BMRQ5RNHfB5GJKlFvhT3y4-GkBYRbqV8YvFE5PsdyjykVhtoheCNh7Mz_oAF1IW-2BW-goW6WJrCSv_ERT2b25d-ScP4Ib2_Q8RCTCcy6p1lY_uPvsZuScUp9h6Msd9QB8aq3O1uUW62_LYQjzcBG2--4ee0fNFsfdCOJlehxci14GFe0CRhYzmtMZX6O3G_S_Ht1cT4ZPtXKkPWLaLdBkhwPBZRNDIyQpuormr4gTsCO6GpOGUN1ch-ClCT6NFpqERUczjK8AZ7HFkKfn04nY_t87WDvL7yG6qbS0zqbUqmE8bbLJEiZ2YNVoJLPO_uwvqLrK-cDLcmryR8z-Q2pvQQrau3Gf2gzpwB5ugqLPG7xYgckJ3VeLZ-5ovHL1UwOsbuWM1lDSngF-_n_s8ugBIUlh2JwTops2CZI5XGJEyXA9fWYhbqo0es6MrF02a_vf8RH61hI3pApivcIIszRf7uGip1jlMHEaeoG-qRRIXzFZXVLDydMl49iwIJ9Zg3Fxj2ATjo3oQy5ZBzG5BwyhtzU6Ta2Y1bkDPXqNDNl5a0iRdAE=&vjs=3&p=2&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Cox Automotive", + "salary": NaN, + "desc": "Description\n\nDealetrack, a business of Cox Automotive, is looking for a Data Analyst who will be responsible for the design, maintenance, and on-going support of operational and compliance reports as well as dashboards. This individual will ensure optimal efficiency by monitoring work quality as well as delivering reports, statistics, data analysis, and recommendations for improvement. The Data Analyst will also work with various organizations across the company to facilitate process and product improvements.\n\nPrimary Responsibilities and Essential Functions\nCommunicate insights and suggest improvements based on data and observed trends\nDevelop and present standard and ad-hoc reports and analysis to stakeholders across the organization\nPerform proactive and reactive analyses to ensure data integrity\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nUndertake preprocessing of structured and unstructured data\nBuild predictive models and machine-learning algorithms\nPresent information using data visualization techniques\nPerforming exploratory data analysis, generates and tests working hypotheses, and uncovers noteworthy trends and relationship\nImplement algorithms to power user-facing data-driven features\nBe a champion for data science by helping business users understand algorithms outputs thru meaningful metrics and visualizations.\nDevelop python scripts/methods for a range of subject areas by conducting research on existing Python and R libraries for agent based, predictive, inferential, and optimization models;\nSupport visualizations and client reporting through meaningful dashboards, graphics and maps;\nUse strong analytical skills, business acumen and attention to quality to provide data and analysis to assist in solving complex problems\n\n\nQualifications\n\nBS/BA in related discipline\n2-5 years of experience in related technology field OR MS/MA and generally 2-4 years of experience in related technology field\nKnowledge of and experience with Microsoft Business Intelligence suite (SSIS,SSAS, SSRS) and Microsoft BI Publisher\nHands on experience in SQL and RDBMS (Oracle & SQL Server)\nExcellent interpersonal, leadership, and presentation skills\nMust be able to work with minimal supervision as this position requires owning initiatives from inception to execution\n\n\n\n\nAbout Cox Automotive\nCox Automotive Inc. makes buying, selling and owning cars easier for everyone, while also enabling mobility services. The global company\u2019s 34,000-plus team members and family of brands, including Autotrader\u00ae, Clutch Technologies, Dealer.com\u00ae, Dealertrack\u00ae, Kelley Blue Book\u00ae, Manheim\u00ae, NextGear Capital\u00ae, VinSolutions\u00ae, vAuto\u00ae and Xtime\u00ae, are passionate about helping millions of car shoppers, tens of thousands of auto dealer clients across five continents and many others throughout the automotive industry thrive for generations to come. Cox Automotive is a subsidiary of Cox Enterprises Inc., a privately-owned, Atlanta-based company with revenues exceeding $20 billion. www.coxautoinc.com\nCox is an Equal Employment Opportunity employer - All qualified applicants/employees will receive consideration for employment without regard to that individual\u2019s age, race, color, religion or creed, national origin or ancestry, sex (including pregnancy), sexual orientation, gender, gender identity, physical or mental disability, veteran status, genetic information, ethnicity, citizenship, or any other characteristic protected by law.\nStatement to ALL Third-Party Agencies and Similar Organizations: Cox accepts resumes only from agencies with which we formally engage their services. Please do not forward resumes to our applicant tracking system, Cox employees, Cox hiring manager, or send to any Cox facility. Cox is not responsible for any fees or charges associated with unsolicited resumes.\n\nOrganization: Cox Automotive\n\nPrimary Location: CA-ON-Mississauga-2700 Matheson Blvd E\n\nEmployee Status: Regular\n\nJob Level: Individual Contributor\n\nShift: Day Job\n\nTravel: No\n\nSchedule: Full-time\n\nUnposting Date: Ongoing" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0COoolTsXB8vgD26pocS49sLoaRpdRFIYc1SABfeznfFYR-XK6zswQWSrSk6g1UsfQfIIOgKoc648tBK-hga4XarSWFtLwR-TndC6Llr2JgmofY29KDz572hZ_xQm-FdjHHqZEHuiumvL6UxICwmAUndhqLgFjPVm7lv176Kw7zK3LeeHqPfSWbwLur7WrWtep0pjNdj4MKuhmnlyIj16aOgr2cBYy0F5hPXkp7fnkodRA1D9qZETXL_jmvdXQGBMsgK4X6MsTGY4BsEEHquAxx4Jq1YWHoiLRnhz_0NQFE05xD_uUDDmg6x_o8kZEQIes6ljZPmkqEBMM9IVggNZxkQDjRUXUQmVuGKBWS2hViB9T0thUfp22efkeWfjDhrctL7ojmlKSPBP6cjwWhbswhPO9fd5P46bEhySbzryhCaexAwvz4njFJSHk8b2T1pcITGI4-F5uoIXGARH_vP4sgjxSaVabeDlRr2umunYAXdVhV9Nsvvrm4oEh3sGDw8hfDOc6ualyxGLH3cBjnl0Q3Mk7pI2kvVjflhkngeGh7kPVC4KuCjJIVBpubkVV3aSismCIqJTvsWxs3VIlJSYFfQRhJr6zNAyrhH4ZohlcdNQ==&vjs=3&p=3&sk=&fvj=0", + "location": "Toronto,ON", + "title": "SENIOR DATA SCIENTIST - 15 months contract", + "company": "Intelerad", + "salary": NaN, + "desc": "Temporary\nJob Description\n\nPurpose\nGuide and contribute to the data analysis and machine intelligence efforts of AI Lab by defining workflows and deliverable targets for the team, as well as contributing to those targets as an individual data scientist and developer.\nSupport the effectiveness of AI Lab by determining how the products we develop can address client needs by fusing clinical expert input with our R&D team capabilities to deliver innovative machine intelligence solutions.\n\nResponsibilities\nData science analysis and reporting\nPerform and support data analysis, machine learning algorithm prototyping and development and visualization towards storytelling\nDevelop systems to capture and store data that feeds our analysis requirements\nCommunication - Write reports, assemble slide decks, and deliver presentations to the team, the wider company, and directly to customers\nSoftware development\nHelp develop the software artifacts that AI Lab is responsible for\nHelp design the software solutions in concert with our software lead and others\nHelp refine our software workflows to continuously improve our effectiveness\nTeam leadership\nDiscover and define the analytics deliverables for the team, based on the requirements of our products, strategy and clients\nDefine and refine the analytics deliverables of each team member, as required to meet our team goals\nTrack and report the progress of our team toward delivering the desired results\n\nQualifications\n\n\nA Master\u2019s Degree or PhD. in a Data Science, Applied Mathematics, Computer Science, Operations Research or otherwise research-based field; 3-5 years of related experience and/or training; or equivalent combination of education and experience\nStrong foundational knowledge and applied research experience (in academic, research lab, or industry environment) in developing and applying AI / ML / NLP / deep learning / data-driven statistical analysis & modeling solutions to problems involving unstructured data (such as text) and structured datasets\nDemonstrable achievements in one of the following domains NLP+NLU, claissification, regression, reinforcement learning, transfer learning\nExpert knowledge of machine learning algorithms, libraries and platforms\nStrong and proven programming skills in Python with exposure to scikit-learn library, R and Java\nExperience with automated machine learning toolkit such as auto-sklearn or TPOT for Python or H2O AutoML for R and exposure to interpretable machine learning framework such as LIME\nExperience with a major machine learning/deep learning framework (Keras, TensorFlow, Torch, Spark-ML, h2o.ai, MXNet, ..)\nProven experience designing and building AI/ML/Cognitive capabilities in cloud environments\nExpertise in various data integration/ETL tools, application integration and data science tools (Hadoop, Hive, Spark, Flume)\nExperience in data visualization solutions and data visualization tools is a plus\nInterest in contributing to user facing software needs supported by strong experience with Java, JavaScript (preferably Angular) and AWS is a plus\nExcellent analytical and problem solving skills with great interpersonal dispositions and communication skills\nExperience with delivery in agile workflows across multiple geographies\nExperience in an applied R&D environment , working in an agile, innovation-lab culture to bring cutting-edge technologies to fruition, from initial concept to implementation\n\n\nAdditional Information\n\nCompetitive salaries\nCorporate bonus program\nEmployee recognition program\nEmployee referral program\nFlexible hours\nComprehensive insurance plan\nTraining & skill upgrading\nSocial events\nDynamic culture" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DQxVEylBQjPVYY5XxMAb524uBSITfcXySAY7ZWw2YouHUPke5JzG_7JAG5hSB-rchCrY21FBcUAKH6I8K7N-Qyp8rGoEWycCcEhoxvtLZTu-cpADOW0YsNIDjaCX9TRI9-pIrDOXgdXe0IAkS5O2YG7ciSCoUbeTiUN7euT_u3Eifq0obbIi-1CbPmmH0G-EUcUe9qByA_WZj8QqynpnGmTKE1KpVSB6EhuEsXqXm8VGqGC4-FC66NXVxxCYVye_HbUAMHFGRiXGE6KPvODEiEVufhMaJyH99jxH3roke94wTlu_fDzqHAQOcmBaR--gKOhU3pvuh9BvPFfnSjyrijWtliQ-H8-FZ26KQ9SNMeWZsK-QxEdkSipNPSWLE_bj_zLhNXTx4n0PIVwmhAbMmY0RtbCMr6_niEP8u74EA12sz6RXoJ_G-g7hUogpr7o48qU9EL0AB7lmHGViJi3XP3g3uzEq5pwA5BGstegz21SqlHQ4jqfpmlC1juAk6iIwiqVRsS1HFW0Q==&vjs=3&p=4&sk=&fvj=1", + "location": "Toronto,ON", + "title": "Senior Longevity Data Analyst", + "company": "Club Vita", + "salary": NaN, + "desc": "Opportunity:\nDo you love details? Dig technology? Excited when asked to work with large datasets? Do you have pension administration experience, and aren\u2019t afraid to admit it? Then, you could be exactly who we\u2019re looking for!\nClub Vita Canada \u2013 a distinguished longevity analytics company in Canada \u2013 is looking to expand its dedicated team of professionals through the addition of a senior longevity data analyst.\nWhat will you get to do? Our ideal candidate will play an important role in Club Vita\u2019s longevity data collection and analysis for our large and growing dataset -- covering approximately 600,000 current pensioners. This includes overall responsibility for efficiently processing Club member data submissions and subsequently generating longevity analytics. It also means responsibility for the identification and implementation of process improvements and acting as a key support to the operations team leader to assist with the management of operational activities.\nAbout Club Vita Canada:\nClub Vita Canada Inc. provides longevity risk analytics to the Canadian pension industry. By pooling comprehensive longevity experience data from a wide range of pension plans, combined with best-in-class longevity modelling and research, Club Vita Canada provides its members with leading-edge tools and insights to measure and manage their longevity risk. Club Vita Canada is made up of a dynamic multi-disciplinary team who possess actuarial, statistical, systems development and data management backgrounds. Club Vita Canada is an extension of Club Vita LLP, launched in the UK in 2008 by Hymans Robertson LLP.\nwww.clubvita.ca\nAbout Eckler:\nClub Vita Canada Inc. is a subsidiary of Eckler Ltd. \u2013 the largest independent actuarial consulting firm in the Canada, with its headquarters in Toronto and offices in Halifax, Montreal, Quebec City, Winnipeg and Vancouver. Eckler provides employee benefit and financial services consulting through inter-related practice areas, each a leader in their field.\nRole Responsibilities:\nRole Summary:\nClub Vita Canada currently has a dedicated team of seven, further supported by Eckler staff. This role provides a particularly unique opportunity for a professional who is well-versed in pension plan data to become an expert in the emerging field of longevity data analytics and risk management.\nAccountabilities:\nProvide pensioner longevity analytics to a wide range of leading Canadian pension plans\nWork with the operations team lead and other longevity data analysts to collect, process and analyse longevity experience data\nProvide guidance to other longevity data analysts and support the operations team lead in the management of operations activities\nPrepare reports for Club members, peer review analysts\u2019 work and creatively solve for challenging opportunities as they arise\nSupport Club Vita Canada business efforts as required\nQualifications, Skills and Experience:\nQualifications:\nMinimum of a Bachelor\u2019s degree\nAssociate of the Canadian Institute of Actuaries or Pension Plan Administration Certificate is desirable\nSkills / Experience:\n3 to 10 years of experience in the pension industry\nVery strong computing skills, particularly with relational databases (e.g., Microsoft Access, SQL) and Microsoft Excel; programming experience is highly desirable\nPrevious pension administration or consulting experience is highly desirable\nThe ideal candidate will have in-depth knowledge of pension plan data and typical issues with data received from pension plans\nProven ability to work with very large datasets, while maintaining a high level of attention to detail\nExcellent problem-solving skills\nExperience successfully implementing significant process improvements involving large data flows is highly desirable\nHighly-developed organizational skills, with the ability to manage many concurrent deliverables\nPrevious experience overseeing junior staff is an asset\nDetail-oriented, self-motivated and driven to absolute accuracy, with a keen interest and desire to learn and develop\nClub Vita is committed to an inclusive, diverse and accessible workplace and encourages all interested applicants to submit a cover letter and resume for consideration.\nWe thank all applicants for their interest, but only those selected for the short list will be contacted.\nwww.clubvita.ca\nJob Type: Full-time\nEducation:\nBachelor's Degree (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=326af33ac14114e6&fccid=fe2d21eef233e94a&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Amazon.com", + "salary": NaN, + "desc": "Job Description\nHave you ever ordered a product on Amazon and wondered how that box with smile arrives so fast? Have you also wondered how Amazon Supply Chain systems work to enable that delivery? If so, the Amazon Demand Forecasting team is for you. We build systems to peer into the future and predict how much of each product will sell at Amazon sites around the globe. This team is focused on saving millions of dollars using cutting edge science, machine learning, and scalable distributed systems on AWS to automate and optimize demand forecasting. In turn, our forecasts drive buying, placement and staffing decisions across the company.\n\nAmazon seeks a passionate, results-oriented, inventive Data Engineer II to lead our structural and semantic understanding of the data we provide to our forecasting application customer. We are building some of the most innovative big data solutions to handle TB scale data on tight SLAs. This requires high quality data to be constantly delivered to our forecasting application customers. It is our centralized team's responsibility to maintain/curate/extend many critical datasets and queries which enable supply chain forecasting. Data Governance is a complex problem that needs a strong Data Engineer (DE) to increase automation in order to deliver quality data.\n\nOur Data Engineer needs to be able to gather and understand data requirements, present it to product engineers and work in the team to achieve high quality data ingestion goals. You need a passion for complex problems, and enjoy the challenge of operating complex and mission critical systems under extreme loads. Do you think you are up to the challenge? Would you like to learn more and stretch your skills and career?\n\nSuccessful candidates should come from a strong data engineering background. You need to have experience with structured data, and being able to analyze/transform the data using various tools. Although SQL is a strong requirement, being flexible enough to work in a scripting environment is a must. Often, the pace of innovation and change implies a need to move to new data sources, and our DEs get to participate in deep diving business data in order to understand/measure sources of disparity. Your analytical skills and knowledge of schema metadata will be essential.\n\nBasic Qualifications\nA good candidate has strong analytical skills and enjoys working with structural data sets\nExcellent knowledge of SQL; flexible to learn other scripting languages for data manipulation\nGood relational and dimensional data modeling skills\n. Extensive experience with ETL systems\n5+ years of working with large data sets and analyzing data to identify patterns\n5+ years of SQL, RDBMS, data warehousing experience\n. Experience working under agile processes (e.g. SCRUM)\nStrong customer focus, ownership, urgency and drive.\nExcellent communication skills and the ability to work well in a team.\nEffective analytical, troubleshooting and problem-solving skills.\nPreferred Qualifications\nAbility to take a project from scoping requirements through actual launch of the project\nExperience in communicating with users, other software teams, and management to collect requirements, describe software/data product features, and technical designs.\nExperience influencing software engineering best practices within your team\nBackground in Big Data, non-relational databases, Machine Learning and Data Mining is a plus" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a908b6f5bd48b32c&fccid=fe2d21eef233e94a&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer, Amazon Devices", + "company": "Amazon.com", + "salary": NaN, + "desc": "Job Description\nThe Amazon Devices team designs and engineers high-profile consumer electronics, including the best-selling Kindle family of products. We have also produced groundbreaking devices like Fire tablets, Fire TV, Amazon Dash, and Amazon Echo. Our team is serious about great scalable design and redefining best practices with a cloud-based approach to scalability and automation. What will you help us create?\n\nAmazon's Devices Technology team is looking for a talented Data Engineer with a strong background in ETL, Data warehousing and interest in linking data to key business trends. You will work closely with the business and technical teams to analyze many non-standard and unique business problems and use creative-problem solving to deliver actionable output. Your work will have a direct impact on the day-to-day decision making in the Amazon Devices Sales & Operations Technology.\nBasic Qualifications\nBachelor\u2019s degree or higher in an engineering or technical field such as Computer Science, Physics, Mathematics, Statistics, Engineering or similar.\n2+ years of experience with data warehouse technical architectures, ETL/ ELT, reporting/analytic tools and, scripting.\n1+ years of demonstrated quantitative and qualitative data experience with data modeling, ETL development, and creation and maintenance of data warehouse systems.\nExperience managing competing priorities simultaneously and driving projects to completion\nPreferred Qualifications\nAdvanced knowledge and expertise with Data modelling skills, Advanced SQL with Redshift, Oracle, MySQL, and Columnar Databases\nKnowledge of OBIEE and Tableau\nExperience with AWS services including S3, Lambda, EMR, RDS, Data-pipeline and other big data technologies\nExperience with scripting (Python experience is a strong plus).\nProficient in the composition of Advanced SQL (analytical functions) and query performance tuning skills\nProven track record of identifying metric variances and delivering solutions to address the changes\nAbility to interact, communicate, present and influence with both business and technical teams\nA self-starter who loves data and who enjoys spotting the trends in it!\n\nAmazon is committed to providing employment accommodation in accordance with the Ontario Human Rights Code and the Accessibility for Ontarians with Disabilities Act. If contacted for an employment opportunity, please advise Human Resources if you require accommodation.\n\n#d2ctech tag" + }, + { + "link": "https://www.indeed.ca/company/M.W.N.-Technologies-Inc./jobs/Junior-Data-Analyst-510623ec50ee5c24?fccid=7a3418ec8a1d1652&vjs=3", + "location": "Toronto,ON", + "title": "Junior Data Analyst", + "company": "M.W.N. Technologies Inc.", + "salary": NaN, + "desc": "Contract\nJunior Data Analyst\nStatus: Entry-level, full-time, contract\nLocation: Mississauga, ON\nReference ID: 119320668\nWe are currently recruiting a Junior Data Analyst for our fortune 500 clients\u2019 project team. This Industry leading client has advanced leadership in analytics, coupled with highly skilled project team members who are extremely passionate about their field. This is a very exciting opportunity for a candidate who is interested in working with big data, state of the art equipment/software, wants to work in an industry leading field for a large business, and likes to use data to solve real world business problems. This role will allow for the candidate to work on existing data processes and have the ability to create new data processes that provide actionable insights to solve business problems.\nIf you are excited about the opportunity to contribute your expertise to the strengthening of our client\u2019s project team, then we would love to hear from you.\nResponsibilities:\nDevelop methodologies using customer data and other data sources to determine marketing opportunities\nMeasure key business and industry performance indicators\nDevelop dashboards and other productionized reports for performance measurement, in support of key marketing focused projects.\nAnalyze primary and secondary research and align it to the industry using in house customer data\nPerform data collection to provide high quality data that will be used as a platform for analysis\nBuild and maintain segmentation models to provide actionable insights\nCreate visualizations, reports and dashboards that will be used to convey key business KPIs\nLearn and apply new analytical skills and techniques\nParticipate in ad-hoc requests with cross-functional departments as required\nQualifications:\nDegree or Diploma in Data Analytics, Mathematics, Economics, Finance or a related discipline preferred\nTechnical skills in Excel and SQL to process and analyze big data sets\nThinking outside of the box mentality\nQuick learner who is consistently motivated to develop professionally\nKeen attention to detail\nAbility to work under tight deadlines\nWrite professionally and in line with industry standards\nWe aim to create a diverse, healthy, and friendly environment for all project team members.\nWe are an equal opportunity corporation and encourage applications from all qualified candidates.\nJob Types: Full-time, Contract" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=af817b51696bdc8e&fccid=a1664bcdc67a00ff&vjs=3", + "location": "Toronto,ON", + "title": "Junior Data Engineer", + "company": "Think Research", + "salary": NaN, + "desc": "Think Research is changing the way healthcare is delivered - no, really! - and not in the Buckley's \"tastes awful but it works\" kind of way. We are building software to give clinicians the information they need to treat patients better and faster.\nWe\u2019re growing fast and we need all hands on deck. Hungry to make a change that will affect millions? Well grab a quick snack, we're looking for you.\nWhy Us?\nBe part of something special. It's not everyday you get to change the way your friends and family are cared for.\nOur company culture is one of the things we are most proud of. Our friendly, talented, and energetic team makes coming into work feel like we're conquering more than just milestones in our healthcare system, but building strong friendships at the same time.\nThe kind of things you'd be doing:\nDevelop and maintain data marts, data warehouse, and ETL packages to provide data analytics and business intelligence platform to our customers, partners, or other areas of the company;\nBuild and maintain database queries, tables, views, and functions;\nDesign, develop, and maintain custom data integration with clients\u2019 data interfaces;\nCollect and document user and developer requirements. Construct, modify and implement data models;\nDevelop and implement big data framework.\nWork with the Devs and QAs to support development and testing and assure integrity of solutions;\nWork with DBAs to develop and implement data administration policy, standards and models. Database queries performance tuning.\nIdeal qualifications*:\nUniversity degree in a S.T.E.M. program or equivalent work experience;\n1+ years professional experience in a database development, business intelligence, or data engineering role;\nExperience working with relational databases (eg. PostgreSQL, MySQL) or nosql databases (eg. MongoDB);\nExperience with ETL, data processing pipeline, or data integration;\nExperience with data warehouse and data mart concepts;\nExperience with big data architecture and related tools would be a strong asset;\nExperience with data integration tools (eg. SSIS, Pentaho Kettle) and business intelligence tools (eg. Qlik, Tableau, PowerBI) would be a strong asset;\nExperience with a scripting language or OOP language would be a strong asset;\nExperience with machine learning and data science concept would be a strong asset;\nExcellent troubleshooting and problem solving skills;\nAttention to detail;\nExperience in dynamic & growing environments, working under pressure, under tight deadlines;\nIf you don\u2019t perfectly fit the bill but learn fast and feel that you\u2019re up to the task, try us anyway." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=10c92ab7ce750c71&fccid=960d8f54f5a1520f&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "SnapTravel", + "salary": NaN, + "desc": "The Company:\nSnapTravel is a conversational commerce startup, allowing millions of users around the world to book their travel over messaging.\nWe are working on complex problems within NLP (understanding and replying to ambiguous human messaging), Conversational Commerce (optimizing conversions and user behavior over chat) and Machine Learning (choosing the best hotel automatically from a large data set with complex market dynamics) to push the boundaries of tech and travel globally.\nSnapTravel is founded by repeat entrepreneurs (ex-Google, founded & sold $100MM+ startup), is backed by leading VC investors (over $10MM raised) and has gone from $0 to $100MM USD in revenue in under 3 years.\n\nThe Role:\nWe are looking for a Data Analyst to join our growing Business Intelligence / Growth team! As a Data Analyst at SnapTravel, you will be responsible for using data to answer strategic questions and drive business strategy. With a strong analytical and data-driven approach, you are an expert in quantitative analysis and will use your skills to help our team organize, visualize and understand large data sets. This is an exciting opportunity to take ownership in a role as you build internal dashboards, run cohort analyses, create regression models and draw strategic insights from product (funnel) and user data.\nChallenges You'll Solve:\n\nData-driven Culture: you will be an ambassador for our data-driven culture, taking data and using it to answer business questions and drive strategy & decision making\nData Management: you will access, clean and organize raw data in a way that makes sense for both you and the team\nVisualizations: you will help us to see and understand our data in a way that makes sense, creating automated dashboards and funnels for various internal teams\nHard Questions: your quantitative analysis will be an integral part of helping us to answer the toughest questions in our business, such as:\nWhere in the product and marketing funnels should we concentrate our efforts and our spend? Where can we improve the most?\nWhat key insights can be drawn from our users and the way that they use our product?\nWhat is the best way to segment and track our users and data? What can we learn through cohort analyses, regression models, etc?\nWhat A/B tests, experiments and multivariate product tests can be used to explore new ideas, and how can they be effectively tracked, measured and monitored? When are the results statistically significant? When do we pull the plug?\n\nYour Experience:\nYou have at least 2 years of experience in a Data Analyst role, ideally from the eCommerce industry\nYou excel at pulling, cleaning and manipulating large sets of complex data to turn them into stories that key stakeholders can understand\nYou are an expert at writing SQL queries & doing data analysis with Python, and know your way around visualization tools (i.e. Tableau, Domo)\nYou are naturally curious, and have a solid understanding of common statistical methods and their real-world applications\nExperience running multivariate product tests and growth experiments is a major plus!\nWhat To Expect:\nAfter applying, you'll receive an email with all of this info. So feel free to skip it for now.\nReview - you'll hear from us within 48 hours of applying\nPhone Call - a quick call to learn who you are (resumes suck, we want to know the real you!)\nAssessment - a chance for you to tackle a realistic problem and show us how you manage, analyze and visualize data\nOnsite Interview - 60-90min onsite with our CEO and Growth Marketer to tackle a whiteboarding problem collaboratively\nFinal Interview - connect with our Data Engineer, more Q&A to ask us about SnapTravel; deeper dive into culture and team\nThe Perks:\n\nCompensation: top of market salaries and equity; full benefits package\nFlexible Work Arrangements: work from home, work remotely, take vacation... do what makes sense for you. This includes a holistic Parental Leave policy.\nTop Talent: work with the best in the world, including Engineers and Leadership from Google, Facebook, Wish, Twitter, Asana, YouTube, Uber and more.\nBuild Something Great: most importantly, build a product used by millions around the world - have ownership, have impact, and do great work." + }, + { + "link": "https://www.indeed.ca/company/Audacious-Futures/jobs/Data-Scientist-4f6d0e1c36537248?fccid=0489f5c1c6fea47b&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Audacious Futures", + "salary": NaN, + "desc": "The Organization: Audacious Futures\nWe are a global innovation launchpad that designs and builds solutions powering individuals, organizations, and societies to become and stay future ready. Our culture can be best described as asking big questions about the world, practicing radical candor with each other, and Getting S&%# Done (aka GSDing) together.\nThe Product: FutureFit AI\nAmong other projects and ventures, Audacious Futures is incubating FutureFit AI, an AI-powered upskilling / reskilling solution for enterprises and governments.\nWe think of it as the Google Maps for the Future of Work and Learning. It powers you to \u201cexplore\u201d the world of careers and skills, set a \u201cdestination\u201d for where you want to go next, it \u201clocates\u201d where you are starting from, recommends \u201cpathways\u201d to get there, and \u201cguides\u201d you along the way with both human and technology supports.\nFutureFit AI has been selected as a Top 25 finalist, Judges\u2019 Winner, and People\u2019s Choice Winner of innovations re-imagining the future of work and learning by the United States Department of Education. It is also the winner of a $1M prize in Canada.\nThe Opportunity\nWe are looking for a product-focused data scientist who is confident working across various technology stacks.\nYou will be joining a small team and leading machine learning features and data science projects at an early stage to support us as we grow and scale!\nResponsibilities\nYour tasks will revolve around the creation and development of a new software platform including:\nOngoing collection, maintenance, organization, and deciphering of data and databases (including big data).\nApply machine learning, statistical analysis, and data engineering to big data to feed into product features and adjacent research in a production environment.\nDesign and implement machine learning pipelines.\nCommunicate insights and reporting with the Product Manager and Development team.\nWork independently to solve problems requiring research, design, and implementation of machine learning techniques.\nCapabilities\nConsider these our best sense of what would make you successful in the role. That said, don\u2019t let them detract you from reaching out if you believe you have the core capabilities to help us achieve our goals and can learn the rest on the fly. You\u2019ll also notice we have no degree requirements as we don\u2019t believe they are a good proxy for skills.\nExperience building end-to-end data products from scratch is preferred.\nExperience in a quantitative field, such as Mathematics, Computer Science, or Statistics.\nExperience working with relational SQL database.\nStrong Python skills and experience with Scikit Learn and Pandas.\nFamiliarity with both statistical techniques, as well as machine learning techniques, ex: cross-fold validation, F1 scoring, clustering, random forests, SVM, etc.\nGreat communication skills, including the ability to write detailed explanations to a wide variety of audiences that may lack a technical background.\nWorks well independently and can equally excel as a collaborator within a team in a fast-paced startup environment.\nAnd most of all, you have a desire to learn and make a positive impact with the technology you help build!\nLocation: Toronto or Boston preferred, other locations possible\nApply today!\nIf interested, please send us an email, indicating \u201cData Scientist Opportunity\u201d in the subject line and including:\nLinkedIn Profile (or CV)\nOptional: 2-minute video telling us why you are interested in joining our team (don\u2019t worry about the quality of the video, we just want to get to know you better!)\nJob Type: Full-time" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=61a965e3d31df357&fccid=2f877230f320740e&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist, Text Analytics", + "company": "AbacusNext", + "salary": "$90,000 - $125,000 a year", + "desc": "$90,000 - $125,000 a year\nThe Software Engineering team at AbacusNext has a career opportunity for a Data Scientist specializing in text analytics located in Toronto, Canada, or Edinburgh, United Kingdom. The job of the Data Scientist is to invent and refine algorithms to process, interpret and analyze unstructured text documents. We are seeking individuals knowledgeable in state of the art research in machine learning as applied to NLP as well as experience applying text analytics in a real-world environment. The Data Scientist will design and apply approaches to natural language for use in question/answer processing, smart summarization and classification/taxonomy over large domains of imprecise unstructured text. Research applications developed will to be used by AbacusNext applications. This initiative is an exciting rapid development effort employing agile engineering processes and fielding evolving prototypes to end users in the field.\n\n\nRoles and Responsibilities:\nIndependently design and undertake new applications of Machine Learning for NLP research as well as partner in a team environment across organizations.\nPrototype and integrate new approaches to improve named entity extraction from unstructured text for the purpose of knowledge base population.\nPerform metrics-based evaluations of new technologies from research organizations to determine potential contributions.\nDesign clustering and taxonomic algorithms scalable to millions of documents.\nRequirements\nTo be considered for this position, you must minimally meet the knowledge, skills, and abilities listed below\nPhD or Masters degree in a technical discipline such as statistics, computer science, mathematics, physics or a related discipline and 3+ years of related experience.\nAt least 1 year of specialized experience using machine-learning, text-mining or natural language processing techniques.\nKnowledge of state-of-the-art methods coupled with the creativity and intelligence to advance beyond them.\nTechnical task leadership abilities\n\nPreferred Qualifications: Candidates with these desired skills will be given preferential consideration\nAdvanced degree in NLP or a related discipline, such as computational linguistics, machine learning, or artificial intelligence.\nExperience implementing NLP and machine learning techniques with document corpora and applying other non-traditional open sources to real-world mission solutions.\nBenefits\nBridging the gap between science and products\nCompetitive salary and benefits\nA tight-knit team with a track record of success and innovation\nA high-visibility position for continued career growth\nA wide variety of perks befitting an *established* start-up\nAbacus Data Systems Canada, Inc. welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ba22ef47275d1ee9&fccid=d7114f1cac8d0711&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist I", + "company": "TD Bank", + "salary": NaN, + "desc": "Tell us your story. Don't go unnoticed. Explain why you're a winning candidate. Think \"TD\" if you crave meaningful work and embrace change like we do. We are a trusted North American leader that cares about people and inspires them to grow and move forward.\nStay current and competitive. Carve out a career for yourself. Grow with us. Here's our story: jobs.td.com\n\nDepartment Overview\nTD is on an exciting journey to become a data-driven organization with a goal to unlock $500MM in profit using data by 2021. The Enterprise Data and Analytics (ED&A) organization is driving this transformation by bringing all of the bank's data into one central data lake and building the analytics platform of the future. The Enterprise Analytics team is the analytics consulting arm of the ED&A. The successful candidate will be a key part of the Enterprise Analytics team - a dynamic, innovative team that provides central analytics capabilities to lines of businesses across TD Bank. The team works closely with business units to identify and solve business problems using data and analytics. Solutions usually take the form of insight generation, predictive modeling, or machine learning\n\nJob Type\nRegular\n\nJob Status\nFull Time\n\nHours\nMon-Fri\n\nBusiness line\nOther\n\nJob Category - Primary\nEnterprise Data & Analytics\n\nJob Category(s)\nEnterprise Data & Analytics\n\nJob Description\nA successful candidate will have hands-on experience working with Big Data tools and environments, with a deep understanding of data mining and analytical techniques, meaningful experience building strong working relationships, and success in effectively identifying and managing client requirements and expectations. Key responsibilities include:\nDeliver practical analytic solutions taking into consideration technology and business constraints with a high degree of autonomy\nWork collaboratively with a team of 2-3 Data scientists\nDevelop powerful business insights from data using a range of analytical techniques\nBuild predictive models that learn from and scale to petabytes of data\nWork in a highly interactive, fast paced, team-oriented environment\n\nJob Requirements\nGraduate level qualification in a relevant technical field (Computer Science, Engineering, Applied Mathematics/Statistics, Operations Research) ideally with a specialization in data mining/machine learning with 1+ years of analytics experience or a Bachelor's degree with 2+ years experience of analytics experience, preferably in Financial Services\nDemonstrated experience in delivering high quality, high impact analytical solutions to business problems\nStrong communication skills and ability to work collaboratively in team settings\nDemonstrated track record of manipulation of large volume, high frequency data for analytical purposes using HADOOP, HIVE, Spark on-prem and cloud\nDemonstrated experience of developing and implementing statistical models (predictive & descriptive)\nExpertise in analytical tools such as R/Matlab/SAS/Stata\nExperience of scripting languages such as Python/Ruby/PHP etc.\nExperience of relational databases and usage of SQL\nPassion to learn new tools and technology\n\n\nInclusiveness\nAt TD, we are committed to fostering an inclusive, accessible environment, where all employees and customers feel valued, respected and supported. We are dedicated to building a workforce that reflects the diversity of our customers and communities in which we live and serve. If you require an accommodation for the recruitment/interview process (including alternate formats of materials, or accessible meeting rooms or other accommodation), please let us know and we will work with you to meet your needs.\n\n**Province/State (Primary)\nOntario\n\nCity (Primary)\nToronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5b59fa9292ff08bb&fccid=883aa815594ccefd&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Energy Profiles Limited", + "salary": NaN, + "desc": "About EPL\nAt EPL, we quantify changes to the use of our earth\u2019s resources, so we can help our clients make better decisions for our world.\n\nWe help our clients improve both their environmental performance and their bottom line while at the same time providing independent, impartial strategic guidance. Our clients include some of the largest public and private companies in Canada, collectively representing approximately 2.5% of national electricity use. We have built our reputation on doing things really well.\n\nWe have a bright, talented, and engaging team with a lot of passion for what we do: helping large energy users across North America reduce their energy/carbon footprints, and quantifying energy consumption and costs.\n\nThe Role\nWe seek a smart and passionate professional to join our Data Integrity and Support Team. You will be given the opportunity to contribute in several areas, with a view to growing into a larger role within EPL over time. A steep learning curve is anticipated. Initial contribution areas include:\n\no Support with ongoing maintenance of client and account info.\no Continuously work with utility providers to maintain accurate billing and consumption data.\no File management responsibilities including downloading data and scanning documents.\no Use data processing tools to maintain integrity of incoming data.\no Load data from multiple sources into our system; manage data flow and address issues.\no Stay on top of regular procedures to ensure nothing \u2018slips through the cracks\u2019.\n\nAbout You\nIntelligence and a commitment to team work are of great value; just as important is a determination to overcome obstacles and solve challenging problems. Excellent client service and relationship-building are critical to everyone\u2019s role at EPL.\n\nA post-secondary education (degree or diploma) is required. We are open to candidates from various programs of study (business, applied sciences, sustainability etc.), provided you are good with numbers and are keenly interested in data management and analytics.\n\nIt is essential you have an eye for detail, are organized, and can adapt well to shifting priorities and schedules.\n\nStrong computer skills are required, particularly with Microsoft Excel. Experience with SQL is an asset.\n\nIts expected that you can communicate professionally, clearly and efficiently; both verbally and using email.\n\nWhat to expect\nThe success of our people drives the success of our company. We have found that exposure to different parts our business, systems, and processes is essential in developing our team members\u2019 capabilities and careers. Each team member\u2019s specific role evolves based on their interests, aptitude, and business needs throughout their careers with our firm.\n\nEPL team members also receive:\nUnlimited Vacation & Flexible Work Hours (truly own your time)\nInsured Benefits and Health Spending Account\nPaid monthly transit pass\nJoin our community of super-smart and nice people, who are doing good and valuable things." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e22404d0acf974af&fccid=27a9bbc740b2dc87&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Quartic.ai", + "salary": "$70,000 - $100,000 a year", + "desc": "$70,000 - $100,000 a year\nQuartic.ai puts the power of Artificial intelligence in the hands of industrial users to achieve true greatness.\nOur team is made up of world-class data scientists, software developers, and industry experts with decades of experience.\nWe are looking for a Data Scientist who is passionate about Machine Learning, and knowledge in Statistics and Computer Science. You should like doing data science projects with structured and/or unstructured data and enjoy productizing scalable machine learning models. We will also rely on you to build data products to extract valuable business insights. Critical thinking and problem-solving skills are essential for this role.\nResponsibilities\nIdentify valuable data sources and automate collection processes\nUndertake preprocessing of structured and unstructured data\nAnalyze large amounts of information to discover trends and patterns\nBuild predictive models and machine-learning algorithms\nPresent information using data visualization techniques\nPropose solutions and strategies to business challenges\nCollaborate with engineering and product development teams\nRequirements\nStrong understanding of machine learning theory\nHands on experience with Statistics\nCapability of quickly implementing prototype products of cutting edge research papers\n2 - 3 years of hands on experience with various open source tools (e.g. Tensorflow, Pytorch, XGBoost, LightGBM, Sklearn, Numpy, ...) and data visualization libraries (seaborn, ggplot2, ...)\nAnalytical mind and business acumen\n1 - 2 years of experience with building scalable production systems (in Spark/Scala/Java) is a big plus\nKaggle experience or Github open source project experience is a big plus\nBenefits\nWe are a fast paced startup with a lot of fun and excitements. We don't micromanage you and we have you covered for health care, dental, vision, etc. as well as reimbursement for your gym membership and gas expenses." + }, + { + "link": "https://www.indeed.ca/company/Max-Advanced-Brakes/jobs/Data-Analyst-46c4af52db7ed144?fccid=cdbafab8c901add8&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Max Advanced Brakes", + "salary": NaN, + "desc": "Max Advanced Brakes is a leading supplier of automotive brake parts in North America, headquartered in Markham, Ontario. In particular, we specialize in performance brake rotors and pads and aim to provide the best product & service for our customers in Canada and the United States. We are currently seeking ambitious & capable individuals to join our growing team and be a part of the Max Advanced Brakes family.\nTo learn more about Max Advanced Brake please visit www.maxbrakes.com\nWhat will I being doing at Max Advanced Brakes?\nManage data collection of internal systems utilized by Max Advanced Brakes\nHelp promote consistency and standardization among the various types of reports and databases, and assist with the various reporting tools utilized by Max Advanced Brakes.\nAssist in developing efficiencies to increase the effectiveness of reporting, and maintain departmental reports used internally and externally.\nEnsure the timely and accurate generation of all internal/external reporting\nPerform other duties as assigned.\nWhat is Required of me?\nSuccessful completion of a Secondary School Diploma\nProven understanding of Excel, MS Office\nAutomotive parts knowledge; an asset\nSQL knowledge; an asset\nDemonstrated problem solving and decision making skills\nProven ability to work in a team based environment where teamwork is paramount\nWhat can Max Advanced Brakes offer you?\nCareer growth and development\nCompetitive salary\nFlexible health benefits\nBe a part of a dynamic team\nFriendly work environment with in-house recreational activities!\nWhat you need to know before applying?\nFull time permanent position\nThe candidate must be available from Monday to Friday 9:00AM -6:00PM.\nTraining is paid for and consists of on-the-job training.\nMax Advanced Brakesis an Equal Opportunity Employer \u2013 Minority / Female / Disability / Veteran / Gender Identity / Sexual Orientation. We are proud to provide employment accommodation during the recruitment process. Should you require any accommodation(s), please indicate your needs on your cover letter and we will work with you to meet your accessibility needs.\nJob Type: Full-time\nExperience:\nData Analysis: 1 year (Preferred)\nEducation:\nSecondary School (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=69a5021a2d88c5ae&fccid=883aa815594ccefd&vjs=3", + "location": "Toronto,ON", + "title": "Energy Data Analyst", + "company": "Energy Profiles Limited", + "salary": NaN, + "desc": "About EPL\nAt EPL, we quantify changes to the use of our earth\u2019s resources, so we can help our clients make better decisions for our world.\n\nWe help our clients improve both their environmental performance and their bottom line while at the same time providing independent, impartial strategic guidance. Our clients include some of the largest public and private companies in Canada, collectively representing approximately 2.5% of national electricity use. We have built our reputation on doing things really well.\n\nWe have a bright, talented, and engaging team with a lot of passion for what we do: helping large energy users across North America reduce their energy/carbon footprints, and quantifying energy consumption and costs.\n\nAbout the Role\nRecent and projected growth has led us to search for an Energy Data Analyst to join our Toronto office. Your smarts, passion and expertise will be applied to preparing building and portfolio level energy forecasts & budgets, and emissions reports for large commercial property owners. You will join us at a time where we are experiencing unprecedented company growth. A steep learning curve is anticipated. Key aspects of the role:\n\nCreate and/or verify annual energy consumption and cost models/forecasts for large commercial buildings, factoring in historical usage, projected utility rates, and weather patterns.\nPerform utility rate research and compile utility rate assumptions across Canadian and US energy markets.\nMonitor and maintain utility consumption models that directly impact forecast/budget activities.\nIdentify ways to optimize data acquisition, modelling and analysis processes and tools.\nAssist in preparing GHG emissions reports for our clients using recognized industry protocols.\nAbout You\nYou are smart and act with purpose. You feel successful and accomplished when you solve complex problems associated with data acquisition, modelling and analysis. High energy levels and a team-based approach are of great value; just as important is a determination to overcome obstacles.\n\nYou are consistent and cautious in your review and analysis of data sets, models and reports. You are skilled in your ability to hone in on and resolve data anomalies, discrepancies and variances. You have a keen eye for finding ways optimize and improve data analysis process and tools.\n\nNominally, you have an undergraduate degree in engineering, applied sciences, business/sustainability or another technical field (or equivalent experience).\n\nYou offer valuable knowledge and experience in energy forecasting, budgeting/cost allocations and/or emissions reporting. Practical experience and intermediate proficiency in SQL and Excel are expected.\n\nYou are organized and able to prioritize and manage several client requirements under set timelines. You can easily adapt and respond to impromptu requests from clients and peers.\n\nIt is important that you can communicate clearly and efficiently (verbally and in written form).\n\nWhat to expect\nThe success of our people drives the success of our company. We have found that exposure to different parts our business, systems, and processes is essential in developing our team members\u2019 capabilities and careers. Each team member\u2019s specific role evolves based on their interests, aptitude, and business needs throughout their careers with our firm.\n\nEPL team members also receive:\nUnlimited Vacation & Flexible Work Hours (truly own your time)\nInsured Benefits and Health Spending Account\nPaid monthly transit pass\nJoin our community of super-smart and nice people, who are doing good and valuable things!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=cf6f555042b496c3&fccid=33f52aae8805f26b&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Platterz", + "salary": NaN, + "desc": "About Us:\nPlatterz is on a mission to reinvent corporate catering. We're a fast-growing, venture capital-backed startup designed to make ordering office food exactly the way it should be - easy. We\u2019re a team of fun foodies who are passionate about our work and helping each other. We are keen on making your day at the office better - and of course, more delicious!\nOur sophisticated platform allows users to discover diverse meal options from their city\u2019s top restaurants and caterers and coordinate the perfect office meal, meeting or special event. Using a customer\u2019s headcount, budget and dietary restrictions, our AI-powered solution provides on-demand catering to serve up the best local options for the whole team.\nHelp us make offices more human!\nJob Summary:\nWe're looking for a Data Analyst to join our fast-growing family at Platterz! In this unique role, you will be responsible for the process of turning data into actionable information. You will create complex dashboards using our business analytics software, train teams on how to use our data tools and present relevant information to internal departments, that can be used to make sound business decisions.\nWhat You'll Do:\nCreate, change and maintain dynamic dashboards in our business analytics software\nIdentify, analyze, and interpret trends or patterns in complex data sets\nGenerate weekly reporting and ad-hoc analysis to support leadership decision-making\nConsult with and advise senior management and internal teams on strategies to improve reporting techniques and the creation of dashboards\nPresent relevant information to internal departments\nPresent to and train different team members on how to use and interpret analytics dashboards\nQualifications and Skills:\n1-2 years experience in designing and presenting data using best practices in data visualization\nExtensive SQL experience\nDemonstrated analytical ability, knack in figuring out patterns in data and good problem-solving skills\nExcellent written and verbal communication skills\nStrong presentation skills\nBachelor\u2019s degree in Statistics, Math, Computer Science, Engineering or a related field\n\nNice to Haves:\nPrior experience with business analytics software is an asset\nWorking with Us/Perks:\n\nWe\u2019re a performance-driven, entrepreneurial team passionate about a job well-done. We embrace learning opportunities, mentorship, creative problem solving, all while having fun with silly inside-jokes. As a food-tech startup, we promise you won't go hungry! We're an office of foodies, and we love eating our way through the long list of top restaurants and caterers on our platform. We work hard, but don\u2019t take ourselves too seriously, and make sure to balance out challenging days with memorable nights." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d2b25e71f06108fb&fccid=ac7e12f154c0db00&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Unata Inc.", + "salary": NaN, + "desc": "Unata in a nutshell\u2026Look at us! We\u2019re in a nutshell!\nUnata is on a mission to build the grocery shopping experience of the future. Our white label platform powers the digital customer experience for some of North America\u2019s most well-respected grocers, and we don\u2019t plan on stopping here. We were acquired by Instacart in 2018 so that we could take over the grocery world with the most comprehensive, innovative digital grocery solution in the market. Unata operates as a independent subsidiary headquartered in Toronto, Canada.\nWe\u2019re a group of people with a strong moral compass, and with bright ideas who actively collaborate with one another to achieve goals as a team. We\u2019re a passionate bunch who want to create something that has never been done before.\nOur pieces of flare\u2026\nCanada's (#2) Best Place to Work (SMB, 2017).\nCanada's 11th, and North America's 52nd Fastest Growing Tech Company (PROFIT 500),\nCanada's 50 fastest growing companies\nCanada's top 20 most innovative companies.\nOur Data Analyst will\u2026\nContribute to the development of our analytics engine and also perform analysis that will have a direct and measurable impact on business decisions. Analytics within Unata is a unique team encompassing data engineering, software development, research and business intelligence. You will join a small but agile team that will become the \u201cdata hub\u201d for internal and external stakeholders.\nWe value Data Analysts who have the following\u2026\nHave a technical and business intelligence background\nHave experience with SQL and working with unstructured data\nHave experience with Python (or similar programming languages)\nAre able to present findings of technical analysis to non-technical individuals\nHave experience in reporting and business intelligence\nHave degrees in Statistics, Economics, Engineering & Computer Science\nYou have experience in retail analytics\nAre experienced with technologies such as SQLAlchemy, Snowflake, ElasticSearch, Hadoop & Spark\nHave previously been involved in Software Development\nStrong statistical analysis (w/ MatLab or R) experience\nWhat this opportunity has to offer for you\u2026\nShape business decisions by performing research, analytics and statistical analysis on various metrics/business cases.\nWork side by side with engineering, operations and senior leadership as a key stakeholder in multiple projects.\nProvide valuable insights using data to drive business decisions.\nBuild an analytics engine that will be used by all of Unata\u2019s clients.\nA dedicated team filled with people that want to make an impact \u2013 this ain\u2019t no \u201canother-day-another-dollar\u201d gig!\nA working environment where your opinions are valued\nA place within a company that appreciates learning new technologies and implementing them when they make sense\nTime to attend various developer conferences, like PyCon, where members of our Team are regularly selected to present\nWant to join a talented team of people changing the way the world grocery shops?\nUnata is proud to be an equal opportunity employer. We are committed to building a diverse team representative of the city we live in, and the people who use our product everyday. We believe that the best solutions are the ones created from a variety perspectives and that experience comes in many forms. If you are reading this posting and thinking 'I could do that!', we strongly encourage you to apply (i.e. exact experience not required).\nApply today with a copy of your resume, and let us know why you're a great fit for the position! Visit www.unata.com/careers/. To learn more about our parent, please visit www.instacart.com." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c5245f447d02e155&fccid=3a429036b3725efa&vjs=3", + "location": "Toronto,ON", + "title": "Reference Data Analyst", + "company": "BMO Financial Group", + "salary": NaN, + "desc": "Reference Data Analyst for Data Governance supports the operationalization of the data governance operating model in either one or more areas of the bank. Working with the data governance community, he/she enables the deployment and implementation of data governance roles, processes, tools and methodologies in a selected area(s). The Reference Data Analyst works collaboratively with stakeholders at all levels of the organization and has significant influence in ensuring that the Bank successfully operationalizes data governance to meet regulatory requirements and achieve its business growth objectives. This is a position that requires the ability to effectively collaborate within his/her own department and across large areas of the organization.\n\nThe Reference Data Analyst will provide strong data analysis, modeling and solutioning in the reference and master data domain that allows Data Governance to define, manage, control and leverage quality information within and across business unit and functional domains. Helps in designing and implementing Data Governance processes and supporting tools and technology, defining, monitoring and reporting on aggregated Data Governance metrics and activities, defining and managing data quality rules intake and prioritization process, communicating and identifying change management needs, establishing an issue management process and capability, working across domains with Data Stewards to resolve cross-Bank data quality issues.\n\nKey Accountabilities\nSupport the operationalization of Data Governance for the Enterprise\nResponsible for gathering information requirements and defining standards and rules to ensure master data is compliant with defined information, policies and quality requirements within their assigned domain\nProvides reference/master data SME (Subject Matter Expert) input to various project teams as it relates to data management and governance.\nWork closely with the business and IT teams to define data elements, metadata, master/reference data rules, processes and data quality metrics\nInteracts heavily with business and technical subject matter experts and providing input to project teams (business and technical).\nEnsures key employees in the area(s) of the bank under his/her responsibility fully understand the Data Governance operating model, including its relevance to meeting regulatory and business objectives\nSupport the coordination of data quality requirements and rules to enable measurement of data quality for a specified area(s) of the bank\nHelp orchestrates the root causes of quality deficiencies and remediation plans\nWithin the context of Data Governance, builds and sustains the day-to-day relationships and communications with business partners at various levels of the organization, as well as other internal and external resources\nWork closely with Data Architect(s) and Application Architects to ensure alignment of data governance processes and deliverables with systems architectures. Create and deliver artifacts including but not limited to data models, data lineage and data flow diagrams\nEnsures linkage with key bank initiatives\nLeads and/or contributes to regular core team and key governance forums (e.g. North-South Data Governance Working Group Meeting, Data Quality Meeting, Data Model Meeting, Decision Forums) to review progress and initiatives with key constituents.\nRepresents the objectives the Data Governance program in various business process and technology projects and inter-departmental forums\nProvides leadership, motivation, coaching, mentoring and professional development for junior resources in order to obtain a high level of co-operation and contribution from all project members\nContributes to improve the best practices of the data governance community within the Enterprise to help drive consistency, transparency and execution excellence\nQualifications\nKnowledge\nBachelor\u2019s degree in Business, Finance, Engineering or Information Systems, or an equivalent combination of education and experience. A Master\u2019s degree is preferred, as is experience with statistical analysis and/or data architecture. Candidates not meeting the degree requirement should possess the equivalent of 15 years of relevant education and experience.\nA minimum of five (5) years of combined experience and in-depth knowledge of reference data governance, data quality, change management, Banking, 3+ years in business analysis, developing standards, processes, specifications and policies\nReference Data (Master Data Management , Source to Valid Table mappings, Industry Standards like ISO codes) and Tools (IBM Infosphere is preferred)\nUnderstanding of Data Governance and Data Quality Management\nExposure to multiple business units in BMO\u2019s environment to understand the linkages and dependencies\nStrong knowledge of a specific area of BMO business (e.g. Capital Markets, Risk, Personal Banking, etc.)\nSkills\nWell versed in data governance, information management frameworks; Understanding of Master Data management, relational databases and reference data management would be essential\nStrong knowledge of data structures and ability to efficiently manipulate/query data\nExcellent oral/written communication (including experience in facilitation)\nAbility to apply and coach the principles of operational excellence, development of problem statements and action plans, as well as value stream mapping, project planning and systematic problem solving\nExcellent relationship management and consulting skills with proven ability to quickly earn the trust of sponsors and key stakeholders, mobilize and motivate teams; set direction and approach, resolve conflict, execute with partial information and ambiguity\nLeadership capabilities\nCapable of driving initiatives within a line of business and across the enterprise\nKnowledge in the use of data governance, profiling, analysis, and management tools\nBusiness and technical writing skills\nExpert presentation skills which bring clarity and precision to help management understand and visualize complex material to support organizational decision-making\nExcellent problem-solving and critical-thinking skills to recognize and comprehend complex data governance issues, policies, regulatory requirements and industry information affecting the business environment\nMust be proactive, and have the ability to work independently/efficiently and to thrive in a fast paced environment, as well as the ability to work collaboratively with cross-functional teams.\nUnderstanding of banking, capital markets products and ISO/reference data sets\nAt least 2 years with hands-on usage of IBM MDM tools or equivalent with explicit knowledge of the MDM tool functions, features, and core MDM capabilities supported\nWe\u2019re here to help\n\nAt BMO we have a shared purpose; we put the customer at the centre of everything we do \u2013 helping people is in our DNA. For 200 years we have thought about the future\u2014the future of our customers, our communities and our people. We help our customers and our communities by working together, innovating and pushing boundaries to bring them our very best every day. Together we\u2019re changing the way people think about a bank.\n\nAs a member of the BMO team you are valued, respected and heard, and you have more ways to grow and make an impact. We strive to help you make an impact from day one \u2013 for yourself and our customers. We\u2019ll support you with the tools and resources you need to reach new milestones, as you help our customers reach theirs. From in-depth training and coaching, to manager support and network-building opportunities, we\u2019ll help you gain valuable experience, and broaden your skillset.\n\nTo find out more visit us at https://bmocareers.com .\n\nBMO is committed to an inclusive, equitable and accessible workplace. By learning from each other\u2019s differences, we gain strength through our people and our perspectives. Accommodations are available on request for candidates taking part in all aspects of the selection process.\nJob\nAnalytics & Reporting\nPrimary Location\nCanada-Ontario-Toronto\nOrganisation\nData Governance & Analytics-X004874\nSchedule\nfull-time\nJob Posting\n10/17/18\nUnposting Date\nOngoing" + }, + { + "link": "https://www.indeed.ca/company/Crescendo-Technology-Ltd./jobs/Post-b6eb4580f40dc35f?fccid=096d74b4b0669f4c&vjs=3", + "location": "Toronto,ON", + "title": "Post 1011: Data Scientist", + "company": "Crescendo Technology Ltd.", + "salary": NaN, + "desc": "The Data Scientist be responsible for collecting, storing, cleaning, visualising, analysing, interpreting and modelling data relevant to sports betting markets in order to recognise patterns and trends in betting markets.\nOur ideal candidate should have:\nExpertise in R and other statistical programming languages (3+ years)\nMinimum 2 years of experience with frequentist and bayesian statistical methods\nExperience working with machine learning algorithms, probabilistic models and/or other statistical modelling approaches\nSolid experience with modern R packages such as diplyr, ggplot2, data.table\nSolid experience in front-end R technologies for data products such as ShinyR/FlexDashboards\nAbility to write complex SQL queries\nGood software engineering design principles, such as design patterns, and be able to write code to solve problems\nProficiency in written and spoken English\nWe offer:\nAn environment passionate about growth and learning\nCompetitive salary with bonus\nFitness subsidy program\nFree beverages in the office\nWorkplace that is conveniently located along the Yonge/Sheppard line\nWhat we are looking for:\nThis is a key role within the team and would suit someone who is passionate about working with data/data science. We are looking for someone with strong background in statistics, modelling and algorithms (machine learning or other) and who has the ability to convey complex information through data visualisation. A thorough understanding and passion for sports and sports betting markets is ideal. Experience with cloud computing as well as python a plus.\nThe above is intended to describe the general nature and level of work being performed. They are not intended to be an exhaustive list of all responsibilities, duties and skills required. For a full description, please contact us directly.\nCrescendo Technology thanks all candidates applying but only those selected for an interview will be contacted. Selected candidates may be asked to complete an on-line technical assessment.\nCrescendo Technology is an equal opportunity employer which values diversity in the workplace and we encourage candidates to email their resume with a subject title of POST 1011: Data Scientist. Should you require an accommodation for the recruitment/interview process, please do not hesitate to reach out to us via the email noted above.\nJob Type: Full-time\nExperience:\nR and other statistical programming languages: 3 years (Required)\nfront end R technologies (diplyr, ggplot): 2 years (Required)\nprobabilistic models: 1 year (Preferred)\nmodern R packages: 2 years (Required)\nfrequentist or bayesian statistical: 2 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c583d70f2e9b7d66&fccid=9efd73339764940c&vjs=3", + "location": "Toronto,ON", + "title": "Geospatial Data Analyst", + "company": "Star Media Group", + "salary": NaN, + "desc": "Job Description (EN)\n\n\nIn this role, the Geospatial Data Analyst will report to the Manager, Revenue Analytics and work closely with our sales teams. As the Geospatial Data Analyst, you will be responsible for delivery of reports and analytics and insights of our digital and print flyer activity. You must possess a combination of data analytic skills with geospatial skills and have an analytical mindset with a keen business acumen. You must also be passionate about delivering deep analysis with meaningful insights, and impactful business recommendations that enable our sales staff and contribute to revenue generation, helping to foster a data-first culture across the organization.\n\nResponsibilities\nWork closely with the Sales and Data teams to deliver geographic, demographic and sales analysis of our flyers, digital flyer site, and other digital sites\nConduct analysis using demographic, psychographic and customer expenditure data and mapping software to determine distribution patterns\nGain a deep understanding of KPIs\nEnsure advertiser reporting needs are fulfilled and the analysis we are providing is evolutionary and progressive, helping to drive successful business decisions\nEnsure data presented is detailed, easily understood and inclusive, ensuring consideration of the big picture\nHave a high attention to detail, double checking data and results for accuracy\n\nQualifications\nGeospatial\nMaster, Post Grad Certificate or Bachelor Degree in GIS, Spatial Analysis, Geography, Urban Planning, Statistics or Data Analytics\nAdvanced experience using ArcGIS Pro, AGOL, Server and Enterprise\nAdvanced experience using Statistics Canada or Environics Analytics\u2019 demographic and psychographic data\nTrained in programming and ability to create custom script tools in ArcGIS using arcpy (Python 2.7 or higher)\n\nDatabases\nAdvanced experience using SQL\nExperience in creating effective visualizations through ESRI tools, and Tableau\nExperience with data-management systems, working with large data-sets and creating reporting surrounding the data\nKnowledge of Google Analytics\n\nPlus!\nExcellent written and verbal communication skills\nAttention to detail\nAbility to prioritize and organize\nHighly motivated independent worker\nFriendly and easy to get along with\n\nThe company is committed to providing an inclusive and barrier free recruitment process to applicants with accessibility needs in accordance with the Ontario Human Rights Code and the Accessibility for Ontarians with Disabilities Act (AODA). If you require an accommodation during this process, please inform the company of your requirements." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=18d631cf9ffc58b8&fccid=34c1e38211e06251&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "GS-1 Canada", + "salary": NaN, + "desc": "Position:\nData Analyst\n\nReports To:\nManager, Data Governance & Data Analytics\n\nTier:\nStaff\n\nDepartment:\nData Governance & Service Optimization\n\nCompany:\nGS1 Canada\n\nLocation:\nToronto\n\nStatus:\nContract, (14 Months)\n\nJob Number:\n1262\n\n\n\nCompany Profile:\nWe are a member organization of GS1, the world\u2019s leading supply chain standards organization. As a neutral, not-for-profit organization, we enable our more than 20,000 subscribers \u2013 organizations of all sizes from over 20 sectors across Canada \u2013 to enhance their efficiency and cost effectiveness by adopting electronic supply chain best practices.\nWhat We Do:\nWe develop standards that improve the way that business is conducted and allow Canadian businesses to compete on a global scale.\nWe deliver implementation services that enable businesses to implement standards to achieve supply chain efficiency.\nWe educate industry on how to incorporate collaborative commerce tools and processes into their businesses through seminars, conferences, and published guides and standards.\nWatch our video: GS1 Canada Overview\nWho We Represent:\nAs a user-driven and governed organization, our subscriber base includes organizations of all sizes across a wide range of industries and sectors located across Canada and around the world.\nKeys To The Role\nThe Data Analyst will support GS1 Canada\u2019s industry exclusive Dashboard. This includes weekly data processing and validation of master data files, quality assurance testing and ongoing product development and process optimization.\nThe Data Analyst also plays an integral role in supporting Industry Managed Services (IMS) with subscriber and service level reporting and analysis. Working closely with other analysts, the candidate will extract, process and summarize subscriber data and be instrumental in ensuring data quality and integrity throughout the process.\nThe Data Analyst will assist the Manager of Data Governance & Analysis to translate business requirements into technical and functional solutions that allow IMS to deliver value added services to existing subscribers and promote enrolment of new subscribers which support cost recovery in the not-for-profit model.\nDuties and Responsibilities\nExecute the refresh of GS1 Canada\u2019s Dashboard \u2013 a portal used by retailers to evaluate vendor compliance to services essential for commerce.\nValidate retail data against GS1 Canada registries for completeness and perform quality assurance prior to promotion to production\nTransforming, validating and modeling data with the purpose of understanding and drawing conclusions.\nLiaise with senior and executive level stakeholders to identify criteria for business reporting and execute the technical solution delivery.\nEvaluate business requirements gathered from multiple sources and identify underlying business needs vs wants and work with Manager to prioritize development efforts.\nCreate reports that go beyond presenting the numbers, but tells a story about the data being evaluated.\nValidate system integrity through report generation and analysis from various internal databases as required (i.e. CRM, ECCnet Registry and Item Centre).\nAssist with conducting full lifecycle data analysis and evolving analysis and reporting capabilities.\nChampions initiatives to enhance data quality by identifying opportunities for continuous improvement and efficiencies in reporting, analysis and/or product development\nEstablish a brand identity by standardizing report processes and generating output with consistent results, accurate information and quality fit and finish.\nEngage with Data Governance to document and maintain procedures for data management and reporting standards;\nEnsure ongoing understanding of relevant emerging technologies and services provided by GS1 Canada.\nRequired Knowledge, Skills, and Experience\nUniversity degree or college diploma in business or a related area of study, with a focus on problem solving, analytics/mathematics and critical thinking\nA minimum of 2-3 year\u2019s work experience, preferably in data management and reporting capacity\nBackground in business intelligence (BI) and familiarity with master data management highly preferred.\nAbility to analyze, understand and effectively communicate/confirm business reporting requirements, technical design and implementation\nMeticulous with high attention to detail\nProven ability to apply critical thinking. Able to read between the lines to extrapolate requirements not explicitly written or identified and anticipates next steps\nTakes pride in their work and validates with vigour to ensure accuracy and correctness\nDisplays passion and optimism; inspires respect and trust; exhibits confidence in self and others\nDemonstrated ability to interact in a professional and efficient manner\nExcellent interpersonal and communication skills with ability to positively influence others to promote engagement\nAble to speak and present to stakeholders at all levels\nStrong organizational focus, with demonstrated analytical, problem solving and planning skills\nDemonstrated and proven high level of proficiency with MS Office (Excel, Outlook, Word, and PowerPoint) with preference given to those with advanced expertise in Excel and familiarity with MS Access or other relational database systems\nWorking knowledge of Microsoft Dynamic CRM would be an asset\nExposure in coding SQL and/or VBA is desired\nProven ability to work on multiple projects, multitask and prioritize in a fast-paced environment\nEntrepreneurial spirit suited for fast-paced, results-based environment, requiring flexibility to ever-changing needs\nGS1 Canada is an equal opportunity employer. If selected for an interview, please advise our Human Resources team if you require accommodation due to a disability during the interview and assessment process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=6922aeca0acf7abb&fccid=e8f16623c3fdf968&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "4FMV Inc.", + "salary": NaN, + "desc": "Contract\n4FMV is looking for a Sr. Data Analyst on a contract basis for a client in Downtown Toronto.\nPurpose of Role:\nTo build various statistical models (e.g.: optimization, predictive, etc.) to help answer our clients\u2019 media performance-related questions.\nResponsibilities:\nPost-campaign analysis (a.k.a Post-Implementation Reports (PIR))\nBuild statistical models using R and Python for data analysis\nGather data from multiple sources and manipulate for analysis\nRequirements:\n2- 5 years of experience with a background in Statistics and statistical modelling\nExposure to media data and experience in banking/financial industry (Statistics background will suffice)\nExposure to large amounts of data is a plus (make sure this is quantified in resumes)\nProficient in R or Python\nStrong SQL experience is a plus" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bc5cc56c3a5e9d32&fccid=e5595c68b69ef77d&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "WGames Inc.", + "salary": NaN, + "desc": "Join WGames team and work on the leading edge of technology and state of the art applications within the Gaming Industry. We are seeking a high energy, career minded professional who will help us deliver relevant content to our users as well as to improve the quality of the data that is captured. This person will responsible for the following:\nKey Accountabilities\nTake direction from stakeholders to perform ad-hoc data analyses using SQL and open source tools such as Python and/or R and present findings.\nContribute in the development and maintenance of data products for periodic reports, datasets for statistical or forecasting models.\nMine, organize and analyze user behavior to assist in providing strategic insights, reports and actionable items for Marketing, Monetization and Executive teams.\nWork closely with the Data Science team on the large scale data-driven pipeline.\nSkills and Experience\nBachelor\u2019s degree (or equivalent) in quantitative area, preferably Statistics, Mathematics, Economics, or similar analysis-driven discipline.\nProduction experience with experimental design, statistical analysis.\nSolid background in Statistics.\nExperience with monitoring and analyzing Key Performance Indicators\nCompetency with SQL, working knowledge of R or Python, as well as overall computer and programming literacy.\nHighly analytical with great attention to detail.\nExperience with data visualization tools, e.g., Tableau, ggplot, matplotlib, plotly or similar.\nPassion for analytics-driven to understand and interpret data, rather than merely producing reports.\nPreferred Education and Experience Level\nHonours or graduate degree in mathematics or statistics.\nMinimum 3+ years of experience working for a major institution in the role of a data analyst or equivalent practical experience.\nHands-on experience with Google Cloud BigQuery.\nExcellent knowledge and proven fluency with at least one of the following:\nPython packages: pandas, numpy, scipy\nR packages: dplyr, caret, tidyr\nCompany Perks\nPersonalised meals: Enjoy your breakfast and lunch own personalized meals by our in-house Nutritionist & Chefs. We also have an endless supply of snacks and drinks.\nHealth benefits: Our employees are fully covered by health, dental and vision care. We have a great benefits package and have you covered from day one.\nVideo games: Whether having lunch or on a break, we have a designated gaming lounge to keep you entertained.\nSocial events: We celebrate almost everything here. Whether it\u2019s your birthday or a coming holiday, we like to take every opportunity to have some fun and socialize amongst our team.\nFitness membership and many more perks." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ba014f9d03e9d3d5&fccid=354f4c12e3c6bd5a&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst, Data and Insights", + "company": "Aviva", + "salary": NaN, + "desc": "Our Data and Insights team is growing, we are seeking top talent. As a Data Analyst, you will be accountable for designing and creating various databases and reporting tools that are critical in managing performance, market analysis, and underwriting analysis in Commercial Insurance and GCS. Equipped with strong BI/IT and business acumen, the key responsibility of the Data Analyst is to liaise effectively between the business users and other IT groups to deliver the best reporting solution in order for the business to make the right decisions.\n\nThe Data Analyst must have a very good understanding of database design as well as programming experience in SAS. She/he will demonstrate familiarity with general database structures; including design, data management, and analysis; and thrive in a fast paced, deadline driven environment.\n\nThe candidate will proactively be involved in understanding business needs, organize and construct abstract requirements and provide valuable, actionable business solution. The candidate is also required to have high level of technical skills and system knowledge to assimilate disparate information from various systems / applications into a cohesive MI report / dashboard.\n\nAccountabilities:\nBuild, support and enhance Business Intelligence reports, dashboards and interactive tools to meet Commercial Insurance business needs and requirements leveraging common definitions, consistent toolsets and development methodology\nSustain monthly and weekly report SLA; build reports and provide ad-hoc data and reports to the business, respond to report intakes and provide end user training on MI report\nLog, resolve and investigate data deficiencies and defects in the data warehouse.\nWork with various business teams to clearly understand reported issues and requirements in order to deliver what they \u2018need\u2019 in a timely fashion.\nRecommend and implement actions to improve operational and reporting efficiencies.\nMaintain high level of MI reporting quality.\nContribute to development and data refresh of the NCI Dashboard on the Qlik Sense Application\n\nRequired Qualifications, Knowledge, and Skills:\nBachelor\u2019s degree (Computer Science, Mathematics or Business Admin.)\n2+ years in Business Intelligence Analytics or Reporting\n2+ working experience with Business Objects tool suite\n2+ years working experience with SAS Enterprise Guide\n2+ years working experience with database, data modeling, database concepts, design and structures.\nStrong capability in Microsoft Excel\nStrong business knowledge and technical skills to deliver optimal, appropriate and accurate information to the business using a variety of reporting tools.\nSelf-starter and proactive attitude with capability to effectively execute end-to-end deliverables.\nStrong written and verbal communication skills with experience communicating at all levels.\nAbility to manage multiple tasks and meet required deadlines\nAptitude to acquire new technical skill sets to keep pace with evolving data landscape.\nStrong analytical skills and detail oriented.\nProven ability to embrace change, be highly adaptable and flexible, decisive and display excellent judgment.\nPrevious experience with Qlik Sense is an Asset\n\nAdditional Information:\nAviva Canada is committed to providing accommodations for people with disabilities during all phases of the hiring process including the application process. If you require an accommodation because of a disability, we will work with you to meet your needs. Applicants need to make their needs known in advance. If you are selected for an interview and require an accommodation, you are encouraged to advise the Talent Acquisition Partner who will consult with you to determine an appropriate accommodation." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=537ed7cd91034e41&fccid=822bc5d9a49270ea&vjs=3", + "location": "Toronto,ON", + "title": "Master Data Analyst", + "company": "Walmart Canada", + "salary": NaN, + "desc": "The Master Data (MD) Analyst is responsible for ensuring that all data pertaining to master data records is set-up and maintained with high quality. The MD Analyst will work closely with teams across the business to support the creation and ongoing maintenance of high quality item data, ensure master data processes and guidelines are enforced, and serve as a subject matter expert related to master data.\nPosition Responsibilities\nWork alongside merchandising and other relevant teams to ensure accuracy and timely execution of all requests received for the creation and maintenance of master data, and maintain the requests through a formal process\nUnderstand and communicate master data updates (e.g., maintenance, introduction of new fields, modification in attribute definition etc.) that impact downstream systems / teams\nProactively and consistently communicate with business areas to notify them of maintenance activities that may impact their area\nTo support the maintenance of high quality data, proactively monitor data accuracy and facilitate required data corrective actions with business owners\nMaintain clear communication and positive relationships with both internal and external stakeholders\nExecute on the item delisting process on an ongoing basis to ensure that old items are cleansed out of the system\nAd-hoc data cleansing as required (e.g., at the end of a season) to ensure data quality is upheld on an ongoing basis\nSupport and enforce established data standards and guidelines related to master data\nServe as the subject matter expert and central resource to train business owners in master data creation/maintenance and/or the use of supporting tools.\nCanada Walmart Division\nTechnology\nQualifications\nExtensive knowledge of item file and other data-related systems\nUnderstanding of business units within a retail organization\nAbility to manage multiple priorities\nTime management skills\nInterpersonal and communication skills\nAbility to work in a fast-paced environment\nUnderstanding impact to other areas of the business from decisions/findings made during testing or process change\nAbility to train on the appropriate use of master data systems\nStrong analytical and systems thinking skills\nAbility to work independently and proactively\nMust be detail oriented and highly organized\nAbility to work based upon specific timelines and dependencies\nPrior experience working with retail master data considered an asset\nLicensing & Other Qualifications\nMinimum education required: College Certificate or Diploma\nMinimum years of experience: 6 \u2013 8 years\nAccessibility\nWalmart will accommodate the disability-related needs of applicants and associates as required by law." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=74373c0e5a5dacd6&fccid=362a2d4f1e6a5c08&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Groupby Inc", + "salary": NaN, + "desc": "GroupBy is looking for a Data Scientist to advance the state-of-the-art e-commerce search and personalization. Your goal is to build new recommendations and personalization systems that will operate at scale for some of the world\u2019s largest retailers. Day to day, you\u2019ll be applying data mining techniques, doing statistical analyses, researching new methods, running experiments to assess their effectiveness, and sharing your findings.\nWho we are\ne-Commerce has come a long way. It feels easy now. Within hours you can set up an online shop and make your first sale.\nDespite all the advances though, at a certain scale e-Commerce becomes really hard. What if you want to search 10 million products globally, from hundreds of vendors, in 20 languages, being updated 1000s of times per second? That's where GroupBy comes in.\nGroupBy exists to solve the tough problems in e-Commerce: we work with the biggest players in the industry and take on their most complex challenges. We've built a cloud-based, data-driven e-Commerce platform for product data enrichment, intelligent search, personalization, analytics, and other building blocks of a great online shopping experience.\nWe solve these problems by surrounding ourselves with people who love what they do and are given the freedom to excel at it. Our team is comprised of passionate, innovative thinkers who work together to create groundbreaking products. We like working with awesome people and we like helping these people become even better.\nWe are very proud of the culture and diversity at GroupBy. You will be part of a company with open office spaces, free weekly lunches, monthly social events, a closet full of snacks and beverages, flexible hours, and a games room. We invest in your growth as a professional with open workshops and company funded training for events and attending conferences - after all, you're here to solve tough problems!\nThis past summer Groupby was honored with a spot on LinkedIn Top Startups 2018: The 25 most sought-after startups in Canada LinkedIn Top 25\nLearn more about who we are by visiting www.groupbyinc.com\n\nWhat you\u2019ll be doing\nUnderstanding the problem: what is the current state-of-the-art, and what\u2019s wrong with it? Review the literature, look at the competition, talk to stakeholders - understand the problem.\nGetting the data: do we have the data? If not, how do we collect it? How/where should we store it? You\u2019ll work with our data engineers to answer these questions and get the data you need.\nExplore and Prepare: despite our best efforts, our data is dirty just like everyone else\u2019s. So yes, there will be some cleansing to do, but through exploration and over time you\u2019ll develop an intuition for what the data can and can\u2019t do, and the best practices for working with it.\nAnalysis and Modeling: you\u2019ll identify and select features, build and optimize classifiers using machine learning techniques. Expect to also develop custom data models and algorithms to apply to data sets.\nTest and Deploying: through testing you\u2019ll make sure your models will work in production, and that the services you build will operate at scale.\nEvaluating and Iterating: the models work and they scale, but did they have the intended effect? Why or why not? How do we make it better?\nCommunication: give a lunch and learn talk about your latest work. Speak at a meetup or conference. Go on-site to a large retailer, and show their team how you solved their problem.\nTo do these things, you\u2019ll use Google Cloud Platform\u2019s managed data services (like Composer, Dataflow, Dataproc, BigQuery) and modern cloud technologies like Kubernetes to deploy the tools and services you need.\nSkills you already have\nYou\u2019re comfortable with freedom and autonomy: you own your work and do what it takes to drive it forward. You can independently learn new technologies, prototype and propose software design and solutions.\nYou know how to deploy machine learning models to production, at scale. You\u2019ve done it before, and through experience know some good practices.\nYou\u2019re familiar with cloud technologies and cloud services (preferably Google Cloud Platform, but AWS or Azure are good too) and microservices architecture.\nYou have experience using technologies such as MapReduce on a cluster of machines to process large amounts of data.\nProficiency in one or more of the following: Java, Scala, Python, SQL, JavaScript.\nA good understanding of machine learning techniques and algorithms: k-NN, Naive Bayes, SVM, Decision Forests, etc.\nExperience developing A/B experiments.\nExperience with data visualization tools, such as D3, Matlibplot, Plotly, Tableau.\nGood applied statistic skills, such as distributions, statistical testing, regression, etc.\nExcellent communication skills; you\u2019ll work cross-functionally across multiple teams.\nExperience manipulating data sets and building statistical models at scale.\nMaster\u2019s or PhD in Statistics, Mathematics, Computer Science, or another quantitative field is preferred but not required.\nMust live in TORONTO, ON.\nWe thank all candidates who applied but only those selected for an interview will be contacted." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=32edf83a485ebe9d&fccid=a3cae3fbb4535645&vjs=3", + "location": "Toronto,ON", + "title": "Geospatial Data Analyst", + "company": "Region of Peel", + "salary": NaN, + "desc": "Contract\nThe Region of Peel serves a vibrant and culturally diverse community of more than 1.4 million residents and 163,000 businesses in Brampton, Caledon and Mississauga. Committed to service excellence, transparency in decision-making and responsible tax management, the Region delivers a wide range of municipal services that are customer-focused and cost-effective.\n\nThe Region of Peel has recently completed a Strategic Planning process that engaged our residents and stakeholders to answer one question: \u201cWhat can you imagine for the future of Peel?\u201d All the feedback received formed the path forward and the strategic direction for the Region over the next 20 years.\n\nTo learn more about the Region of Peel please visit our website or watch the Faces of Peel video to see how our employees impact the residents of Peel.\n\nJob Description\nGeospatial Data Analyst\nPublic Works \u2013 Operations Support\nContract Full-Time, duration eighteen (18) months\n\nThe Geospatial Data Analyst brings technical skills and expertise to the Information Management team ensuring that the service delivered effectively and efficiently supports the information and process automation requirements of the Public Works client. This position reports directly to the Supervisor, Information Management group and indirectly to the Manager, Information Management and Technology. The Geospatial Data Analyst is responsible for the development and support of the GIS technical environment for the Public Works clients with focus on the utilization of the ESRI suite of products\n\nResponsibilities:\nAs a key client contact, identify opportunities and innovations that would potentially enhance business processes as well as maintain client relationships for continuous support and enhancements to implemented solutions\nAssess proposed solutions to determine which solution best fits the needs of business, identify gaps, and determine necessary changes to the solution\nCoordinate end to end solution with technical developer and infrastructure team wherever necessary\nProvide advice to clients on spatial analysis, mapping and cartography\nProvide guidance including staff training and orientation on features related to ArcGIS Desktop and ArcGIS Online for Organizations\nMentor fellow Geospatial Data Analysts on support of all technical solutions installed\nWork in partnership with clients, colleagues and project teams to design and develop ESRI-based software solutions including external design (navigation, screens, reports) and internal design (software, connectivity, modules, interfaces) in support of Public Works related business requirements\nIdentify opportunities to improve the efficiency and effectiveness of all GIS related applications supporting the Public Works department\nParticipate as an effective team member for service delivery and problem resolution\nMaintain and upgrade skills in relation to new geospatial technologies\n\nQualifications:\nUniversity or college graduate in Computer Science or Geography with a post-graduate certificate in Application Development or GIS or related disciplines with a minimum 2 years\u2019 experience in application development using the ESRI suite of products or an equivalent combination of education and experience\nAdvanced knowledge and proficiency using the ESRI suite of products\nExperience in GIS application development using ArcGIS 10.x Products Suite products\nExperience with SQL and Enterprise Geodatabases on Oracle and SQL Server\nAdvanced understanding of GIS concepts and software including a strong knowledge of the following ESRI products: ArcGIS Desktop, ArcGIS Online for Organizations, Operations Dashboard for ArcGIS and Extensions\nAdvanced understanding of geodatabase design, quality control, GIS data maintenance, query and configuration principles and best practices\nProficiency in writing, interpreting and modifying scripting language commonly used in spatial data applications, particularly SQL syntax and Python scripting\nAdvanced oral and technical writing skills required to document and articulate standards, procedures and/or reference materials\nAdvanced ability to manage time effectively in both solving problems and meeting deadlines\nDemonstrated attention to detail, practical problem-solving abilities, ability to proactively identify opportunities and quickly implement solutions\nStrong interpersonal and communication skills to build and foster partnerships with colleagues, clients, technical team, and management in an audience-friendly manner\nAble to handle fluctuating workloads, conflicting priorities and concurrent activities\nProven experience to work independently and has the desire to learn and share knowledge with team members\nStrong team player with excellent customer service skills\nExercise sound judgement and make decisions within scope of position\nAbility to travel within the Region of Peel\nFamiliarity with Latitude Geographics\u2019 Geocortex software would be considered an asset\nFamiliarity with Public Works related infrastructure-based (water, waste water, transportation and/or waste management) GIS data maintenance would be an asset\n\nLocation: 2 Copper Road, Brampton, ON\nHours of Work: (1) One Contract Full-Time, duration 18 months, working 35 hours per week, Monday-Friday\n\nIf this opportunity matches your qualifications and experience please apply online\nAdditional Information\nAt the Region of Peel, we respect diversity and treat one another in ways that are fair, courteous and compassionate, recognizing everyone\u2019s contributions. As an equal opportunity employer, we are committed to establishing a qualified workforce that is reflective of the diverse population we serve. The Region of Peel is committed to providing accommodations throughout the recruitment process. If you require accommodation please notify us and we will work with you to meet your needs. We encourage applications from all qualified individuals; however, only those under consideration will be contacted.\n\nPlease be advised, the Region of Peel uses email to communicate with their applicants for open job competitions. It is the applicant\u2019s responsibility to include an updated email address that is checked daily and accepts emails from unknown users. As we send time sensitive correspondence via email (i.e. testing bookings, interview dates), it is imperative that applicants check their email regularly. If we do not hear back from applicants, we will assume that you are no longer interested in the Job Competition and your application will be removed from the Competition." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9424c3ae921b6f4d&fccid=bfdac90a7574b77c&vjs=3", + "location": "Toronto,ON", + "title": "Finance Internship Opportunities \u2013 Data Scientist - 2019", + "company": "Nestl\u00e9", + "salary": NaN, + "desc": "Finance Internship Opportunities \u2013 Data Scientist\n\nAre you a data enthusiast? Do you want to make a difference?\nNestl\u00e9 Canada needs YOU!\n\nAs a highly motivated and passionate data scientist, this is your opportunity to get exposure to the Nestl\u00e9 World, gain valuable experience and develop your skills in a vibrant global business environment\n\nGood Food, Good Life is the very essence of Nestl\u00e9. This philosophy can be traced back to our beginnings. The Nestl\u00e9 Company was founded in 1867 by Henri Nestl\u00e9, who developed the first milk-based baby formula. Today, 150 years later, we are recognized as the world\u2019s largest Food and Beverage Company employing around 280,000 people and have factories or operations in almost every country in the world. Nestl\u00e9 Canada has a wide variety of food, beverage and nutrition products to help you and your family live happier and healthier lives including: Gerber and Good Start, Nescaf\u00e9, KitKat, Smarties, Aero, Delissio, H\u00e4agen-Dazs, Boost, Purina, and Nestl\u00e9 Waters. Nestl\u00e9 Canada supports your personal growth with a people-focused culture and a flexible and diverse working environment. Our aim is to create a unique career experience for talented young professionals like you. Join us to find out why, There is more to Life at Nestl\u00e9\u2026\n\nPROGRAM:\nOur exciting Finance Data Scientist Internship Opportunity is now open; we are seeking talented students to join our Finance Analytics Solutions Team from May to August 2019.\n\nThe position will be based out of our Head Office in North York working with the Finance Analytics Solution Team. The purpose of the Analytics Team is to empower their business partners by providing powerful tools and insightful analytics. The data scientist intern will explore data, answering questions and finding new business opportunities. You will perform ad hoc analysis producing valuable insights to business stakeholders. You will engage with stakeholders to understand the business needs to produce insightful, actionable analytics and KPIs.\n\nThis is your chance to add value to the business by working on key decision support solutions from various facets of our business. This will help you build your business acumen and leadership capabilities, and support your development and long term success.\n\nWE ARE LOOKING FOR PEOPLE WHO:\nHave a passion for solving challenging issues.\nCan see the story behind the numbers.\nAre curious for discovery, thinking outside the box.\nCan understand the user needs and translate the \u2018tech\u2019 language.\nQUALIFICATIONS:\nCurrently enrolled in a Computer Science program or a related discipline.\nA proactive creative thinker who can generate new ideas/solutions to meet end user requirements.\nAbility to cultivate business relationships with strong interpersonal, communication and presentation skills.\nFast learner, and must be comfortable working within a dynamic, challenging environment.\nResults oriented with proven exceptional analytical and critical thinking skills.\nGood foundational understanding of statistical, predictive modelling, machine learning.\nStrong coding skills.\nExperience with data visualization tools is a plus (QlikView, Microsoft BI)\nPlease note: Background Checks will be administered on all suitably qualified candidates.\n\nIf you believe you have the profile we are looking for and you want to make your mark in the World\u2019s Largest Food and Beverage Company, we look forward to hearing from you!\n\nNestl\u00e9 is an equal opportunity employer committed to diversity and inclusion. If you are selected to participate in the recruitment process, please inform Human Resources of any accommodations you may require. Nestl\u00e9 will work with you in an effort to ensure that you are able to fully participate in the process.\n\nWe thank you for your interest in this opportunity; however only those\nindividuals selected for an interview will be contacted.\n\nThe closing date for this position is October 18, 2018\nPrimary Location\n: Canada-Ontario-North York\nJob\n: Finance\nSchedule\n: Full-time\nJob Posting\n: Oct 10, 2018, 12:22:40 PM" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=604c1e5812a42d2f&fccid=785af18d53962443&vjs=3", + "location": "Toronto,ON", + "title": "Product Data Analyst", + "company": "FreshBooks", + "salary": NaN, + "desc": "FreshBooks has a big vision. We launched in 2003 but we're just getting started and there's a lot left to do. We're a high performing team working towards a common goal: building a world class online accounting application to help small businesses better manage their finances. Known for extraordinary customer service and based in Toronto, Canada, FreshBooks serves paying customers in over 120 countries.\n\nThe Opportunity - Product Data Analyst\n\nFreshBooks is seeking a Product Data Analyst who will enable our Product team to measure the impact of what we ship, and derive actionable insights so that we can deliver even better product in the future. If you're passionate about using data to help deliver world-class products for our customers -- this job is for you.\n\nWhat you'll do:\nHigh-Level\nWork hand-in-hand with Product Managers (PMs) throughout the Product Lifecycle \u2013 from inception, to design, shipping, and beyond.\nYou understand what drives the business, and how different customer behaviour affects the business\nPlanning\nWork with PMs to formulate the right questions so the data we collect is meaningful & actionable\nBe ruthless about prioritizing the most important questions so we don't get stuck in analysis paralysis\nDesign experiments (e.g. A/B tests), instrumentation & data plans\nConsult with Data Engineers to ensure raw data will be captured in the right format for analysis\nBuilding\nDefine & build complex SQL queries from multiple data sources for new products & features\nBuild analytics dashboards across our existing products & features to help answer questions and gain insights\nAnalysis\nAnalyze data into useable information and actionable insights for PMs\nMake recommendations based on the insights you uncover \u2013 things like new features, product enhancements, UX changes, etc.\nWork with Product Managers to communicate the impact of what we ship & what we've learned to stakeholders around the company\nWhat you have:\nIntangibles\nA passion for great products and user-experiences\nAn analytical and inquisitive mind \u2013 you leave no stone unturned because you're curious what's underneath.\nA knack for communicating complex concepts in simple terms. You could explain SQL to a golden retriever, no sweat.\nYou are scrappy and always figure out a way to get the job done.\nHard Skills & Experience\n1+ years of experience in software/tech industry\n3+ years in data analytics and/or business intelligence (working with Product teams a plus)\nAdvanced knowledge of SQL. You're not a Developer, but you're not afraid to get your hands dirty and write code (e.g. building ETLs from external and internal data sources, scraping and transforming data from different sources)\nExperience developing dashboards with tools such as Periscope, Looker, Tableau, Excel etc.\nExperience calculating and tracking product metrics (e.g. M/DAU, usage breadth/depth, engagement funnels, etc.)\nExperience calculating and tracking key SaaS financial metrics a plus (e.g. Conversion, Churn, ARPU, etc.)\nKnowledge of R or Python is an asset\nWhy Join Us?\n\nWe're an ambitious bunch, with our eyes laser-focused on shipping extraordinary experiences to small business owners. In this role you will be working at the forefront of marketing analytics surrounded by talented team members who share a common vision for building an amazing software company right here in Toronto. If this sounds like something you would be interested in, we'd like to meet you.\n\nFreshBooks provides employment accommodation during the recruitment process. Should you require any accommodation, please indicate this on your application and we will work with you to meet your accessibility needs. For any questions, suggestions or required documents regarding accessibility in a different format, please contact us at phone 416-780-2700 and/or accessibility@freshbooks.com." + }, + { + "link": "https://www.indeed.ca/company/Systelos-Inc./jobs/Data-Engineer-f00b246f6ba0ee20?fccid=1008778392adf798&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Systelos Inc.", + "salary": "$80,000 - $90,000 a year", + "desc": "$80,000 - $90,000 a year\nre you passionate about technology and want to use machine learning to solve real-world problems?\nSystelos is a discovery and communication platform that intelligently interprets data to provide actionable insight. We are seeking individuals that have a proven record of designing, building and deploying applications to join our team of dedicated engineers to rapidly deploy innovative solutions. Our fast-moving environment requires independent thinkers, quick decision-makers and teamwork.\nKey qualifications\nBachelor\u2019s degree in Computer Science, Math, Statistics, Economics, or other quantitative field\n2+ years work experience as a data scientist or data engineer\nDemonstrated experience designing and building machine learning solutions to solve complex problems and enhancing machine learning capabilities to expand infrastructure\nExperience developing Big Data/Hadoop applications using Spark, Hive, oozie, Kafka, and Map Reduce is a huge plus\nExperience with some or all of the following: data mining, predictive modeling, statistics, experimental design, computational analytics, econometric modeling\nProficiency in one or more general purpose programming languages such as Java, Python, and/or R\nFluent in SQL and NoSQL\nProficient with back-end web technologies like NodeJS, PHP, Ruby, Java, etc.\nExperienced building web applications using Javascript frameworks like AngularJS, React, VueJS is a plus.\nStrong written and oral communication skills\nMission\nA design thinking methodology coupled with quick and independent decision-making\nThe drive and ownership to take a project from start to finish\nA sense of pride in solving problems in new and innovative ways\nSelf governance and excellent collaboration abilities\nA positive attitude when overcoming day to day challenges\nJob Type: Full-time\nSalary: $80,000.00 to $90,000.00 /year\nExperience:\nSoftware Development: 3 years (Required)\nEducation:\nBachelor's Degree (Preferred)\nLocation:\nToronto, ON (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5febe1f5e2c2fda4&fccid=d4448c192a012f32&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist / Actuary", + "company": "Munich Re", + "salary": NaN, + "desc": "Data Scientist / Actuary (m/f) *\nPosition with Munich Re Life & Health North America's Data Science team.\n\nIn keeping with our global position as in industry leader and innovator, Munich Re is driving transformative change in the life insurance industry through data science. The role of data scientist will apply statistical techniques and machine learning to build solutions to core challenges in the life insurance industry. You will be immersed in real-time business problems while engaged in a collaborative approach to delivering world-class, innovative solutions for our North American operations. We see the use of data as instrumental in making it easier for people to buy life insurance and to expand the number of people insured.\nYOUR JOB\nJob Responsibilities\nApply advanced statistical and machine learning techniques to build models for underwriting, pricing, and claims management\nHelp us to drive innovation, enabling new underwriting paradigms, distribution models, and data management\nBuild and implement solutions that enable operational units to improve quality and speed of core processes in order to generate incremental revenue or reduce expense.\nProactively research new ways of modeling data to unlock actionable insights or improve processes\nCollaborate across Munich Re functions and with clients to use analytics to influence business decisions\nNetwork with existing data science groups at Munich Re. Collaborate with internal partners in Munich Chief Data Office to leverage capabilities in big data technology.\nYOUR PROFILE\nQualifications First and foremost, the successful candidate will demonstrate a natural desire to provide exceptional client service through his/her energy, enthusiasm and initiative. In addition, we are looking for the following qualifications:\nUndergraduate Degree in Computer Science, Engineering, Statistics, or Applied Mathematics with 3 years\u2019 experience, OR Graduate Degree in Computer Science, Engineering, Statistics, or Applied Mathematics\nInsurance or financial services background is preferred but not required\nBackground in actuarial science attained through experience or credentials is required\nExpertise in advanced predictive analytic techniques\nFluency with SQL, Python, or R\nExperience working with analytics through the modeling lifecycle including gathering data, design, recommendations, testing, implementation, communication, and revisions\nExcellent communication skills, effectively interpreting modeling results, distilling actionable insights and presenting them to partners\nThe ability to learn quickly\nA drive to make a difference\nThrive in a dynamic environment and successfully deliver on multiple assignments under deadlines\nWe shape the future by offering employees the competitive framework to realize their personal and professional potential; if you are driven to take your career to the next level, it\u2019s time to join Munich Re.\n\nMunich Re is one of the world\u2019s leading reinsurance companies with approximately 45,000 employees in over 50 locations around the globe. As an industry leader, we provide a unique opportunity to be part of a global success story. We offer our employees a diverse and challenging work environment which champions high performance, professional development, innovation and passion; and rewards top performers with a highly competitive total rewards package.\n\n\n\n\nWe thank all candidates for their interest. Munich Re Canada is committed to providing a work environment that is inclusive and free of employment barriers and discrimination. Accommodations will be made for qualified applicants with a disability throughout the recruitment process. If you receive a request for an interview and you have a disability which will require an accommodation to support your participation, please consult with human resources or contact AODARequestHR@munichre.ca as soon as practical so that suitable accommodations can be arranged." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2ced834dff4095a6&fccid=bfdac90a7574b77c&vjs=3", + "location": "Toronto,ON", + "title": "Finance Internship Opportunities \u2013 Data Scientist - 2019", + "company": "Nestle Canada", + "salary": NaN, + "desc": "Finance Internship Opportunities \u2013 Data Scientist - 2019(Job Number: 180007EF)\n\nDescription\nFinance Internship Opportunities \u2013 Data Scientist\n\nAre you a data enthusiast? Do you want to make a difference?\nNestl\u00e9 Canada needs YOU!\n\nAs a highly motivated and passionate data scientist, this is your opportunity to get exposure to the Nestl\u00e9 World, gain valuable experience and develop your skills in a vibrant global business environment\n\nGood Food, Good Life is the very essence of Nestl\u00e9. This philosophy can be traced back to our beginnings. The Nestl\u00e9 Company was founded in 1867 by Henri Nestl\u00e9, who developed the first milk-based baby formula. Today, 150 years later, we are recognized as the world\u2019s largest Food and Beverage Company employing around 280,000 people and have factories or operations in almost every country in the world. Nestl\u00e9 Canada has a wide variety of food, beverage and nutrition products to help you and your family live happier and healthier lives including: Gerber and Good Start, Nescaf\u00e9, KitKat, Smarties, Aero, Delissio, H\u00e4agen-Dazs, Boost, Purina, and Nestl\u00e9 Waters. Nestl\u00e9 Canada supports your personal growth with a people-focused culture and a flexible and diverse working environment. Our aim is to create a unique career experience for talented young professionals like you. Join us to find out why, There is more to Life at Nestl\u00e9\u2026\n\nPROGRAM:\nOur exciting Finance Data Scientist Internship Opportunity is now open; we are seeking talented students to join our Finance Analytics Solutions Team from May to August 2019.\n\nThe position will be based out of our Head Office in North York working with the Finance Analytics Solution Team. The purpose of the Analytics Team is to empower their business partners by providing powerful tools and insightful analytics. The data scientist intern will explore data, answering questions and finding new business opportunities. You will perform ad hoc analysis producing valuable insights to business stakeholders. You will engage with stakeholders to understand the business needs to produce insightful, actionable analytics and KPIs.\n\nThis is your chance to add value to the business by working on key decision support solutions from various facets of our business. This will help you build your business acumen and leadership capabilities, and support your development and long term success.\n\nWE ARE LOOKING FOR PEOPLE WHO:\nHave a passion for solving challenging issues.\nCan see the story behind the numbers.\nAre curious for discovery, thinking outside the box.\nCan understand the user needs and translate the \u2018tech\u2019 language.\nQUALIFICATIONS:\nCurrently enrolled in a Computer Science program or a related discipline.\nA proactive creative thinker who can generate new ideas/solutions to meet end user requirements.\nAbility to cultivate business relationships with strong interpersonal, communication and presentation skills.\nFast learner, and must be comfortable working within a dynamic, challenging environment.\nResults oriented with proven exceptional analytical and critical thinking skills.\nGood foundational understanding of statistical, predictive modelling, machine learning.\nStrong coding skills.\nExperience with data visualization tools is a plus (QlikView, Microsoft BI)\nPlease note: Background Checks will be administered on all suitably qualified candidates.\n\nIf you believe you have the profile we are looking for and you want to make your mark in the World\u2019s Largest Food and Beverage Company, we look forward to hearing from you!\n\nNestl\u00e9 is an equal opportunity employer committed to diversity and inclusion. If you are selected to participate in the recruitment process, please inform Human Resources of any accommodations you may require. Nestl\u00e9 will work with you in an effort to ensure that you are able to fully participate in the process.\n\nWe thank you for your interest in this opportunity; however only those\nindividuals selected for an interview will be contacted.\n\nThe closing date for this position is October 18, 2018" + }, + { + "link": "https://www.indeed.ca/company/Nudestix/jobs/Financial-Data-Analyst-2b173187a627876f?fccid=1019a747b633f81c&vjs=3", + "location": "Toronto,ON", + "title": "Financial Data Analyst", + "company": "Nudestix", + "salary": NaN, + "desc": "Permanent\nOrganization Description\nNudestix is a fast growing, entrepreneurial color cosmetics brand founded by beauty veteran Jenny Frankel and her two daughters. Nudestix offers a collection of easy-to-apply, no fuss multipurpose crayons in nude shades. The brand\u2019s motto \u201cgo nude but better\u201d emphasizes the \u201cless is more\u201d philosophy of using makeup to enhance one\u2019s unique beauty rather than covering it up.\nThe Nudestix Financial Data Analyst is a member of our business team, he/she will be part of a fast-paced, energetic environment where he/she will play a key role supporting the finances, reporting, HR, and operations of our organization. Ongoing accountabilities include financial reporting, financial planning, data consolidation and analysis, budgeting, accounting and control, expense reporting and inventory management.\nOther specific responsibilities include but are not limited to:\nFinancial Planning and Business Analysis:\nMaintain company database by collecting and cleaning raw data and updating database on a weekly/monthly basis\nConduct basic to complex process and data analysis. Compile and analyze information, design and prepare spreadsheet and data queries\nSupport with the development and tracking of key business metrics\nMaintain and analyze the Company Monthly Financial Reporting Package for management discussion\nAssist with the preparation of sales budgets and forecasts\nAd hoc analysis report requests from different departments\nAccounting, Systems, and Administration:\nFinancial reporting including account analysis, internal controls and forecasting/budgeting\nManage and maintain company expense reports for sales and marketing departments\nAssist with the implementation of a new employee expense management system\nAutomation and integration of business processes\nDesired Skills and Experience\nGiven the company\u2019s size, anticipated growth and fast-paced environment, the organization require a Financial Data Analyst with a system focus, high energy and initiative who can work alongside the COO and Finance team to lead the organization to the next level of growth and profitability.\nThe ideal candidate will have the ability to work in an entrepreneurial type environment without large corporate infrastructure. Bachelor\u2019s degree required.\nOther specific experience and qualifications include:\nPost-secondary degree in Finance, Commerce, or Accounting\nExposure/basic understanding in data science\nExcellent computer skills with advanced experience in MS Excel, creating and working with complex worksheets (macros, pivot tables)\nStrong internal finance skills including, but not limited to, budgeting and planning, financial systems, management reporting, internal and external controls and accounting\nExcellent analytical and logical reasoning skills, plus excellent organization skills\nSuperior communication skills and ability to communicate effectively, orally and in writing, with various levels of staff within Nudestix and other organizations\nManagerial Skills\nExcellent attention to detail\nExceptional planning and organizational skills\nAbility to prioritize, and multi-task to meet tight timelines\nStrong interpersonal, communication and time management skills\nWillingness learn and improve current processes for higher efficiency\nJob Types: Full-time, Permanent" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4ec9bbd8b4bad862&fccid=960d8f54f5a1520f&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "SnapTravel", + "salary": NaN, + "desc": "The Company:\nSnapTravel's mission is to build the #1 modern travel brand by providing our customers with the best deals over a delightful conversational experience. At SnapTravel, we are working on complex problems within NLP (understanding and replying to ambiguous human messaging), Conversational Commerce (optimizing conversions and user behavior over chat) and Machine Learning (choosing the best hotel automatically from a large data set with complex market dynamics) to push the boundaries of tech and travel globally.\nThe Role:\nWe are looking for a Data Engineer with 2+ years of experience to join our growing Engineering team! As a Data Engineer at SnapTravel, you will be responsible for building highly reliable and scalable ETL pipelines that get large data sets (we do over 10 million searches/day) from various sources to our BI platform. You will have full control over ensuring the accuracy and integrity of all data, and will build pipelines, tools and predictive models to help drive insights and decisions in our Product and Growth teams! In this role you will have the opportunity to build scalable and highly available data pipelines using bleeding-edge tech and tools in one of Toronto's fastest-growing Data Science teams, with a focus on thinking big and moving quickly.\n\n\nOur Tech:\nWe use an SOA architecture powered by many micro-services, including the bot platform, the NLP model and the real-time pricing and recommendation engine\nData pipeline tools including Python, Flume, Kafka/Firehouse, Redshift/Athena and more\nWe have a distributed ETL infrastructure hosted using Docker and AWS\nYour Experience:\nYou have at least 2 years of software engineering experience, at least 1 of which has been in a Data Engineering role\nYou learn quickly, regardless of the languages and technologies used\nYou have experience building scalable data pipelines and powerful reporting tools\nYou love solving complex problems with logical, well-architected solutions\nYou are well-versed in data modelling and have experience building distributed systems\nPredictive modeling and machine learning experience is a strong plus\n\nThe Perks:\nBuild something that matters, and contribute to building a product used by millions of users worldwide\nBenefit from best-in-class salaries, equity stock options, a comprehensive benefits package with flexible Health Spending Account, and more\nWe work flexible schedules to allow for optimal work-life balance. As you start to grow your family, we have a generous Parental Leave Policy to support you as well!\nIn addition to collaborating with top global talent on lots of interesting projects, you'll also have fun working in a diverse, inclusive environment with constant support from both peers and leaders" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c66a52de10aa684b&fccid=537b899e30af3338&vjs=3", + "location": "Toronto,ON", + "title": "Associate Director, Data Analyst", + "company": "RBC", + "salary": NaN, + "desc": "What is the opportunity?\nThe Associate Director, Data Analyst will be responsible for providing data analysis leadership and deliverables for data sourcing projects in Head Office and US International Holding Company (IHC) Chief Data Office (CDO) for Royal Bank of Canada and its subsidiaries operating in the US.\n\nThe incumbent will be in an instrumental role with developing new ways of conducting data analysis efficiently by leveraging technical skills to develop, customize or implement data analysis investigation tools and solutions.\n\nWhat will you do?\nProvides structured approach to eliciting data requirements for data sourcing deliverables; frames requirements with proper context with stakeholders and manage scope expectations\nCollaborates with other U.S. Data Office (USDO) workstreams and Head Office programs regarding cross-functional dependencies and execution of overall data sourcing strategy\nUnderstands the client\u2019s business and translates client vision into high level scope and data design\nContributes to and oversees the analysis of data issues, incorporating quantitative and qualitative factors to evaluate analysis and lead the project to the most appropriate conclusions\nContributes to test case creation; ensuring that test cases are tightly integrated with data requirements specifications\nRecommends business solutions that satisfy sponsor/stakeholder needs while continually exploring and assessing options for value-add for clients\nContributes to the development and execution of testing including coordinating system and acceptance testing\nReviews defects arising from testing, including User Acceptance Testing, and works with stakeholders to resolve them\n\nWhat do you need to succeed?\nMust-have\nUndergraduate or Graduate Degree in Business or Computer Science / Engineering\n10+ years of experience in Financial Services industry with significant deliverables in data-related projects (knowledge of data sourcing, integration, governance and quality)\nProven track record of delivery of large scale data-related projects and change the bank initiatives\nProficiency in SQL\nExperience in Project Management concepts (Project plans, Risk and mitigation, Critical path analysis, Effort and Duration estimation, Resource allocation, and understanding of Gantt Charts etc.)\n\nNice-to-have\nExperience with Next Gen Tools & Environments (Machine learning, Hadoop, etc)\nKnowledge of Agile and Waterfall methodologies\nExcellent written and verbal communication skills, presentation skills (creating effective slide decks for team meetings)\n\nWhat\u2019s in it for you?\nWe thrive on the challenge to be our best, progressive thinking to keep growing, and working together to deliver trusted advice to help our clients thrive and communities prosper. We care about each other, reaching our potential, making a difference to our communities, and achieving success that is mutual.\nA comprehensive Total Rewards Program including bonuses and flexible benefits, competitive compensation\nLeaders who support your development through coaching and managing opportunities\nWork in a dynamic, collaborative, progressive, and high-performing team\nOpportunities to do challenging work\nAbout RBC\nRoyal Bank of Canada is Canada\u2019s largest bank, and one of the largest banks in the world, based on market capitalization. We are one of North America\u2019s leading diversified financial services companies, and provide personal and commercial banking, wealth management, insurance, investor services and capital markets products and services on a global basis. We have over 80,000 full- and part-time employees who serve more than 16 million personal, business, public sector and institutional clients through offices in Canada, the U.S. and 37 other countries. For more information, please visit rbc.com.\n\nJoin our Talent Community\nStay in-the-know about great career opportunities at RBC. Sign up and get customized info on our latest jobs, career tips and Recruitment events that matter to you.\nExpand your limits and create a new future together at RBC. Find out how we use our passion and drive to enhance the well-being of our clients and communities at rbc.com/careers.\n\nInclusion and Equal Opportunity Employment\nRBC is an equal opportunity employer committed to diversity and inclusion. We are pleased to consider all qualified applicants for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, age, disability, protected veterans status, Aboriginal/Native American status or any other legally-protected factors. Disability-related accommodations during the application process are available upon request.\n\nJOB SUMMARY\nCity: Toronto\nAddress: 200 Bay St\nWork Hours/Week: 37.5\nWork Environment: Office\nEmployment Type: Permanent\nCareer Level: Experienced Hire/Professional\nPay Type: Salary + Variable Bonus\nRequired Travel (%): 0-25\nExempt/Non-Exempt: N/A\nPeople Manager: No\nApplication Deadline: 10/26/2018\nReq ID: 172457\nAd Code(s):" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9c977136e5f64e8a&fccid=be3dbfb6ca2ac450&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Canvass Analytics Inc.", + "salary": NaN, + "desc": "Job Description\nAs a Data Scientist at Canvass Analytics, you will be using artificial intelligence to solve some of the most complex processes in the Industrial sector. In this role, you will contribute to the development and deployment of modern artificial intelligence, machine learning, deep learning, operational research, semantic analysis, and statistical methods for finding structure in large data sets. The Data Scientist will regularly work with the Product team in order to disseminate knowledge and skills specific to the operational requirements, collection and handling of Industrial operational data.\nKey Attributes of the Data Scientist Role:\nA strong background in statistics, advanced machine learning technologies and deep learning\nDemonstrated success in solving complex problems using AI, preferably in Industrial environments\nExperience in dealing with variously-structured, massive datasets\nCompetence with rapid prototyping of data analysis procedures and modeling, as well as with iterative development of complex production-bound models\nAbility to take large-scale perspective over their work in order to evaluate delivered value\nOut-of-the-box thinker\nFamiliarity with at least one foundational programming language: C++, Python, or Java\nResponsibilities:\nDevelop and enhance the algorithms and technology that power the Canvass AI Platform\nIdentify, research and realize key machine learning technical capabilities in the industry\nLead, design, and build mid- to high complexity machine learning systems\nClearly articulate point-of-view, taking into account the perspective of all related parties in the machine learning technology solution space\nAdapt communication techniques for audiences at multiple internal/external levels to achieve clear representation of complex concepts and business use cases\nFoster effective learning team environment in machine learning space\nDevelop customer facing reports showing the results and analysis through the Canvass Analytics platform\nRequired Technical & Professional Skills:\nMinimum 4 years professional experience in machine learning\nSelf-reliant; able to work independently and accept responsibility for projects\nWillingness to learn and experiment and a passion for technology\nExcellent communications skills to communicate high level concepts to our development and product teams as well as our customers\nReadiness to travel 20% annually" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a265a8c5c67a4709&fccid=4512634d9e7338a8&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst - TELUS Health", + "company": "TELUS Communications", + "salary": NaN, + "desc": "Join our team\nDo you thrive in a fast-paced, team centric environment? Are you a detailed-oriented individual who loves solving problems by leveraging creative solutions? Do you want to be in a space where your knowledge and experience are used and fostered? Read on as this is the job for you!\n\nHere\u2019s the impact you\u2019ll make and what we\u2019ll accomplish together\n\nAs a key member of the TELUS Health team, you will be joining a growing team of Analysts in transforming and converting health data for Canadian physicians on a TELUS Electronic Medical Record (EMR) platform. This exciting opportunity will allow you to leverage your experience and skillset within an innovative and collaborative environment while performing meaningful work that is crucial to the success of our TELUS Health EMR platforms.\n\nHere\u2019s how\nExtracting data from various source systems and data stores by performing light business coding: Java, Python, C#, etc\nConnecting with our customers to conduct requirement gathering and performing data validations\nMapping and transforming data using various techniques: eXtensible Stylesheet Language Transformations (XSLT), MapForce, scripting, etc., based on customer input and requirements\nPerforming ad-hoc queries: SQL, Language-Integrated Query (LINQ), etc., and reports to analyse customer data before and after migration\nPlanning and performing go-live transformation and validation to ensure no data is lost or corrupted\nExecuting production data migrations; requires occasional evening/weekend work\nCollaboration with various teams across the business to identify roadblocks and resolve issues, to ensure timely completion for each project\nContributing to on-going development and refinement of data migration tools and processes\nTracking issues, communicating project status, and managing project risk\nQualifications\nYou\u2019re the missing piece of the puzzle\nTechnical Knowledge:\nStructured Query Language (SQL)/Transact SQL\nData transformation scripting & mapping: eXtensible Markup Language (XML), eXtensible Stylesheet Language (XSL)/XPath\nFamiliarity with databases such as Microsoft (MS) SQL, Oracle, MySQL, etc\nScripting: Python/Groovy or development: Java/C#\nLinux/Unix & Groovy is an asset\nMapForce is an asset\nFunctional Skills:\nDetail oriented\nAvid problem solver\nAbility to communicate both verbally and written in English & French is an asset\nAbility to multi-task and manage numerous concurrent projects\nStrong analysis and problem solving skills with the ability to identify root cause\nAbility to communicate in an effective and respectful manner with customers and fellow team members\nSelf-directed in completing project-based work\nThe following roles must have the required education & experience as listed below:\nData Analyst I:\nDiploma/degree from a post-secondary institution with a diploma specializing in related technologies\n1 year of minimum experience working on data transformation, development, or school related projects\nData Analyst II:\nDiploma/degree from a post-secondary institution with a degree specializing in related technologies\n2+ years of experience working on data transformation or development projects\n2+ years of working with SQL/TSQL\n2+ years of working with XML and related tools: XSL/XPath\n2+ years of working with a scripting language: Bash/JavaScript/Python/Perl/etc\nData Analyst III:\nDiploma/degree from a post-secondary institution specializing in related technologies\n5+ years of experience working on data transformation or development projects\n5+ years of working with SQL/TSQL\n5+ years of working with XML and related tools: XSL/XPath\n5+ years of working with a scripting language: Bash/JavaScript/Python/Perl/etc\nGreat-to-haves\nAgile & Project Management skills\nUnderstanding of network infrastructure\nMedical experience or clinical workflow\nExperience with Health Level Seven International (HL7), Chronic Obstructive Pulmonary Disease (COPD) and Core Data Set (CDS)/Clinical Management Systems(CMS) XML standards\nExperience with the Atlassian tool suite: Jira, Bitbucket, Confluence\nWhat YOU Get:\nGreat pay, profit sharing bonus, stock purchase plan, dedication to team engagement; career development, flexible benefit plan with many innovative options and programs, DC Pension, flexible work styles, and more!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=732f51d794141f18&fccid=f31ab15e49b41186&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Code Pilot", + "salary": NaN, + "desc": "Code Pilot is replacing the crusty old resume with a data science based portfolio for engineers, and we're looking for a Data Engineer with data integration expertise and a passion for changing the data landscape. If you are interested in working for a data driven company on the edge of industry disruption, we'd love to talk with you. And if we ask you about bulk batch high volume data processing and your eyes light up and your brain goes into overdrive, we're talking to the right person.\n\n-------------------\n\nWe are looking for:\n-------------------\n\nA new team member to support the data development & processing for one of our hiring partners.\n\n------------------------------\nWhat will keep you challenged?\n------------------------------\n\nDesign, develop, automate, monitor and maintain Extract Transform Load (ETL) data movement applications using our preferred ETL tools and techniques.\nPerformance tune ETL applications to manage high volume batch data transfer to and from internal and external system locations.\nTroubleshoot data issues, recommend, test and implement solutions.\nDevelop and document technical requirements and solutions.\nParticipate in design and code reviews.\nTroubleshoot issues making recommendations and delivering on those recommendations.\nEngage in project planning and delivering to commitments.\nParticipate in daily stand-up meetings, planning meetings and review sessions (using Scrum / Agile methodology).\nInteract with cross-functional teams to ensure complete delivery of solutions.\nAssist with configuration of applications software.\n----------------------------------------\nWhich traits contribute to your success?\n----------------------------------------\n\nPassion - for software development (algorithms, design patterns, clean code, agile processes, data structures).\nHumility - Outstanding engineers display inverse proportions of talent to humility.\nMission Oriented - A dogged commitment to getting the job done is crucial.\nHighly Competent - Software Engineering at the top level requires highly motivated individuals who are constantly learning and adapting.\nHighly Adaptive - Mike Tyson said it best, \"Everyone has a plan 'till they get punched in the mouth.\" Developing software at the top level requires incredibly adaptability and agility. Nothing ever goes the way you want, and anything valuable probably doesn't exist the way you want it.\nShip or Quit - High performance software teams have one unifying quality, they ship, a lot. So if you're a fellow Ship talker, you'll love it here.\n-------------------------------------------\n\nSome technologies you will be working with:\n-------------------------------------------\n\nETL tools (ie, Ab Initio, Pentaho, Talend, SSIS)\nProgramming languages Java (Groovy), JavaScript, SQL, or PL/SQL\nSQL and relational platforms (PostgreSQL, Oracle)\nRevision Control (e.g., Subversion)\nNoSQL databases (Cassandra)\n---------------\nWhy Code Pilot?\n---------------\n\nCode Pilot is a new startup and relatively unheard of. We're currently 4 people, all co-founders, based in Austin, TX. Given the rigor and process we adopt to hire engineers, you might be asking yourself, why invest your time and effort to simply apply?\n\nWe're hoping if you've reached this part of the posting, you've already noticed the care and attention we've invested in how we hire engineers. We're not interested in the instant gratification someone can provide by being able to \"code\", and frankly, as an engineer who is passionate about the craft, you shouldn't be either. We're passionate about the discipline of engineering, and what it takes to develop world class engineers. To that end, we don't care if you've got 1 year or 20 years experience, we don't care if you went to MIT or are self-taught, hell, we don't care if your favorite programming language is Ruby (although we will help you forget everything you know about it pretty quickly). What we care about is your insatiable desire to be pressure tested in a credible engineering environment that brings out your best." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e97d458f052cb90f&fccid=7e465a3d521b3ac3&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Cox Automotive", + "salary": NaN, + "desc": "Description\n\nDealetrack, a business of Cox Automotive, is looking for a Data Analyst who will be responsible for the design, maintenance, and on-going support of operational and compliance reports as well as dashboards. This individual will ensure optimal efficiency by monitoring work quality as well as delivering reports, statistics, data analysis, and recommendations for improvement. The Data Analyst will also work with various organizations across the company to facilitate process and product improvements.\n\nPrimary Responsibilities and Essential Functions\nCommunicate insights and suggest improvements based on data and observed trends\nDevelop and present standard and ad-hoc reports and analysis to stakeholders across the organization\nPerform proactive and reactive analyses to ensure data integrity\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nUndertake preprocessing of structured and unstructured data\nBuild predictive models and machine-learning algorithms\nPresent information using data visualization techniques\nPerforming exploratory data analysis, generates and tests working hypotheses, and uncovers noteworthy trends and relationship\nImplement algorithms to power user-facing data-driven features\nBe a champion for data science by helping business users understand algorithms outputs thru meaningful metrics and visualizations.\nDevelop python scripts/methods for a range of subject areas by conducting research on existing Python and R libraries for agent based, predictive, inferential, and optimization models;\nSupport visualizations and client reporting through meaningful dashboards, graphics and maps;\nUse strong analytical skills, business acumen and attention to quality to provide data and analysis to assist in solving complex problems\n\n\nQualifications\n\nBS/BA in related discipline\n2-5 years of experience in related technology field OR MS/MA and generally 2-4 years of experience in related technology field\nKnowledge of and experience with Microsoft Business Intelligence suite (SSIS,SSAS, SSRS) and Microsoft BI Publisher\nHands on experience in SQL and RDBMS (Oracle & SQL Server)\nExcellent interpersonal, leadership, and presentation skills\nMust be able to work with minimal supervision as this position requires owning initiatives from inception to execution\n\n\n\n\nAbout Cox Automotive\nCox Automotive Inc. makes buying, selling and owning cars easier for everyone, while also enabling mobility services. The global company\u2019s 34,000-plus team members and family of brands, including Autotrader\u00ae, Clutch Technologies, Dealer.com\u00ae, Dealertrack\u00ae, Kelley Blue Book\u00ae, Manheim\u00ae, NextGear Capital\u00ae, VinSolutions\u00ae, vAuto\u00ae and Xtime\u00ae, are passionate about helping millions of car shoppers, tens of thousands of auto dealer clients across five continents and many others throughout the automotive industry thrive for generations to come. Cox Automotive is a subsidiary of Cox Enterprises Inc., a privately-owned, Atlanta-based company with revenues exceeding $20 billion. www.coxautoinc.com\nCox is an Equal Employment Opportunity employer - All qualified applicants/employees will receive consideration for employment without regard to that individual\u2019s age, race, color, religion or creed, national origin or ancestry, sex (including pregnancy), sexual orientation, gender, gender identity, physical or mental disability, veteran status, genetic information, ethnicity, citizenship, or any other characteristic protected by law.\nStatement to ALL Third-Party Agencies and Similar Organizations: Cox accepts resumes only from agencies with which we formally engage their services. Please do not forward resumes to our applicant tracking system, Cox employees, Cox hiring manager, or send to any Cox facility. Cox is not responsible for any fees or charges associated with unsolicited resumes.\n\nOrganization: Cox Automotive\n\nPrimary Location: CA-ON-Mississauga-2700 Matheson Blvd E\n\nEmployee Status: Regular\n\nJob Level: Individual Contributor\n\nShift: Day Job\n\nTravel: No\n\nSchedule: Full-time\n\nUnposting Date: Ongoing" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a10780f20e8a5bd5&fccid=2525ee368b671cd8&vjs=3", + "location": "Toronto,ON", + "title": "Toronto - Junior Data Engineer", + "company": "FDM Group", + "salary": NaN, + "desc": "As a Junior Data Engineer, you will design, develop and test a large-scale, custom distributed software system using the latest Java and Big data technologies. You will be a technology advocate and share expertise with other team members. You will be a key partner to the business and the rest of the team throughout the delivery cycle and will work through challenging and interesting problems. Fast-track career progression is a key focus of FDM, and our program will put you on a pathway that could grow into leadership roles working within multinational organizations.\nEssential Criteria:\n4 year degree or 3 year diploma (preferably in Computer Science, IT, Engineering, Mathematics, or similar)\nA strong aptitude in IT and the interest and drive to expand your IT skill set\nExcellent communication and interpersonal skills\nA problem solver with a keen eye for detail\nA desire to work at a large financial firm and ability to increase your financial knowledge\nAble to engage yourself in a project and enjoy the challenges and processes involved\nFlexible, eager, ambitious, and adaptable to change\nAble to commit to work for FDM for a minimum of two years working as an FDM consultant following the training period\nEligible to work in Canada (citizen/permanent resident/work permit with sufficient length of validity)\nTechnical Skills:\nKnowledge of the software development life cycle\nProficient with Java technologies and ecosystem\nKnowledge of UNIX/Linux/SQL scripting languages.\nFoundation understanding of Data constructs/distributed data\nStrong passion for Big Data and processing large volumes of data\nDesirable Criteria:\nExperience with Hadoop or understanding of its components (HDFS, Pig, Hive, HBase, Spark)\nFamiliarity with data modelling and data management tools\nExperience working in an agile environment\nFDM is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, colour, religion, sex, sexual orientation, national origin, age, disability, veteran status or any other status protected by federal, provincial or local laws." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9748a90825d6fcef&fccid=5522dd7fc3f67c79&vjs=3", + "location": "Toronto,ON", + "title": "Information Management Data Analyst", + "company": "Heart and Stroke Foundation", + "salary": NaN, + "desc": "The Heart and Stroke Foundation\nLife. We don\u2019t want you to miss it.\u2122\n\nThat\u2019s why Heart & Stroke leads the fight against heart disease and stroke. Powered by donors and volunteers, we fund life-saving research and help Canadians lead healthier lives.\nHeart & Stroke is a health charity active in communities across the country. We are sustained by the commitment and generosity of more than 100,000 volunteers and more than 1.4 million donors.\nThe opportunity\nWe are looking for solution oriented, passionate, and talented analyst to join our Information Management Team. The Information Management Data Analyst is responsible for data analysis and reporting from Heart and Stroke Constituent Relationship Management System (CRM). The position will work closely with the internal business partners to gather criteria to build data extractions and data lists to support Marketing efforts and campaigns. In addition, the Information Management Data Analyst will work on data processes such as data imports, data integration, data clean up, data analysis, segmentation and other project activities. The position will focus on building a range of data outputs from ad-hoc queries, data exports using Microsoft SQL server business intelligence tools and data warehouse solutions.\n\nThe role will collaborate within a multi-site team setting with a variety of stakeholders, including internal business partners and external vendors and suppliers.\nKey responsibilities\nData Analysis and Reporting\nDesign, develop and deploy data outputs and reports using SQL Server Reporting Services and BI tools\nAbility to take raw data and provide summary analysis\nDevelop automated and reusable routines for extracting requested information in suitable formats such as extractions, reports, graphical, and pivots\nPerform data testing to ensure data accuracy and completeness\nProvide accurate estimate delivery time for solution to business partner\nData Validation\nCompiling, sorting and verifying data before it is imported into CRM database\nTroubleshoot and correct data upload and exceptions due to inaccuracies\nProvide end user support and work with external vendors to troubleshoot and resolve issues\nCRM Administration\nCoordinate with external vendors to develop, setup, execute data transfer processes and improve the efficiency\nAssist in CRM configuration, set up, and development of standards as necessary\nMonitor scheduled jobs - status, investigate , troubleshoot and resolve issues to completion\nPerform end to end testing for system upgrades, application patches, customizations, and other features as necessary\nOther\nContribute to system process improvement effort\nDocument and maintain data requests, processing and data validation procedures\nPrepare and maintain appropriate documentation related to technical versioning and best practices knowledge\nDeliver solutions according to Systems Development Life Cycle (SDLC)\nAs necessary, conduct specific training as needed.\nKeep well-informed of trends and best practices in the BI industry to strengthen organizational and technical knowledge as it relates to enterprise information.\nQualifications\nEducational Requirements\nBachelor degree or college diploma in computer science, information systems, business administration or related field\nWork Experience\n3+ years working experience in a data analyst role\n3 \u2013 5 years of MS SQL Server Reporting Services (SSRS), MS SQL Server Integration Services (SSIS), MS SQL Server Analysis Services (SSAS)\nExperience importing and exporting data files in a variety of formats\nExpert level of working experience in XML and HTML code\nStrong analytical skills and ability to collect, organize, analyze and disseminate significant amounts of information with attention to detail and accuracy\nDemonstrated proficiency in understanding and implementing business workflows and processes\nAbility to work independently and in a team environment\nExperience in not-for-profit and fundraising organizations preferred\nSkills\nExpert knowledge and experience of MS SQL Server Reporting Services (SSRS)\nExpert knowledge and experience of MS SQL Server Integration Services (SSIS)\nStrong knowledge and working experience of MS SQL Server Analysis Services (SSAS)\nStrong Knowledge of SQL Server, query development and stored procedures\nProven ability to identify and document business requirements and translate into useful reports and processes\nDemonstrated analytical skills to review, synthesize information and produce analytical reports\nAbility to work on multiple assignments and achieve objectives and deadlines\nKnowledge of and experience with Software Development Life Cycle\nExcellent troubleshooting and problem solving skills\nExcellent oral and written communications skills in English\nAn exceptional customer service attitude\nResults-driven and metrics focused with a passion for continuous improvement\nAbility to partner with multi-disciplinary teams and vendors\nPrevious experience with Blackbaud CRM applications, and/or MS Dynamics Great Plains considered an asset\nApplying\nIf you have the qualifications and share our passion for our mission, we invite you to forward your resume, cover letter and salary expectations to HSFC.Recruitment@heartandstroke.ca. We offer comprehensive benefits including pension, dental and medical coverage.\n\nThis posting will remain open until a suitable candidate is found.\n\nPlease include the exact job title, including location, in the subject line of your email.\n\nWe thank all applicants for their interest however, due to volume, we can only contact those selected for interviews.\n\nCandidates from diverse groups are encouraged to apply. We are committed to fostering an inclusive, barrier-free and accessible environment. If you have been contacted for an interview and require an accommodation due to disability to participate in the recruitment and selection process, please advise and we will work with you to meet your needs.\n\nLearn more and get involved with Heart and Stroke at www.heartandstroke.ca\n\n\u2122Life. We don\u2019t want you to miss it., Saving moments. Funding breakthroughs. Saving lives., and the heart and / Icon on its own or followed by another icon or words in English are trademarks of the Heart and Stroke Foundation of Canada." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e51c7dcbfc407030&fccid=0f0b3a309345bfdb&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst \u2013 Claims", + "company": "Wawanesa", + "salary": NaN, + "desc": "Claims - Data Analyst\nPosition Description\nWorking under minimal supervision, the Data Analyst is responsible for applying statistical analysis to Claims and Workforce data in various systems to identify relationships, problems/issues within the data and provide recommendations. This role will provide timely and accurate information and reports to support decision making.\nKey Responsibilities\nAct as a key member of our staffing team, responsible for working in conjunction with internal and external stakeholders to produce Claims FTE plans\nAct as a subject matter expert through the development, ownership, delivery and maintenance of FTE forecast and business performance metrics; identify variances through analysis and due diligence\nDevelop and execute monthly reporting in relation to forecasts and staffing models, while providing recommendations on improving the utilization of resources and other operational improvement\nProvide input into the development and maintenance of accurate metrics\nCommunicate and collaborate with internal and external stakeholders through producing reports; meetings, correspondence and presentations; promoting continuous improvement\nPerforms other duties as required\n\nQualifications\nPrevious Workforce Management experience is an asset. Knowledge and experience in Workforce Management concepts, initiatives and strategies\nStrong functional knowledge of P&C insurance Claims lines of business\nUndergraduate university degree in business (i.e. accounting, finance, statistics, economics) with 2-3 years of experience in business analysis\nExpert proficiency in MS Excel, especially with: advanced formulas; pivot tables and charts\nStrong analytical and problem-solving skills with the ability to identify relationships, problems and issues to solve complex problems\nStrong organization skills with the ability to handle multiple concurrent assignments in a timely manner\nStrong written and verbal communication skills with the ability to communicate at the right level of complexity for the audience\nAbility to work as part of a team as well as independently\nKnowledge of MicroStrategy, ClaimCenter and Oracle Crystal Ball a definite asset\n\nWawanesa provides its employees with a respectful, challenging and rewarding environment where they can maximize their potential while contributing to the company\u2019s goals. Our employees are provided with highly competitive compensation packages (salaries, generous vacation allowance, leave top up, goal achievement plan, premium free benefits and a pension plan). Wawanesa provides a stabel and reqarding environmnet for its employees in today\u2019s challenging markets.\nApply today to join our team!\nIf you are interested in this exciting, challenging position with Wawanesa, please submit your r\u00e9sum\u00e9 and cover letter at www.wawanesa.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=95f37ceabfcfc15e&fccid=bc30630cfcc120d4&vjs=3", + "location": "Toronto,ON", + "title": "Master Data Analyst", + "company": "Loblaw Companies Limited", + "salary": NaN, + "desc": "Location:\n1 Presidents Choice Circle, Brampton, Ontario, L6Y 5S5\n\nThe decision to join a company is a big one. We have opportunities for hard working, energetic and reliable people just like you.\n\n\n\nWhy is this role important?\nThe Vendor Set-Up Analyst role is responsible for ensuring that all data pertaining to vendor master data records are setup and maintained with high quality. The Analyst will work closely with teams across the business and external vendors to support the creation and ongoing maintenance of vendor data, all vendor master data processes, ensure guidelines and policies are adhered to, and to serve as a subject matter expert.\n\nWhat You'll Do:\nEnsure timely and accurate execution of all requests received for the creation and maintenance of Vendor master data including enrichment of data, as required.\nValidate that the appropriate updates are applied consistently across all systems.\nSupport and enforce established data standards and guidelines related to master data.\nUnderstand and communicate master data updates (e.g., maintenance, new fields, definitions, etc.) to business teams and external vendors, as required.\nReview and analyze daily reports to ensure completeness and data accuracy and action accordingly.\nIn depth understanding and support of how the Enterprise Vendor Portal security and administrator data integrates with vendor master data.\nParticipate in adhoc data cleansing projects and testing, as required.\nMaintain clear communication and positive relationships with both internal and external stakeholders.\nAttend and represent Vendor Master Data (CDM) at various business and/or project meetings.\nCommunicate with business areas to notify them of process, status, changes, etc.\nWork closely with the Central Data Procurement role within the team to assist in the onboarding of vendor through the Vendor Workflow application/tool.\nWork closely with the Supply Chain Compliance to ensure Vendor Buying Agreements are signed prior to master data setup/changes.\n\nRole Requirements:\nKnowledge of Microsoft Office applications.\nExperience/knowledge of SAP and working with retail master data, a definite asset.\nAbility to manage multiple priorities; strong time management skills.\nStrong analytical and system thinking skills.\nMust be detail oriented and highly organized.\nAbility to work on specific timelines and dependencies.\nMust be able to work in a fast-paced environment.\nExcellent interpersonal and communication skills.\n\n\nHow You\u2019ll Succeed:\nAt Loblaw, we seek great people to continually strengthen our culture. We believe great people model our values, are authentic, build trust and make connections.\nIf that sounds like you, and you are open-minded, responsive to change and up to the challenges provided in a fast-paced retail environment, apply today.\n\nIn addition, we believe that compliance with laws is about doing the right thing. Upholding the law is part of our Code of Conduct \u2013 it reinforces what our customers and stakeholders expect of us.\n\n\nEmployment Type:\nFull time\n\nType of Role:\nTemporary (Fixed Term)\n\n\nLoblaw recognizes Canada's diversity as a source of national pride and strength. We have made it a priority to reflect our nation\u2019s evolving diversity in the products we sell, the people we hire, and the culture we create in our organization. Accommodation is available upon request for applicants with disabilities in the recruitment and assessment process and when hired.\n\n\n\nPlease Note: If you have Employee Self Service (ESS) on Workday, apply to this job via the Workday application." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=54e9c52e8115020b&fccid=98ca38a3c49800f3&vjs=3", + "location": "Toronto,ON", + "title": "PEY - Junior Data Engineer", + "company": "BiblioCommons", + "salary": NaN, + "desc": "Internship\nAs a Junior Data Engineer at BiblioCommons, you will work closely with the analytics team and various stakeholders across different functions of the company. You will participate in a variety of challenging tasks ranging from data analysis to the development of data collection and processing infrastructure.\nHow you\u2019ll make an impact:\nContribute to big data collection and processing infrastructure in a variety of technology stacks\nAssist with ad-hoc analysis of a wide variety of user data\nBuild data-driven reports and insightful visualizations\nCollaborate on projects with stakeholders across the company including executives, product, and engineering\nWhat you bring:\nPassionate about data (bonus points for being passionate about social and library data!)\nStrong theoretical foundation in data structures, algorithms, and software engineering best practices\nProficiency in Python or Java, preferably both\nExperience with relational databases and proficiency in SQL\nSolid understanding of databases, cache servers, search engines, and application servers\nExcellent oral and written communication skills\nPursuing Degree in Computer Science or equivalent\nBonus points for:\nExperience debugging and optimizing large-scale, multi-threaded systems\nPrevious experience with Python / Pandas and Jupyter notebooks\nPrevious experience with Google Analytics and Data Studio\nAbout Engineering at BiblioCommons\nBiblioCommons offers an opportunity to work in an environment that combines the challenges and complexity of a large-scale, data-intensive application with the creativity and fun of a sophisticated consumer web offering, central to the daily web interactions of millions of users.\nWe\u2019re a highly collaborative team that applies innovative solutions to challenging problems. We believe strongly in shipping code early and often, and investing heavily in automation to make that possible. We\u2019re also committed to doing things right and always looking for ways to do them better. We take the time to optimize and redesign systems that aren't robust and scalable.\nBiblioCommons is an equal opportunity employer. Accommodations are available upon request to support your participation during all stages of the recruitment process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c7ff1a2eed10a11c&fccid=711925311d316d82&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "DrugDev", + "salary": NaN, + "desc": "Job Description\nJoin us on our exciting journey!\nIQVIA\u2122 is The Human Data Science Company\u2122, focused on using data and science to help healthcare clients find better solutions for their patients. Formed through the merger of IMS Health and Quintiles, IQVIA offers a broad range of solutions that harness advances in healthcare information, technology, analytics and human ingenuity to drive healthcare forward. We seek highly motivated people who truly want to make a difference in the life sciences industry. At IQVIA, we look for the very best people, and then give them meaningful work to do. We don\u2019t simply think about careers, we think about contributions.\n\nThose who choose to work with us are joining a recognized global leader \u2014 a company uniquely positioned to help clients make the most of market opportunities and respond to challenges that affect global healthcare. We\u2019re committed to blending industry expertise and advanced technology to deliver the most accurate perspectives and in-depth analytics on healthcare dynamics.\nRole Purpose:\nUnder broad guidance, performs data analytics activities related to complex business problems and issues to provide insight to decision makers based off analyzing vast amounts of medical claims data. May provide ad-hoc analytic support for internal project teams and for external client consulting.\n\nPrincipal Accountabilities:\nUnder broad guidance, performs quantitative analytics to support the development of solutions for internal or external client project teams.\nIdentifies and interprets trends and patterns in datasets to support the development of recommendations.\nConstructs impact assessment based on business data and market knowledge.\nCreates specifications for reports and analysis based on business needs and required or available data elements.\nMay directly produce datasets and reports for analysis using system reporting tools.\nVerifies data for accuracy and completeness.\nMay manipulate and transform data to optimize analyses and query times.\nPerforms audits of own work or that of others to ensure conformance with established procedures or to resolve routine issues.\nMay work with standalone data systems or enterprise wide tools supporting activities such as inquiry resolution, data validation, and trend analysis.\n\nMinimum Education, Experience & Specialized Knowledge Required:\nBachelor\u2019s degree and a minimum of 3 years of related experience preferably working with medical claims data or other health care data.\nData analysis skills and previous experience using Microsoft software tools (Excel, PowerPoint, Word, and Access), Oracle SQL Developer and MySQL required\nExperience analyzing medical claims or commonly used medical coding systems (e.g., ICD-9, ICD-10 and CPT) is a major asset.\nIQVIA is an EEO Employer - Minorities/Females/Protected Veterans/Disabled\nWe know that meaningful results require not only the right approach but also the right people. Regardless of your role, we invite you to reimagine healthcare with us. You will have the opportunity to play an important part in helping our clients drive healthcare forward and ultimately improve human health outcomes.\nWhatever your career goals, we are here to ensure you get there!\nWe invite you to join IQVIA\u2122.\n#LI-TF1\n#GLD\n\nJob ID: R1044110" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=cb284d3e7bc01582&fccid=de71a49b535e21cb&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst - Coop (Toronto, ON)", + "company": "IBM", + "salary": NaN, + "desc": "Job Description\nChange the world at IBM. There aren\u2019t many companies who can say they have been an integral part of the global business landscape for more than a century. While the world has changed considerably over the past 100 years, IBM, our people and our offerings have continuously led the way with business and technology innovation.\n\nToday, we are more than a hardware, software and services provider, yet we remain true to our heritage as a team of collaborative forward-thinkers, focused on making business and society work better. We are part of the fabric of everyday life and stand for world-changing progress.\n\nJoin a company where you can make an impact and literally change the world. With so many different opportunities available \u2013 the sky is the limit!\n\nThis Student Position resides in Toronto, ON and is a 4 or 8 (co-op) month work term commencing January 2019. It is mandatory that all applicants are enrolled in full-time studies at a post-secondary institution and returning to full-time studies upon completion of the work term.\n\nWhat IBM Offers You?\nWork directly on product and services that affect our clients, while having access to cutting edge software technology\nWork on projects which are challenging, innovative and rewarding\nA business casual dress code and flexible work hours, to ensure work-life balance\nAccess to the Future Blue Community - IBM\u2019s large student community that provides networking opportunities, sporting and social events.\n\nIt is a mandatory requirement for students to apply online at www.ibm.com/jobs .\n\nClosing Date: Open Until Filled\n\nThis role will involve working with technology that is covered by embargo Export Regulations. If you are a Foreign National from any of the following embargoed countries (Cuba, Iran, North Korea, Sudan, Syria) on a work permit you are not eligible for employment in this position.\n\nThe following job responsibilities for Data Analyst include:\n\nWhat we do\n\nIBM Algo\u2019s Managed Data Service gathers, derives, stores and validates data needed by Algo\u2019s various Risk Systems. It is this data that enables the modelling and simulation of all financial instruments from which we derive market/credit risk metrics. Our goal is to become the data provider for all the stakeholders that need this data.\n\nWhat you will be doing\nContent validation - ensure the soundness of Market Data and Instrument Data used to model Equities, Fixed Income Instruments and Derivatives\nEnsure quality of market data time series used for Monte Carlo simulations\nAssist with regression testing of new product/platform releases \u2013 attributing which data element impacts computed theoretical/risk metrics\nEnhancing Financial Engineering specifications\nLiaising with Risk Consultants/Financial Engineers to diagnose/troubleshoot data issues\n\nWhat we\u2019re looking for\nAdept with all kinds of technology, comfortable in a Unix environment\nUnderstanding of Financial Risk Modelling and the role data plays in it\nA team player with strong communication skills (written and verbal)\nProven organization skills\n\nWhat you will take home\n\nIBM Algo is a leading vendor of software and services for the financial risk management community. Our client base consist of hedge funds, pension funds and asset managers. What we do lies in the intersection of Mathematical Finance, Technology and Big Data and this role will give you the opportunity to immerge yourself in this world.\n\n\nRequired Technical and Professional Expertise\n\nExperience with Windows and/or Linux operating systems\nDemonstrates verbal and written communications skills\nCo-op or internship program enrollment is mandatory\n\nPreferred Tech and Prof Experience\n\nKnowledge of IBM products\nKnowledge of the software development cycle\nExperience with various programming languages\nUnderstanding of software engineering\n\n\nEO Statement\nIBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b0e65099a7ad8860&fccid=72a4800744ef15c2&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst-Infastructure", + "company": "PSD", + "salary": NaN, + "desc": "PSD develops meaningful, data-rich business intelligence and insight for public sector organizations. Our technical and consulting capabilities in infrastructure and capital asset management, long-term financial planning, and policy research enable not only the design of rational and flexible organizational strategies but also their execution and ongoing assessment.\nPSD\u2019s service areas are configured to meet three essential needs for governments: policy research and analysis, high-performance technology, and credible data. Through our infrastructure consulting and advisory practice, we work with decision-makers to refine organizational systems, programs and processes for better corporate outcomes.\nAs our organization continues to grow, we are looking to add a Data Analyst-Infrastructure role within our Burlington, Ontario office.\nRole Description\nThe successful candidate will provide tactical support for the organization by collecting, integrating, and manipulating client supplied financial, infrastructure data within the organization\u2019s proprietary databases and analytical modeling tools. Direct communication with clients, providing support and training, will also be required. This person will be able to demonstrate skills related to accuracy, attention to detail, and the ability to complete time sensitive confidential client data projects.\nDuties will include:\nAnalyze, leverage and manipulate significant amounts of client infrastructure and maintenance management data with high attention to detail and accuracy\nDevelop and recommend a data implementation strategy according to system requirements, client requirements, and industry best practice\nPlan, track and communicate throughout data implementation project\nConfigure software and provide software support, testing, troubleshooting and training\nCommunicating with clients and presenting data as required\nWork with Clients to develop and recommend data implementation strategies\nProvide software testing and support as required\nCommunicate with internal and external stakeholders to interpret, document, resolve and/or escalate issues in a timely, professional and customer centered manner\nRequirements\nCollege or University Degree in Information Management, GIS, Accounting or related program\nKnowledge & experience with Application support and/or Municipal Infrastructure Data\nKnowledge or experience with Infrastructure Asset management and/or Computerized Maintenance Management Systems is a significant asset.\nAttention to detail, excellent communication skills\nKnowledge & experience with relational databases, Cloud or other Web and mobile technologies\nExperience with GIS software and analytical tools is a nice to have\nExperience with reporting software tools such as COGNOS, SSRS, Crystal Reports is also a significant asset.\nThe ideal candidate will be familiar with cloud software environments and be at the intermediate expert level with technologies including MS Excel, MS ACCESS and have Basic Knowledge (experiential/educational) of GIS software and/or relational databases Query Languages (such as SQL).\nWhy Work at PSD?\nWe are a globally oriented company with a passion for our local community. We value creativity, collaboration and critical thinking. Your personal growth is important to us, and we will encourage you to pursue the things you care about. We are growing quickly, so there are plenty of opportunities to learn and grow! Competitive compensation, RRSP matching and health benefits are parts of the full compensation package. Apply today and join our growing team!\nPSD is an equal opportunity employer. We are committed to providing accommodations for people with disabilities. Accommodations are available upon request for candidates taking part in all aspects of the recruitment and selection process. Should you require any accommodations, please indicate this when you apply and we will work with you to meet your accessibility needs." + }, + { + "link": "https://www.indeed.ca/company/ADEM-Company-Inc/jobs/System-Data-Analyst-c7d3f6b65e13f473?fccid=78f6eaf3a0a0678e&vjs=3", + "location": "Toronto,ON", + "title": "System/Data Analyst", + "company": "ADEM Company Inc", + "salary": "$70 - $125 an hour", + "desc": "$70 - $125 an hour\nContract\nWe are looking for a Sr. Systems/Data Analyst to help with project that involves the data mapping and pre-migration/upgrade for two legacy Meditech systems.\nThe project involves dictionaries / key data elements that are being standardized / harmonized between the 2 legacy Meditech systems (paper exercise, not being implemented in Meditech).\nThis project is to standardize / harmonize the dictionaries / key data elements between the 2 legacy Billing systems in preparation for the HIS implementation.\nDue to the many integration points / data flows between the clinical and registration systems and Billing, the standardization decisions made in the clinical and registration systems will have a major impact on Billing.\nFrom the business analysis, it is evident that the naming conventions of the master billing charge code dictionary (and the related billing codes in the clinical systems) were not descriptive enough nor had consistent structures to allow efficient reporting, audit and analysis. As a result, we require a Sr. Systems/Data Analyst to:\n- Assess clinical / registration standardization decisions' impact on Billing system(s), identify any potential issues, identify options, and make recommendations to resolve\n- Review and recommend a Billing system standardization structure that both aligns with the clincial / registration system standardization and that is best practice for Billing system(s)\n- Recommend a framework / guiding principles on Billing data / dictionaries, per best practices\n- Advise on issues or questions that arise after delivery of your report (e.g. during Billing dictionary / data standardization detailed work)\nMeditech experience is a must - clinical and financial (billing and supply chain) modules highly preferred\nJob Type: Contract\nSalary: $70.00 to $125.00 /hour\nExperience:\nmeditech: 3 years (Required)" + }, + { + "link": "https://www.indeed.ca/company/Via-Advanced-Technologies/jobs/Data-Scientist-21dc830502502ab8?fccid=6af8d52708b997e3&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Via Advanced Technologies", + "salary": NaN, + "desc": "Via Advanced Technologies has been built on a solid foundation of truly invested leadership. We are a young company and have formed great connections both internally and externally. Together, this creates a culture of teamwork and fun. Why our companies\u2019 culture is so important to us? Because work and life intersect, and we believe it\u2019s important to be happy and healthy in both! We are not going to lie about the culture. Of course, sometimes we work long hours to get the things done.\nWe have developed some cool things in IoT with our skilled developers and designers. We are looking for an Expert data scientist/analyst to join our team to define the future of artificial intelligence. The candidate will work closely with our machine learning and application development team.\nQualification:\nMasters, preferably PhD in computer science, mathematics, statistics or other related quantitative fields\n5+ years of experience with machine learning model development and working with large data-sets\n5+ years of programming experience in Python, Java, or Scala with good grasp of software\nengineering standard methodologies such as re-usability, modularity, use of repos, etc\n5+ years experience in data extract/transform/load (ETL), and cleansing\nAdvanced knowledge on data architecture and storage techniques Proficient in building statistical\nand algorithmic models with complex and large data-sets, including but not limited to: supervised\nstatistical learning, clustering, natural language processing, times-series analysis, experimental design (A/B testing), data visualization and deep learning\nExperience in one or more of the following machine learning frameworks: TensorFlow, Torch, Caffe2, etc.\nExperience working with a range of Databases/Distributed data stores such as SQL, Hadoop,\nSpark\nQuick learner, ability to learn independently Experience with recommender system is a plus\nExperience with data engineer, DBA, and software development is a plus\nExperience in Monte Carlo method is an asset\n4+ Years of professional experience in signal processing\n4+ Years of experience in wavelet analysis & optimization algorithms\nWhat you will be doing:\nYou will apply statistics / machine learning techniques to build models in the field of IoT\nYou will perform data ETL/cleansing and play a key role in the ongoing maintenance of data\nstorage\nYou will pro-actively learn domain knowledge that are essential to better understand the area of interest\nYou will work with developers to develop and deploy the infrastructure to utilize the models\nYou will practice explaining complex models and findings to non-experts\nYou will learn constantly to be aware of and be willing to adopt the new advances in machine\nlearning techniques\nYou will know how to collaborate and assist with ad hoc tasks\nMakes strategic recommendations on data collection, integration and retention requirements\nincorporating business requirements and knowledge of best practices\nDevelops innovative and effective approaches to solve analytical problems and communicates\nresults and methodologies\nJob Type: Full-time\nExperience:\nPython Development: 3 years (Preferred)\nSignal Processing: 3 years (Preferred)\nWavelet Analysis: 3 years (Preferred)\nOptimization Algorithms: 3 years (Preferred)\nMonte Carlo Method: 3 years (Preferred)\nEducation:\nMaster's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=65b1c48bf5068286&fccid=70687d47d3cdf42e&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist I-CAN", + "company": "Ingram Micro", + "salary": NaN, + "desc": "Ingram Micro helps businesses fully realize the promise of technology.TM No other company delivers the full spectrum of global technology and supply chain services to businesses around the world. Ingram Micro\u2019s global infrastructure and deep expertise in technology solutions, supply chain, cloud and mobility enable its business partners to operate efficiently and successfully in the markets they serve. Combined with distinct market insights and the trust and dependability generated from decades of strong partner relationships, Ingram Micro stands apart as the global technology services provider for the future.\n\nData Scientist - two opportunities available\n\nResponsibilities:\n\nDevelops and analyzes data models that generate knowledge into the project owner\u2019s business objectives. Utilizes reports of findings and creates appropriate materials to communicate the findings.\n\nHe or she will maintain a broad understanding of Ingram Micro\u2019s business model along with becoming educated on particular vendors, customers, or internal division\u2019s business models and needs.\n\nRequirements:\n\nEducation:\n\nDegree (Bachelor or Master) in a strongly quantitative field such as: Statistics, Applied Mathematics, Operations Research, Computer Science, or Econometrics Bachelor\u2019s degree with 2-5 years\u2019 relevant experience or Master\u2019s degree with 1 year relative research/project experience\n\nExperience:\n\na. Experience in analyzing large data sets, identifying trends and patterns preferred.\n\nb. Knowledge and experience of tools for data mining, statistics, analysis, and scripting (e.g., R, SAS, Scala, MATLAB, Python).\n\nc. Experience with cleaning, aggregating, and pre-processing data from varied sources. Experience using SQL queries for standard as well as ad hoc data mining purposes.\n\nd. Ability to visualize data and analytical results, and communicate effectively with internal and external contacts.\nIngram Micro Inc. is committed to creating a diverse environment and is proud to be an equal opportunity employer. We are dedicated to fostering an inclusive and accessible environment where all associates are valued, respected and supported. As such, we will accommodate disabilities during the selection process and will work with you to meet your requirements." + }, + { + "link": "https://www.indeed.ca/company/International-Financial-Group/jobs/Data-Analyst-07794e2b39274e08?fccid=8c52bdc6019139a0&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst, Marketing", + "company": "IFG International Financial Group", + "salary": "$40 an hour", + "desc": "$40 an hour\nContract\nOur client one of the big 5 banks in Ontario is currently looking to recruit a Senior Campaign Analyst to join their team for a 12-month contract. Please see below for a job description.\nContract: 12 months\nAs a Senior Campaign Analyst, you will be responsible for the following:\nSupporting ongoing post campaign analytics\nMeeting with various stakeholders including product, marketing etc.\nUnderstanding various lines of business within the personal and business banking spheres\nResponsible for pulling and manipulating data to help create stories\nAnalysing and transforming data into actionable insights\nResponse for telling the story through PowerPoint presentations\nResponsible for effective multitasking including managing millstones and deadlines\nAs a Senior Campaign Analyst, you must have the following skill-set:\n5+ years of relevant work experience\nSAS experience\nMust be able to relay a story with data and has previously worked with complex data\nUniversity degree with preference for a quantitative discipline (Math, Science, Business)\nTipco experience is an asset\nUnica experience is an asset\nFinancial industry experience is an asset\nThank you for applying\nJob Type: Contract\nSalary: $40.00 /hour\nExperience:\nrelevant: 4 years (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1d4e4fecbc783ac0&fccid=94052e10e1796ed3&vjs=3", + "location": "Toronto,ON", + "title": "Salesforce Data Analyst", + "company": "Acumen Solutions", + "salary": NaN, + "desc": "Acumen Solutions drives excellence - not only in our performance, but also in the results we deliver for our clients. We are a global cloud consultancy that combines the insight of our strategists, the vision of our innovators, and the ingenuity of our engineers to achieve this extraordinary impact. The Fortune 500 trust us to build solutions focused on growing revenue and profits by amplifying competitive advantage and strengthening customer relationships. Our groundbreaking solutions in the public sector streamline operations and improve productivity. We apply this same focus on excellence to our unparalleled social responsibility program, generating sustainable impact across our local communities. Engage with us at www.acumensolutions.com or on Twitter @AcumenSolutions.\n\nWe are looking to grow our team and currently have entry to manager level opportunities for a Salesforce Data Analyst in Toronto, Canada.\n\nSpecific Duties\nSpecialize in collecting, organizing, and analyzing data from various systems\nDevelop an in-depth understanding of the interrelationships of data and multiple data domains\nCreate thorough documentation artifacts and maintain same for duration of project\nIdentify and document data migration paths and processes\nMaintain industry/technical knowledge base and facilitate/maintain industry relationships\nDemonstrate commitment to providing customer-focused quality service\nSupport assigned systems through transition period\nPerform other duties as deemed relevant based upon experience to fulfill customer needs\nDevelop and perform standard queries to ensure data quality, identify data inconsistencies, missing data and resolve as needed\nStandardize data naming, data definitions and modeling\nPerform data extraction, storage, manipulation, processing, and analysis\nCollect, profile, collate, and map appropriate data for usage in new or existing solutions as well as for ongoing data analysis activities\nInterpret Customers functional and information needs and turn them into functional or data requirements, process models, etc.\nDesired Skills and Experience\nBachelor\u2019s Degree or equivalent in Computer Science, Information Systems, Engineering, Business, Mathematics, or other related scientific or technical discipline with two (2) or more years of experience related to this position\nMust be willing to travel up to 50%\n1-5 years of demonstrated experience in data analysis, data manipulation, and decision support\nKnowledge and application of relational database concepts\nExperience or exposure to Extract/Transform/Load (ETL) and/or Business Intelligence\nStrong SQL skills\nSkilled at completing technical design via iterative mockups\nHigh proficiency in MS Office Suite (esp. Word and Excel)\nOpenness to learning new skills and software as necessary\nDemonstrated ability to manage simultaneous work flows while maintaining quality output and meeting deadlines\nDemonstrated ability to learn new and exciting technologies with little assistance\nPreferred Experience\nExperience with ETL tools and procedures (any tool)\nPrior experience working in the Cloud\nStrong verbal and written communication skills with demonstrated ability to communicate at different levels of the organization\nAbility to perform ad-hoc analysis and maintain clear and comprehensive documentation of decision-making, data preparation, and processes\nRelevant IT certifications\nCritical Skills\nHigh aptitude in analytical and logical thinking\nDemonstrated experience with data models and data mapping\nExperience with Unified Modeling Language (UML), including Entity-Relationship Diagrams (ERD), Sequence Diagrams, and Data Flow Diagrams (DFD)\nUnderstanding of XML, SQL, Data Modeling Language (DML), and Data Definition Language (DDL)\nStrong communication skills, both written and spoken\nDemonstrated ability to produce highly detailed, comprehensive documentation artifacts\nClient-focused attitude\nHigh-level knowledge of enterprise IT organizational, business, and technical environments\nAbility to analyze processes and recommend improvements as needed\nBenefits\nAcumen Solutions offers the opportunity for growth and advancement, as well as a competitive base salary, annual performance based incentives, medical, dental, and vision benefits, Paid Time Off, and more." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=347570c97522a075&fccid=354f4c12e3c6bd5a&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Aviva", + "salary": NaN, + "desc": "Join an exciting team of actuaries, data scientists and engineers at the forefront of using data to drive decisions at every level of our organization. The insurance industry is undergoing a transformation and you get to be in the driver\u2019s seat of this data-driven, technology revolution.\n\nYou will work on impactful projects that range from predicting customer life-time values and optimizing customer journeys to incorporating novel data sources for building cutting-edge pricing algorithms. You will leverage machine-learning algorithms to automate and predict claim outcomes and find new and innovative ways to impact our customers. This team is exploring the frontiers of the insurance business such as how to harness the data from connected homes and cars to deliver new types of products to customers.\n\nAs a senior data-scientist, you will be part of a dynamic small team with exposure to different business partners and direct influence on future products and innovative solutions. You will propose machine-learning and statistical models for practical applications that impacts millions of customers. You will also mentor and guide your peers in novel approaches and provide peer review for their work. The team has already developed algorithms used in production systems and you will be part of the team that expands the scope of these algorithms. This is your chance to join the InsureTech revolution!\n\nWhat you need to succeed\n\nAs a data-scientist, you will need the following skills and experience to succeed in the role:\nAn educational background in computer-science or engineering, math, statistics, physics or related field. A minimum of MSc is required and Phd preferred.\n5+ years of experience with model development and working with large datasets. This can include experience from any industry or academia (post-doc experience).\n5+ programming experience in Python or R with good grasp of software engineering standard methodologies such as code-reusability, modularity, use of repos, etc.\n\nWhat sets you apart\nA growth mindset with versatile skills and able to work through problems from first-principles.\nA portfolio of projects that demonstrate your ability to draw inferences from data. This includes participation within the broader data science community including Kaggle competitions or any personal projects with open data.\nA can-do teammate who is willing to roll-up the sleeves and do whatever is needed to move projects forward. That means at times you will wear different hats and be a project manager, developer, modeler and chief communicator of solutions.\nAmazing people skills and able to translate and communicate complex algorithms to non-technical individuals. Someone who understands that it is not enough to just have a phenomenal algorithm but meaningful to build an agreement for the solution from different partners.\nThe best problems in the industry are yet to be articulated. We need someone who is creative, self-motivated and can lead projects independently.\n\n\n\nAviva Canada is committed to providing accommodations for people with disabilities during all phases of the hiring process including the application process. If you require an accommodation because of a disability, we will work with you to meet your needs. Applicants need to make their needs known in advance. If you are selected for an interview and require an accommodation, you are encouraged to advise the Talent Acquisition Partner who will consult with you to determine an appropriate accommodation." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0CkZrmoNIfNnv5K6heJNTgcHXgr0H7cYcF0-Q8gfPuoOa1trGKbafX9ANYoPeq38xEUxLgqrLxTICm0AQndM6uPcL7PBpgdTZgMMuTdZ8WyOj970M7l-Ouw4RZXFvaWqLBxA-9CmaKizphHNKul6VgKik7STef963aL3wg64Y5I1Keg0EELkmeTcE4Ur316MNOQRPoo4pP1LfXL4GbdSvDAXCwGjQo4IPGS21lcAq9Z9-SRehYTlNyq-CF173wj7m_xOlJ56Qy2yll3kAnei2O6XIzwBTREz0URkWxO0WJaJ5kxLDP9b8wzFsV0CB7OwPPgRYtRWjRza1pbLIdZjxzfkawaG-GsJUfDzYaRE45eO-xKUTKHF9EYBa_jm18pC2PsZ5sWtLIR5fgfgjqsq41OS3O5u_Puw37_64BSl03KN5L8-iIiDeZZxS-9t7_fMUTudfsVcnThDi9-0oiNbCmMF_oZ7RdKfRwsHY2I4Wx4G4wLqbGbBdM2IQdLoXj397i4T-T-ipIRMlkqsulry47dCvnWTbhr07YHeZyf6Cls3f2Vn-kcbIIy&vjs=3&p=5&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Reporting Analyst", + "company": "Robert Half Technology", + "salary": "$60,000 - $70,000 a year", + "desc": "$60,000 - $70,000 a year\nData Scientist - Burlington\n$60,000 - $65,000 Annual Salary\n\nOur client, located in Burlington, is looking for a Data Scientist that will help them discover the hidden information and drive the consumption and display of their IoT data, to help them and their customers make sense of it all. The primary focus will be in applying data-mining techniques, statistical analysis, and building high quality predictive systems, using machine learning that integrates with their core software product line.\n? Work closely with Development, Engineering, Mechanical, and Energy teams to understand the data domain\n? Analyze scoring using machine learning techniques\n? Build analytical, predictive, and recommendation systems\n? Present information and communicate findings using data visualization techniques\n? Preprocessing, cleansing, and verifying the integrity of data, in order to build models and cubes\n? Drive the collection of new data and refine existing data streams\n? Data mining using state-of-the-art methodology\n? Develop prototypes and proof of concepts for predictive models and data analytics\n? Extending company?s data with third party sources of information when needed\n? Perform and interpret data studies and conduct experiments with new data sources or new uses for existing data sources\n? Enhancing data collection procedures for robustness and reliability\n? Perform ad-hoc analysis and presenting results in a clear and concise manner\n? Provide ongoing tracking and monitoring of performance of statistical models, recommend improvements to methods and algorithms leading to new findings\n? Tailoring data collection for relevant information to assist in the building of analytical systems\n\nIf you meet these requirements, please send an updated CV to Aidan Kelly at aidan.kelly@rht.com.\n\n? Passion for empirical research and answering hard questions with data\n? Understanding of Machine Learning techniques and algorithms\n? Experience with data-visualization and Business Intelligence tools\n? Demonstrated experience solving loosely defined problems by leveraging data pattern detection\n? Excellent communication skills\n? Familiarity with SQL and NoSQL databases (SQL Server, MySQL, MongoDB, and DocumentDB)\n? Good applied math and statistical skills: distributions, statistical testing, and regression\n? Possess scripting skills and programming exposure: Python, JavaScript, C#\n? Possess knowledge of analysis tools such as: R, Matlab\n? Experience with tools for large data sets: Power BI, Azure ML, SRSS, Spark, Hadoop, Hive" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR1tZWrQnvDMm93yC_r3XPpMNzNyvjpyIQr6Px0ZLYWPZI_XodfOL4nTVJvb9kxpna-Kim_eccrrbibcYIPnzupatqUH2WnvurYNmwJyydDp-7JgjRjzWXwY1ZpmK3H909oXq3H8EJNRbBLht7V9ewMDd_A5PBJVr25S3HVrOlmNNZ3pk-HVYjKbBjaP7yyh_msVZEUAy4EeIZWSGVNMtfcxf6sESPBWu_dlKy0jw2joCn8Hr3arzoUumblN2exWRPEpe0OR7xbOpWpQKzPqr8QVDLTBR-ymO9Ogy5vhfc4xgVslp2uC-Z7rDCk_81I_FRuGqeUQ-ldrT9AllywqAwt0umLF2_UI4zMO0BSDuSNlR7YEhK1b9Ct90ptAnau0_aQvc-mZMt1jk0GM3Mnw6VDq4PJrsUp8HisaVghwsahVBFH2x1p5n6fGHfM8ggVu1-_RgiPhKM7KYUcrGoGYVQmijm2hdHGUjg7ngXGUR8DDfbqDxOXi05fP4-xNwpvqQArdMSb3BiEIU7L9c07LKVCLd9hMPJfBYM1tn6O4n4qQV7Cevmi5-cj1wczJJGQzieqHzfcg61F3iH6k5Vv2OPEc6rpNc4K3zFopFHYwpeRwJxtw3vDQUkC0nVXchOpDOzPHUGqMM9yunJD7m9L_WatdYn21YLO2shX4aPLW-Jf4N3_lTrfHScB85uLRoxPUVogxz61WRvCjAI7iKEzCschybrKEr_X1RqlICZAOCu-xBF99-oPD6tpodKCEcL3a5ysw8pUQoJU80OexFB0uOYzFAtM_F3hYOau9rtB7nvv5mA==&vjs=3&p=6&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Scientist - AI/ML", + "company": "Etsy", + "salary": NaN, + "desc": "We are currently hiring at all levels for Data Science (Jr. Sr. and Staff)\n\nEtsy is looking for Data Scientists to join our Data Science team and to have the opportunity to make core algorithmic advances and apply their ideas in the dynamic world of E-commerce in strengthening Etsy\u2019s global marketplace.\n\nEtsy is committed to advancing the fields related to E-commerce related fields by building technologies that help Etsy buyers and sellers discover and celebrate handmade goods from all over the world. We are seeking individuals passionate in areas such as Machine Learning, Data Mining, Recommender Systems, Information Retrieval, Natural Language Processing, Computational Advertising, Deep Learning and Computer Vision. Etsy's Data scientists can publish their innovations at top tier conferences such as KDD, NIPS, ICML, ICLR, CVPR, ICCV, WWW, WSDM, SIGIR and etc.\n\nWe are motivated by curiosity and humility. We are dedicated to learning and constantly improving in a blameless environment and have a natural drive to figure out how everything works. We believe in keeping it real. Etsy\u2019s mission and values are a part of everything we do. We care about how our work affects real people in the community and enjoy opportunities to meet them. We are motivated by this mission every day.\n\nAbout the Role\nRecommendation and Personalization\nNatural Language Processing and Query Understanding\nDeep Learning\nImage Processing and Understanding\nText Understanding\nLearning to Ranking for Search and Ads\nFraud and Abuse Detection\nLarge-scale Machine Learning\n\nAbout You\nYou share our values (below) and are looking for a company that has a solid mission.\nYou have strong analytical and quantitative skills. You are familiar with techniques in Machine Learning, Data Mining, Recommender Systems, Information Retrieval, Natural Language Processing, Computational Advertising, Deep Learning and Computer Vision or related fields.\nYou have a Ph.D. degree in Machine Learning, Data Mining, Recommender Systems, Information Retrieval, Natural Language Processing, Computational Advertising, Deep Learning and Computer Vision or related fields.\nYou have strong technical and programming skills. You are familiar with relevant technologies and languages (e.g. Python, Java, C++ and etc.). You have experience in or desire to learn Hadoop/Spark related Big Data technologies.\nYou have demonstrated the capability to review and write technical papers.\nYou can contribute to research that can be applied to Etsy products.\nYou have the ability to quickly prototype ideas and solve complex problems by adapting creative approaches.\nYou are a strong collaborator and communicator and you make the engineers around you grow and learn.\n\nAt Etsy, we believe that a diverse, equitable and inclusive workplace makes us a more relevant, more competitive, and more resilient company. We welcome people from all backgrounds, ethnicities, cultures, and experiences. Etsy is an equal opportunity employer. We do not discriminate on the basis of race, color, ancestry, religion, national origin, sexual orientation, age, citizenship, marital or family status, disability, gender identity or expression, veteran status, or any other legally protected status." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DhEKUvdCKx0uHayhhGdArhclzBPbbmRYgRAr6kXNDNtV7ILrpNIPr_-IzG-6mTRSltgwCeYQBPkE9aMAX5bfIIQ0_yHJStxGc_yzD-hOKGF62GqXNtZVxRld6ycO3tYxfGgKxKMakLyA9h8a5gQAgnXeLcKZhEcP0ZLQd6RZGgLKImIDgiYY70TSiowx2vVm3TlJpRXnCPoy6gJXUAXLPEcrv0GbJn4UEycuFphwI22x3U2d8IjCsDGNR51Jvc1c6oSmn7FYRVAnRNwevr1m4rjXRr-8AsrymxXt9Erfo4CypxVddbNGAVOFzPiw93w4Cuou4Pbk924c0VBgFYmXoQ9OOa2x99CVUgnWTuOQb_SI1jFwbzFid0y0WQJzOGfkyBuowbHu8PT0nZMirCHMXkEYA_5HGzYemVUghaGb4h68VPmlnOJ6m1_1HwUu1YwUkZXhNWl34Rd4nTWmObsLWNSpjQiGKboCxVThZ5fdCXc5Vt1Hy0PNrPHrDcnCSw6YgtG-PV8CahYHh5nmU1gkhompR7zcArlhN-RaxQpccyvSwo9Iv27Mkvu8DlZUFJS80k-Z6YqQs-lQ==&vjs=3&p=7&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Big Data Engineer (RedShift)", + "company": "Lannick Group", + "salary": "$115,000 a year", + "desc": "$115,000 a year\nDO YOU HAVE EXPERIENCE WITH LARGE (100TB+) CLOUD STORAGE SYSTEMS AND ETL? Our client is looking for a Senior Data Engineer to join them in a full-time role.\n\nBig Data Engineer (RedShift)\n\nAbout the Opportunity\nOur client, a thriving company in downtown Toronto, is looking for a Data Engineer to join their growing Toronto office. This is a unique opportunity to work on cutting-edge big data warehouses, data lakes and data analytics services.\n\nIn this role you will be:\nWorking on designing and maintaining/mining large data stores\nWorking with the latest cloud technologies like AWS RedShift, etc.\nWorking on ETL processes, database tuning, data validation/ modeling\nWorking in a very Agile environment\n\n\nAbout You\nExpert on RDBMS - architecting/designing/implementing/maintaining large data warehouses\nExpert on SQL - querying and integrating new data sources\nExpert on ETL - processes and data modeling\nExperience working with distributed big data processing algorithms\nExperience with cloud data platforms - eg AWS Reshift, Google BigQuery, etc\n\n\nSalary\n$105,000 - $115,000/year\n\nHow to Apply\nClick the \u201cApply Now\u201d button and follow the instructions to submit your resume. Please note that we only accept documents in MS Word or Rich Text formats. When referencing this job, quote #21834.\nYou must currently reside within the Greater Toronto Area and be permitted to work in Canada to be considered for this opportunity. A recruiter will be in touch with you if your profile meets our client\u2019s requirements for this role.\n\nAbout Lannick\nLannick is the premier professional recruitment and staffing firm in the Greater Toronto Area. Founded in 1985, Lannick provides best-in-class finance, accounting and technology professionals at all roles and levels through its three divisions: Lannick Finance & Accounting, Pro Count Staffing and Lannick Technology. Lannick places more than 1,000 candidates annually and is a preferred vendor for Canada\u2019s most successful organizations. Learn more at www.lannick.com." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DhEKUvdCKx0uHayhhGdArhclzBPbbmRYgRAr6kXNDNtV7ILrpNIPr_-IzG-6mTRSltgwCeYQBPkE9aMAX5bfIIQ0_yHJStxGc_yzD-hOKGF62GqXNtZVxRld6ycO3tYxfGgKxKMakLyA9h8a5gQAgnSfm7kCw3IDEzY65Ydgjc7eUh5is2QUWNKV4n_L8qG0t-R9FPq7w-yvIx4eU__85eID0a7cPdOzI0SpLSLzvMYZ7584k9kQ74YCGT3eCv_16sTDSCCbgwEczZelshgrbJf4JRhdd-oIl5biT-dS4JHlbxMHVrDTWktUrma9ke65Ypn3yIURCmpNNHIZfsGhPT91-InMEk2SypBZOiMR25lwEHzdEI-1Jwh94W6DNT-n_bS6hSLBGs9zDBf0hrZgOFKxGYjekxF4rOAH8vm-ru4BcQuNaNV2vHYo_Z7Hs4lt_s4ttskbzafR-dOH0nW8mbPlNKYyA5TMTJRL_jNndcUTCitF2WhPuH47JlWaNNeKxr-5CBJgzu0OUdtxFRJKgXWVmsZzVeQtIHx1sTXh8F0O7o-ZJx-8BytWHvlR1Tzo8JYqxlijAnpA==&vjs=3&p=1&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Big Data Engineer (RedShift)", + "company": "Lannick Group", + "salary": "$115,000 a year", + "desc": "$115,000 a year\nDO YOU HAVE EXPERIENCE WITH LARGE (100TB+) CLOUD STORAGE SYSTEMS AND ETL? Our client is looking for a Senior Data Engineer to join them in a full-time role.\n\nBig Data Engineer (RedShift)\n\nAbout the Opportunity\nOur client, a thriving company in downtown Toronto, is looking for a Data Engineer to join their growing Toronto office. This is a unique opportunity to work on cutting-edge big data warehouses, data lakes and data analytics services.\n\nIn this role you will be:\nWorking on designing and maintaining/mining large data stores\nWorking with the latest cloud technologies like AWS RedShift, etc.\nWorking on ETL processes, database tuning, data validation/ modeling\nWorking in a very Agile environment\n\n\nAbout You\nExpert on RDBMS - architecting/designing/implementing/maintaining large data warehouses\nExpert on SQL - querying and integrating new data sources\nExpert on ETL - processes and data modeling\nExperience working with distributed big data processing algorithms\nExperience with cloud data platforms - eg AWS Reshift, Google BigQuery, etc\n\n\nSalary\n$105,000 - $115,000/year\n\nHow to Apply\nClick the \u201cApply Now\u201d button and follow the instructions to submit your resume. Please note that we only accept documents in MS Word or Rich Text formats. When referencing this job, quote #21834.\nYou must currently reside within the Greater Toronto Area and be permitted to work in Canada to be considered for this opportunity. A recruiter will be in touch with you if your profile meets our client\u2019s requirements for this role.\n\nAbout Lannick\nLannick is the premier professional recruitment and staffing firm in the Greater Toronto Area. Founded in 1985, Lannick provides best-in-class finance, accounting and technology professionals at all roles and levels through its three divisions: Lannick Finance & Accounting, Pro Count Staffing and Lannick Technology. Lannick places more than 1,000 candidates annually and is a preferred vendor for Canada\u2019s most successful organizations. Learn more at www.lannick.com." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0CkZrmoNIfNnv5K6heJNTgcHXgr0H7cYcF0-Q8gfPuoOa1trGKbafX9ANYoPeq38xEUxLgqrLxTICm0AQndM6uPcL7PBpgdTZgMMuTdZ8WyOj970M7l-Ouw4RZXFvaWqLBxA-9CmaKizphHNKul6VgKYKFxE6sVPefVYaXMPEf3VbuayzSpnVavgLR34B-NOZUR9NFnLxlqbA1NyQZa569jmx1F5oD3PnfYleLXuGOzWAOgmW3fFK5iJsX8X7PP9ddtX3sKRRS551sqbAJ2EvbpRALvU1pAa08yYiTmH_X9PEqgzpz8Ao03UICoD4nzj4Q6eczw0vbOeyOzOROBh_kl9yLu8nCyO73t4omiYu7I8IQ_bPYs9_bD3zFE30QJRPFaaUTO9OcJHosxyBH5VD2UJrT8dT7Mw8MYUJL7l2pRxp2YEjOxAUC1Xr9ZmDjF9_OKyb1C7D-H1JSzA44nIV3Akx_Cc2E8oFRwf9S8m0HZV7bLd8TSV_zd39UHoYiYnXBePKmXTY25G1jWAv4jdstbrtR1K-POMQ3zwirxKurm40-398M4mrja&vjs=3&p=2&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Reporting Analyst", + "company": "Robert Half Technology", + "salary": "$60,000 - $70,000 a year", + "desc": "$60,000 - $70,000 a year\nData Scientist - Burlington\n$60,000 - $65,000 Annual Salary\n\nOur client, located in Burlington, is looking for a Data Scientist that will help them discover the hidden information and drive the consumption and display of their IoT data, to help them and their customers make sense of it all. The primary focus will be in applying data-mining techniques, statistical analysis, and building high quality predictive systems, using machine learning that integrates with their core software product line.\n? Work closely with Development, Engineering, Mechanical, and Energy teams to understand the data domain\n? Analyze scoring using machine learning techniques\n? Build analytical, predictive, and recommendation systems\n? Present information and communicate findings using data visualization techniques\n? Preprocessing, cleansing, and verifying the integrity of data, in order to build models and cubes\n? Drive the collection of new data and refine existing data streams\n? Data mining using state-of-the-art methodology\n? Develop prototypes and proof of concepts for predictive models and data analytics\n? Extending company?s data with third party sources of information when needed\n? Perform and interpret data studies and conduct experiments with new data sources or new uses for existing data sources\n? Enhancing data collection procedures for robustness and reliability\n? Perform ad-hoc analysis and presenting results in a clear and concise manner\n? Provide ongoing tracking and monitoring of performance of statistical models, recommend improvements to methods and algorithms leading to new findings\n? Tailoring data collection for relevant information to assist in the building of analytical systems\n\nIf you meet these requirements, please send an updated CV to Aidan Kelly at aidan.kelly@rht.com.\n\n? Passion for empirical research and answering hard questions with data\n? Understanding of Machine Learning techniques and algorithms\n? Experience with data-visualization and Business Intelligence tools\n? Demonstrated experience solving loosely defined problems by leveraging data pattern detection\n? Excellent communication skills\n? Familiarity with SQL and NoSQL databases (SQL Server, MySQL, MongoDB, and DocumentDB)\n? Good applied math and statistical skills: distributions, statistical testing, and regression\n? Possess scripting skills and programming exposure: Python, JavaScript, C#\n? Possess knowledge of analysis tools such as: R, Matlab\n? Experience with tools for large data sets: Power BI, Azure ML, SRSS, Spark, Hadoop, Hive" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BsKQI0TTiZKtRv_VHghD1HBRMRtHYRjmEe5OwbA0REBEnOTPkgo6xmW9LNwNtLFg2h7KFWDqxe5fz2ixRSHEAcBLEpHez4iKjvTRg7NV44zqLNsjYuM-DeFTV3sCE5ZUfZgqRCY6-h4c6JdM_mXZP-s2AJM9mN7R43o-DvOZIAGxM_I4NOpPhTdjnfgeWWjIsoohfJcu48Z-gmru7WDObb451nN9PBKuOdcFSTHpoax2XMXx-46nU7yN2fsKcnap9hj1HMFnhFChlZ5eBaBLzKlsx6ZT74DSybnm4m4JpJffYzQf3IqHwzIVa2ccC_teG7n7QsGld5UOjkiRpFCYZ7GfsNLB3kaBtMkW3xdaZ_tDzuFYgCHZkYBCgyWrh0Ue6KuSxEGRC9mMFwfy5XYrJwPMYzhKZR33zoVXOV5FQbTQXRIur9Knaj6Pf3zIebh4qfDtvF_kMclPbSHjIMfSkBIPtZep11RzJ66JSmtsd3PZXGMuVwIa1ddZexRgZtrt-ta2XXUAsA6ZE36WVnmYr_4PrtdrBGDO5i2L8FXdm4DScOSC9M_5pg4lrPO-cR1L77Ba-3z67zUgie2glEMjHuNTCKGRxzukwzl8QkTlnxS6kYQ_Gm8cajfvXO4fKpftq5yQpMRtsQeazS2iA7yuME0rLLysK7Y2aNEZl0MtlAqJV3YxGgS0GR6J0l9cy5qcZJ-YWktQjG5o82RC3Mw14LneKdUhdU938=&vjs=3&p=3&sk=&fvj=0", + "location": "Toronto,ON", + "title": "78267 Jr Data Analyst", + "company": "Modis Canada", + "salary": NaN, + "desc": "Temporary, Contract\nJr. Data Analyst\nDuration: 3 months\nLocation: Downtown, Toronto\nThe Jurnior Data Analyst, will be responsible for reviewing the quality of key regulatory compliance risks, controls and regulatory theme data attributes collected by the business in specially formatted spreadsheets that require adherence to specific data parameters to allow for upload into the company's Enterprise Repository of Internal Controls.\nResponsibilities:\nValidate regulatory compliance data quality in worksheets as they come in under the direction of the Product owner and Data Workstream Lead\nTake direction from the Program Director (hiring manager) to support specific requests from the Regulatory Compliance Management team as it relates to regulatory compliance data quality or reporting\nWrite a SQL queries to export/validate/analyze counterparty data\nMonitor changes in data to ensure data integrity\nCode logical and physical database descriptions and specify identifiers of database to management system\nImplement security measures to safeguard information in computer files against accidental or unauthorized damage, modification or disclosure\nPrepare and test change requests when required\nVerify/check/compare client counterparty data from the counterparty databases to internal reports and spreadsheets\nProduce internal and regulatory reports on regular or ad hoc basis\nMust Have Skills:\nExperience reviewing large volumes of data quickly for adherence to defined data parameters with advanced attention to detail\nAdvanced Excel (understands and can run macros)\nGood oral and written communication\nAbility to prioritize competing requests\nAbility to produce under tight deadlines\nNice to Have Skills:\nExperience interacting directly with key stakeholders to provide updates on progress and feedback on quality of data (will be supported and given direction)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR1tZWrQnvDMm93yC_r3XPpMNzNyvjpyIQr6Px0ZLYWPZI_XodfOL4nTVJvb9kxpna-Kim_eccrrbibcYIPnzupaQBEWoxLuMLOgTyzb5Kxpe6XqaHdpzGT5FFlWzZT4vvhNjwoEwFfir8R3V_AmFbp1i5We3t8m-v_LAbw9Wc6zm8B3bJQBGDW1iAzFFSL3Is1eMT8oyITU8oS0I2G0XRp2OmseFmf1VTtY3Sbagxe63U4OyHdMuusiBBix3M2D0wNCXwP5PAq_OeQ4XID-_4WjTUyJKQ_q0z96HAih-bI0yeErao0ulgi6x7_IWqyLDOfd6WfpA9wyZsebUnuHfXuKYdrSx9iFcysDZnQ4Egv7SJWnVmjYyyLmkwiAdT5mq_Xiz1mOUJ4PAVVTQ2ikhebBhPmpeZ7imPRTqsR8AKlb_UldLV9X702X8bIdXAqDG5yoN-8tNGfuKzlImC-ytFo8CIwd3cM4mmEVaTRp5wSR09zL6obq7VT3OKiazn1bgA5rL8Xbktr-lUws31OI8U8WUSEcw2L63qSISKalarFp-Nn_uxGozC6KZZJTBwyQhwYJkF_LoitK2VY-ANLBW8tn9vXT80A_GqvWFJk6rvdajqN7ApPjOG3txF_w9aEPbYSF1RuXpOs-Dr5fMRffsxJygldEPtRJr8eBG5v5VkOwzv2_l1zjG8NWrmYVUAOZmcaUJnaTjLzMKTLbOZWhS541DcBNj6KekjsSvOK6_d8kw50AWXhEDwRB4CD-VTCScL9ET1ETLYq09qCgylRqXf7g5DziDiRf0NBVod2m58JBeg==&vjs=3&p=4&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Scientist - AI/ML", + "company": "Etsy", + "salary": NaN, + "desc": "We are currently hiring at all levels for Data Science (Jr. Sr. and Staff)\n\nEtsy is looking for Data Scientists to join our Data Science team and to have the opportunity to make core algorithmic advances and apply their ideas in the dynamic world of E-commerce in strengthening Etsy\u2019s global marketplace.\n\nEtsy is committed to advancing the fields related to E-commerce related fields by building technologies that help Etsy buyers and sellers discover and celebrate handmade goods from all over the world. We are seeking individuals passionate in areas such as Machine Learning, Data Mining, Recommender Systems, Information Retrieval, Natural Language Processing, Computational Advertising, Deep Learning and Computer Vision. Etsy's Data scientists can publish their innovations at top tier conferences such as KDD, NIPS, ICML, ICLR, CVPR, ICCV, WWW, WSDM, SIGIR and etc.\n\nWe are motivated by curiosity and humility. We are dedicated to learning and constantly improving in a blameless environment and have a natural drive to figure out how everything works. We believe in keeping it real. Etsy\u2019s mission and values are a part of everything we do. We care about how our work affects real people in the community and enjoy opportunities to meet them. We are motivated by this mission every day.\n\nAbout the Role\nRecommendation and Personalization\nNatural Language Processing and Query Understanding\nDeep Learning\nImage Processing and Understanding\nText Understanding\nLearning to Ranking for Search and Ads\nFraud and Abuse Detection\nLarge-scale Machine Learning\n\nAbout You\nYou share our values (below) and are looking for a company that has a solid mission.\nYou have strong analytical and quantitative skills. You are familiar with techniques in Machine Learning, Data Mining, Recommender Systems, Information Retrieval, Natural Language Processing, Computational Advertising, Deep Learning and Computer Vision or related fields.\nYou have a Ph.D. degree in Machine Learning, Data Mining, Recommender Systems, Information Retrieval, Natural Language Processing, Computational Advertising, Deep Learning and Computer Vision or related fields.\nYou have strong technical and programming skills. You are familiar with relevant technologies and languages (e.g. Python, Java, C++ and etc.). You have experience in or desire to learn Hadoop/Spark related Big Data technologies.\nYou have demonstrated the capability to review and write technical papers.\nYou can contribute to research that can be applied to Etsy products.\nYou have the ability to quickly prototype ideas and solve complex problems by adapting creative approaches.\nYou are a strong collaborator and communicator and you make the engineers around you grow and learn.\n\nAt Etsy, we believe that a diverse, equitable and inclusive workplace makes us a more relevant, more competitive, and more resilient company. We welcome people from all backgrounds, ethnicities, cultures, and experiences. Etsy is an equal opportunity employer. We do not discriminate on the basis of race, color, ancestry, religion, national origin, sexual orientation, age, citizenship, marital or family status, disability, gender identity or expression, veteran status, or any other legally protected status." + }, + { + "link": "https://www.indeed.ca/company/Ward-IT-Talent/jobs/Data-Analyst-Mapper-337d7af480baf33f?fccid=fe3006c2b79bc7b1&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst/Mapper", + "company": "Ward IT Talent", + "salary": "$60,000 a year", + "desc": "$60,000 a year\nContract\nReview the standardization initiative and decisions being made in the registration and clinical systems\nAssess clinical / registration standardization decisions' impact on Billing system(s), identify any potential issues, identify options, and make recommendations to resolve\nReview and recommend a Billing system standardization structure that both aligns with the clincial / registration system standardization and that is best practice for Billing system(s)\nRecommend a framework / guiding principles on Billing data / dictionaries, per best practices\nAvailable to advise on issues or questions that arise after delivery of your report (e.g. during Billing dictionary / data standardization detailed work)\nJob Type: Contract\nSalary: $60,000.00 /year\nExperience:\nMEDITECH EHR: 2 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7642eaf5032efe3e&fccid=5fec8a638fc3e20a&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "EllisDon Corporation", + "salary": NaN, + "desc": "Connect with us LinkedIn, Instagram, Facebook, Twitter\nThinking about a change?\nWe recognize that the construction industry is changing at a rapid pace and we continually strive to be at the forefront. Our core values empower people to deliver great careers and develop creative solutions for complex problems on some of the most intricate projects. It doesn\u2019t matter what your expertise and craft is \u2013 there are no boundaries. We are a group of leading professionals with a variety of expertise: engineers, investment bankers, superintendents, estimators, software engineers, accountants, lawyers, marketing and communications consultants, sustainability professionals, and project managers. As you can see, we are a diverse bunch.\nIn case you\u2019re curious, here\u2019s what the industry thinks of us and some cool things we have done.\n\nYou as a Data Engineer (Insight and Analytics) will:\n\nPrimarily be responsible for the delivery of clean and usable data to a variety of stakeholders across the organization;\nWork with relevant stakeholders to identify sources of data and map out processes/data flow while researching opportunities for data acquisition and innovative new uses for existing data;\nDesign, construct, install, test, and maintain highly scalable data management systems while integrating new data management technologies into existing structures;\nDevelop ETL processes to move internal and external data into EllisDon's external cloud-based data lake: Develop separate ETL processes to move data from data lake to data warehouse(s);\nContinually improve our data pipelines and find innovative ways to maximize automation while recommending ways to improve data reliability, efficiency, and quality.\n\n\nIs this the right role for you?\nHave the basic knowledge and understanding of:\nProgramming Languages: Python and/or Java, SQL, ETL methodologies and toolsets, AWS/Google ecosystem, Database design, MS SQL, MySQL and/or Redshift/Big Query and NoSQL\n\nEllisDon is proud to provide this unique career opportunity within a progressive environment with continuous learning and opportunity for growth, as well as a competitive compensation package.\nGo ahead and be yourself. We'll pay you for it!\nWe are an equal opportunity employer. While only qualified candidates will be contacted for an interview, be sure to continually check our website for other related positions as they are posted.\nAccommodation for Applicants will be made during the recruitment process when requested.\nApply today at www.ellisdon.com (or Share on LinkedIn , Facebook)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=93992ae08794f3d4&fccid=ce79f55dda0c08e8&vjs=3", + "location": "Toronto,ON", + "title": "Marketing Data Analyst", + "company": "Jobber", + "salary": NaN, + "desc": "Do you see a story when you look at numbers?\n\nThen you should consider joining Jobber! We\u2019re looking for a Marketing Data Analyst to join the Business Operations (\u201cBizOps\u201d) team at our growing office in Toronto , which is located in the up-and-coming King-West area. As one of Canada\u2019s most dynamic start-ups, there are always new challenges and exciting projects on the go. So if you\u2019re a person who thrives in an environment that moves at warp speed and likes supporting and empowering people to do their best work, we want to hear from you!\n\nThe Job :\nThe BizOps team is our internal consulting team - it is a central function that exists to drive business outcomes in all corners of Jobber\u2019s ecosystem. We work with teams such as Sales, Marketing, Finance, Customer Success, Growth etc. Reporting to the Director of BizOps, the Marketing Data Analyst will study key data sets to support stakeholders when making decisions. You will elevate our marketing efforts by providing recommendations and developing strategies for key challenges such as optimizing our paid spend, lead scoring, web and campaign analytics, and marketing attribution. You should be naturally inquisitive, like to piece together puzzles, and tell a story with data.\n\nThe Marketing Data Analyst will\u2026\n\nUnderstand the needs of the stakeholders. You will get up close to the action in day-to-day Sales and Marketing operations, understand their goals and needs, and figure out how we can optimize or modify our revenue teams.\n\nDrive high impact projects . You will work on company-wide initiatives such as lead scoring and marketing attribution that can change how we operate as a business.\n\nGet dirty in the numbers. Y ou will analyze and optimize the performance of our marketing efforts, analyze KPIs of different channels, and develop measurement strategies for campaigns to ensure efficiency, success, and ROI.\n\nTie the quantitative with the qualitative. You are not afraid to dive deep into complex and messy data to pull out key insights, and tie those together to form compelling stories and findings.\n\nI llustrate the story. You will take important trends and stories and build out scorecards, reports and dashboards to visually convey important information.\n\nBecome a trusted advisor . Your insights and findings are leveraged to make and support important decisions in how we spend Jobber dollars.\n\nIn order to be successful you will need...\n\n3+ years of experience working with lead generation, campaign or web analytics, full-funnel analysis, and channel optimization.\n\nAn understanding of languages such as SQL, R and/or Python for manipulating data sets.\n\nTo be a wizard with data analysis and visualization tools such as Mode and Looker.\n\nTo be proactive and relentless. You are capable of seeking information independently, solving conceptual problems, corralling resources and delivering results.\n\nTo have a strong and confident communication style. You have the ability to actively listen and consult with stakeholders, and you can take something complex and difficult and make it easy to digest.\n\nTo be comfortable in an ambiguous and fast-paced environment. We\u2019re growing fast and things are changing every day - what worked yesterday might not anymore.\n\nTo be a champion of Jobber\u2019s culture and core values - humble, supportive, and give a sh*t.\n\nIf would be really great (but not a deal-breaker) if you had\u2026\n\nA post-secondary degree in a related field, but sometimes the best education is gained through your own exploration.\n\nPrevious experience working in a SaaS environment.\n\nWhat you can expect from us...\n\nExtended health benefits package, fully paid premiums.\n\nThree weeks paid vacation.\n\nCompetitive salary.\n\nAn inclusive environment that believes in bettering and supporting its people.\n\nA unique opportunity to build, grow and develop a team within a high-growth environment.\n\nA bit more about us...\n\nWe are the industry leading software for small home service businesses (Gartner agrees, read more here ). Your lawn care provider, home cleaning service, plumber and appliance mechanic use Jobber to quote for jobs, schedule and dispatch work, track time, send invoices and of course, get paid! Tens of thousands of people use Jobber to deliver over $3-billion a year in services to happy customers. Jobber exists to help make these small businesses successful, and that's exactly what we're doing!\n\nCheck out our website and follow us on Twitter , Instagram , LinkedIn , and Facebook to learn more!" + }, + { + "link": "https://www.indeed.ca/company/StackPros-Inc./jobs/Data-Engineer-5e7d9f46fdb5bdc6?fccid=efee8d7cab418992&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "StackPros Inc.", + "salary": NaN, + "desc": "StackPros Inc. is seeking a candidate for a full-time role within our Data Systems Team in Toronto, Ontario.\nThe Data Engineer will play a key role at StackPros, required to help create and maintain industry-leading quality and efficiency of service and software delivery.\nStackPros will rely on the Data Engineer to support the Data Systems team, in both data engineering and data science-related workflows. The Data Engineer will be expected to meet and exceed StackPros\u2019 quality standards, while helping the organization rapidly expand complex Machine Learning and related applications.\nKey Responsibilities:\nData Engineering-Specific Responsibilities\nParticipate in continuous delivery pipeline to fully automate deployment of the highly available cloud platform that supports multiple projects\nDesign and develop ETL workflows and datasets to be used in data visualization tools\nWrite complex SQL queries with multiple joins to automate and manipulate data extracts\nPerform end to end Data Validation to maintain accuracy of data sets\nBuild tools for deployment, monitoring and operations\nTroubleshoot and resolve issues in the development, test and production environments\nDevelop re-useable processes that can be leveraged and standardized for multiple instances\nPrepare technical specifications and documentation for projects\nStay up-to-date on relevant technologies, plug into user groups, understand trends and opportunities to ensure we are using the best possible techniques and tools\nUnderstand, implement, and automate security controls, governance processes, and compliance validation\nDesign, manage, and maintain tools to automate operational processes\nData Science-Specific Responsibilities\nPerform exploratory data analysis to identify patterns from historical data, generate and test hypotheses, and provide product owners with actionable insights\nDesign experiments for product initiatives and perform statistical analysis of the results with recommendations for next steps and future experiments\nCreate and design dashboards by using different data visualization tools to present reports and insights, and support business decision making\nHelp the StackPros Data Systems team adopt and evolve Predictive Modeling, Machine Learning and Deep Learning processes to deliver to clients in the future\nQualifications:\n2+ years experience in Data Engineering\nUnderstanding of digital ecosystems including online data collection, cloud systems and analytics tools (Google stack, Facebook, AWS, Salesforce, Adobe Suite etc.) a strong asset\nStrong technical understanding of a range of marketing concepts such as cookie-based data collection, setting and leveraging audience segments, attribution modelling, AB/N & multivariate\nExcellent written & verbal communication skills are essential; candidate should be comfortable presenting and participating in group discussions of concepts with internal and external stakeholders\nCandidate must exhibit an analytical, detail-oriented approach to problem solving\nExperience with Jira / Atlassian project management tools is an asset\nCompany-Wide Responsibilities:\nMaintain and exceed client satisfaction with StackPros Inc.\u2019s deliverables, day-to-day work and overall value as a partner\nCultivate opportunities for company growth, always seek areas where StackPros Inc.\u2019s role could be expanded\nAdapt to ever-changing client needs and expectations\nMaintain dedication toward achieving excellence in StackPros Inc.\u2019s delivery against client needs, and overall success as an organization\nBe an enthusiastic, positive and generally awesome team mate, mentor & constantly curious learner\nPlease reference Job ID SP1025 in your submission.\nJob Type: Full-time\nExperience:\nData Engineering: 2 years (Preferred)\nLocation:\nToronto, ON (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=698ba220ce35e565&fccid=6c9bf1e422ec0e9c&vjs=3", + "location": "Toronto,ON", + "title": "Health Records Data Analyst - Health Data Resources", + "company": "Scarborough and Rouge Hospital", + "salary": NaN, + "desc": "At Scarborough and Rouge Hospital (SRH), the patient experience comes first. With three hospital sites (Birchmount, General and Centenary) and five satellite sites, SRH provides a broad spectrum of health services to one of the most diverse communities in Canada.\n\nCreated through a merger of The Scarborough Hospital\u2019s Birchmount and General sites and Rouge Valley Health System\u2019s Centenary site in December 2016, SRH is committed to delivering the highest quality patient- and family-centred care, with a focus on enhancing access to services for the Scarborough community.\nThe completion of this online form serves as your application and will be used to determine if you meet the requirements of this position. Please ensure that you have provided all pertinent information necessary to be considered for this vacancy by the close date.\nAs a Data Analyst, you will report to Manager of Health Records. The incumbent will be responsible for performing a variety of technical health information functions related to various databases within coding services. The Data Analyst is the liaison between the clinicians and the HIM professionals, ensuring data quality concerns are appropriately addressed as it relates to collection and optimization of clinical documentation. You may be scheduled at the General or Birchmount campus based on departmental needs.\nRequirements:\nPossess a University degree or Diploma in Health Information Management\nCurrent registration with Canadian Health Information Management Association (CHIMA)\nMinimum 5 years acute care Inpatient(DAD) coding experience in a hospital setting\nKnowledge of Canada\u2019s Health Care System with thorough understanding of CIHI\u2019s case mix grouping (CMG+) and Resource Intensity Weight (RIW) along with Ontario funding reform, HBAM Inpatient Grouper and HBAM Inpatient Weight (HIG)\nThorough knowledge and understanding of MIS guidelines\nExperience working with WinRecs abstracting system and Meditech\nExcellent skills and in depth knowledge of DAD and NACRS coding to perform chart audits for QA analysis\nMust be proficient in scripting reports through Crystal report writer for data quality and reporting purposes\nResponsible for pro-active and retrospective audits on coded data to ensure alignment with ICD-10/CCI standards and accuracy\nResponsible for initiating analyses related to the quality of clinical documentation and the accuracy of its subsequent collection to ensure data quality standards\nDevelops, distributes and promotes materials with a focus on clinical documentation\nThe Data Analyst must have knowledge of providing data submission and correction files to CIHI, CCO and CCN\nProficient in Microsoft Office Suite (Windows, Excel and Word)\nDemonstrates values consistent with TSH\u2019s Code of Conduct and is committed to fostering a healthy and positive work environment in accordance with Health & Safety policy and legislation.\nExcellent communication skills with demonstrated ability to effectively communicate with all levels of the organization and develop and maintain respectful interpersonal relations\nExcellent work performance, attention to detail and attendance and effective team work skills\nDemonstrates excellent interpersonal, verbal and written communication skills\nDemonstrates a commitment to customer service when dealing with patients, colleagues and volunteers and other members of the community and public\nDemonstrates values consistent with SRH\u2019s Code of Conduct and is committed to fostering a healthy and positive work environment in accordance with Health & Safety policy and legislation.\nDemonstrates an understanding of and commitment to SRH's comprehensive safety programs and practices including staff safety, patient safety, and environmental safety and participates in regular in-service education in this area.\nDemonstrates excellent work performance and attendance record\nAsset:\nAbility to speak another language is an asset\nScarborough and Rouge Hospital (SRH) embraces and celebrates our community\u2019s unique multicultural heritage and diversity. SRH is an equal opportunity employer, dedicated to a culture of inclusiveness and diversity reflecting our diverse patients, staff and community alike. We are committed to providing barrier-free and accessible employment practices in compliance with the Accessibility for Ontarians with Disabilities Act (AODA). Should you require accommodation through any stage of the recruitment process, please make them known when contacted and we will work with you to meet your needs." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bc21127b5efb61d9&fccid=cdd0a46c7b16957c&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Symbility Intersect", + "salary": NaN, + "desc": "We want to be Where Business Meets the Future..\nINTERSECT delivers mobile and IoT product strategy, design thinking, and engineering excellence for businesses that want to get ahead.\nOur Toronto-based team works with global clients helping them deliver beautiful, usable, and\ninnovative products to their customers, employees, and partners.\nAs our Data Engineer you will work towards defining and establishing a new client offering with a focus on building and executing on Data, Machine Learning, and Artificial Intelligence (AI) solutions. Passion, enthusiasm, obsession with details and the ability to work (and play) in a team are all musts.\nAs Data Engineer, you will be responsible for the following:\nBuild, improve, and optimize Data processes and tools\nDerive Data insights and convert them into real solutions to help our clients\nUnderstand and keep up-to-date with emerging technologies, trends, and innovative solutions being implemented across the industry\nPresenting and justifying strategic thinking to internal stakeholders and external clients\nImplementing technical solutions using Data Science, Machine Learning, and AI techniques\nProcessing, cleansing, and verifying the integrity of data used for analysis\nRequirements\nEntrepreneurial mindset and collaborative approach\nExperience building Data products that have solved internal business problems\nData Science or Machine Learning background\nAcademic background in the fields of math, economics, computer science, or statistics.\n5+ years of practical experience in challenging and fast-paced environments.\nKnowledge of Data Science tools and their application.\nYou believe that horses are beautiful and majestic animals.\nProven business and strategic acumen\nProficiency with Python\nKnowledge of statistical techniques, machine learning algorithms, and data science problem framing\nUnderstanding of the relational database model and knowledge of SQL\nExperience in visualizing and manipulating big datasets\nFamiliarity with the command line\nGood scripting and programming skills\nNice to have:\nYou are excited about the prospect of working with technologies such as TensorFlow, Keras, scikit-learn, pandas, PyTorch - and so are we.\nHadoop, Hive, distributed computing frameworks\nExperience with NoSQL databases, such as MongoDB, etc\nGood applied statistics skills, such as distributions, statistical testing, regression, etc\nUnderstanding of modeling structured and unstructured data\n\u201cWe want to see examples of interesting Data products/projects that you\u2019ve built!\u201d\nIf you won the lottery tomorrow you would still apply for this job.\nBenefits\nFLEXIBLE HOURS AND UNLIMITED VACATION POLICY\nNeed a break? No problem. Employees can take time off in the way that works best for them and their teams. Work remotely when you need to.\nHEALTH AND WELLNESS\nComprehensive extended health care coverage, energy pod, and standing desks. Take care of yourself.\nFUN\nOff-site adventures, ping-pong, unique traditions, monthly birthday celebrations, Fancy Fridays, Lunch and Learns.\nOFFICE MEALS\nCatered lunches, healthy snacks, freshly-ground coffee, and Beer O\u2019clock\nTOWN HALL\nTo stay connected we have weekly town halls to celebrate milestones, share updates, welcome new hires, present apps of the week, and crown the QA Star of the Week.\nWORKATION\nWe like to work hard and play hard, and as such we offer yearly Workations for employees to unwind and spend non-work time with coworkers.\nWant to learn more?\nOur Culture: https://www.symbilitysolutions.com/symbility-intersect/careers/\nCheck out our 3D office tour: https://www.symbilitysolutions.com/symbility-intersect/360-office-tour/\nSymbility Intersect is a Toronto based strategic innovation company that works with forward-thinking global brands and disruptive entrepreneurs. Our team focuses on strategy, design, and development of mobile, web and data products. Our approach solves tough problems, overcomes complicated challenges and creates opportunities through innovation. Our deliverables are products and thinking that creates long-term value for our clients, not campaigns that disappear as quickly as their impact.\nSymbility Intersect welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process.\nIf you\u2019re interested in being on the bleeding edge of technology, tackling exciting problems from different industries, and constantly being pushed to learn - apply below!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=cf925844f9f0f4fe&fccid=a4e4e2eaf26690c9&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst (SQL/SAP HANA)", + "company": "Accenture", + "salary": NaN, + "desc": "ARE YOU READY to step up and take your technology expertise to the next level?\nThere is never a typical day at Accenture, but that\u2019s why we love it here! This is an extraordinary chance to create a rewarding career at Accenture Technology. Working in a digitally-driven, innovation-led environment where you can help clients shift to the New using leading-edge technologies on some of the coolest projects you can imagine.\nWORK YOU\u2019LL DO\nProvide functional and or technical expertise to plan, analyze, define and support the delivery of future functional and technical capabilities for an application or group of applications.\nAssist in facilitating impact assessment efforts and in producing and reviewing estimates for client work requests.\n\nWHO WE\u00b4RE LOOKING FOR?\nMinimum 5 years of Data Analyst experience\nExpert with developing MS-SQL queries and procedures, create custom reports etc.\nProficient with SAP HANA coding (ABAP experience required)\nWell-versed with Software Development Life Cycle\nBachelor\u2019s Degree or equivalent\nNICE TO HAVES:\nScrum/Agile \u2013 knowledge\nTelecom domain knowledge\nFamiliar with accounting project with SAP HANA\nProfessional Skills Qualifications:\nProven success in contributing to a team-oriented environment\nProven ability to work creatively and analytically in a problem-solving environment\nDesire to work in an information systems environment\nDemonstrated leadership, teamwork and collaboration in professional setting; either military or civilian\nWHAT\u00b4S IN IT FOR YOU?\nCompetitive benefits, including a fair and balanced parental leave policy.\nFantastic opportunities to develop your career across industries, local and global clients\nPerformance Achievement and Career Mentorship \u2013 our performance management process that focuses on your strengths, progress and career possibilities.\nOpportunities to get involved in corporate citizenship initiatives, from volunteering to doing charity work.\nTo learn more about Accenture, and how you will be challenged and inspired from Day 1, please visit our website at accenture.ca/careers.\nIt is currently our objective to assign our people to work near where they live. However, given the nature of our business and our need to serve our clients our employees must be available to travel when needed.\n\n\nAccenture does not discriminate on the basis of race, religion, color, sex, age, non-disqualifying physical or mental disability, national origin, sexual orientation, gender identity or expression, or any other basis covered by local law. Accenture is committed to providing employment opportunities to current or former members of the armed forces.\n\nWe are committed to employment equity. We encourage all people, including women, visible minorities, persons with disabilities and persons of aboriginal descent to apply.\n\n\nAccenture is a leading global professional services company, providing a broad range of services and solutions in strategy, consulting, digital, technology and operations. Combining unmatched experience and specialized skills across more than 40 industries and all business functions\u2014underpinned by the world\u2019s largest delivery network\u2014Accenture works at the intersection of business and technology to help clients improve their performance and create sustainable value for their stakeholders. With approximately 442,000 people serving clients in more than 120 countries, Accenture drives innovation to improve the way the world works and lives. Visit us at www.accenture.com." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=afcb7490ee24becd&fccid=d7114f1cac8d0711&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist II, Machine Intelligence", + "company": "TD Bank", + "salary": NaN, + "desc": "Tell us your story. Don't go unnoticed. Explain why you're a winning candidate. Think \"TD\" if you crave meaningful work and embrace change like we do. We are a trusted North American leader that cares about people and inspires them to grow and move forward.\nStay current and competitive. Carve out a career for yourself. Grow with us. Here's our story: jobs.td.com\n\nDepartment Overview\nThe North American Fraud Analytics Group (NAFA) is an integral part of the Financial Crimes and Fraud Management Group (FC&FMG) that protects TD Bank customers, shareholders and employees from financial crimes and fraud. NAFA supports all work efforts aimed at delivering advanced analytics to strengthen TD's defenses in this area.\n\nJob Type\nRegular\n\nJob Status\nFull Time\n\nHours\nMonday to Friday - Flexibility Required\n\nBusiness line\nCorporate\n\nJob Category - Primary\nGlobal Security & Investigations\n\nJob Category(s)\nGlobal Security & Investigations\n\nJob Description\nReporting to the Head of Machine Intelligence, North American Fraud Analytics, North American Fraud Analytics, Financial Crimes & Fraud Management Group, the successful candidate will provide thought leadership and expertise on a number of key Artificial Intelligence and analytical initiatives in fraud prevention.\n\nThis role focuses on the effective design and implementation of leading-edge Artificial Intelligence and statistical functions that support fraud detection and prevention. The role requires effective communication skills as well as deep passion for innovation and new technologies. Advanced knowledge and a post graduate degree in Artificial Intelligence and Statistical modeling is required. In addition, relevant assets include:\nAn undergraduate or graduate degree in computer science or a related mathematics discipline.\nExperience in fraud mitigation or the financial crimes industry.\n\nThe chosen candidate must be a driven, results oriented individual who is able to successfully support multiple initiatives with competing priorities in a very demanding and fast paced environment.\n\n\n\nJob Requirements\nLeadership and Organizational Skills\nProvide thought leadership on key business initiatives where there is a dependence on machine learning/cognitive computing technology.\nContribute to the mitigation of fraud risk by leveraging Artificial Intelligence, computer science and business expertise to solve complex fraud problems.\nProvide insight and recommendations to senior management and our business partners on emerging trends in machine intelligence capabilities especially in the fraud detection and prevention.\nContribute significantly to the success of FC&FMG's Artificial Intelligence Strategy through the design of effective fraud solutions.\nPromote/develop machine learning technology awareness and technical understanding of business partners / clients.\n\n\nJob Requirements\nMSc, MEng, or Ph.D. degree in Artificial intelligence or statistical analysis.\nMinimum 2+ years proven experience in designing AI system and statistical modeling\nPrevious Experience with\nBig Data (noSQL, Hadoop, Big Insights ACM Mahout)\nScripting languages (Python, Perl, Java script, etc.)\nStatistics packages (SAS, R, etc.,)\nData analytics tools\nVisualization tools\nDemonstrated experience working with unstructured data\nExpert knowledge of data bases and big data technology such as Hadoop, Big Insights ACM, Mahout, Enterprise R.\nExpert knowledge of computer science concepts.\nExpert knowledge of AI Algorithms Methodologies and design approaches.\nDemonstrated balance of theoretical and applied computer science skills.\nExpert knowledge of data/information management and mining strategies.\nIn addition, the ideal candidate would possess:\nStrong analytical and problem-solving skills\nEffective verbal, written and presentation skills\nAbility to adapt quickly to changing priorities\nAbility to build and maintain relationships across lines of business\n\n\nAdditional Information\nAdditional Accountabilities:\nDeliver on actionable insights gathered from fraud data exploration and discovery\nParticipate in proof of concepts to determine the viability of AI based approaches for fraud mitigation.\nIn collaboration with peers and external research partners create white papers and peer reviewed publications on AI approaches to fraud where applicable.\nExplore a variety of machine intelligence, statistical analysis and data mining techniques with the objective of improving our fraud model prediction capability.\nEvaluate current and experimental feature selection and segmentation algorithms for applicability to our fraud detection models.\nAssess benefits and business value of models and strategies\nWork closely with the data governance and data quality teams to ensure that all models remain efficient through time and that the data accuracy and quality remain consistent.\n\nInclusiveness\nAt TD, we are committed to fostering an inclusive, accessible environment, where all employees and customers feel valued, respected and supported. We are dedicated to building a workforce that reflects the diversity of our customers and communities in which we live and serve. If you require an accommodation for the recruitment/interview process (including alternate formats of materials, or accessible meeting rooms or other accommodation), please let us know and we will work with you to meet your needs.\n\n**Province/State (Primary)\nOntario\n\nCity (Primary)\nMarkham" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=11874d6493f38d79&fccid=1e05bb7cae466f1a&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Sourced Group", + "salary": NaN, + "desc": "Sourced Values\nIntegrity, Innovation, Service, Quality, Humility, Sustainability\nWhat you\u2019ll be responsible for\nWorking closely with technical leads and client teams to fully demonstrate the benefits of cloud technology\nDesigning and implementing scalable and secure big data solutions according to client requirements\nDefining and implementing cloud-based solutions in line with industry best practices and enterprise architecture guidelines\nSupporting customers in troubleshooting issues in their test and/or production environments and identifying root cause and solutions\nPresenting case studies and cloud solutions at meetups, conferences, and technology events\nWhat you will bring to the role\n3+ years of enterprise IT consulting experience\nBachelor\u2019s degree in engineering, Information Technology, Computer Science, or commiserate experience\nExperience in large-scale, secure, and high availability solutions in Cloud environment such as AWS, Google Cloud, or Azure\nData Modeling (relational and NoSQL) and SQL development.\nData Warehousing and Data Lake implementation\nData Integration and Data Pipeline engineering\nBig data solutions with Hadoop and Spark (Hortonworks, Cloudera, EMR, HDInsight, Dataproc etc)\nStreaming data ingestion and analytics\nData Science processes and Machine Learning foundations\nProficiency in Python and/or Java\nLinux Shell and/or PowerShell scripting\nCI/CD methodologies, processes and tools (Atlassian Suite, Jenkins, CodePipelines, Travis etc)\nAn understanding of security principals and other associated cloud controls\nTechnical writing; experience in preparing and presenting technical material to a variety of audiences\nExperience working in and with Agile delivery teams / projects / programs\nDesirable Skills\nFinancial services background is an asset\nSome knowledge of logging & event management tools (Splunk, ELK Stack, SumoLogic etc)\nApplicable public cloud Big Data certification\nAbout Sourced\nSourced Group is a global cloud consultancy that helps enterprises make the most of cloud services with a focus on security, governance and compliance. With offices in Australia, Canada and Singapore, we provide professional services for securing, migrating and managing the cloud infrastructure of large enterprise customers. We specialize in configuration management, automation, cloud computing and data management for a wide range of industries, including financial services, media, transport and telecommunications companies. By utilizing our proven deployment frameworks, managed services, and trusted design patterns, we work with the largest and most security conscious organizations to unlock innovation through cloud computing.\nWhy Sourced?\nFast-growing start-up with huge opportunities for growth, Fun and supportive culture, Team events, Flexible Hours, Downtown offices, Beer Friday\u2019s, Work-from-Home days, Challenging technology solutions, encourage professional development to learn different technologies and keep skills current." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d4b84adbd7605aef&fccid=99df7d642e3911a5&vjs=3", + "location": "Toronto,ON", + "title": "ERP Conversion/Data Analyst -Crystal Reporting 65-75K!!!!!", + "company": "The Executive Finance Group Inc.", + "salary": "$75,000 a year", + "desc": "$75,000 a year\nA multi-national division of a US public corporation is looking for a Data Analyst.\n\n\nAs a key member of the Finance team, the Financial Analyst will work to develop and improve the company's financial consolidation and planning systems in addition to providing support for the Finance and Sales Administration groups.\n\nMore specifically, the key functions are as follows:\nAssist to complete implementation of the Financial Consolidation and Planning system utilizing Longview Solutions.\nCreate various financial reports within Longview utilizing the Analysis and Reporting and Longview for Excel functionality.\nDevelop Crystal reports to extract information and create views from the company ERP system (SyteLine).\nMaintain the sales reporting functionality and expand to include a web interface and report dashboard.\nCreate detailed documentation of key processes.\n\nThe ideal qualifications include:\nIf you have worked in an Accounting Dept that would be an asset.\nProficiency in Crystal Reports.\nFull comprehension of Enterprise Resource Planning (ERP) systems and data modeling. Knowledge of SyteLine and Longview Solutions would be an asset.\nDemonstrated ability to collect and interpret data to provide support in decision making.\nDemonstrated ability to work well in a fast-paced environment under time constraints while handling multiple tasks simultaneously.\nResults-oriented with ability to work well both independently and in a team environment.\nSystems integration with:\nCrystal Reports\nSQL\nGenerate reports and tables and understands ERP systems (Longview ERP is preferred but not necessary)\nIf you can implement ERP system( General Ledger modules in particular)\nGenerate reports in Crystal Reports and create tables in SQL." + }, + { + "link": "https://www.indeed.ca/company/Teamrecruiter/jobs/Data-Scientist-c6645305a2e8d9fe?fccid=2d923f19a2788811&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist (SAS/SQL, CODE AUTOMATION)", + "company": "Teamrecruiter", + "salary": NaN, + "desc": "Contract\n\u201cThe start date of this job is flexible and in order to find the best candidate the job may remain open much longer than the date mentioned on this posting\u2026..or you may be asked to start sooner than the expected start date if you are able to do so!\u201d\nURGENT: Please read the job description below. If this interests you, please send a MS-Word version copy of your updated resume (ASAP) along with your salary expectations, first available date and a telephone contact number\nPlease mention the job title above in the subject line\nThe recruiter in charge of this role is Denise\nIf you do not think you are a match for this opportunity, but know someone who is, feel free to forward this email to them and you will be eligible for a referral bonus upon a successful hire.\nOne of our major banking clients is looking for a Data Scientist (SAS/SQL, CODE AUTOMATION)\nDuration: 12 months with the high possibility of extension\nLocation: Downtown Toronto, ON\nGROUP/PROJECT INFO:\nLeverage the customer data/information to provide recommendation to business partners of products that would best work with the target customers.\nRESPONSIBILITIES INCLUDE (but are not limited to):\nManage and enhance daily/weekly/monthly reporting to provide results and context to deliver actionable insights, not just reporting data\nManage, prioritize, and respond to ad-hoc requests\nUncover and identify opportunities to improve the customer experience by leveraging statistical approaches against multiple sources of data including internal sales/transactions, CRMs, and external 3rd party data/benchmarks\nResearch, design and implement reporting infrastructure that leads to automated and flexible reporting\nPerform data maintenance tasks when required to ensure ongoing data integrity\nWork closely with and build strong relationships with partners and across the organization\nTOP SKILLS / EXPERIENCE:\nExperience working with SAS/SQL is required\nGood verbal and written communication skills; able to effectively present analytics data to Business and Marketing users\nDriven to understand the relationship between data and the business\nNICE TO HAVE SKILLS/EXPERIENCE:\nWork experience (incl. internships) in Financial industry would be an asset\nExperience in visualization tools such as Spotfire or Tableau would be an asset\nExperience working with CRMs such as Microsoft Dynamics and salesforce.com would be an asset\nEDUCATION/CERTIFICATIONS:\nPost-Secondary education in Math, Computer Science, Business, Marketing, or related field\nPlease note that this is the most up to date version of job description available at this time \u2013 During Client Interview you will receive additional information \u2013 variance may apply !\nPlease visit the TEAMRECRUITER website to review other CAREER OPPORTUNITIES!\nJob Type: Contract" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b6e7922f1d95e7ea&fccid=537b899e30af3338&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Engineer", + "company": "RBC", + "salary": NaN, + "desc": "What is the opportunity?\nThe DNA (Data & Analytics) group is responsible for enabling RBC to become a data-driven organization. As part of this mission, DNA works with various lines of business (Retail, Wealth Management, Insurance, Capital Markets, I&TS) to create and build data-driven solutions to serve our clients better.\n\nWe will build data-driven products and services/API\u2019s, tackle challenging and interesting data-related problems using RBC's massive internal datasets and strategically augment them with value-added external data (e.g. user behavior, location data, event streams). Above all, our work will impact the way we interact with consumers.\n\nWhat will you do?\nBuild large-scale batch and real-time data pipelines using the latest technologies.\nApply design thinking and an agile mindset in working with other engineers, data scientists and business stakeholders to continuously experiment, iterate and deliver on new initiatives.\nLeverage best practices in continuous integration and delivery.\nHelp drive transformation by continuously looking for ways to automate existing processes and testing and optimize data quality.\nExplore new capabilities and technologies to drive innovation.\n\nWhat do you need to succeed?\nMust-have\nExperience leveraging big data technologies (one or more of Hadoop, Spark, Kafka, Cassandra, ElasticSearch) to build data products\nExperience writing clean and concise code using Java/Scala/Python\nExperience with public cloud environments\nA passion for simplifying and automating work, making things better, continuous learning, open-ended problems, efficiency and helping others\nKnowledgeable about containers and orchestration (e.g. Docker, Kubernetes, Mesos); knowledgeable about data modeling, data access and data storage techniques.\nUnderstanding of machine learning fundamentals\n\nWhat\u2019s in it for you?\nWe thrive on the challenge to be our best, progressive thinking to keep growing, and working together to deliver trusted advice to help our clients thrive and communities prosper. We care about each other, reaching our potential, making a difference to our communities, and achieving success that is mutual.\nA comprehensive Total Rewards Program including bonuses and flexible benefits, competitive compensation, commissions, and stock where applicable\nLeaders who support your development through coaching and managing opportunities\nAbility to make a difference and lasting impact\nWork in a dynamic, collaborative, progressive, and high-performing team\nA world-class training program in financial services\nFlexible work/life balance options\nOpportunities to do challenging work\nOpportunities to take on progressively greater accountabilities\nOpportunities to building close relationships with clients\nAccess to a variety of job opportunities across business and geographies\n\nSFDB\n\nLearn more about RBC Tech Jobs\n\nAbout RBC\nRoyal Bank of Canada is Canada\u2019s largest bank, and one of the largest banks in the world, based on market capitalization. We are one of North America\u2019s leading diversified financial services companies, and provide personal and commercial banking, wealth management, insurance, investor services and capital markets products and services on a global basis. We have over 80,000 full- and part-time employees who serve more than 16 million personal, business, public sector and institutional clients through offices in Canada, the U.S. and 37 other countries. For more information, please visit rbc.com.\n\nJoin our Talent Community\nStay in-the-know about great career opportunities at RBC. Sign up and get customized info on our latest jobs, career tips and Recruitment events that matter to you.\nExpand your limits and create a new future together at RBC. Find out how we use our passion and drive to enhance the well-being of our clients and communities at rbc.com/careers.\n\nInclusion and Equal Opportunity Employment\nRBC is an equal opportunity employer committed to diversity and inclusion. We are pleased to consider all qualified applicants for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, age, disability, protected veterans status, Aboriginal/Native American status or any other legally-protected factors. Disability-related accommodations during the application process are available upon request.\n\nJOB SUMMARY\nCity: Toronto\nAddress: 88 Queens Quay West\nWork Hours/Week: 37.5\nWork Environment: Office\nEmployment Type: Permanent\nCareer Level: Experienced Hire/Professional\nPay Type: Salaried\nRequired Travel(%): 0\nExempt/Non-Exempt: N/A\nPeople Manager: No\nApplication Deadline: 10/31/2018\nReq ID: 175231\nPosting Notes:" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=85d459a0e88b8f0c&fccid=48037e053e8b7e1b&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist Co-op", + "company": "Kalder", + "salary": NaN, + "desc": "Our company is developing intelligent monitoring and critical alarm systems. Kalder is an integration of technology and human expertise that monitors, analyzes and acts to improve performance of supermarket mechanical systems to reduce operating costs.\n\nSome current measuring and control systems can deliver a lot of data at a reasonable cost, but the ways that this measured data is transformed into useful information for maintenance providers and plant managers can be substandard, or even non-existent.\n\nWe are looking for a Data Scientist Co-op that will help us discover this hidden information and drive the consumption and display of our IoT data, to help us and our customers make sense of it all. Your primary focus will be in applying data-mining techniques, statistical analysis, and building high quality predictive systems \u2014 using machine learning that integrates with our core software product line.\nResponsibilities\nWork closely with Development, Engineering, Mechanical, and Energy teams to understand the data domain.\nAnalyze scoring using machine learning techniques.\nBuild analytical, predictive, and recommendation systems.\nPresent information and communicate findings using data visualization techniques.\nPreprocess, cleanse, and verify the integrity of data in order to build models and cubes.\nDrive the collection of new data and refine existing data streams.\nData mine using state-of-the-art methodology.\nDevelop prototypes and proof of concepts for predictive models and data analytics.\nExtend company\u2019s data with third party sources of information when needed.\nPerform and interpret data studies and conduct experiments with new data sources or new uses for existing data sources.\nEnhance data collection procedures for robustness and reliability.\nPerform ad-hoc analysis and present results in a clear and concise manner.\nProvide ongoing tracking and monitoring of performance of statistical models.\nRecommend improvements to methods and algorithms leading to new findings.\nTailor data collection for relevant information to assist in the building of analytical systems.\nExperience Requirements\nDemonstrated experience solving loosely defined problems by leveraging data pattern detection.\nExperience with data-visualization and business intelligence tools.\nExperience working with tools for large data sets: Power BI, Azure ML, SRSS, Spark, Hadoop and Hive.\nDesired Skills\nExcellent communication skills.\nFamiliarity with SQL and NoSQL databases (SQL Server, MySQL, MongoDB and DocumentDB).\nGood applied math and statistical skills: distributions, statistical testing and regression.\nPossess scripting skills and programming exposure: Python, JavaScript and C#.\nPossess knowledge of analysis tools such as: R and Matlab.\n\nQualifications\nPassion for empirical research and answering hard questions with data.\nUnderstanding of machine learning techniques and algorithms." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2146001e0333f895&fccid=6e2c894eda7b0b76&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Abacus Data Systems", + "salary": NaN, + "desc": "AbacusNext\u00ae helps businesses with stringent security and compliance needs grow by providing Compliance-Ready turnkey technology solutions, allowing our clients to leverage the power of cloud computing without the added challenges and expenses of managing complex IT infrastructures on their own.\n\nWhat does that all mean? Think about the average SMB\u2019s IT environment\u2014it\u2019s a messy spaghetti of vendors, suppliers, and consultants, all with their own agenda, technology and support. We simplify that complexity with a single solution, taking full ownership of the client\u2019s technology outcomes so they can focus on their business.\n\nWe are a 35 year old organization with offices in California, Utah, Virginia, Toronto and Scotland. Our user based is 1.5M users worldwide and includes the full spectrum, from solo proprietors to Fortune 100 clients.\n\nWho We Are\n\nAs an end-to-end solutions provider, our products and services portfolio includes virtual desktop (DaaS), private cloud, case management software (CMS), email hosting services, security endpoint protection, business continuity (BCP), and on premise solutions. Since 1983, we have delivered on-demand services to over 1.5 million users worldwide, and are recognized by Forbes as one of America\u2019s fastest growing companies.\n\nWe were founded on one simple concept: improving the lives of professionals through the use of technology. Our core competencies serve to simplify the adoption, implementation, and management of technology to quickly increase revenues, reduce costs, and maximize efficiencies, while keeping security and compliance at the forefront.\nWhat We Do\nWe serve clients at every level of their organization, in whatever capacity we can be most useful, whether as a trusted advisor to large firm executive management or as a hands-on coach for sole practitioners. Target verticals include lawyers, general counsel, accounting firms, CPAs, government, and other private professional service organizations. For every engagement, we propose a solution tailored to meet their unique business needs and provide the utmost care in the implementation process.\nNo matter the challenge, we focus on delivering practical and enduring results, and equipping our clients to grow and lead. We partner with clients to put solution recommendations into practice and grow their businesses through the leverage of highly secure, compliant and functional business systems.\nThe Software Engineering team at AbacusNext has a career opportunity for a Data Scientist specializing in text analytics located in Toronto, Canada, or Edinburgh, United Kingdom. The job of the Data Scientist is to invent and refine algorithms to process, interpret and analyze unstructured text documents. We are seeking individuals knowledgeable in state of the art research in machine learning as applied to NLP as well as experience applying text analytics in a real-world environment. The Data Scientist will design and apply approaches to natural language for use in question/answer processing, smart summarization and classification/taxonomy over large domains of imprecise unstructured text. Research applications developed will to be used by AbacusNext applications. This initiative is an exciting rapid development effort employing agile engineering processes and fielding evolving prototypes to end users in the field.\n\nRoles and Responsibilities:\nIndependently design and undertake new applications of Machine Learning for NLP research as well as partner in a team environment across organizations.\nPrototype and integrate new approaches to improve named entity extraction from unstructured text for the purpose of knowledge base population.\nPerform metrics-based evaluations of new technologies from research organizations to determine potential contributions.\nDesign clustering and taxonomic algorithms scalable to millions of documents.\n\nQualifications:\nTo be considered for this position, you must minimally meet the knowledge, skills, and abilities listed below\nPhD or Masters degree in a technical discipline such as statistics, computer science, mathematics, physics or a related discipline and 3+ years of related experience.\nAt least 1 year of specialized experience using machine-learning, text-mining or natural language processing techniques.\nKnowledge of state-of-the-art methods coupled with the creativity and intelligence to advance beyond them.\nTechnical task leadership abilities\n\nPreferred Qualifications: Candidates with these desired skills will be given preferential consideration\nAdvanced degree in NLP or a related discipline, such as computational linguistics, machine learning, or artificial intelligence.\nExperience implementing NLP and machine learning techniques with document corpora and applying other non-traditional open sources to real-world mission solutions.\nExperience in the following areas: computational manipulation and analysis of natural language documents using statistical models, and experimenting with large corpora for developing and testing advanced algorithms.\nPerks:\nHealth/Dental/Life/Vision Insurance, 401(k)\nUnlimited PTO, Sick Days\nFree lunch\nOnsite Gym\nSocial Events\nJob Training/Educational Assistance/Professional Development\nFlexible Spending Account\nOcean Views, Game Room, Volleyball Court, Outdoor Zen Relaxation Area, BBQ & Patio Area, Cafeteria\nNursing Room\nShort-term Disability\nCovered Parking, Free Shuttle Service\nWeekly masseuse and chiropractor onsite\nEmployee discount to 24-Hour Fitness\n50% Off Gunnar Optik Eyeware\nClose proximity to UTC mall (La Jolla/Miramar) and 805/5\nEqual Employment Opportunity\nAbacusNext is an Equal Opportunity, Affirmative Action Employer." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ad5bb1d6746bd7bd&fccid=a6920e0a635e5c4e&vjs=3", + "location": "Toronto,ON", + "title": "Digital Data Analyst", + "company": "Workbridge Associates", + "salary": "$80 - $100 a day", + "desc": "$80 - $100 a day\nPermanent\nMy client is looking for a strong data analyst to join their analytics team. They are one of the most influential companies in the media industry. They are located in downtown Toronto. As a part of their team you will work with all new technology, build applications from scratch and get to see your work in the public eye. This role will be key in helping them sure that everything they do is informed by data. The key responsibilities for this role will be to design and implement custom reports and dashboards while also looking for insights. This full time role will compensate up to $100,000 for the right experience.\nRequired Skills & Experience\nAt least 5 years of work experience working as a Data Analyst\nBachelor\u2019s degree in Business, Computer Science, Mathematics or equivalent work experience\nGood understanding of SQL and relational databases.\nWorking knowledge of JavaScript, CSS, HTML\nDesired Skills & Experience\nExperience working with \u2018Big Data\u2019 or large volumes of loosely connected data from various sources\nExperience working with AWS\nKnowledge of PostgreSQL, PrestoDB\nExperience with A/B and Multivariate testing\nWhat You Will Be Doing\nTech Breakdown\n100% Data Analyst\nDaily Responsibilities\n100% Hands On\nThe Offer\nCompetitive Salary: Up to $100,000K/year, DOE\nYou will receive the following benefits:\nStatutory Vacation\nHoliday Pay\n\n\nApplicants must be currently authorized to work in Canada on a full-time basis now and in the future.\n\nWorkbridge Associates, part of the Motion Recruitment network, provides IT Staffing Solutions (Contract, Contract-to-Hire, and Direct Hire) in major North American markets. Our unique expertise in today\u2019s highest demand tech skill sets, paired with our deep networks and knowledge of our local technology markets, results in an exemplary track record with candidates and clients." + }, + { + "link": "https://www.indeed.ca/company/Flex-People-Solutions/jobs/Business-Data-Analyst-a711da1a17645c9c?fccid=2fcffa9151b7a545&vjs=3", + "location": "Toronto,ON", + "title": "Business Data Analyst", + "company": "Flex People Solutions", + "salary": "$50,000 - $70,000 a year", + "desc": "$50,000 - $70,000 a year\nPermanent\nWe are recruiting for an established, leading provider of analytics-based consulting services to the business/retail industry and are looking for recent graduates with strong mathematical skills as well as exceptional problem solving skills to join the team.\nThis position will provide the opportunity to exercise a broad range of skills and develop experience in applying quantitative analysis to business problems. You will have the opportunity to work directly with clients and senior stakeholders and own projects from beginning to end.\nKey Accountabilities:\nMeeting with clients to determine and document business problems and challenges\nTranslating these challenges into quantitative problems to be addressed\nWorking with technical teams to formulate solutions\nDeveloping data models, determining appropriate data to be used to solve problems\nDeveloping Dashboards and PowerPoint presentations to summarize findings\nPresenting findings to clients\nSkills Required:\nDemonstrated achievement in mathematics based studies (Math, Computer Science, Statistics, etc)\nProven ability to complete projects at a high level and on time\nExceptional demonstrated problem solving skills\nAbility to articulate solutions to a range of stakeholders\nExcellent skills with Excel\nKnowledge of Office Tools (e.g. PowerPoint) desirable\nAbility to work in a challenging, fast-paced environment.\nIf you are interested please submit your resume and a brief cover letter highlighting any achievements that would show how you would stand out against other applicants, and we will contact all qualified applicants. Thank you for your interest\nJob Types: Full-time, Permanent\nSalary: $50,000.00 to $70,000.00 /year\nExperience:\nExcel: 1 year (Preferred)\nLocation:\nToronto, ON (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2f22175e8bffba60&fccid=8afeee1403e0e04d&vjs=3", + "location": "Toronto,ON", + "title": "Sales Data Analyst (6 Month Contract)", + "company": "Husky Injection Molding", + "salary": NaN, + "desc": "Temporary\nHusky is a company with a strong foundation built on innovation, close customer relationships, a strong sense of community and a unique culture and values. We are looking for people with the inspiration and talent to develop with us as we pursue our ambitious growth strategy.\nHusky offers a wealth of opportunity for personal growth and development. Most importantly, Husky offers an opportunity to work with \u2013 and be challenged by \u2013 a team of great people. Our success is possible because of the creativity, intelligence and passion of our people around the world and their desire to lead change. At the same time, we are not afraid to expect a lot and strive for leadership in all of our key markets. We are a company taking on new challenges and for the right people this means exceptional career development opportunities, the chance to be part of a team that is the best in the world at what we do and the experience that comes from working in an environment that demands constant transformation and innovation.\nHusky\u2019s Canadian manufacturing facilities and global headquarters are located in Bolton, Ontario on a large, beautiful campus located just 20 minutes north of Toronto\u2019s Pearson International Airport. Features include a fitness and wellness center, intramural sports activities, on-site cafeteria, and clean, state-of-the-art manufacturing facilities with outstanding safety records. We offer a great work environment and competitive total compensation package, including above market retirement savings plan and market competitive group benefits.\nHusky is an exciting company with tremendous potential. We have a great team and great expectations. If you are attracted to bold goals, believe in uncompromising honesty, support mutual respect, care about environmental responsibility, have a passion for excellence and a desire to make a positive contribution \u2013 then we want you to join the Husky team!\n\n\n\nAs part of the Enterprise Information Management (EIM) team, supporting the ERP (Enterprise Resource Planning) implementation team, the Data Cleansing team will support the clean-up/transformation of the legacy system financial domains as part of the Microsoft Dynamics AX implementation.\nRESPONSIBILITIES:\nWork in Excel based tools to consolidate records to a single main record by identifying the primary record and consolidating active fields\nValidation of fields for completeness and accuracy of data\nProvide additional support as needed for other data elements to ensure data supports defined business processes and governance standards\nQUALIFICATIONS:\nPost-secondary education (Bachelor\u2019s Degree) and/or equivalent experience; engineering or finance degree preferred\nIn-depth experience Microsoft Excel and cell level formulas\nStrong relationship/communication skills (internal & external)\nDetailed and deadline oriented individual\n\n\n\nHusky Injection Molding Systems offers a competitive compensation and benefits package and excellent opportunities for growth and advancement. We are committed to equal employment opportunity and respect, value and welcome diversity in our workplace. Husky also values being a great place to work and strives to maintain a safe workplace. Accordingly, Husky conditions all offers of employment on satisfactory completion of background checks.\nHusky is committed to creating a barrier free environment for people with disabilities. As a part of this commitment, there are a variety of resources and ongoing training devoted to promoting accessibility and equitable access to services and facilities.\nAt Husky, accommodations are provided in all parts of the hiring process to ensure everyone has what they need to be at their best. Please reach out to our recruiters to begin a conversation about how to ensure your individual accessibility needs are met. You can reach our recruiters at Talent@husky.ca\nNo agency or telephone inquiries please." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9968234e61062ee6&fccid=d7114f1cac8d0711&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Analyst", + "company": "TD Bank", + "salary": NaN, + "desc": "Tell us your story. Don't go unnoticed. Explain why you're a winning candidate. Think \"TD\" if you crave meaningful work and embrace change like we do. We are a trusted North American leader that cares about people and inspires them to grow and move forward.\nStay current and competitive. Carve out a career for yourself. Grow with us. Here's our story: jobs.td.com\n\nDepartment Overview\nBuilding a World-Class Technology Team at TD\nWe can't afford to be boring. Neither can you. The scale and scope of what TD does may surprise you. The rapid pace of change makes it a business imperative for us to be smart and open-minded in the way we think about technology. TD's technology and business teams become more intertwined as new opportunities present themselves. This new era in banking does not equal boring. Not at TD, anyway.\nTD Data and Information Management covers building, developing, designing, and implementing involved with tech data management solutions. Where do we begin? These experts analyze, design, develop and support TD's info management system; lead and support bank data curation; develop data road map and info management strategies; focus on complex data integration, and drive use of our data reference model. This area doesn't work in isolation. We love data and we feel the same about integration and our assignments prove it.\nThere's room to grow in all of it.\n\nJob Type\nRegular\n\nJob Status\nFull Time\n\nHours\n9-5\n\nBusiness line\nCorporate\n\nJob Category - Primary\nTechnology Solutions\n\nJob Category(s)\nTechnology Solutions\n\nJob Description\nAbout This Role\nWe need someone to provide technical leadership covering a range of data analysis functions. These include data modeling, structured query language (SQL), data quality, data profiling, extract-transform-load (ETL), metadata enrichment and management, data provenance and lineage, report design and other specialized data management functions. You're a solid, independent, senior lead equipped to manage and direct activities related to analysis, design and support of technical data management solutions for larger projects.\nMeaningful work is fueled by meaningful performance and career development conversations with your manager. Here's some of what you may be asked to perform:\nElicit, analyze, interpret business and data requirements to provide Taxonomy, Data Classification and Record Management services to the D&A initiatives and projects.\nApply automation and innovation on new and on-going data platforms for those development projects aligned to business or organizational strategies.\nWork with technology/project teams to understand the business meaning of data, provide analysis and requirements so that data design is fully understood and the development initiatives are in line with intended design and standards.\nDeliver business or enterprise data deliverables (that adhere to enterprise frameworks) for various platforms/servers/applications/systems.\nProvide data analysis and requirements within enterprise platform.\nImplement processes aligned to data management standards, ensure data quality and requirements are embedded in/adhered to within system development deliverables.\nPerform data profiling using TD tooling and ad hoc system query languages to validate data analysis.\nHelp development and testing teams resolve data issues.\nEngage with data managers, stewards and owners to implement, maintain, enhance data governance, quality and related policies, aligning with TD's standards and frameworks.\nEnsure capture of requirements related to data privacy and security, governance and access controls.\nRespect TD's technology delivery practices, standards, project management disciplines.\n\nJob Requirements\nWhat can you bring to TD? Share your credentials, but your relevant experience and knowledge can be just as likely to get our attention. It helps if you have:\nComputer Science or related undergraduate Degree.\n7+ years data management, analysis and architecture\nAdvanced knowledge of the technical environment/tools in Record and Content Management\nAdvanced knowledge of BSA discipline, business processes and organizational level\nSound to advanced knowledge of the Financial Systems Data Model, FileNet, CMOD and KOFAX is an asset\nSound to advanced knowledge of business, standards, infrastructure, architecture and technology from a design/support/ solutions perspective.\nConsulted as expert subject matter expert in at least one area of discipline to support clients/or project teams with research, analysis, design, hardware/ software support, solutions development and testing.\nHistory as a collaborative team player, strength in communicating clearly with partners to elicit information/data requirements.\nCapacity and eagerness to work independently as a senior/lead role on multiple tasks, and also coach/educate/guide/direct others.\nAbility to assume assignments that are moderate- to highly- complex and multi-faceted, to be performed under management guidance.\n\nAdditional Information\nJoin in on what others in TD Technology Solutions are doing:\nInspire a positive work environment and help champion quality, innovation, teamwork and service to the business.\nLearn voraciously, stretch your thinking, share your knowledge and educate others.\nCommunicate and collaborate with both technical and non-technical professionals.\nCultivate winning relationships by building trust with business and technology partners.\nShare our commitment to productivity, effectiveness and operational efficiency.\nEmbrace change and witness amazing things happen \u2013 from the inside.\nMake your mark. Join a dynamic team. Explore new ideas. This is your opportunity to impact the future of banking technology in areas and ways you've never imagined (at a bank)! Visit techjobs.td.com to learn more.\n\nInclusiveness\nAt TD, we are committed to fostering an inclusive, accessible environment, where all employees and customers feel valued, respected and supported. We are dedicated to building a workforce that reflects the diversity of our customers and communities in which we live and serve. If you require an accommodation for the recruitment/interview process (including alternate formats of materials, or accessible meeting rooms or other accommodation), please let us know and we will work with you to meet your needs.\n\n**Province/State (Primary)\nOntario\n\nCity (Primary)\nToronto" + }, + { + "link": "https://www.indeed.ca/company/TEKSTAFF/jobs/Data-Analyst-4d2a1c4bce72b890?fccid=1c40f61ade49c5ef&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "TekStaff", + "salary": NaN, + "desc": "Contract\n* * 3-4+ yrs Data Analyst exp. within a Data mgt. / Reporting / Delivery support env.\nStrong MS Excel (Macros Building, V-Lookup, Pivot Tables, Sumproduct,@ If)\nProficiency using Clarity\nProficiency using SharePoint\nUnderstands Delivery processes, relevant products / tools involved\nStrong communicator with excellent oral and written skills\n*\nJob Type: Contract\nExperience:\nSharePoint: 3 years (Required)\nClarity: 3 years (Required)\nData mgt. / Reporting / Delivery support env.: 3 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1610fa7180c84957&fccid=c09c1d910cb12b34&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "MaxSys Staffing & Consulting", + "salary": NaN, + "desc": "Contract\nOur Client in the Banking and Finance Industry is seeking a Data Analyst for their Downtown Toronto office. This is a 6 months contract to start, possible extension\nCULTURE:\nThe group is very collaborative but the work is somewhat independent. They have to be resourceful and being to get work done.\nEVP (Employee Value proposition):\nThis candidate will be able to learn about the lot about the market place/industry standards within bill payment processing .\nRESPONSIBILITIES INCLUDE (but are not limited to):\nThey are currently working on a customer migration project.\n\u0095 This candidate will have to work with huge data sets that have all of the customer data.\n\u0095 They will need to categories and group the data according to different classifications.\n\u0095 They will have to multiple iterations within the data set as it very growing and have to make changes accordingly.\n\u0095 They will have to determine different price points for each group.\n\u0095 They may to build out different communication for each group.\n\u0095 They may have to adapt to different changes with the process.\nTOP SKILLS / EXPERIENCE:\n\u0095 3-5 years\u0092 worth of experience with data management and data analysis.\n\u0095 They must be and expert within Excel: Pivot table, v-looking, Macros\n\u0095 They will need to be able import from excel into an Access Database\n\u0095 Prior experience group data set with access.\n\u0095 They must have prior experience querying data from large database using SQL\nNICE TO HAVE SKILLS/EXPERIENCE:\n\u0095 Prior experience within billing, market place analytics, and/or price sensitivity analysis\n\u0095 Prior experience dealing with customer data\n\u0095 Prior Banking/FI experience\nSOFT SKILLS:\n\u0095 Verbal and written communication skills, attention to detail, customer service and interpersonal skills.\n\u0095 Ability to work independently and manage one\u0092s time.\n\u0095 Negotiation skill.\n\u0095 In personal skill.\n\u0095 Ability to analyze business trends and project future revenues and expenses.\nEDUCATION/CERTIFICATIONS:\n\u0095 University/College Degree preferably Computer Science\nTo Apply, Please send your resume to: K.sinha@maxsys.ca" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1d3b1dd42e1b55a6&fccid=abe1c937a44f3ad8&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Flipp", + "salary": NaN, + "desc": "Flipp is a retail technology company that is reinventing the way people shop. We work with the largest retailers and manufacturers in the world to help them transform their business and connect them with tens of millions of shoppers through the next generation digital shopping marketplace.\n\nWe are looking for a Data Engineer to develop features for Flipp\u2019s main data pipelines that power our Search Platform. Additionally, you will construct new or update existing data sources that deliver a combination of our user behaviour data from our App & Web clients and various types of merchandising content to Solr that power all aspects of our search experience.\n\nMost of the things you will work on:\nImplement features and fix bugs within the various data pipelines that create key data sources across various business units\nData modelling to construct key data sources for Data science & Analytics members\nAssist in building pipelines to release ML models to production\nParticipate in design discussions and influence the way that certain sections of the system will function\nWorking with members of the team to decide how to seamlessly integrate new features into the rest of the ecosystem\nEmploying proper governance by ensuring security, integrity and auditability standards are met\nImplement monitoring and alerting systems to help detect when our pipelines are failing\nYou'll need to have:\n2-5 years of back-end development experience.\nExperience with relational databases such as MySQL, Postgres, Oracle\nDemonstrated experience using big data storage and processing frameworks such as Kafka, Spark Scala, pySpark and Hadoop\nExperience using Cloud technologies such as AWS S3, Redshift, Notebooks (Jupyter or Databricks)\nStrong communication skills to convey technical concepts and points to non-technical people\nExperiences with a tough challenge that they overcame or proved too challenging\nHere\u2019s how we work:\nFrom working with top technologies to sending you to industry-leading conferences, we will make sure you have all that you need to expand your knowledge and grow your career. We have a trust-based culture where all team members are empowered to work in the way that\u2019s best for them to thrive.\n\nOur culture is at the center of all that we do, and it has been recognized through numerous accolades over the past three years including: Best Workplaces in Canada, Deloitte 50 Best Managed, Best Workplaces in Canada for Women, Most Admired CEO and Top 10 Most Admired Corporate Cultures.\nHere's how to apply:\n\nIf you\u2019re interested in working with us on the future of shopping, click the \u201cApply now\u201d button to submit your application.\n\nWhile experience and skillsets are valuable, growth potential and attitudes are equally important. If you\u2019re prepared to grow drastically with your team at a world-class learning organization, consider applying. We understand that the most creative solutions require diversity in thought and life experiences.\nFlipp is an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status. Accommodations are available on request for all aspects of the selection process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7ca363052c192080&fccid=6d9b8e75dfffb17e&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Scientist", + "company": "Bell", + "salary": NaN, + "desc": "Req Id: 196113\n\nBell is a truly Canadian company with over 136 years of success. We are defined by the passion of our team members and their belief in our company\u2019s vast potential.\n\nTo ensure we continue to be recognized as Canada\u2019s leading communications company, we\u2019re committed to finding and developing the next generation of leaders. This means creating best-in-class career and development opportunities for our employees.\nIf you\u2019re passionate, driven and find yourself seeking interesting work, new challenges and continuous learning opportunities, then we want you to join our team.\n\nBell is a Canadian business with a rich and deep history of providing communications services to Canadians across the nation. We are committed to providing exceptional service and products to our clients and to providing a challenging and rewarding working environment to our employees. This devotion has won us a rank among Canada\u2019s top 100 employees in 2018 for the second year in a row: http://www.canadastop100.com/2018/bell-canada/.\nIf you love coaxing insight out of messy, wild data, this fast-growing, high demand career field is where you want to be. Check out: What It's Like to Have the Best Job in America right Now - Business Insider.\nBell\u2019s Business Intelligence team is responsible for the management and optimization of BI systems used to analyze customer behavior, automate business insight processes, target marketing & contact strategy opportunities and provide insight to drive optimal business decisions.\nThis is a terrific opportunity to help transform the organization, and achieve one of the most significant strategic mandates within Bell, leveraging machine learning and AI algorithms to drive business decisions. As part of this team, you will have opportunities to build your analytics skills, shape the next generation of BI and drive important business decisions working with new, cutting-edge technologies. We are looking for individuals who are highly logical, passionate, and can communicate effectively to all levels within the organization.\nWhat our Team members have to say:\n\u201cWe work in a fast-paced environment, which allows us to learn about many unique parts of the business in short periods of time. I have the ability and freedom to continually leverage my ideas and research to help solve business problems.\u201d\n\u201cTo me, the best thing about working for Bell is the amazing people. I am surrounded by a very supportive team and on a daily basis I collaborate with highly talented individuals throughout the company to solve complex business problems.\u201d\n\nRole: Senior Data Scientist, Modeling and Segmentation, Business Intelligence\nKey responsibilities may include:\nWorking with clients in Customer Operations, Small Business, Finance, Marketing, Pricing and IT Specialists, etc. to make data driven business decisions\nLeading the technical and infrastructure abilities of the team in how we build and deliver models to our clients\nTranslating business imperatives into data centered questions to be able to quantify and evaluate them\nBuild applied machine-learning solutions to improve Customer Experience and optimize Customer Operations processes.\nWork with and present to all management levels (entry to executive)\nMaintain and expand your knowledge of ML through training opportunities and self-study\nDeliver solutions with measureable results\n\nRequired Competencies:\nYou have a graduate degree in a discipline such as Mathematics, Statistics, Machine Learning or 4+ years of experience in Machine Learning or related area\nYou are highly analytical and logical individual and have the ability to leverage insights/opportunities from data to build strategies and make recommendations\nExperience analytical tools such as Python, R, SAS, or SPSS\nYou have the ability to work with a team towards common goals\nYou are able to manage multiple projects and priorities\nYou are a self starter who is comfortable working with and presenting to all management levels\nYou are highly driven to learn about the newest machine learning techniques and to apply them to solve business problems\nBilingualism (English and French) is an asset in Ontario and a requirement in Quebec\n\nPreferred Competencies:\nExperience with classifier systems, predictive modeling algorithms, or ML frameworks such as TensorFlow, Scikit-learn, Spark ML, Torch, Caffe, H2O, Kafka, Flume, etc.\nExperience with SQL and database systems such as Oracle, SQL Server, Teradata\nExperience with distributed data and computational resources such as Hadoop, HDFS in general, Docker, Dask\nBasic working knowledge of project management steps\nExperience in telecom marketing or product development\n\nBilingualism is an asset (English and French)\n\nAdditional Information:\nPosition Type: Management\nJob Location: Canada : Ontario : Don Mills\nApplication Deadline: 08/10/2018\nPlease apply directly online to be considered for this role. Applications through email will not be accepted.\n\nBell is committed to fostering an inclusive, equitable, and accessible environment where all employees and customers feel valued, respected, and supported. We are dedicated to building a workforce that reflects the diversity of the communities in which we live and serve, and where every team member has the opportunity to reach their full potential.\n\nCreated: Canada, ON, Toronto" + }, + { + "link": "https://www.indeed.ca/company/CCUE-Finance/jobs/Data-Analyst-Internship-e1bad3026c744608?fccid=c27106cbf541a0dc&vjs=3", + "location": "Toronto,ON", + "title": "Data analyst internship", + "company": "CCUE Finance", + "salary": NaN, + "desc": "Part-time, Temporary, Internship\nData analyst internship\nResponsibility:\nWork with sales and marketing team, analyze clients\u2019 data and trends.\nGenerate report according to database.\nDevelop and monitor the collection of data, sensible to market.\nDevelop solutions and strategy according to data.\nRequirement:\nMinimum college degree in computer science.\nKnowledge of data analysis makes you outstand.\nAbility to research, analyze, and prepare reports.\nAbility to develop and maintain databases.\nExperience in data analyst is preferred.\nExperience with MS Office, SQL Server, or other programming language.\nFluent in English and Chinese.\nWe would like to thank all applicants for their interest in CCUE FINANCE, only those selected for an interview will be contacted\nPlease email your recent updated resume to us, we will contact you soon.\nJob Types: Part-time, Temporary, Internship\nLanguage:\nChinese (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=da7738cffddff9bc&fccid=843063962baaa318&vjs=3", + "location": "Toronto,ON", + "title": "Sr. Data Analyst - Product", + "company": "Wave", + "salary": NaN, + "desc": "About Wave:\nWave propels brave entrepreneurs who pursue their dreams and drive the world\u2019s economy. An award-winning product and company, and one of the fastest growing financial services software, we have more than 3 million business owners from 200+ countries around the world, tracking over $240 billion in income and expenses and more than $20 billion in invoices each year.\nReporting to the Director, Business Intelligence, the Senior Data Analyst - Product will join a team of BADASS (Business Analytics, Data Access Services & Solutions) individuals, whose purpose is to leverage Data to deliver innovative products, operational excellence and strategic insights.\nHere\u2019s how you\u2019ll make a difference:\nPartner with the Product team throughout the product lifecycle to provide actionable insights and measure the impact of the product and features on customer behaviours.\nYou\u2019ll design and evaluate various experiments or tests to find out what works and what doesn\u2019t (eg. A/B tests). We are continuously rolling out new products and features \u2013 lucky you!\nConsult with Data Engineers to ensure the right data elements are captured and stored in the right format to meet the goals to meet the analytic objectives of the project.\nBuild and manage reporting dashboards that highlight the health and performance of the different products you\u2019ve been working on. You\u2019re responsible for what should be included in these dashboards, and how that data is presented.\nSo now you have the data and have presented it in a meaningful way, you need to be able to look at it and interpret it in a way that we can make decisions because of it. Everything we do at Wave is informed by data, including strategies for user acquisition, engagement, retention, and monetization.\nWe love our Entrepreneurs. You\u2019ll keep an eye on their behaviors and life cycles, with a focus on things like response, engagement, and churn, so we know what we can be doing to further simplify their financial lives.\nThese will help you succeed:\n5+ years of hands-on experience in Product Analytics. This is important \u2018cause this is what you\u2019ll be doing all the time, and we need someone experienced to do it. It\u2019s big stuff we\u2019re working on.\nAdvanced SQL skills with experience querying large and very complex and varied data sources including Relational Databases, APIs, clickstream and log data. You should know what all of these words mean if you want to apply, and you\u2019re excited about it, too.\nExperience calculating and tracking business and product KPIs (e.g. M/DAU, usage breadth/depth, engagement funnels, conversion, churn, ARPU etc.)\nYou know the differences between Microstrategy, Amplitude, Tableau and are super comfy with all of them.\nBackground in statistical analysis and familiarity with core statistical functions (including multivariate regression, decision trees, correlation models, and analysis of variance). This is the type of analysis you\u2019ll be expected to do.\nYou\u2019ll Thrive Here, If:\nYou have the ability to work autonomously. No one\u2019s going to be peering over your shoulder here. We count on you to get your work done, in ambiguous conditions, with tight deadlines, while still producing high quality work. It\u2019s fun, promise!\nYou are all about collaboration. You\u2019ll be working with Product Managers, Engineering Managers, Marketing Managers, and tons of other folks as their go-to analytics person. It\u2019s not going to work if you don\u2019t see the value of different perspectives.\nYou are a stellar communicator. This means you know how to translate technical terms into non-technical language which your grandma could understand. This also means you have no problem presenting the insights you\u2019ve gathered from your stellar analysis to Kirk (our CEO).\nYou\u2019re good with other tech. Wave is a diverse place with lots of different tools, languages, frameworks, structures, and types of analysis. Knowing R, SAS, or Python would be helpful to help close the gap between your role and others.\nWave is the place to build your career:\nWe hire world class talent, but the learning doesn\u2019t stop once you\u2019re in the door. We believe in the balance of IQ with EQ. We support continuous professional and personal development with a full time coach, ongoing learning opportunities and a serious investment in each employee. We\u2019re here to do excellent work and together we battle mediocrity to achieve the extraordinary.\nWe are a community of people with competitive hearts. Competitive in wanting to better the lives of our Brave Entrepreneurs. Competitive in never settling for less than extraordinary. Competitive in pushing each other and ideas, collaborating and communicating respectfully.\nMonthly Townhalls regularly share business metrics and updates from the CEO. When you have the data you need, you are empowered to pivot plans to solve problems, remove bottlenecks and find a way to win.\nRecognized as one of Canada's Ten Most Admired Corporate Cultures, an Employee Recommended Workplace, Great Place to Work Certified recognised specifically in the Technology, Millennial, Inclusion and Women categories, and a Top Rated CEO, our culture is reflected with a stellar Glassdoor rating.\nWe work in a beautiful, renovated historical office that feels like home - with bright open spaces, cozy couches, an awesome games room, a zen space for daily yoga and fitness bootcamps, and even a designated \u201cquiet work zone\u201d. Our dog-friendly environment has the best view of Toronto from our rooftop patio, and our wifi enabled space helps us stay connected and committed to a single vision.\nA fantastic location - 10 minutes from downtown Toronto in the vibrant Leslieville neighbourhood, where there\u2019s no shortage of good food, drinks, arts and entertainment (check out our walk and transit score!)\nNOTE: You must be legally able to work in Canada to apply for this role.\nRECRUITERS PLEASE NOTE: We are not accepting applications via recruiters at this time." + }, + { + "link": "https://www.indeed.ca/company/Eckler-Ltd./jobs/Senior-Longevity-Data-Analyst-1ff7d8842fa319a6?fccid=c25eb26446cae2f4&vjs=3", + "location": "Toronto,ON", + "title": "Senior Longevity Data Analyst", + "company": "Club Vita", + "salary": NaN, + "desc": "Opportunity:\nDo you love details? Dig technology? Excited when asked to work with large datasets? Do you have pension administration experience, and aren\u2019t afraid to admit it? Then, you could be exactly who we\u2019re looking for!\nClub Vita Canada \u2013 a distinguished longevity analytics company in Canada \u2013 is looking to expand its dedicated team of professionals through the addition of a senior longevity data analyst.\nWhat will you get to do? Our ideal candidate will play an important role in Club Vita\u2019s longevity data collection and analysis for our large and growing dataset -- covering approximately 600,000 current pensioners. This includes overall responsibility for efficiently processing Club member data submissions and subsequently generating longevity analytics. It also means responsibility for the identification and implementation of process improvements and acting as a key support to the operations team leader to assist with the management of operational activities.\nAbout Club Vita Canada:\nClub Vita Canada Inc. provides longevity risk analytics to the Canadian pension industry. By pooling comprehensive longevity experience data from a wide range of pension plans, combined with best-in-class longevity modelling and research, Club Vita Canada provides its members with leading-edge tools and insights to measure and manage their longevity risk. Club Vita Canada is made up of a dynamic multi-disciplinary team who possess actuarial, statistical, systems development and data management backgrounds. Club Vita Canada is an extension of Club Vita LLP, launched in the UK in 2008 by Hymans Robertson LLP.\nwww.clubvita.ca\nAbout Eckler:\nClub Vita Canada Inc. is a subsidiary of Eckler Ltd. \u2013 the largest independent actuarial consulting firm in the Canada, with its headquarters in Toronto and offices in Halifax, Montreal, Quebec City, Winnipeg and Vancouver. Eckler provides employee benefit and financial services consulting through inter-related practice areas, each a leader in their field.\nRole Responsibilities:\nRole Summary:\nClub Vita Canada currently has a dedicated team of seven, further supported by Eckler staff. This role provides a particularly unique opportunity for a professional who is well-versed in pension plan data to become an expert in the emerging field of longevity data analytics and risk management.\nAccountabilities:\nProvide pensioner longevity analytics to a wide range of leading Canadian pension plans\nWork with the operations team lead and other longevity data analysts to collect, process and analyse longevity experience data\nProvide guidance to other longevity data analysts and support the operations team lead in the management of operations activities\nPrepare reports for Club members, peer review analysts\u2019 work and creatively solve for challenging opportunities as they arise\nSupport Club Vita Canada business efforts as required\nQualifications, Skills and Experience:\nQualifications:\nMinimum of a Bachelor\u2019s degree\nAssociate of the Canadian Institute of Actuaries or Pension Plan Administration Certificate is desirable\nSkills / Experience:\n3 to 10 years of experience in the pension industry\nVery strong computing skills, particularly with relational databases (e.g., Microsoft Access, SQL) and Microsoft Excel; programming experience is highly desirable\nPrevious pension administration or consulting experience is highly desirable\nThe ideal candidate will have in-depth knowledge of pension plan data and typical issues with data received from pension plans\nProven ability to work with very large datasets, while maintaining a high level of attention to detail\nExcellent problem-solving skills\nExperience successfully implementing significant process improvements involving large data flows is highly desirable\nHighly-developed organizational skills, with the ability to manage many concurrent deliverables\nPrevious experience overseeing junior staff is an asset\nDetail-oriented, self-motivated and driven to absolute accuracy, with a keen interest and desire to learn and develop\nClub Vita is committed to an inclusive, diverse and accessible workplace and encourages all interested applicants to submit a cover letter and resume for consideration.\nWe thank all applicants for their interest, but only those selected for the short list will be contacted.\nwww.clubvita.ca\nJob Type: Full-time\nEducation:\nBachelor's Degree (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=16df4cfab3941b73&fccid=8c52bdc6019139a0&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst, Marketing", + "company": "International Financial Group", + "salary": NaN, + "desc": "Contract\nOur client, one of the top 5 Banks in Canada, located in downtown Toronto, is currently looking to recruit a Data Analyst who has experience with marketing data analytics. Please see a detailed job description below.\nContract: 12 months\nAs a Data Analyst you will be responsible for the following:\nManage reports on a timely basis (daily/weekly/monthly)\nProactively identify opportunities to improve the customer experience by leveraging statistical approaches against multiple sources of data including internal sales data, CRM client information, and external third party data/benchmarks\nResponsible for researching, designing and implementing new reporting infrastructure to produce innovative reporting solutions\nPerform data maintenance\nAs a Data Analyst you must have the following skill-set:\nPost-secondary education in one of the following fields: Math, Computer Science, Marketing, Business\nExperience working with SAS/SQL\nPrevious experience working in a financial industry\nExperience in visualization tools such as Spotfire or Tableau is an asset\nExperience working with CRMs (Microsoft Dynamics, Salesforce) is an asset\nThank you for applying, please submit all resumes to fabiha@ifgpr.com" + }, + { + "link": "https://www.indeed.ca/company/DGC-Executive-Search/jobs/Data-Scientist-d3fb8cae5516ffb4?fccid=1215e5e6a7cacdab&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "DGC Executive Search", + "salary": NaN, + "desc": "Permanent\nAbout the role:\nWe are looking for a candidate that will be responsible for developing algorithms which will form the basis of our mathematical models for our understanding of sports betting markets, which will be used for automation. The candidate MUST have a strong background in Machine Learning and Algorithm Development experience.\n*Our ideal candidate should have:\n*\nDegree/Diploma in Computer Science/Software Engineering/Statistics or equivalent\n3+ years of relevant experience with R or Python (NumPy, SciPy, Pandas, etc)\n2+ years of relevant experience as Software Developer, preferably using Microsoft .NET Framework (C# or VB.NET)\nStrong background in statistics\nExperience with Machine Learning algorithms and Probabilistic Models\nExperience using cloud computing platforms such as EC2 (AWS)\nDomain experience in on-line gaming and entertainment industry, Financial Markets (such as Stock Exchange, Options, Bonds, ForEx, etc), or other types of 2-sided markets is a plus\nExperience with modern R packages and technologies such as dplyr, tidyR, data.table, shinyR\nExperience with Neural Networks or Deep Learning on large problems, Hadoop, MapReduce or High Performance Computing is a plus. Experience in SQL and SQL server is also a plus.\nThis is a key role within the team and would suit someone who is analytical, conceptual, detail oriented and great problem solver with strong algorithm development experience. Great communication skills required both orally and in written format. Interest in sports or betting markets is a plus.\nJob Types: Full-time, Permanent" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ddcef56d42d2ea08&fccid=be3dbfb6ca2ac450&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Scientist", + "company": "Canvass Analytics Inc.", + "salary": NaN, + "desc": "A leader in automating intelligent industrial operations.\nAt Canvass Analytics, we are disrupting the way industrial operational data is being used to make critical business decisions. Our disruptive, leading edge AI-powered analytics platform transforms plant operations, giving them predictive insights that enable autonomous operations.\nIn mere days, the Canvass AI software platform can enable Fortune 1,500 industrial companies to automate complex production processes, improve quality, reduce energy consumption, generate new revenue streams and create new markets by producing higher grade products. Canvass Analytics\u2019 customers include leading energy, manufacturing, food and ag, oil and gas, and metals and mining companies around the globe.\nWe\u2019re an agile scale-up with the operational intelligence of a global business. Our business is founded by a team of seasoned revolutionaries who are building the next generation of AI-powered analytics to transform the Industrial industry. As we accelerate rapidly, we are constantly looking for driven and ambitious innovators to join our team.\nWho we need\nTo stay ahead of the curve and continue to scale rapidly, Canvass Analytics has an exciting opportunity for a Senior Data Scientist with an industrial sector background and the creativity to take new approaches in the way they solve problems. Reporting to the CTO, who believes in failing fast but fixing it faster, our new Data Scientist will focus on solving our Reinforcement Learning problem. This is a chance to use advanced quantitative and statistical analysis techniques to drive business innovation and to help solve some of the most complex processes in the Industrial sector.\nThis is an opportunity to contribute to the development and deployment of modern artificial intelligence, machine learning, deep learning, operational research, semantic analysis, and statistical methods for finding structure in large data sets. The Senior Data Scientist will:\nBuild relationships with Google\u2019s Gradient Ventures, the Vector Institute and Deepmind to collaborate on the Reinforcement Learning issues.\nWork closely with the Product team to disseminate knowledge and skills specific to the operational requirements, collection and handling of Industrial operational data.\nInterpret and utilize mass quantities of data to generate innovative hypotheses and insights.\nUse sophisticated statistical method to solve problems, leveraging up-to-date academic research and techniques,\nQuantitatively test hypotheses about data used to create models that increase the performance of predictive models for supervised, unsupervised and Reinforcement Learning use cases.\nDesign and implement novel experiments to better understand current operations and create models to optimize processes.\nWho you are\nYou are a Data Scientist with a powerful combination of academic and practical experience. You may be a Machine Learning Engineer looking for a step up or a Data Scientist working in the industrial, health or finance sector and you want to join a fast-paced, responsive, leading-edge scale-up. You are excited by the chance to support both high volume big data training of models, as well as working with real time streaming data, edge analytics, working with those types of technologies. From theory to building out the architecture, you have the skills, the innovation and the drive to be an active player on our team. You are ready to step up the challenge of finding solutions in a world where there isn\u2019t an answer out there and your ability to synthesize and formulate will bring about the ideas and concepts to test and try.\nWhat\u2019s in it for you\nYou want to join a company that\u2019s at the forefront of cutting-edge technology and you want the autonomy to research and experiment. You want to be part of a cross-functional team of Developers and Machine Learning Engineers working together to build an AI Analytics platform. You want to solve the unique problems we are facing and design algorithms for use cases we see in this space.\nOur new Senior Data Scientist has:\nThe education. You have a Masters or Ph.D. in Mathematics.\nThe experience. You have expertise in building and deploying AI-based models. An Industrial background would be nice to understand what we\u2019re trying to solve.\nThe passion. You are continuously researching, prototyping and testing.\nThe communication skills. You can build strong collaborative relationships and work closely with teammates across different departments. You have the verbal and written skills to clearly and confidently express your ideas and your thought process to clients, succinctly translating complex, technical language to tangible business concepts.\nEvolve with us. You want to channel your knowledge and your energy into helping us solve complex problems and take the next step in the AI IIoT market.\nWhy join us?\nAre you looking to join a venture that is paving the way of the next industrial revolution? Canvass Analytics is using AI to automate operations for the Industrial sector. We are changing the way Industry thinks and uses AI, and it\u2019s getting noticed everywhere. We\u2019ve been recognized by Network World as a Top 10 Hot AI-Powered IoT Startups and by Canadian Innovation Exchange as a Top 20 Most Innovative Canadian Company. Our Founder and CEO, Humera Malik, is one of the 2018 RBC Canadian Women Entrepreneur Ones to Watch Award Winners. Canvass is backed by Google\u2019s Gradient Ventures.\nWhat\u2019s it like to work at Canvass? This is a place where everyone is all in. From the CEO to the newest hire, we all pitch in where needed and do what it takes. We are a relatively flat organization where everyone is invited to the table, to listen in and be part of the conversation and decisions. We appreciate the efforts, innovation and results of our team. We offer:\nAccess to a highly dynamic, innovative, and passionate leadership team.\nAn opportunity to be part of a global company that is transforming the global Industrial market with AI.\nA diverse and inclusive company culture.\nA competitive salary.\nA commitment to supporting your career development.\nAll of the benefits of OneEleven membership including peer groups, open networking opportunities and more.\nIf you want to be an agent of change and disruption; if you want to work with and talk about AI and IIoT as part of your everyday life, join Canvass Analytics now and help us make a difference.\nApply now\nThink this job is meant for you but worried you don\u2019t have it all? If you feel you meet 70% of the qualifications listed and you are an innovative team player, express your interest here and we promise to consider your full profile. You can also follow us on Twitter or LinkedIn to learn more about us.\nCanvass Analytics welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process." + }, + { + "link": "https://www.indeed.ca/company/IFG-International-Financial-Group/jobs/Junior-Data-Analyst-2c50d51a454fee5f?fccid=a340e203981e9a89&vjs=3", + "location": "Toronto,ON", + "title": "Junior Data Analyst", + "company": "IFG- International Financial Group", + "salary": NaN, + "desc": "Contract\nTitle: Junior Data Analyst\nContract: June 2019 - potential of extension\nLocation: Mississauga\nIFG is looking for an outstanding Junior Data Analyst to support our client a global IT technology giant.\nyour role as a Junior Data Analyst is to provide pre and post sales operations support to ensure ouor client is targeting and validating business sold between markets. This role will will work closely with the LinkedIn Sales Operation Team and will need access to our client's systems and tools to perform duties successfully.\nAreas of Responsibility & Accountability:\nParticipate in the GTM meetings to understand the business context and be available for adhoc requests.\nConfirm close business and identify where licenses are consumed by State for LinkedIn Sales Compensation Purposes. Tools used will be MSX for Pipeline Reporting, MS Sales for Closed Business and MS Explore for finer licensing details.\nReinforce sales policies \u2013 In some cases transactions will book for less than 10 seats which is our minimum order. This role will follow up with the field to advise them on the policy and correct with their end customer.\nRequirements:\n2-5 years experience within a data analyst or sales operations support role.\nDegrees or certifications required\nResponsive with solid communication skills ( written adn verbal)\nNatural curiosity\nTeam player who understands how to work with others\nStrong sense of responsibility and understanding of the critical impact of meeting commitments.\nJob Types: Full-time, Contract" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=dccbde7ccf7ebe35&fccid=a6920e0a635e5c4e&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Workbridge Associates", + "salary": "$100 - $120 a day", + "desc": "$100 - $120 a day\nPermanent\nMy client Downtown is seeking an Intermediate Data Engineer to join their growing team. This is an amazing opportunity to join a up and coming team with a start-up culture within a developed organization. This role is a technical position on a diverse team building a next generation editorial intelligence data platform. The team is small and this initiative gives the candidate the opportunity to be part a new, cutting-edge data infrastructure. The right individual will be ready to take on new challenges while being hands on and ready to contribute to lead by example. This role will pay up to $120,000K for the right candidate.\nRequired Skills & Experience\nBachelors/Masters degree in computer science, or related fields\nProficiency with Scala or experience with Java 8\nProficiency with Redis, PostgreSQL, Elasticsearch\nExperience in data processing for XML and JSON formats\nDesired Skills & Experience\nExperience with software design patterns\nFamiliarity with AWS or other cloud services\nExperience with business intelligence and digital analytics\nWhat You Will Be Doing\nTech Breakdown\n100% Data Analyst\nDaily Responsibilities\n100% Hands On\nThe Offer\nCompetitive Salary: Up to $120,000K/year, DOE\nYou will receive the following benefits:\nStatutory Vacation\nHoliday Pay\n\n\nApplicants must be currently authorized to work in Canada on a full-time basis now and in the future.\n\nWorkbridge Associates, part of the Motion Recruitment network, provides IT Staffing Solutions (Contract, Contract-to-Hire, and Direct Hire) in major North American markets. Our unique expertise in today\u2019s highest demand tech skill sets, paired with our deep networks and knowledge of our local technology markets, results in an exemplary track record with candidates and clients." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3c21742c08a1b353&fccid=1a8b006c89f2d7c7&vjs=3", + "location": "Toronto,ON", + "title": "Google Cloud Data Engineer/Architect", + "company": "CG Consulting Group", + "salary": NaN, + "desc": "Location: Vancouver OR Canada Wide Telecommute\nDuration: Permanent Position OR Contract -4-6 months\nSalary/Rate: OPEN\n\nGoogle Cloud Data Engineer/Architect\n\nOur client is seeking a Data Engineer /Architec ..." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c11e2ec2238a544c&fccid=b920aab5fd60595d&vjs=3", + "location": "Toronto,ON", + "title": "Deployment Data Analyst - Intermediate", + "company": "Thales", + "salary": NaN, + "desc": "Wherever safety and Security are Critical, Thales delivers. Together, we innovate with our customers to build smarter solutions. Everywhere .\n\nThales is a global technology leader for the Defence & Security, Aerospace and Transport markets. World-class technology, the combined expertise of 64,000 employees and operations in 56 countries have made Thales a key player in keeping the public safe and secure, guarding vital infrastructure and protecting the national security interests of countries around the globe.\n\nEstablished in 1972, Thales in Canada has 1,800 employees in Quebec City, Montreal, Ottawa, Toronto and Vancouver working in Defence, Avionics and Transportation markets. Thales in Canada is a 500 million (CAD) a year business, with a range of customers including Canadian and overseas urban rail operators, civil aviation, and defence and security agencies.\n\nREQ: R0041196\nPosition Title: Deployment Data Analyst - Intermediate\nDepartment: Deployment & Services Management Office (DSMO)\nLocation: Toronto (Don Mills / York Mills)\n\nJob Purpose:\nWorking closely with the Deployment Solutions Management Office (DSMO) & Deployment Technical Support experts in the evaluation, selection & customization of software(s) to support URS project deployment activities. You will leverage leading edge technologies & a creative approach to assist in the implementation of the Thales digitalization plan.\n\nKey Job Functions:\nSupports the analysis of system, subsystem, hardware & software requirements in the definition of new tools proposed to increase the efficiency of system deployment activities including planning, execution, monitoring & KPI reporting.\nDevelop a keen understanding of the software / hardware interface & the development of new interfaces to create, evaluate & launch automatic test tools for both hardware & software.\nDevelop prototype tools for future consideration based on operational needs defined by the deployment community & industry trends.\nMaintain a current working knowledge of existing as well as new & emerging technologies.\nSupport & contribute to the on-site implementation & evaluation of new tool deployments & Proof of Concepts (PoCs)\nAssist in the development of requirements definition, validation methodology & the verification of new tool deployments.\nPrepares status reports on a regular basis providing development status, successes & issues.\nProvides initial training to new users as required.\nProvides support after project launch to further enhance tool evolution & provide user support.\nInvestigates software anomalies through the provision of data files, feedback & interaction with deployment departments & teams.\nOccasional travel to site may be required in accordance with project requirements.\n\nKey Skill Requirements:\nThe successful candidate should possess a Software Engineering / Computer Science degree or equivalent.\nOvertime may be required from time to time, depending on project needs.\n1-2 years of working experience in a system development & software design environment\nExperience in the development & testing of internal & clouded database structures.\nExperience with the interface & maintenance of these database systems via internet secured environments is preferred.\nBasic understanding of Electrical & Electronic control systems.\nGood written & oral communication skills.\nPrevious working experience in a project environment.\nWorking knowledge of current and legacy software development tools (e.g. C++, Visual Studio, html, xml, Android, AWS, Azure, SQL, MySQL, etc.)\nGood working knowledge for Microsoft Office tools.\nExperience in use of SAP & Adobe Acrobat tools an asset\nGood Electro-mechanical mindset\nMust be very adaptable & work well independently.\nBasic operational understanding in the technical aspects of System Engineering; Safety, HW/SW design etc.\n\nSpecific Application Instructions:\nApplication documents to be submitted in ONE PDF file.\n\nThales is known for its commitment to employees, outlined in its human resources policy: Thales Together. Staffs enjoy a competitive salary and benefits package, as well as opportunities to develop professionally, and define their career paths.\n\nIf this opportunity interests you, please visit www.thalesgroup.com/careers/ and apply using our e-staffing tool. Thales thanks all applicants for their interest, however, only those selected for an interview will be contacted.\n\nThales is committed to employment equity and diversity in the workplace and welcomes applicants from the four designated groups (women, persons with disabilities, visible minorities, and aboriginals) to apply for employment." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e3d384637a5196b3&fccid=b920aab5fd60595d&vjs=3", + "location": "Toronto,ON", + "title": "Deployment Data Analyst - Intermediate", + "company": "Thales Group", + "salary": NaN, + "desc": "Wherever safety and Security are Critical, Thales delivers. Together, we innovate with our customers to build smarter solutions. Everywhere.\n\nThales is a global technology leader for the Defence & Security, Aerospace and Transport markets. World-class technology, the combined expertise of 64,000 employees and operations in 56 countries have made Thales a key player in keeping the public safe and secure, guarding vital infrastructure and protecting the national security interests of countries around the globe.\n\nEstablished in 1972, Thales in Canada has 1,800 employees in Quebec City, Montreal, Ottawa, Toronto and Vancouver working in Defence, Avionics and Transportation markets. Thales in Canada is a 500 million (CAD) a year business, with a range of customers including Canadian and overseas urban rail operators, civil aviation, and defence and security agencies.\n\nREQ: R0041196\nPosition Title: Deployment Data Analyst - Intermediate\nDepartment: Deployment & Services Management Office (DSMO)\nLocation: Toronto (Don Mills / York Mills)\n\nJob Purpose:\nWorking closely with the Deployment Solutions Management Office (DSMO) & Deployment Technical Support experts in the evaluation, selection & customization of software(s) to support URS project deployment activities. You will leverage leading edge technologies & a creative approach to assist in the implementation of the Thales digitalization plan.\n\nKey Job Functions:\nSupports the analysis of system, subsystem, hardware & software requirements in the definition of new tools proposed to increase the efficiency of system deployment activities including planning, execution, monitoring & KPI reporting.\nDevelop a keen understanding of the software / hardware interface & the development of new interfaces to create, evaluate & launch automatic test tools for both hardware & software.\nDevelop prototype tools for future consideration based on operational needs defined by the deployment community & industry trends.\nMaintain a current working knowledge of existing as well as new & emerging technologies.\nSupport & contribute to the on-site implementation & evaluation of new tool deployments & Proof of Concepts (PoCs)\nAssist in the development of requirements definition, validation methodology & the verification of new tool deployments.\nPrepares status reports on a regular basis providing development status, successes & issues.\nProvides initial training to new users as required.\nProvides support after project launch to further enhance tool evolution & provide user support.\nInvestigates software anomalies through the provision of data files, feedback & interaction with deployment departments & teams.\nOccasional travel to site may be required in accordance with project requirements.\n\nKey Skill Requirements:\nThe successful candidate should possess a Software Engineering / Computer Science degree or equivalent.\nOvertime may be required from time to time, depending on project needs.\n1-2 years of working experience in a system development & software design environment\nExperience in the development & testing of internal & clouded database structures.\nExperience with the interface & maintenance of these database systems via internet secured environments is preferred.\nBasic understanding of Electrical & Electronic control systems.\nGood written & oral communication skills.\nPrevious working experience in a project environment.\nWorking knowledge of current and legacy software development tools (e.g. C++, Visual Studio, html, xml, Android, AWS, Azure, SQL, MySQL, etc.)\nGood working knowledge for Microsoft Office tools.\nExperience in use of SAP & Adobe Acrobat tools an asset\nGood Electro-mechanical mindset\nMust be very adaptable & work well independently.\nBasic operational understanding in the technical aspects of System Engineering; Safety, HW/SW design etc.\n\nSpecific Application Instructions:\nApplication documents to be submitted in ONE PDF file.\n\nThales is known for its commitment to employees, outlined in its human resources policy: Thales Together. Staffs enjoy a competitive salary and benefits package, as well as opportunities to develop professionally, and define their career paths.\n\nIf this opportunity interests you, please visit www.thalesgroup.com/careers/and apply using our e-staffing tool. Thales thanks all applicants for their interest, however, only those selected for an interview will be contacted.\n\nThales is committed to employment equity and diversity in the workplace and welcomes applicants from the four designated groups (women, persons with disabilities, visible minorities, and aboriginals) to apply for employment." + }, + { + "link": "https://www.indeed.ca/company/TekStaff-IT-Solutions/jobs/Data-Analyst-2d5280c687781e72?fccid=35a6e34d9a964df9&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "TekStaff IT Solutions", + "salary": NaN, + "desc": "Contract\n*SUMMARY OF DAY TO DAY RESPONSIBILITIES:\nSummary: The main function of a Data Analyst is to coordinate changes to computer databases, test, and implement the database applying knowledge of database management systems. A typical Data Analyst is responsible for planning, coordinating and implementing security measures to safeguard the computer database.\nJob Responsibilities:\nTest programs or databases, correct errors and make necessary modifications.\nModify existing databases and database management systems or direct programmers and analysts to make changes.\nWrite and code logical and physical database descriptions and specify identifiers of database to management system or direct others in coding descriptions.\nSkills:\nVerbal and written communication skills, problem solving skills, customer service and interpersonal skills.\nBasic ability to work independently and manage one\u2019s time.\nBasic knowledge of database management software.\nEducation/Experience:\nAssociate's degree in computer programming or equivalent training required.\n2-4 years experience required.\nMUST HAVE:\n1.) AutoSys \u2013 2 yrs\n2.) Datawarehouse \u2013 2 yrs\n3.) Data Analysis \u2013 2 yrs\n4.) Hadoop \u2013 1 yr\n5.) Visual Basic, Java, SQL \u2013 2 yrs\nNICE TO HAVE\n1.) Financial industry*\nJob Type: Contract" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=73f0fddbfe9e257c&fccid=d7114f1cac8d0711&vjs=3", + "location": "Toronto,ON", + "title": "Big Data Engineer", + "company": "TD Bank", + "salary": NaN, + "desc": "Tell us your story. Don't go unnoticed. Explain why you're a winning candidate. Think \"TD\" if you crave meaningful work and embrace change like we do. We are a trusted North American leader that cares about people and inspires them to grow and move forward.\nStay current and competitive. Carve out a career for yourself. Grow with us. Here's our story: jobs.td.com\n\nDepartment Overview\nThe Treasury Analytics Group is responsible for measurement and management of market risk (interest rate and foreign exchange) for the Bank's retail portfolios. The team develops financial models and processes required for measuring, transfer pricing, hedging product profitability, and financial management reporting\n\nThe Treasury Analytics Group is embarking on a brand new initiative to build the next generation strategic platform for risk, valuations and analytics to meet the growing and future needs of the department. This is an exciting opportunity to work on cutting edge technologies including Big Data and NoSQL databases(Hadoop, Hbase, Hive, SPARK and MongoDB) to allow the business to gain advanced insight into their portfolios and valuation metrics\n\nJob Type\nRegular\n\nJob Status\nFull Time\n\nHours\n37.5\n\nBusiness line\nCorporate\n\nJob Category - Primary\nTechnology Solutions\n\nJob Category(s)\nTechnology Solutions\n\nJob Description\nAbout This Role\nThis role is within the Java and Big Data team to build out the platform and build aggregation services, rules engines and analytics services as well as business functionality to the platform. These services will be exposed via rest API's. to other components of the platform. The candidate will need to be familiar with optimization and performance tuning to optimize for low latency and very large data sets. The candidate will be involved in all aspects of the application development lifecycle including gathering business requirements, system design, development, testing and deployment.\n\nJob Requirements\nThe ideal candidate will have very strong computer science fundamentals with a strong background in building highly responsive applications in Java on Linux (minimum 5 years experience). The candidate should be very familiar with building multi-threaded applications, and understanding distributed systems like Spark and Storm as well as messaging platforms like Kafka, Rabbit MQ, Tibco etc. The candidate should also be very familiar with using and building rest api's and connecting to SQL databases (SQL Server). The candidate should have some experience with Hbase and Spark. To excel in this role the candidate should be able to envision and design complete system components, communicate design ideas and specifications, and be able to develop well structured and maintainable code.\n\nJob Requirements:\nEducation: Bachelor's degree\nCore Java Development: 5 Years\nBig Data Experience: 1 Year\nGood Business Communication Skill\n\nAdditional Information\nJoin in on what others in TD Technology Solutions are doing:\nInspire a positive work environment and help champion quality, innovation, teamwork and service to the business.\nLearn voraciously, stretch your thinking, share your knowledge and educate others.\nCommunicate and collaborate with both technical and non-technical professionals.\nCultivate winning relationships by building trust with business and technology partners.\nShare our commitment to productivity, effectiveness and operational efficiency.\nEmbrace change and witness amazing things happen \u2013 from the inside.\nMake your mark. Join a dynamic team. Explore new ideas. This is your opportunity to impact the future of banking technology in areas and ways you've never imagined (at a bank)! Visit techjobs.td.com to learn more.\n\nEducation and Accreditation\nBachelor's Degree\n\nNumber of Years Experience\n5+\n\nInclusiveness\nAt TD, we are committed to fostering an inclusive, accessible environment, where all employees and customers feel valued, respected and supported. We are dedicated to building a workforce that reflects the diversity of our customers and communities in which we live and serve. If you require an accommodation for the recruitment/interview process (including alternate formats of materials, or accessible meeting rooms or other accommodation), please let us know and we will work with you to meet your needs.\n\n**Province/State (Primary)\nOntario\n\nCity (Primary)\nToronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e029fde135c346b0&fccid=82179ab8760b598c&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Index Exchange", + "salary": NaN, + "desc": "Data is a big deal at Index Exchange. Our advertising exchange handles billions of auctions and generates multiple terabytes of auction-related information every day. Our Data Engineering team builds tools and infrastructure to manage this vast amount of data. Working within our larger Software Engineering team, our Data Engineers use a specialized suite of tech and hardware to pipe, parse and maintain our data, including the oversight of multi-petabyte clusters. We're looking for Data Engineers to join our team, and help build the next generation of big data solutions at Index Exchange with real time streaming and batch analytical capabilities.\n\nWorking on the cutting edge of exciting technology, you're afforded the opportunity to experiment with new tools and attempt radically different approaches than traditional software development affords. Every day with the Data Engineering team is different and each project presents its own set of new and exciting challenges. Things shift very quickly in our industry, and we rely on the Data Engineering team to keep us and our clients ahead of the curve and moving in the right direction. We're looking for Engineering who have worked well in Agile environments and who can drive innovation and experimentation without a lot of hand-holding - it's small team and we're looking for someone who can jump in and contribute right away.\n\nHere's what we want:\nProblem Solver: You need to be someone who is curious and loves taking multiple approaches to solving a problem to find the most efficient, scalable solution\nCollaborative: We need someone who can work well with other people - both your immediate team as well as all the other departments across Index\nPassionate: A passion for Big Data and an interest in the latest trends and developments is key for success on this team. We want you to constantly research, study and create new tools and data technologies to improve cluster productivity without sacrificing existing capabilities\nLogical: Amazing logic, a love of algorithms and/or experience with artificial intelligence\nSelf-driven: You'll be on a small team with lots of autonomy and you need to be comfortable pushing your own projects and getting things done\nHere's what you have:\nA degree in Computer Science/Engineering\n5+ years of experience in a software engineering environment and 2+ years of experience building high performance, high throughput, and distributed data pipeline and big data platform with Hadoop, Spark, Kakfa, Hive, MapReduce, Impala, and Presto\nHigh-degree of comfort with both Linux and SQL. Familiarity with MySQL and NoSQL systems a plus\nExperience with Agile methodologies as well as automatic testing frameworks and tools\nKnowledge of data warehousing and business intelligence reporting tools is preferred\nHaving worked with Java, C++, Perl and Golang will benefit you\nEQUAL EMPLOYMENT OPPORTUNITY At Index Exchange, we believe that successful products are built by teams just as diverse as the audience who uses them. As such, we are committed to equal employment opportunity. We celebrate diversity of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity or expression, or Veteran status. Additionally, we realize that diversity is deeper than any status or classification - diversity is the human experience. For those who show grit, passion, and humility - IX will welcome you.\n\nIndex Exchange is committed to working with and providing access and reasonable accommodations to applicants with disabilities. Please let us know if you'd like to request a reasonable accommodation.\n\nACCESSIBILITY FOR APPLICANTS WITH DISABILITIES Index Exchange is committed to working with and providing reasonable accommodation to individuals with disabilities. In accordance with the Accessibility for Ontarians with Disabilities Act, 2005 and the Ontario Human Rights Code, Index Exchange* will provide accommodations throughout the recruitment and selection process to applicants with disabilities. If you would like to request a reasonable accommodation, please email IX.AllHumanResources@indexexchange.com ( IX.AllHumanResources@indexexchange.com ) or call 416.785.5908 ensure to provide your name, the best way to contact you, a detailed description of the nature of any accommodation that you may require (including any materials or processes that can be used to ensure your equal participation).\n\n#LI-POST" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3a0e3634dc460b9b&fccid=1b217912a3042c02&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Scientist - Medical Underwriting", + "company": "Manulife", + "salary": NaN, + "desc": "Are you looking for unlimited opportunities to develop and succeed? With work that challenges and makes a difference, within a flexible and supportive environment, we can help our customers achieve their dreams and aspirations.\n\nJob Description\nSenior Data Scientist (Medical Underwriting)\n\nDescription\nAre you looking for unlimited opportunities to develop and succeed? With work that challenges and makes a difference, within a flexible and supportive environment, we can help our customers achieve their dreams and aspirations.\n\nGeneral Accountability:\n\nThis position is accountable for the development and implementation of advanced analytic models to improve medical underwriting, and to generate insight in order to support the strategy & goals of Underwriting Center of Expertise (COE). This position will provide analytics thought leadership, coaching to the Data Scientists & Analysts and support the development of the capabilities of the team. Additional responsibilities include the development of documentation & measurement framework.\n\nResponsibilities:\nDevelop & implement models to support the Underwriting COE\u2019s strategy and business pillar initiatives\nReview and analyze medical and other related data\nDevelop advanced analytics models in order to improve underwriting performance.\nPerform needs analysis with underwriting leaders and teams through assessment of the entire underwriting ecosystem\nExplore new opportunities under the guidance of Chief Medical Officer to bring advancement in clinical medicine and population health into consideration of underwriting\nDevelop and implement end-to-end processes together with underwriting teams to improve timelines, efficiency and quality of underwriting decisions\nExplore, generate & source data relevant to the hypothesis (internal, external, 3rd party)\nCreate, assess, evaluate & Iteratively improve models\nCalculate model impact/ROI\nPeer review other Data scientists work\nLeverage sound judgment, balancing analysis effort vs incremental improvement\n\nMeasure & communicate analytic results & impact of analytics models\nImplement measurement & documentation framework against all project work\nGenerate insights in such a way that the businesses can clearly understand the quantifiable value. Enable the business to make clear trade-offs between and among choices, with a reasonable view into the most likely outcomes of each.\nTurn statistical and computational analysis into user-friendly graphs, charts, and animation. Enable those who aren\u2019t professional data analysts to effectively interpret data. Ability to communicate results and educate others through reports and presentations\n\nProvide thought leadership around analytics methodology, tools, and measurement\nLeverage extensive theoretical and practical knowledge of medicine, advanced analytic methods and algorithms, understanding their utility in different problem domains (sparse data, rare event detection, etc), evaluation methodologies and pitfalls, and stays on top of industry & academic developments.\nInnovate & find creative ways to source & leverage data to support modeling efforts, leveraging structured & unstructured data, and big data technologies.\nCollaborate with internal stakeholders to develop tools and services such as modeling, dashboard development, decision aids and business case analysis to drive innovation, strategic initiatives and recommend solutions.\n\nCoach & provide guidance to Data Scientists & Data Analysts\nLeverage depth of experience in business, technical & analytical problem solving to support & coach other team members.\n\nQualifications\nEducation in Medicine, post grad in Epidemiology, Statistics, Math, Comp Sci, Engineering or other related discipline\nMinimum of 6 years' research experience specifically in clinical epidemiology, population health, statistical/data analysis and data mining, predictive modeling, cluster analysis, optimization\nAdvanced experience in Python, R, SAS, SQL, Java, VBA\nTrack of record of delivering innovative analytical insights to improve practices\nStrong commitment to organizational success and team work\nAdaptable and open to change with strong collaboration and elaboration skills\nDemonstrated data transformation & manipulation experience\nStrong Knowledge of medical data and coding systems, population health databases, researches on mortality and community health.\nInsurance industry experience preferred.\nDemonstrated experience exhibiting innovation and leadership in proposing new strategies and/or tactics based on analysis findings\nExperience with Big Data platforms desired\nExperience with analysis of unstructured data desired\n\n\n\nIf you are ready to unleash your potential it\u2019s time to start your career with Manulife/John Hancock.\n\nAbout Manulife\nManulife Financial Corporation is a leading international financial services group that helps people achieve their dreams and aspirations by putting customers' needs first and providing the right advice and solutions. We operate as John Hancock in the United States and Manulife elsewhere. We provide financial advice, insurance, as well as wealth and asset management solutions for individuals, groups and institutions. At the end of 2016, we had approximately 35,000 employees, 70,000 agents, and thousands of distribution partners, serving more than 22 million customers. At the end of 2016, we had $977 billion (US$728 billion) in assets under management and administration, and in the previous 12 months we made almost $26 billion in payments to our customers.\n\n\n\nOur principal operations are in Asia, Canada and the United States where we have served customers for more than 100 years. With our global headquarters in Toronto, Canada, we trade as 'MFC' on the Toronto, New York, and the Philippine stock exchanges and under '945' in Hong Kong.\n\n\nManulife is committed to supporting a culture of diversity and accessibility across the organization. It is our priority to remove barriers to provide equal access to employment. A Human Resources representative will consult with applicants contacted to participate at any stage of the recruitment process who request an accommodation. Information received regarding the accommodation needs of applicants will be addressed confidentially." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=613956da2f899069&fccid=105ecfd0283f415f&vjs=3", + "location": "Toronto,ON", + "title": "Delivery Architect - Data Scientist", + "company": "Capgemini", + "salary": NaN, + "desc": "You are responsible for data related activities such as data extraction, profiling, cleansing, de-duplication, standardization, conversion, transformation and loading, data mining, warehousing, archiving and reporting.\nResponsible for all activities required to ensure optimum performance and data integrity of databases in production environments, in line with the requirements.\nResponsible for server based databases in development and test environments including database software installation, database creation, performance and capacity design, backup and recovery design, security design.\nResponsible for importing, cleaning, transforming, validating and modeling data with the purpose of understanding and drawing conclusions from data (may be presented in charts, graphs, and/or tables).\nDesign and develop relational databases for collecting and storing data and build and design data input and data collection mechanisms.\n\nGood To Have:\nShould be proficient in Software Engineering Techniques, Software Engineering Architecture, Software Engineering Lifecycle and Data Management.\nShould have progressing skills in Business Analysis, Business Knowledge, Software Engineering Leadership, Architecture Knowledge and Technical Solution Design.\nStrong SQL and U-SQL scripting to create views and replicate the existing processes in Data Lake.\nExperience in building statistical models, scoring of the models and model governance.\nHand on experience in R/python to perform analysis of business data.\nKnowledge of customer analytics, consumer targeting, campaign data, scan data etc.\n\nCandidates should be flexible / willing to work across this delivery landscape which includes and not limited to Agile Applications Development, Support and Deployment.\n\nQualifications\nDelivery Architects assess a project\u2019s technical feasibility, as well as implementation risks. They are responsible for designing and implementing a project\u2019s technical architecture. They define the structure of a system, its interfaces, and the principles that guide its organization, software design and implementation. The scope of the Delivery Architect\u2019s role is bounded by the business issue at hand. A Delivery Architect needs to have knowledge of all the different aspects of the technical Delivery as well as robust business knowledge. This includes the Software Architect.\n\nDay to Day Responsibilities:\n\nYou are responsible for the end-to-end architecture of a Delivery, including its assembly and integration into the IT architecture principles defined with the client.\nYou define the structure of the system, its interfaces, and the principles that guide its organization, software design and implementation.\nYou are responsible for the management and mitigation of technical risks, ensuring that the Delivery services can be realistically delivered by the underlying technology components.\n\nRequired Skills and Experience:\nQualification: Minimum 5 years experience, Bachelor\u2019s Degree.\nCertification: Has or seeking IAF level 1.\nShould be proficient in foundation, People Leadership, client acquisition & development, service & delivery and business leadership.\nShould be experienced in technology awareness & leveraging and innovation & growth capability.\n\n\nCapgemini is an Equal Opportunity Employer encouraging diversity in the workplace. All qualified applicants will receive consideration for employment without regard to race, national origin, gender identity/expression, age, religion, disability, sexual orientation, genetics, veteran status, marital status or any other characteristic protected by law.\n\nThis is a general description of the Duties, Responsibilities and Qualifications required for this position. Physical, mental, sensory or environmental demands may be referenced in an attempt to communicate the manner in which this position traditionally is performed. Whenever necessary to provide individuals with disabilities an equal employment opportunity, Capgemini will consider reasonable accommodations that might involve varying job requirements and/or changing the way this job is performed, provided that such accommodations do not pose an undue hardship.\n\nClick the following link for more information on your rights as an Applicant - http://www.capgemini.com/resources/equal-employment-opportunity-is-the-law\n\n\nAbout Capgemini\n\nA global leader in consulting, technology services and digital transformation, Capgemini is at the forefront of innovation to address the entire breadth of clients\u2019 opportunities in the evolving world of cloud, digital and platforms. Building on its strong 50-year heritage and deep industry-specific expertise, Capgemini enables organizations to realize their business ambitions through an array of services from strategy to operations. Capgemini is driven by the conviction that the business value of technology comes from and through people. It is a multicultural company of 200,000 team members in over 40 countries. The Group reported 2017 global revenues of EUR 12.8 billion (about $14.4 billion USD at 2017 average rate).\n\nVisit us at www.capgemini.com. People matter, results count." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=daf31683de95443b&fccid=a6920e0a635e5c4e&vjs=3", + "location": "Toronto,ON", + "title": "Data Science/Engineer", + "company": "Workbridge Associates", + "salary": "$110 - $160 a day", + "desc": "$110 - $160 a day\nPermanent\nAs a Data Engineer/Scientist you will be working closely with the CTO, data scientists and extended product team. You will work to understand their current data sets and models and help in discovering new ways to enrich the data, creatively extract real-world behavior and trends out of the location data and monitor and build processes for cleaning up inbound data. For the right candidate our client is willing to pay up to 160k. (DOE).\nRequired Skills & Experience\n3+ years as a Data Engineer or Data Scientist\nFluent with Python\nExperience with big data: Hive, Hadoop, Spark, Scala etc,\nDesired Skills & Experience\nExperience working with real-time data\nA University Degree or comparable work experience\nWhat You Will Be Doing\nDaily Responsibilities\n60% Hands On\n40% Team Collaboration\nThe Offer\nCompetitive Salary: Up to $160k/year, DOE\nYou will receive the following benefits:\nCompetitive pay\nPublic transit allowance\nFull benefits\nTea and Coffee bar\nDaily snacks\n\n\nApplicants must be currently authorized to work in Canada on a full-time basis now and in the future.\n\nWorkbridge Associates, part of the Motion Recruitment network, provides IT Staffing Solutions (Contract, Contract-to-Hire, and Direct Hire) in major North American markets. Our unique expertise in today\u2019s highest demand tech skill sets, paired with our deep networks and knowledge of our local technology markets, results in an exemplary track record with candidates and clients." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ed4a26817138a774&fccid=654a2ae7c01ddc34&vjs=3", + "location": "Toronto,ON", + "title": "Business Intelligence / Data Analyst", + "company": "Lock Search Group", + "salary": NaN, + "desc": "Business Intelligence / Data Analyst\nOur client is a well-established manufacturer in the industrial space. They have asked Mark Tinkler of Lock Search Group to assist them in their search for a Business Intelligence / Data Analyst for their Mississauga facility.\nTo strengthen their connection to the community, improve operations, and help foster innovation; our client is seeking a Business Intelligence / Data Analyst to play a key role in the creation and continual evolution of a business data system which will provide insights into all areas of their business. The person in this position will work in a variety of situations, at times working as a member of a team and other times working alone on an assignment.\nQualifications:\nBachelor\u2019s degree in computer science, information management, statistics or five or more years of technology related on-the-job experience.\nMBA from a recognized university, preferably from a program that includes a Big Data Analytics / Data Science component.\nEducation / experience in Artificial Intelligence (AI) and its practical application in a manufacturing environment (planning, execution, and control) is preferred.\nComputer-related certifications in association to database administration and/or reporting.\nKnowledge of statistics and experience using statistical packages for analyzing large datasets (Excel, SPSS, SAS, etc.).\nProven working experience as a data/reporting analyst.\nEntrepreneurial / Start-up mindset.\nTechnical expertise regarding data models, database design development, data mining and segmentation techniques.\nStrong knowledge of and experience with reporting services (SSRS, Crystal Reports), databases (i.e. SQL), programming (XML, JavaScript, or ETL frameworks).\nTechnical proficiency.\nStrong analytical skills with the ability to collect, organize, analyze and disseminate significant amounts of information with attention to detail and accuracy.\nExperience in working in and organizing a Project Management Office (PMO).\nAbility to communicate with all levels of staff.\nResults driven and highly organized.\nAbility to manage multiple projects in multiple functional areas simultaneously.\nFlexibility and adaptability to adjust to changing project needs in evolving situations.\nTo apply, please submit a copy of your resume in confidence to Mark Tinkler via the \u201capply now\u201d button." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7c393ddbd38281c9&fccid=8263389b819d48ea&vjs=3", + "location": "Toronto,ON", + "title": "78267 Jr Data Analyst", + "company": "Modis Canada", + "salary": NaN, + "desc": "Temporary, Contract\nJr. Data Analyst\nDuration: 3 months\nLocation: Downtown, Toronto\nThe Jurnior Data Analyst, will be responsible for reviewing the quality of key regulatory compliance risks, controls and regulatory theme data attributes collected by the business in specially formatted spreadsheets that require adherence to specific data parameters to allow for upload into the company's Enterprise Repository of Internal Controls.\nResponsibilities:\nValidate regulatory compliance data quality in worksheets as they come in under the direction of the Product owner and Data Workstream Lead\nTake direction from the Program Director (hiring manager) to support specific requests from the Regulatory Compliance Management team as it relates to regulatory compliance data quality or reporting\nWrite a SQL queries to export/validate/analyze counterparty data\nMonitor changes in data to ensure data integrity\nCode logical and physical database descriptions and specify identifiers of database to management system\nImplement security measures to safeguard information in computer files against accidental or unauthorized damage, modification or disclosure\nPrepare and test change requests when required\nVerify/check/compare client counterparty data from the counterparty databases to internal reports and spreadsheets\nProduce internal and regulatory reports on regular or ad hoc basis\nMust Have Skills:\nExperience reviewing large volumes of data quickly for adherence to defined data parameters with advanced attention to detail\nAdvanced Excel (understands and can run macros)\nGood oral and written communication\nAbility to prioritize competing requests\nAbility to produce under tight deadlines\nNice to Have Skills:\nExperience interacting directly with key stakeholders to provide updates on progress and feedback on quality of data (will be supported and given direction)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3cb4debf160a00b0&fccid=1b217912a3042c02&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Manulife", + "salary": NaN, + "desc": "Are you looking for unlimited opportunities to develop and succeed? With work that challenges and makes a difference, within a flexible and supportive environment, we can help our customers achieve their dreams and aspirations.\n\nJob Description\nThe Data Engineer has primary responsibility for:\n\nModern Data Architecture: Setting the strategic rollout, selection and delivery of proven as well as emerging tooling to ensure that data pipelines are scalable, repeatable and secure serving multiple users within the organization. The incumbent is responsible for implementing highly complex, multi-faceted big data initiatives associated the following functions areas:\nTranslate functional and technical requirements into detailed design and high performing capabilities;\nDesign and build data patterns and services - both batch, real-time and complex event handing - leveraging open technologies;\nEnsure the timely delivery to meet project timeline by automating development and deployment tasks;\n\nGovernance and Controls: Responsible for ensuring all data management processes conform to standard operating procedures and aligns with how a modern data architecture aligns to enterprise technology standards and policies; contribute and provide guidance around data quality, metadata management, data stewardship and security, and access controls.\n\nInnovation and Continuous Improvement: Evaluate new data technologies and capabilities that are value-driven; work closely with Manulife\u2019s innovation teams (i.e., LOFT), remain current with industry advancements working closely external vendors as well connected to the Apache Foundation projects;\n\nRequired Knowledge and Skills:\nDemonstrated 3-5 years of experience in big data/data management including a university degree in Engineering, Computer Science or equivalent program;\nWith experience in data technologies and the use of data to support software development, advanced analytics and reporting. Particular focus on Cloud (Azure) and Hadoop-based technologies and programming or scripting languages like Java, Scala, Linux, C++, PHP, Ruby, Python, R and SAS. Also, knowledge should be present regarding different (NoSQL or RDBMS) databases such as Hawq/HDB, MongoDB, Cassandra or Hbase; Working experience with modern data streaming process with Kafka, Apache Spark, Flink and data ingestion framework NiFi, Hive, Pig, etc.\nExperience with security/data protection solutions, Kerberos, Active Directory, HDFS Access Control, OAuth2, OpenID, LDAP\nExperience with network layer security design in VPN, firewall, Loadbalancer\nExperience and capability in translating non-technical user requests into technical specifications and solutions that meet these requirements;\nWith experience on organizational and time management skills, with ability to multi-task. Ability to work with minimal or no supervision while performing duties; has the ability and initiative to organize various functions necessary to accomplish department activities or goals and be a strong team player.\nIf you are ready to unleash your potential it\u2019s time to start your career with Manulife/John Hancock.\n\nAbout Manulife\nManulife Financial Corporation is a leading international financial services group that helps people achieve their dreams and aspirations by putting customers' needs first and providing the right advice and solutions. We operate as John Hancock in the United States and Manulife elsewhere. We provide financial advice, insurance, as well as wealth and asset management solutions for individuals, groups and institutions. At the end of 2016, we had approximately 35,000 employees, 70,000 agents, and thousands of distribution partners, serving more than 22 million customers. At the end of 2016, we had $977 billion (US$728 billion) in assets under management and administration, and in the previous 12 months we made almost $26 billion in payments to our customers.\n\n\n\nOur principal operations are in Asia, Canada and the United States where we have served customers for more than 100 years. With our global headquarters in Toronto, Canada, we trade as 'MFC' on the Toronto, New York, and the Philippine stock exchanges and under '945' in Hong Kong.\n\n\nManulife is committed to supporting a culture of diversity and accessibility across the organization. It is our priority to remove barriers to provide equal access to employment. A Human Resources representative will consult with applicants contacted to participate at any stage of the recruitment process who request an accommodation. Information received regarding the accommodation needs of applicants will be addressed confidentially." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=86ed45ed374c10cc&fccid=2bef55e014d470c4&vjs=3", + "location": "Toronto,ON", + "title": "Business Process & Data Analyst, Data & Implementation Science", + "company": "University Health Network", + "salary": NaN, + "desc": "Permanent\nDigitally enabling the good work at UHN!\n\nUHN is a major landmark in Canada\u2019s health care system with four hospitals, five research institutes, and our Michener Institute of Education. Our purpose is to transform lives and communities through excellence in care, discovery, and learning. With over 1,200 beds, more than one million clinic visits per year, and a budget of over $2 billion, UHN and its 16,000 employees make a difference in the lives of patients and their families every day.\nFor more information on UHN, visit www.uhn.ca.\n\nOVERVIEW OF THE POSITION:\nThe Data and Implementation Science Team supports impactful delivery of solutions benefiting the health system; discovers, validates, designs and delivers opportunities of change, and brings contextual awareness through data to ensure successful implementations, value and outcomes for UHN\u2019s patients.\nAn exciting opportunity is available to showcase your talents as a Business Process & Data Analyst. We are seeking a bold, creative, and innovative individual who can support various types of digital projects that support clinicians, researchers, educators, patients, and corporate business areas. These initiatives include process redesign, technology strategy, data analytics, and system selection/design and implementation.\nIn your role, you will work on solutions that are patient-centric and data-driven, bring value to our stakeholders, and achieve UHN\u2019s business objectives. The responsibilities include:\nAnalyze business needs, problems, opportunities, and solution scope\nDocument value statements and collect benefit metrics, supporting business case development and return on investment analysis\nWork with multidisciplinary groups to identify, validate, and document clinical, business and technical requirements\nConduct workflow review and process redesign, and support continuous improvement processes\nCoordinate and conduct business systems analysis, system design, build, and testing\nCollect and analyze data, complete data reporting and apply data visualization techniques\nAssist in the maintenance of project plans, schedules, status reports, budgets, and other project management documentation as required\nPrepare meeting minutes, communications, and training materials\nDevelop an adequate level of knowledge of the subject matter and digital systems to effectively move projects forward\nLead small projects and moderately complex tasks with minimal supervision\nQUALIFICATIONS:\nExperience, Education & Certifications\nUndergraduate Degree in Health Informatics, Computer Science, Epidemiology, Industrial Engineering, Business, or related field\nMinimum 2 years of project management, business process/analysis, and data analysis experience or equivalent\nGood knowledge of project management best practice methodologies (project planning, implementation, evaluation, risk assessment, benefits realization)\nExperience working on workstreams within large project or leading small projects independently\nExperience in conducting workflow analysis, value stream mapping, data mapping, and Plan-Do-Study-Act cycles\nExperience performing application testing (e.g. unit, regression, acceptance testing)\nExperience in applying change management methodologies and tools\nExperience in delivering presentations, training and/or end user support\nProject Management Professional (PMP), Lean/Six Sigma, or Change Management certification an asset\nClinical training and experience with electronic patient record systems an asset\nFamiliarity with healthcare information systems, interfaces, HL7, ITIL, and/or enterprise architecture an asset\nSkills\nExcellent problem definition, problem resolution, business analysis, and systems analysis skills\nDemonstrated proficiency in qualitative and quantitative data analytics, data visualization, and data reporting\nExcellent written and oral communication skills\nExcellent prioritization, organization skills and flexibility to work in a highly dynamic and fast-paced environment\nWell-developed facilitation, interviewing, conflict resolution, and consensus-building skills\nExcellent interpersonal and client relationship skills, with the ability to communicate effectively with both technical and non-technical teams\nDemonstrated ability to work independently and also as a contributing team member\nWell-developed ability to evaluate situations and make judgement calls on timely issue escalation\nProficient use of computer, software, and peripheral equipment (MS Office suite, MS Project, MS Visio, and scrum or enterprise work management tools such as Kanban, Atlassian Jira, ServiceNow)\n\nMeetings and Travel:\nOffice is in the Toronto Downtown area (Yonge/Dundas). Some travel throughout the GTA is required, dependent on project assignment.\nReasons to Stay and Grow with UHN\nWe are committed to making UHN a preferred place to work and learn. UHN offers exceptional benefits and programs to our employees, activated upon their start date. These include medical and dental benefits, a leading pension plan (HOOPP) with retirement income for life, group life insurance, and a strong vacation package.\n\nPOSTED DATE: May 24th 2018- August 14th 2018\n\nStaffing Advisor, Human Resources RFE 2nd Floor \u2013 Posting #823995\n\nFor current UHN employees, only those who have successfully completed their probationary period, have a good employee record along with satisfactory attendance in accordance with UHN's attendance management program, and possess all the required experience and qualifications should apply.\n\nUniversity Health Network thanks all applicants, however, only those selected for an interview will be contacted. UHN is a respectful, caring, and inclusive workplace. We are committed to championing accessibility, diversity and equal opportunity. Requests for accommodation can be made at any stage of the recruitment process providing the applicant has met the Bona-fide requirements for the open position. Applicants need to make their requirements known when contacted." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4d30b7a9b890b0e6&fccid=6828a940e147b710&vjs=3", + "location": "Toronto,ON", + "title": "Analyst, Master Data Shared Services (MDSS)", + "company": "Maple Leaf", + "salary": NaN, + "desc": "ANALYST, MASTER DATA SHARED SERVICES (MDSS)\n\nConsidering a Career at Maple Leaf Foods?\n\nMaple Leaf Foods is Canada\u2019s leading consumer-packaged protein company, headquartered in\nToronto, Ontario. We make high-quality, great tasting, nutritious and innovative food products under leading brands including Maple Leaf\u00ae, Maple Leaf Prime\u00ae, Maple Leaf Natural Selections\u00ae, Schneiders\u00ae, Schneiders Country Naturals\u00ae and Mina\u2122. Our Company employs approximately 11,000 people in its operations across Canada and exports to more than 20 global markets including the U.S. and Asia.\n\nOur people are passionate about the work they do and the products we make. As we move forward, we are determined to leverage their integrity and passion to continue to build a high-performing, values-based company enabled by high-performing, motivated and talented people.\n\nPOSITION SUMMARY:\nThe Master Data Shared Services (MDSS) team is accountable for the maintenance and quality assurance of master data and adherence to data standards across all operating units within Maple Leaf Foods. The Data Analyst is responsible for supporting the business by:\nValidating requests received to create or change master data against existing master data governance and quality standards, including ensuring all required approvals and supporting documents are properly included\nAccurately maintaining master data in SAP and GS1, within established service level agreement (SLA) timelines\nResponding to all data maintenance related inquiries with a customer service mindset\n\nPOSITION RESPONSIBILITIES:\n-Validate data maintenance requests and perform data maintenance for all operating units within Maple Leaf Foods, ensuring only accurate, complete and compliant data is loaded into SAP and GS1\nParticipate in data conversion initiatives as required\nPrepare data extracts and reports as required\nParticipate in regular audit cycles\nEnsure SOP\u2019s and process maps for assigned data domains are well documented and up-to-date\nInteract collaboratively with fellow MDSS and Data Governance team members to drive continuous improvement and ensure overall data integrity\nDemonstrate an eagerness to understand business functions and use this knowledge to provide excellent customer service to internal customers through partnership and education\n\nPROFESSIONAL SKILLS, EXPERIENCE AND KNOWLEDGE REQUIRED:\n-A minimum of 3 years of SAP experience with master data management, specifically Material, Customer, Plant Maintenance and Vendor Master\nStrong written and oral communication skills. Must be able to communicate issues and data governance policy effectively across a wide and diverse group\nAbility to manage a large volume of work through effective prioritization, communication and excellent execution\nAbility to work well under pressure in time-critical situations\nExperience in data analysis\nExperience with MS-Excel at the intermediate level\n\nOTHER COMPETENCIES REQUIRED:\n-Customer service mindset\nHighly logical and detail oriented with a keen interest in data management\nSelf-starter with a strong bias for action and follow through\nStrong organizational and time management skills\nTeam player with strong interpersonal skills, both within the team and cross functionally\nEffective problem solving and analytical skills\nPassion for working in a rapid paced, changing environment\nStrong learner and teacher\n\n\n\nWe thank all applicants for their interest in exploring employment opportunities with Maple Leaf Foods however only those selected for an interview will be contacted. Applicants may be subject to a background check and must meet the security criteria designated for the position.\n\nMaple Leaf Foods is committed to Employment Equity and maintaining a diverse workforce. Job applicants with a disability who require reasonable accommodation for any part of the application or hiring process can contact our Talent Attraction Team at accommodations@mapleleaf.com. Reasonable accommodations will be determined on a case-by-case basis and your request will be responded to as soon as possible." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=78fb6366d9da6aa4&fccid=723d41711313d1db&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Freckle IoT", + "salary": NaN, + "desc": "The global advertising market is a $500b dollar a year market. The core goal being to drive a consumer into a location where a product is sold. The challenge is that no advertiser today can definitively prove that they have been successful in achieving this goal \u2013 that is where Freckle comes in.\n\nAre you intrigued about introducing technology to the global advertising market that fundamentally changes the way advertising is bought and sold? Do you think the industry should move away from the Click Through Rate as its core metric and focus instead on an attribution metric? Are you looking to make the move to a data first company having tired of the platform war? Are you excited to work in a small team where everyone knows who you are and appreciates what you are doing for the company? Do you want to be part of building something and think your experience can help accelerate our plans?\n\nWho we are:\nWe are an offline attribution data company that helps brands, publishers and intelligence firms solve business problems through deterministically validated customer data At Freckle we do not sell media. We collect, measure and make sense of data.\n\nFreckle is a true start up. It is hard, but you will learn a lot. We work fast, have big aspirations and have a lot of fun along the way.\n\nWho you are:\nYou have a passion for distributed computing and large data platforms.\n\nYou are not fazed by complex, unstructured problems.\n\nYou want to do more than create a data pipeline or reports, you want to create AI-driven decisions.\n\nYou know how to find data, move it around, transform and fill in the gaps and implement your ideas through programming/statistical languages.\n\nYou have a code craftsmanship mindset.\n\nYou enjoy staying ahead of the curve with a knowledge and interest in emerging technologies.\n\nYou own your challenges.\n\nYou could stand being in a submarine with your team for a month.\n\nWhat you will be responsible for:\nDesigning and developing Freckle\u2019s Data Platform which handles hundreds of gigabytes of data per day.\n\nHelping build the vision, strategy for the future state of analytics, dash-boarding, and reporting.\n\nDriving the collection of new data and the refinement of existing data sources.\n\nAnalyzing and interpreting the results.\n\nProcessing, cleansing, and verifying the integrity of the data used for analysis.\n\nData mining.\n\nWhat we need from you:\nAn undergraduate degree in Computer Science or equivalent from an accredited University.\n\n3+ years in Software Engineering.\n\nExperience with Spark, Hadoop, or other distributed processing technologies.\n\nExperience with noSQL databases such as HBase, Cassandra, Neo4J.\n\nExperience in various programming languages and systems: Scala, Python, Java.\n\nExperience or an understanding of Machine Learning frameworks.\n\nExperience with AWS tooling such as EC2, S3, EMR, RDS or other cloud computing toolkits.\n\nExperience with deployment tooling such as Docker, Circle CI, Jenkins.\n\nExperience with Graph databases would be a plus.\n\nExperience with Machine learning frameworks beyond linear regression would be a plus.\n\nExperience in programmatic or digital advertising a plus.\n\nExperience in real-time data processing a plus.\n\nExperience in Blockchain, Ethereum, and related technologies a plus.\n\nWhat you will get from us:\nCompetitive compensation.\n\nComprehensive, health, dental and vision plan.\n\nA great company culture.\n\nBe part of a diverse team.\n\nA fulfilling, challenging and flexible work experience.\n\nThe opportunity for career growth.\n\nFreckle welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=439ac33f647b9cb1&fccid=724d06bff9da027f&vjs=3", + "location": "Toronto,ON", + "title": "SENIOR DATA SCIENTIST - 15 months contract", + "company": "Intelerad", + "salary": NaN, + "desc": "Temporary\nJob Description\n\nPurpose\nGuide and contribute to the data analysis and machine intelligence efforts of AI Lab by defining workflows and deliverable targets for the team, as well as contributing to those targets as an individual data scientist and developer.\nSupport the effectiveness of AI Lab by determining how the products we develop can address client needs by fusing clinical expert input with our R&D team capabilities to deliver innovative machine intelligence solutions.\n\nResponsibilities\nData science analysis and reporting\nPerform and support data analysis, machine learning algorithm prototyping and development and visualization towards storytelling\nDevelop systems to capture and store data that feeds our analysis requirements\nCommunication - Write reports, assemble slide decks, and deliver presentations to the team, the wider company, and directly to customers\nSoftware development\nHelp develop the software artifacts that AI Lab is responsible for\nHelp design the software solutions in concert with our software lead and others\nHelp refine our software workflows to continuously improve our effectiveness\nTeam leadership\nDiscover and define the analytics deliverables for the team, based on the requirements of our products, strategy and clients\nDefine and refine the analytics deliverables of each team member, as required to meet our team goals\nTrack and report the progress of our team toward delivering the desired results\n\nQualifications\n\n\nA Master\u2019s Degree or PhD. in a Data Science, Applied Mathematics, Computer Science, Operations Research or otherwise research-based field; 3-5 years of related experience and/or training; or equivalent combination of education and experience\nStrong foundational knowledge and applied research experience (in academic, research lab, or industry environment) in developing and applying AI / ML / NLP / deep learning / data-driven statistical analysis & modeling solutions to problems involving unstructured data (such as text) and structured datasets\nDemonstrable achievements in one of the following domains NLP+NLU, claissification, regression, reinforcement learning, transfer learning\nExpert knowledge of machine learning algorithms, libraries and platforms\nStrong and proven programming skills in Python with exposure to scikit-learn library, R and Java\nExperience with automated machine learning toolkit such as auto-sklearn or TPOT for Python or H2O AutoML for R and exposure to interpretable machine learning framework such as LIME\nExperience with a major machine learning/deep learning framework (Keras, TensorFlow, Torch, Spark-ML, h2o.ai, MXNet, ..)\nProven experience designing and building AI/ML/Cognitive capabilities in cloud environments\nExpertise in various data integration/ETL tools, application integration and data science tools (Hadoop, Hive, Spark, Flume)\nExperience in data visualization solutions and data visualization tools is a plus\nInterest in contributing to user facing software needs supported by strong experience with Java, JavaScript (preferably Angular) and AWS is a plus\nExcellent analytical and problem solving skills with great interpersonal dispositions and communication skills\nExperience with delivery in agile workflows across multiple geographies\nExperience in an applied R&D environment , working in an agile, innovation-lab culture to bring cutting-edge technologies to fruition, from initial concept to implementation\n\n\nAdditional Information\n\nCompetitive salaries\nCorporate bonus program\nEmployee recognition program\nEmployee referral program\nFlexible hours\nComprehensive insurance plan\nTraining & skill upgrading\nSocial events\nDynamic culture" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8d68b7d88379c13d&fccid=30aad3b8f220291e&vjs=3", + "location": "Toronto,ON", + "title": "Big Data Engineer (RedShift)", + "company": "Lannick Group", + "salary": "$115,000 a year", + "desc": "$115,000 a year\nDO YOU HAVE EXPERIENCE WITH LARGE (100TB+) CLOUD STORAGE SYSTEMS AND ETL? Our client is looking for a Senior Data Engineer to join them in a full-time role.\n\nBig Data Engineer (RedShift)\n\nAbout the Opportunity\nOur client, a thriving company in downtown Toronto, is looking for a Data Engineer to join their growing Toronto office. This is a unique opportunity to work on cutting-edge big data warehouses, data lakes and data analytics services.\n\nIn this role you will be:\nWorking on designing and maintaining/mining large data stores\nWorking with the latest cloud technologies like AWS RedShift, etc.\nWorking on ETL processes, database tuning, data validation/ modeling\nWorking in a very Agile environment\n\n\nAbout You\nExpert on RDBMS - architecting/designing/implementing/maintaining large data warehouses\nExpert on SQL - querying and integrating new data sources\nExpert on ETL - processes and data modeling\nExperience working with distributed big data processing algorithms\nExperience with cloud data platforms - eg AWS Reshift, Google BigQuery, etc\n\n\nSalary\n$105,000 - $115,000/year\n\nHow to Apply\nClick the \u201cApply Now\u201d button and follow the instructions to submit your resume. Please note that we only accept documents in MS Word or Rich Text formats. When referencing this job, quote #21834.\nYou must currently reside within the Greater Toronto Area and be permitted to work in Canada to be considered for this opportunity. A recruiter will be in touch with you if your profile meets our client\u2019s requirements for this role.\n\nAbout Lannick\nLannick is the premier professional recruitment and staffing firm in the Greater Toronto Area. Founded in 1985, Lannick provides best-in-class finance, accounting and technology professionals at all roles and levels through its three divisions: Lannick Finance & Accounting, Pro Count Staffing and Lannick Technology. Lannick places more than 1,000 candidates annually and is a preferred vendor for Canada\u2019s most successful organizations. Learn more at www.lannick.com." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=73d701c70eeefd1a&fccid=e6bd96dbabc108fb&vjs=3", + "location": "Toronto,ON", + "title": "Research Analyst", + "company": "WatrHub Inc.", + "salary": NaN, + "desc": "Canada and the United States need to rebuild their aging water infrastructure. This will cost $1 Trillion over the next 20 years to replace pipes, pumps, valves, treatment equipment and the software to run them all.\nWatrHub is the only source of predictive market information on how, when, and why these water infrastructure investments will be made. Our AI engine transforms millions of public documents into actionable sales leads and market insights. Technology Vendors and Engineering Firms subscribe to WatrHub to secure their next water utility clients and bring their advanced, efficient technologies to our aging water infrastructure.\nWe are looking for a Research Analyst with a strong passion for uncovering journalistic insights from reams of background materials and has experience pulling together the right highlights and summaries from a combination of data sources. Our Analysts are challenged everyday to sift through key documents, proposals, plans and budgets relating to cites across the U.S. and Canada. They need to extract and understand the key narratives that are important to our clients, while still capturing the adjacent supporting data with impeccable attention to detail. Their research findings serve as training sets for our machine-learning algorithms that not only enhance our search tools, that in turn help our Analysts find even more relevant subject matter.\nThe position will be based out of our Toronto Headquarters.\nRequirements\nThe ideal candidate will demonstrate a strong command of investigative research methodologies, an understanding of data-driven best practices and a knowledge of data modelling and relational databases. They will be able to work independently for much of their time, but will come together with the wider team to share and present their findings and seek input from the Product, Sales, Client Success and Engineering Teams on other angles and data to uncover. The position will be based out of our Toronto Headquarters.\nThe interview process will include a skills test and literary review that must be completed in order to be considered for this position.\nWhat You Will Accomplish:\nDeliver water infrastructure-related data & analytics that our clients need and answer any related follow-up questions that our clients may have regarding the source or consistency of the data.\nDeploy your proven research methodology to dig deep and parse through thousands of data sources relating to water facilities across North America\nChampion the integrity and coverage of our water data by identifying ways to streamline the data aggregation and automation processes\nCreate and document a repeatable and successful research process that will be incorporated in our search tools and client-facing platforms, having significant impact on how intelligence gets delivered within the water industry.\nDevelop and deliver customer presentations to discuss market trends and insights\nRequirements:\nUndergraduate or graduate degree in Environmental Studies, Journalism, Information Studies, Market Research, Engineering or similar.\nConscientious attention to detail, exceptional project organization skills, complete accountability for your assigned research goals, capable of driving projects independently and an impressive track record on previous projects\nNoteworthy oral and written communication skills; well-articulated in written form and able to present insights concisely and effectively\nPassion for challenging research, large volumes of reading/scanning, working with large, noisy datasets, knowledge of SQL query fundamentals, and creating data visualizations\nAdvanced skills in Microsoft Excel and exposure to data modelling and database design is a plus (mySQL, MongoDB)\nMulti-disciplinary knowledge of water treatment processes, regulations, programs, and topics in the water and wastewater industry across Canada and USA is a plus\nA willingness to fail and find dead ends, but learn fast and make immediate adjustments\nPrior experience in a water-related research role or as a data analyst in capital markets, energy or other industry is ideal, but not necessary\nBenefits\nWhy WatrHub?\nWe take tens of millions of unstructured documents and bring them to life using algorithms to find and extract the golden nuggets of insight buried inside an ocean of data\nYou get to direct exposure to Artificial Intelligence, Data Science, Tech Entrepreneurship and Water Infrastructure Markets from our in-house subject matter experts and industry titans.\nWe are building something critically needed, immediately useful, and proprietary from the ground-up. We live at the cross section of water, startup and data science. There is no other team like it in Toronto.\nWe have a talented, diverse, award-winning team that likes to solve hard, challenging problems\nYou get company-paid transportation, health & fitness benefits, a training budget and work-from-wherever days in addition to your competitive salary and incentive plan.\nApplication Deadline is October 19, 2018, but candidates will be selected for interviews on a rolling basis." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e80371bdd4d51ffd&fccid=a1664bcdc67a00ff&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Engineer", + "company": "Think Research", + "salary": NaN, + "desc": "Think Research is changing the way healthcare is delivered - no, really! - and not in the Buckley's \"tastes awful but it works\" kind of way. We are building software to give clinicians the information they need to treat patients better and faster.\nWe\u2019re growing fast and we need all hands on deck. Hungry to make a change that will affect millions? Well grab a quick snack, we're looking for you.\nWhy Us?\nBe part of something special. It's not everyday you get to change the way your friends and family are cared for\nOur company culture is one of the things we are most proud of. Our friendly, talented, and energetic team makes coming into work feel like we're conquering more than just milestones in our healthcare system, but building strong friendships at the same time\nThe kind of things you'd be doing:\nDesign and develop Data Lake, a hadoop-based big data platform, to support data scientist for machine learning and predictive analytics;\nImplementing the data management framework for the Data Lake;\nResponsible for designing, developing, testing, and tuning of the data pipeline within the data lake infrastructure;\nDevelop and maintain data warehouse and ETL packages to provide data analytics and business intelligence platform to our customers, partners, or other areas of the company;\nCollect and document user and developer requirements. Construct, modify and implement data models;\nDesign, develop, and maintain custom data integration with clients\u2019 data interfaces;\nBuild and maintain database queries, tables, triggers, and functions.\nIdeal qualifications*:\nUniversity degree in a S.T.E.M. program or equivalent work experience;\n5+ years professional experience in a data engineering or big data development role;\nStrong technical understanding of relational database, noSQL database, data warehousing, and big data;\nExperience in designing and developing an end-to-end big data architecture;\nExperience in data processing pipeline, batch processing and stream processing, and related tools;\nExperience with Hadoop-based data storage and analytics.\nExperience with traditional data warehouse, business intelligence, and ETLs;\nExperience with one or more scripting language or OOP language;\nExperience with machine learning and data science would be a strong asset;\nExcellent troubleshooting and problem solving skills;\nAttention to detail;\nExperience in dynamic & growing environments, working under pressure, under tight deadlines;\nIf you don\u2019t perfectly fit the bill but learn fast and feel that you\u2019re up to the task, try us anyway." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=760058c50efb4335&fccid=f0b9f94cc2f932db&vjs=3", + "location": "Toronto,ON", + "title": "Quality Analyst", + "company": "Lifeworks", + "salary": NaN, + "desc": "The Product Management & Strategy Execution Office is currently looking to hire a Quality Analyst for our Quality Assurance Team. The Quality Assurance Team supports the continued success and growth of our LifeWorks business by ensuring that we are meeting the quality needs of our client base. Through complaint/ compliment investigation, quality monitoring, and trending, the Quality Assurance Team resolves client issues and identifies opportunities for improvements that in turn drive program enhancements and the development of new and innovative programs.\nAs a Quality Analyst within Strategy Execution, you will need to be;\nAn analytical investigator; you apply critical thinking to break down complex issues, ask questions and uncover the root cause of problems. You gather information, identify trends and make thoughtful recommendations that enhance our client experience and align to business objectives\nA problem solver with heart; you are passionate about helping people and you care about improving our client experience. You seek to understand the needs of our client and are driven to resolve their issues efficiently and with compassion\nA keen data analyst; you can extract meaning from data. You recognize trends, understand impacts and report your findings in an effective way.\nA resilient mediator; you remain calm and focused when the pressure is on. You are open and positive about change and you are capable of defusing difficult situations.\nA prioritization master; you're comfortable independently managing multiple competing priorities because you ask for clarity when needed and you're skilled at identifying and frequently assessing impact and dependencies\nAnd we'll ask you to use and build on;\nYour University degree (e.g. in Business, Communications etc.) and/or additional certifications (Lean Six Sigma Yellow Belt, PMP etc.)\nYour 3+ years of experience in customer service and quality assurance methodology\nYour expertise in investigating, analyzing and resolving customer issues in a timely and professional manner\nYour meticulous adherence to corporate policy and the rules of privacy and confidentiality\nYour attention to detail and problem solving capabilities\nYour ability to communicate effectively and diffuse challenging customer concerns\nYour expertise using traditional office software ( E.g., MS Office Suite, Visio, SharePoint) and your experience and/or willingness to learn new systems and technology (e.g., Unify, 8x8)\nYour built-in and intrinsic sense of urgency; you use time effectively and actively drive case investigations to ensure timely completion\nYour professional disposition, discretion and maturity when exposed to sensitive or confidential information\nYour bilingualism (French & English)\nYour flexibility to adapt to the needs of the work which may include some travel (approx. 15%)to other offices and some peak periods where work volume may temporarily increase\nSo that together we can:\nFocus on Improving Business and Improving Lives; we do that by identifying and reporting trends in client feedback and recommending opportunities for improvements, program enhancements and the development of new and innovative programs.\nConsult, influence, support and collaborate across departments and business functions including, but not limited to, Client Development, IT and Operations\nHere's how we'll get there. . .\nWe'll put our clients first\nWe'll provide the right environment; working with a team of savvy solvers, experienced professionals and intrapreneurs in a highly collaborative environment\nWe'll introduce you to a friendly, open , result-driven and people-oriented culture; great people doing great things" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR0oJjN_2YJ9x4sI2DihMen7KIhSapT3jVjEzc68gB5SQTjN100XKhpP002f7g-LxDYIvR9gH3jrozV7MjT5jZLmNyem2CY7tUiLmPbS9HXpZP98YYKffY_xkFXsIO8_dJchKyAGDvX9OapFoUs-_f_n8WYCB8r4dIb0y01XXkvdN1Udvtfbd5i-RlO3DRAveo1BQ-UOtx8PJPV_qbz50hVyh_waJThVOCXGOgMwrHgSnk8IOTe_0gVOaCYwsbeIf29dLQTjP1CbzLnXGdP9FgmBztcBphOonMlpHHWKjs74YoF00KPKygyR_t-AmM7_lDZae0tEBTaRCO11_kgPcf7NhzGXjasjhyVGUk3_oyxUApyhxeZ6RQIrYH-J3lcmui5ABo15LvCg3uVFuNuZnXDn7Awf0dtVj28R_Ir8oFuF0vQnaE95BSHwjFIl1imRuQnGLGPWga3XXEfSS5PPKFNksc2efTclmN_rSyaxMyGyf5RZQQfwI_W2p7HUpwpcC8vv2uWS3I7_s0pfzL1b_Qs-jqhkQEy8NbNejXMJpIShijWhLTRWjn4oFDgF3mCvWAoptnqU4KeSJqAEoBY3bF3Z0z0R0shMebpTcCZ0Mafj1eij2ysQIADNN3nb3aSRy2n6G53EHgQYkhutmyfQnF5Hc3ZUVmnrAfnCvkiIer_vEy6OrVYVq4JaHpvO-houOqRPzu52UV058ogIUAsLtHy-w23RInRb_MPkBUguGIliUGM0FsvT0d7-Q7v3SCM8yAmpgQ4GVAWjHjHucd1X--2msjcY3quAcMAgE4kMAJJWOQ==&vjs=3&p=5&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "500px", + "salary": NaN, + "desc": "The Company\nOur mission is to connect the world\u2019s photographers. Every month, millions of people from around the world use our website and mobile apps to find, share, and get rewarded for the world\u2019s most inspiring photography.\n\nThe Job\nAs a data scientist you will bring our understanding of our community to the next level and help us move forward confidently with data-informed decisions.\n\nWhat You'll Be Doing\nWork closely with the product, marketing and design teams to define and answer business questions in a measurable and actionable manner\nHelp your cross-functional team with data reports and data discovery by optimizing self-serve BI solutions and providing SQL support\nDevelop data collection plans and ensure the integrity of data collected\nPerform exploratory data analysis to uncover patterns of user features and activities\nCommunicate and distribute data insights\n\nWhat the Ideal Candidate Will Have\nA Bachelor's or Master\u2019s degree in statistics, computer science, math, physics, or a related quantitative field.\nExpert knowledge of statistical sciences: statistical modelling and data mining.\nExpert knowledge of MySQL and/or PostgreSQL.\nHands-on experience with Python and/or R.\nExcellent communication skills.\nEmpathy for your users and teammates.\nYou'll get bonus points for:\nA love of photography and familiarity with the 500px platform\nKnowledge of advanced data analysis topics such as: causal inferences, data simulation, or correlated data analysis (e.g., survival analysis, longitudinal analysis, time series analysis and forecasting)\nWorking experience with python libraries for data wrangling, visualization, mining and modelling (e.g., Pandas, NumPy, Matplotlib, Seaborn, Statsmodels, SciKit-Learn, NLTK)\nWorking experience with R packages for data wrangling, visualization and modelling (e.g., reshape2, dplyr, stringr, lubridate, ggplot2, car, forecast, randomforeset, Caret, survival)\nKnowledge of business intelligence such as SaaS metrics, time series forecasting, or pricing analysis\nKnowledge of data warehousing and ETL\nExperience with web scraping\nKnowledge of NoSQL (MongoDB)\n\nPerks\nInteresting technical challenges\nCompetitive salaries\nFlexible hours\nCatered lunches, snacks and drinks\nGreat health and dental benefits\nProfessional development opportunities\n\nOur Interview Process\nPhone screen: < 30 min conversation with a hiring manager.\nIn-person interviews: 3-5 hours at our office where you'll meet multiple members of our team.\n\nDiversity\nWe believe diverse teams perform better, and we seek to increase our overall team diversity. We make active efforts to reduce the impact of unconscious bias in our hiring process." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AXBtxsLe9m2KRj_jCBdk184ANefrLFEPSzBzUevTHxVwzdFFWiCuUFfaZuy5dwRaP_F0OiZINJ3EbyLId85kcGpV8h40Wor2dtaN9imeKneks7QKCT7ee5sjWDhRJ4SjL0m1hO-mFYvRbvvlO7nCQ6JElXDV8atEezpw0WpO013re_u34FmUW3AXGy2Nf0Pg7u5Dugt6bduyI-Fk4iw20f-MwOWZlNF573nw2lt24aTu8_DNOnITYgJZ_Tw0SEAhSf-eECkSuGBZqg_z7AAMmLHB2S2Cw2KTF7NJ1EKLshsBiuDEl6yNOPwmUW4zPacLmSksmVP2K1sA2uyvgUQrUbLVmc-k4KpGixr5tElDALHUWfVdQ-vdnvLqpMWHgEtdBlrBVYaaPq1PUI8b3PnYPt94No1La8H0cjJwz23r5U0KbVQIWsK2kHylAvsdu6-xfc973K7kciGW_nxKVCTMcnhQZ7BCexac5zV9Fn-Bao5N8-GOcZqr6Wpx1opzpM9eo=&vjs=3&p=6&sk=&fvj=1", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Swoon Group", + "salary": NaN, + "desc": "Permanent\nLocation: Mississauga, ON\nThis Data Engineer role is a full-time permanent position that offers benefits, fun work perks such as professional development, team lunches, and more!\nWe are looking to hire a Data Engineer for our client in Mississauga, ON. Our client is one of the leading telematics technology companies in the world is looking for a passionate, versatile, Data Engineer to join their team. The Data Engineer is responsible to help support the existing big data infrastructure on Google BigQuery ensuring that data is continuously and promptly available for analysis by their data science team, and to devise new methodologies and infrastructure for reconstructing and enriching data at scale. This Data Engineer role is a full-time permanent opportunity looking to start immediately.\nData Engineer requirements:\nBachelor's degree in Software Engineering, Computer Engineering, or other related degree\nExperience working with big data tools and streaming processes (i.e. such as Google BigQuery, streaming inserts, etc.)\nExperience with message queueing systems (such as Pub/Sub, Kafka) at large scale\n2+ years SQL experience (experience with Google BigQuery an asset)\nExperience with container orchestration (leveraging tools like Docker, Kubernetes, etc.)\nExperience working closely with data science teams to arrive at data infrastructure solutions that are optimized for scale\nFamiliarity with machine learning concepts an asset\nData Engineer Job Responsibilities:\nAssist in the support and maintenance of the company\u2019s existing big data infrastructure on Google BigQuery\nAssist in development of new data ingestion and management platform and ongoing support\nDevelop processes and alert systems to monitor the health of the company\u2019s big data infrastructure (Java or C#)\nDevelop processes to enrich the company\u2019s big data with tertiary data at scale\nWork with data scientists to understand data processing needs and develop infrastructure solutions to the organizations internal teams to assist with data integration with newly developed big data platform\nUse SQL and Python to interact with the Company\u2019s big data infrastructure as needed for data engineering\nPlease Apply with Your:\nCurrent Resume\nContact information - Phone number & current E-mail address.\nPlease contact michelle . dukhilall @ SwoonStaffing . com for more details\nJob Types: Full-time, Permanent\nExperience:\nData Engineering: 2 years (Required)\nEducation:\nBachelor's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aqmv_5JD5v6gg1ICRL12VY6BolF0XAUkQtat1DEGOKAXfQ1dVUDIPnIZ_mCCh7xlyQW7DAuc1kdzDGEwToHb14mp3uMqX0pcouZuLjYghzjGEEZCxVwhcSYtd9FBhxZEFmSBw17mleeeHpUQJadVhpWmFggSnQvHdlfLFWAEL6-JSHiofLilC7DiEUcE4DQDiNSDP4LooEzD2qlGWYvg84TX0MRYOOBJFy1f_j7ennGYNTAuJrL7Xf9xh1TL06BjF-LKFbqXIoWWEswjDoYgoZ8YxYBQTlaNrLmHGJ61S0GWVHbsrNZiaoGUel9Acs20r7QbmkdcPE5lpCbIFlHKp29tabl7c5_oamLfa5nGUDaHYwjQJE3q56WvTJf1G5xb7pk9bJu6MSyQtrmlIMYbrib4epzXoat2aO93eMKesIG8GO_DtybI4pLSGLOz7_dOp1WApoQx_bi0XccVTkkl2ESJ8JSd0HXyslet-z6g2YnMiSX7POYSqwJEprrH9jNLazYwn1d8waPDGPtFdDKejsteOAXr3VTuktO8ec14guCBM0w5nFIIqT9yYrCRhSXUy-2vgGBIqOLWsmxrzI99PaBQUGOTekxsz1jAv_r-5zbOovUaxjrH1Y2XSuL0Br-M0onX5YbACxUKfQ7Mj2xgxwaqcA7ROHXNwlc4mDe0OdhNWZXjZ8Q0xAPcr7j3HnTjY4xL6qxVaKGlMTvtGR1igwzxY6EzRVPTdUgf09rVe3uhLhNWRkXdUDCVFWoMk9W96Km12UT4SeIi1cc90E17Bb1DsOkZlzg3rmLKwYZM6HIE4ZgU9uarDZoOajoPAFKL9s80871cqVIwsNIB3Gc5dJBMBGNGtcPI05BnO0tr3cHtbBMUbYL6pVHl5ugqEpapRCjGMYMk-wuzPMVWHd8otuJ5mDCVdXxDDqYZbukTPcABjzoJhz6GrY-wLU0aI1YHi4UQke-pZTVFpszJ2DBlSCvW9F5o24_tGfY046jps68FoQePVqEj0seevqLifptYsc6WVyLMNGR-1HwO9W9M5Cpm9mjrhGpzZLaI3yp0I9fzmFE_a-cB-7M38DeEGsiqZJhSTGqJfngkC8SqsVk6Igip9LqL95DbEfFXWOp1Z21Rd2J3Da1B7Kjvd3iZ9MkrNUFptnAKREWIC5kTRgniiJWfFIX8pp0bU=&vjs=3&p=7&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Cox Automotive", + "salary": NaN, + "desc": "Description\n\nDealetrack, a business of Cox Automotive, is looking for a Data Analyst who will be responsible for the design, maintenance, and on-going support of operational and compliance reports as well as dashboards. This individual will ensure optimal efficiency by monitoring work quality as well as delivering reports, statistics, data analysis, and recommendations for improvement. The Data Analyst will also work with various organizations across the company to facilitate process and product improvements.\n\nPrimary Responsibilities and Essential Functions\nCommunicate insights and suggest improvements based on data and observed trends\nDevelop and present standard and ad-hoc reports and analysis to stakeholders across the organization\nPerform proactive and reactive analyses to ensure data integrity\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nUndertake preprocessing of structured and unstructured data\nBuild predictive models and machine-learning algorithms\nPresent information using data visualization techniques\nPerforming exploratory data analysis, generates and tests working hypotheses, and uncovers noteworthy trends and relationship\nImplement algorithms to power user-facing data-driven features\nBe a champion for data science by helping business users understand algorithms outputs thru meaningful metrics and visualizations.\nDevelop python scripts/methods for a range of subject areas by conducting research on existing Python and R libraries for agent based, predictive, inferential, and optimization models;\nSupport visualizations and client reporting through meaningful dashboards, graphics and maps;\nUse strong analytical skills, business acumen and attention to quality to provide data and analysis to assist in solving complex problems\n\n\nQualifications\n\nBS/BA in related discipline\n2-5 years of experience in related technology field OR MS/MA and generally 2-4 years of experience in related technology field\nKnowledge of and experience with Microsoft Business Intelligence suite (SSIS,SSAS, SSRS) and Microsoft BI Publisher\nHands on experience in SQL and RDBMS (Oracle & SQL Server)\nExcellent interpersonal, leadership, and presentation skills\nMust be able to work with minimal supervision as this position requires owning initiatives from inception to execution\n\n\n\n\nAbout Cox Automotive\nCox Automotive Inc. makes buying, selling and owning cars easier for everyone, while also enabling mobility services. The global company\u2019s 34,000-plus team members and family of brands, including Autotrader\u00ae, Clutch Technologies, Dealer.com\u00ae, Dealertrack\u00ae, Kelley Blue Book\u00ae, Manheim\u00ae, NextGear Capital\u00ae, VinSolutions\u00ae, vAuto\u00ae and Xtime\u00ae, are passionate about helping millions of car shoppers, tens of thousands of auto dealer clients across five continents and many others throughout the automotive industry thrive for generations to come. Cox Automotive is a subsidiary of Cox Enterprises Inc., a privately-owned, Atlanta-based company with revenues exceeding $20 billion. www.coxautoinc.com\nCox is an Equal Employment Opportunity employer - All qualified applicants/employees will receive consideration for employment without regard to that individual\u2019s age, race, color, religion or creed, national origin or ancestry, sex (including pregnancy), sexual orientation, gender, gender identity, physical or mental disability, veteran status, genetic information, ethnicity, citizenship, or any other characteristic protected by law.\nStatement to ALL Third-Party Agencies and Similar Organizations: Cox accepts resumes only from agencies with which we formally engage their services. Please do not forward resumes to our applicant tracking system, Cox employees, Cox hiring manager, or send to any Cox facility. Cox is not responsible for any fees or charges associated with unsolicited resumes.\n\nOrganization: Cox Automotive\n\nPrimary Location: CA-ON-Mississauga-2700 Matheson Blvd E\n\nEmployee Status: Regular\n\nJob Level: Individual Contributor\n\nShift: Day Job\n\nTravel: No\n\nSchedule: Full-time\n\nUnposting Date: Ongoing" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AXBtxsLe9m2KRj_jCBdk184ANefrLFEPSzBzUevTHxVwzdFFWiCuUFfaZuy5dwRaP_F0OiZINJ3EbyLId85kcGpV8h40Wor2dtaN9imeKneks7QKCT7ee5sjWDhRJ4SjL0m1hO-mFYvRbvvlO7nCQ6JElXDV8atEd71j3Bi8bq8GrgLTpLtQcAmNj0vG-qXtAhNbWRrZZY-FYY-MbcN7ATWE19d1dyKyxXOdvQD4A28dwFShtkiWfUnzPcwNabT83hzZv3aOXUhHhFs7Y3UJWINy-bzEHZA6K_-MRrg3gdEB46KOLoHAPdV11lrwMGwuvoRVZmOx2EHyzLjcYKjunNJYRg9iAzCsy9CV6c741D11N8b6MKo2Vm1M89taUC9rdKNCIwTDZBnEMf3BB7C2nfJIlJxKHVyFdevxDT-FuF6_vkh_OU7WjTlCnjNdDvHwbKKalmZZh5E-C3s28fxCEPBWLQA1OB0lGeyJZT21wSiiA4srbppXrzyAzb_RX3KIo=&vjs=3&p=1&sk=&fvj=1", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Swoon Group", + "salary": NaN, + "desc": "Permanent\nLocation: Mississauga, ON\nThis Data Engineer role is a full-time permanent position that offers benefits, fun work perks such as professional development, team lunches, and more!\nWe are looking to hire a Data Engineer for our client in Mississauga, ON. Our client is one of the leading telematics technology companies in the world is looking for a passionate, versatile, Data Engineer to join their team. The Data Engineer is responsible to help support the existing big data infrastructure on Google BigQuery ensuring that data is continuously and promptly available for analysis by their data science team, and to devise new methodologies and infrastructure for reconstructing and enriching data at scale. This Data Engineer role is a full-time permanent opportunity looking to start immediately.\nData Engineer requirements:\nBachelor's degree in Software Engineering, Computer Engineering, or other related degree\nExperience working with big data tools and streaming processes (i.e. such as Google BigQuery, streaming inserts, etc.)\nExperience with message queueing systems (such as Pub/Sub, Kafka) at large scale\n2+ years SQL experience (experience with Google BigQuery an asset)\nExperience with container orchestration (leveraging tools like Docker, Kubernetes, etc.)\nExperience working closely with data science teams to arrive at data infrastructure solutions that are optimized for scale\nFamiliarity with machine learning concepts an asset\nData Engineer Job Responsibilities:\nAssist in the support and maintenance of the company\u2019s existing big data infrastructure on Google BigQuery\nAssist in development of new data ingestion and management platform and ongoing support\nDevelop processes and alert systems to monitor the health of the company\u2019s big data infrastructure (Java or C#)\nDevelop processes to enrich the company\u2019s big data with tertiary data at scale\nWork with data scientists to understand data processing needs and develop infrastructure solutions to the organizations internal teams to assist with data integration with newly developed big data platform\nUse SQL and Python to interact with the Company\u2019s big data infrastructure as needed for data engineering\nPlease Apply with Your:\nCurrent Resume\nContact information - Phone number & current E-mail address.\nPlease contact michelle . dukhilall @ SwoonStaffing . com for more details\nJob Types: Full-time, Permanent\nExperience:\nData Engineering: 2 years (Required)\nEducation:\nBachelor's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR0oJjN_2YJ9x4sI2DihMen7KIhSapT3jVjEzc68gB5SQTjN100XKhpP002f7g-LxDYIvR9gH3jro4eHaVQyGHGl7bRe2mClX_-nZg-d3o4xcDBnFhOWCXNjvP9-V5rN637qQG_NRPADjCgse1AwSN1wYVS2JAlTAzxcZAAuDeTMIEDGqeur8fmzQnSso_zSjimdxKfmS_0cSqmNTYmFrE5qp8uO3Dr94P9AUgr1M46iK3GDq__LzuQ9FL9PoxUW17ywn1bZvLIU0q9JjgAydpev6UylAO3GpDDB7tWNdADyVvgusXwByNN8SUWDY1GsvEMy3fX9Cl57y0X89DB3bwjyEU4K7VMcozci0QNwjWAOM_D0T4Q_AhkHfzJV7Y3_yHQbZ3TEs3JJDgMRjJXq3l9TEsCOKSFAPmhFOwddRDrlq-PrqrDs7VgEtlzlW9HYOfuCWgiLahgId8bgTzcg8W09wle6NN-cTNTN7bDwOvxytfErlHokzB_gRsc-a7Sfwh8NiAW5vyJbpCkri3LmMxVy_J-Ecx0G5vXExzxIr8thBTGs3gT2jVeB1xyThfpQaFx_juQAxALf8N5CrBFFiyc3OA3Wxxxnz5TskOnCReXzR268mBk3Im3lhG5eFri2beBzr9Whj-oeT6lEx4mEtOTayZYsrUD1LLfyxK7LkrtwjVVJehBTHiVTJbYt6JUQFeb2G0xttWDuuVM1hiMu-Yija3g2oUqxjSBKCuH7hDMil-2keEaFQrmLYSvo0Zxu5oVM7TkCbQ7UJ1tqzEFlRFWx8GvOqZv47ZOojlIQq20gSg==&vjs=3&p=2&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "500px", + "salary": NaN, + "desc": "The Company\nOur mission is to connect the world\u2019s photographers. Every month, millions of people from around the world use our website and mobile apps to find, share, and get rewarded for the world\u2019s most inspiring photography.\n\nThe Job\nAs a data scientist you will bring our understanding of our community to the next level and help us move forward confidently with data-informed decisions.\n\nWhat You'll Be Doing\nWork closely with the product, marketing and design teams to define and answer business questions in a measurable and actionable manner\nHelp your cross-functional team with data reports and data discovery by optimizing self-serve BI solutions and providing SQL support\nDevelop data collection plans and ensure the integrity of data collected\nPerform exploratory data analysis to uncover patterns of user features and activities\nCommunicate and distribute data insights\n\nWhat the Ideal Candidate Will Have\nA Bachelor's or Master\u2019s degree in statistics, computer science, math, physics, or a related quantitative field.\nExpert knowledge of statistical sciences: statistical modelling and data mining.\nExpert knowledge of MySQL and/or PostgreSQL.\nHands-on experience with Python and/or R.\nExcellent communication skills.\nEmpathy for your users and teammates.\nYou'll get bonus points for:\nA love of photography and familiarity with the 500px platform\nKnowledge of advanced data analysis topics such as: causal inferences, data simulation, or correlated data analysis (e.g., survival analysis, longitudinal analysis, time series analysis and forecasting)\nWorking experience with python libraries for data wrangling, visualization, mining and modelling (e.g., Pandas, NumPy, Matplotlib, Seaborn, Statsmodels, SciKit-Learn, NLTK)\nWorking experience with R packages for data wrangling, visualization and modelling (e.g., reshape2, dplyr, stringr, lubridate, ggplot2, car, forecast, randomforeset, Caret, survival)\nKnowledge of business intelligence such as SaaS metrics, time series forecasting, or pricing analysis\nKnowledge of data warehousing and ETL\nExperience with web scraping\nKnowledge of NoSQL (MongoDB)\n\nPerks\nInteresting technical challenges\nCompetitive salaries\nFlexible hours\nCatered lunches, snacks and drinks\nGreat health and dental benefits\nProfessional development opportunities\n\nOur Interview Process\nPhone screen: < 30 min conversation with a hiring manager.\nIn-person interviews: 3-5 hours at our office where you'll meet multiple members of our team.\n\nDiversity\nWe believe diverse teams perform better, and we seek to increase our overall team diversity. We make active efforts to reduce the impact of unconscious bias in our hiring process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=278a4c0f139a4ec2&fccid=39d1c8076d23beb5&vjs=3", + "location": "Toronto,ON", + "title": "SAS Data Analyst - 262268", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nSenior Campaign Analyst\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Senior Campaign Analyst.\nSenior Campaign Analyst\u2013 Job Description\nSupporting ongoing post campaign analytics\nMeeting with various stakeholders including product, marketing etc.\nUnderstanding various lines of business within the personal and business banking speheres\nBeing able to efficiently pull and manipulate the data\nAnalysing and transforming the data into actionable insights\nTelling the story via powerpoint presentations\nBeing able to effectively and autonomously manage milestones and deadlines to ensure tasks are completed on time and are of the highest quality\nSenior Campaign Analyst\u2013 Mandatory Skills\n5+ years working in a similar role\nSolid experience with SAS\nSolid Analytical acumen\nBeing able to tell a story with the data\nSomeone who has worked with complex data in a large corporation\nLeadership\nLogical thinker\nCommunication skills (adjust to the audience)\nPresentation skills\nAble to anticipate drive and managing expectations\nUniversity degree with preference for a quantitative discipline (Business, Match, Science)\nSenior Campaign Analyst\u2013 Nice to Have Skills\nTipco Spotfire\nExperience working in other Financial Institution\nUnica\nSenior Campaign Analyst- Assignment Start Date\nASAP - 12 months to start\nSenior Campaign Analyst- Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a0cfdcb0244be644&fccid=1641428e637be4c3&vjs=3", + "location": "Toronto,ON", + "title": "Junior Analyst / Product Developer", + "company": "FOX-TEK", + "salary": NaN, + "desc": "We are seeking highly motivated individuals to work as a junior Data Analyst / Product Developer within the engineering department to perform data analysis for applications of fiber optic and electrical field mapping sensors at client sites, assist in the development of new products, and to provide technical support for design, testing, production, and operation activities. The ideal candidate will have excellent written and verbal communication skills, a strong analytical background and practical problem solving skills.\n\nResponsibilities:\nAssisting senior staff by utilizing basic principles to assess the feasibility of applying current products at client sites to monitor various aspects of asset health based upon information provided by the client and senior staff\nAs support function, design and document new products and product line enhancements\nAssisting senior staff to design and develop new products\nProvide comprehensive written analysis for review\nDevelop engineering detail and assembly documentation to support tooling quotations, manufacturing processes and cost analysis for final product implementation\nAssisting production staff to write test procedures\nMaintaining technical competency in area of expertise through reviews of published literature, interaction with academic/research institutions, with peers in professional societies\nRequesting prototypes from outside suppliers, manufacturing, or model shop to be used for performance and reliability testing\nDevelop improved techniques for data analysis\nOther duties as required\n\nQualifications:\nUniversity degree in Physics, Mechanical, Electrical Engineering or equivalent\n1 to 2 years related experience\n\nSkills and Attributes:\nSome experience in mechanical and electrical design\nExperience in statistical analysis\nBasic familiarity with CAD software\nExperience in testing/product evaluation\nStrong hands on skills\nExceptional communication and interpersonal skills, both written and verbal, with the ability to effectively communicate with customers, outside sales groups and team members\nStrong process, organizational, planning and time management skills\nCreative, innovative and an ability to think laterally are a must\nIf interested, please indicate the position desired, enclose a detailed resume, and email to: humres@fox-tek.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a73e7b0936ee96db&fccid=d1bd4b68b7660712&vjs=3", + "location": "Toronto,ON", + "title": "Master Data Analyst", + "company": "altisHR", + "salary": "$16.50 an hour", + "desc": "$16.50 an hour\nOur client in Etobicoke is seeking a Master Data Analyst to join their team on a temporary basis. The role will be starting as soon as Tuesday, October 9th, 2018. The ideal candidate will have advanced excel skills and strong attention to detail. This is a great opportunity to join a a friendly and dynamic team, and also get some work experience! Recent grads are welcome to apply for this opportunity. The pay rate for this role is $16.50/hour\n\nRoles and Responsibilities\n\nResponsible for data cleanup in regards to business objects, vendors, customers and products\nMaintain internal database by validating information and cleaning up as required\nData entry for projects\nConnecting with vendors and customers to ensure that all information in database is correct\n\n\n\nQualifications and Experience\n\nMust be highly organized and detail-oriented\nStrong administrative experience would be an asset.\nMust be able to manage competing deadlines in a fast-paced, deadline-driven environment\nExperience with audits and analysis\n\nMust have:\nMust be proficient in Excel and SAP\nMust have strong communication skills, both written and verbal" + }, + { + "link": "https://www.indeed.ca/company/Gurulink/jobs/Data-Engineer-f820eece79e97375?fccid=4e6e590c0807dbd6&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer (Permanent)", + "company": "Tech Jobs", + "salary": "$90,000 - $160,000 a year", + "desc": "$90,000 - $160,000 a year\nPermanent\nTitle: Data Engineer (Permanent)\nLocation: Downtown Toronto (University & Adelaide area)\nDuration: Permanent\nHow to apply: Include resume as MS Word attachment\nCompensation: $90,000 - $160,000/year +Benefits (depending on experience)\nDATA ENGINEER (PERMANENT)\nThis role with be ideal for a Data Engineer interested in working on a small diverse, and tight-knit team that is committed to working for the end consumer, they leverage their expertise in technology to build a lasting, secure, and efficient solution. Their creative and incredibly talented engineers work to provide customized and confidential experiences for their consumers and users. They encourage their employees to take charge of their innovative ideas and execute them with passion and vigour.\nRESPONSIBILITIES:\nWork directly with Product Team, Machine Learning Engineers, and Platform Engineering Team to create reusable experimental and production data pipelines to be used in 1,000s of use cases.\nBuild custom data pipelines on top of our core Python/Hadoop platform.\nDevelop efficient structures and schema for the data in storage and transit.\nDesign, build, and test big data queries for data views and feeds.\nKeep the high volume data whole, safe, and flowing using Spark Streaming, Kafka, etc.,\nPassion for emerging technology in data processing and storage.\nAdopt problem solving as a way of life \u2013 always go to root cause!\nREQUIREMENTS & QUALIFICATIONS:\nMUST HAVE 3+ years\u2019 experience as a DATA ENGINEER\nDegree in Computer Engineering or Computer Science or Mathematics or similar discipline\nProficient in Java and/or Scala and Python.\nExperience implementing data platform components such as RESTful APIs, Pub/Sub Systems, and Database Clients.\nAWS experience is a plus.\nWorking knowledge of application of toolsets in the Apache Hadoop ecosystem.\nAssembled and deployed JVM applications.\nFamiliarity with reactive platforms and micro-services.\nExperience with R, Apache Spark, or Akka a plus.\nExpertise on high volume data ingest and streaming platforms (like Spark, Hive, Samza, Kafka, etc).\nDetailed-oriented and love to double and triple check your work\nStrong analytical skills.\nJob Types: Full-time, Permanent\nSalary: $90,000.00 to $160,000.00 /year\nExperience:\nBig Data Development: 3 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1b643b867baee1a8&fccid=8c52bdc6019139a0&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst/Database Administrator", + "company": "International Financial Group", + "salary": NaN, + "desc": "Contract\nTitle: Data Analyst/Database Administrator\nContract: June 2019 - potential of extension\nLocation: Mississauga\n\nIFG is looking for an outstanding Data Analyst/Database Administrator to support our client a global IT technology giant.\n\nyour role as a Junior Data Analyst is to provide pre and post sales operations support to ensure our client is targeting and validating business sold between markets. This role will work closely with the LinkedIn Sales Operation Team and will need access to our client's systems and tools to perform duties successfully.\n\nAreas of Responsibility & Accountability:\nParticipate in the GTM meetings to understand the business context and be available for adhoc requests.\nConfirm close business and identify where licenses are consumed by State for LinkedIn Sales Compensation Purposes. Tools used will be MSX for Pipeline Reporting, MS Sales for Closed Business and MS Explore for finer licensing details.\nReinforce sales policies \u2013 In some cases transactions will book for less than 10 seats which is our minimum order. This role will follow up with the field to advise them on the policy and correct with their end customer.\n\n\nRequirements:\n\n2-5 years experience within a data analyst or sales operations support role.\nDegrees or certifications required\nResponsive with solid communication skills ( written and verbal)\nNatural curiosity\nTeam player who understands how to work with others\nStrong sense of responsibility and understanding of the critical impact of meeting commitments.\n\n\nFor consideration, please email your resume to Jennifer@ifgpr.com with \"Data Analyst\" in the subject line.\n\nOther opportunities can be viewed at www.ifg-global.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7fc38959b0550db2&fccid=de71a49b535e21cb&vjs=3", + "location": "Toronto,ON", + "title": "Data Strategist", + "company": "IBM", + "salary": NaN, + "desc": "Job Description\nIBM Global Business Services: Join a Leader. Consult with us.\n\nIBM Global Business Services helps top-tier clients solve their most complex business and technical issues. With access to resources that only a global leader can provide, you will learn valuable skills, gain access to a vast and diverse network of talented professionals, and enjoy unparalleled career, training, and educational opportunities.\n\nData Strategist operates on full corporate technology stack with domain/process knowledge in each area. Leads determination on what insight is critical to business objectives, identifies approaches best suited to make data available, and identifies relevant metrics.\n\nEnsures that metrics are translated into data needs and data needs into tech req\u2019ts for tracking. Has technical acumen to make trade-offs to avoid over-burdening a resource with any piece of the solution. Helps establish corresponding cross-functional processes; brokers domain knowledge from one function to another; funnels downstream constraints to decision makers and overall strategy to individual data stakeholders; champions appropriate investment in data infrastructure/personnel; and assembles a team to address issues.\n\nThe Data Strategist has a similar skill set as a Data Engineer, but with much more of a data/process strategy focus.\n\n\n\nRequired Technical and Professional Expertise\n\nDegree Computer Engineering/Science, Statistics, Machine Learning, Applied Math\n2+ years experience building data pipelines, micro-services and interfacing with databases\nProficiency with Python and/or R\nShell Scripting\nCloud architecture / workload sizing\n\nPreferred Tech and Prof Experience\n\n5+ years experience building data pipelines, micro-services and interfacing with databases\nProficiency with a data modelling tool\nMasters preferred\nEnhanced reliable security clearance is preferred\n\n\n\nEO Statement\nIBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=00071214a2c9a31e&fccid=39d1c8076d23beb5&vjs=3", + "location": "Toronto,ON", + "title": "Marketing Consultant - Data Scientist - 262344", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nMarketing Data Analyst / Data Scientist\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Marketing Data Analyst / Data Scientist.\nMarketing Data Analyst / Data Scientist - Job Description\nManage and enhance daily/weekly/monthly reporting to provide results and context to deliver actionable insights, not just reporting data\nManage, prioritize, and respond to ad-hoc requests\nUncover and identify opportunities to improve the customer experience by leveraging statistical approaches against multiple sources of data including internal sales/transactions, CRMs, and external 3rd party data/benchmarks\nResearch, design and implement reporting infrastructure that leads to automated and flexible reporting\nPerform data maintenance tasks when required to ensure ongoing data integrity\nWork closely with and build strong relationships with LOB partners\nMarketing Data Analyst / Data Scientist - Mandatory Skills\nExperience working with SAS/SQL is required\nGood verbal and written communication skills; able to effectively present analytics data to Business and Marketing users\nDriven to understand the relationship between data and the business\nPost-Secondary education in Math, Computer Science, Business, Marketing, or related field\nMarketing Data Analyst / Data Scientist - Nice to Have Skills\nWork experience (incl. internships) in Financial industry would be an asset\nExperience in visualization tools such as Spotfire or Tableau would be an asset\nExperience working with CRMs such as Microsoft Dynamics and salesforce.com would be an asset\nMarketing Data Analyst / Data Scientist - Assignment Start Date\nASAP - 12 months to start\nMarketing Data Analyst / Data Scientist - Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3477523034a78bc6&fccid=054f21d6c182fe0d&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst \u2013 Customer Insights", + "company": "BeachHead Inc", + "salary": NaN, + "desc": "Contract\nData Analyst \u2013 Customer Insights\n#8011\nAre you a data, process, and operations fanatic? Are you looking for an opportunity to improve and accelerate the growth of one of Canada's top financial institution? If so, apply now.\nWorking with one of our top financial clients, this role calls for a Technical Consultant with extensive experience in SAS and Data Analytics to help provide insights into key data for a major data-enablement strategy within our client. This role will be required to provide hands on data mapping, data lineage, data vendor management, as well as predictive analysis, data analytics, and business intelligence for a group that provides insight and analytics for the enterprise. The successful candidate will have a combination of technical expertise and an ability to work with the business to gather analytic requirements, present data to business users, and provide insights into this data for the business. This hybrid role will play a major part in providing technical skills to a business facing team. Strong development in SAS, SQL and Python are necessary to be successful in this role. Overall, our client is looking for a combination of the right technical skills and business acumen to help provide analytic insight into data flowing through the EDW and data lake.\nDesired Skill Set:\nMinimum 5 years of experience in Data Analytics.\nMinimum 5 years of experience in data mapping, data lineage, data massaging.\nMinimum 5 years of experience with SAS, Excel and SQL development.\nMinimum 3 years of experience in working with SAS for processing data to provide analytic insight.\nMinimum 1 year of experience in working with Python or R.\nNice to Have:\nExperience with Big Data, Hadoop, Tableau" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8f016606541872cb&fccid=5c98f9ffc20e640f&vjs=3", + "location": "Toronto,ON", + "title": "Senior Lead, Data Scientist", + "company": "Points International", + "salary": NaN, + "desc": "Job Description\n\nPoints is looking for a Senior Lead Data Scientist to join our Marketing Analytics & Insights team in a permanent role in our downtown Toronto location.\nWe\u2019re an industry-leading organization that is continuously reshaping how consumers interact with their loyalty programs. We work with the world\u2019s largest airline, hotel, financial, and retail rewards programs, to tackle complex challenges and come up with innovative e-commerce solutions. If you\u2019d like to be a part of it, we\u2019d love to hear from you.\nWe are looking for a Senior Lead Data Scientist (R&D) who will take a leading role in growing the analytics/predictive modeling capabilities within our organization and on behalf of our valued Loyalty Partners. This role is strategically important to Points\u2019 growth plans.\nAs the Senior Lead Data Scientist (R&D), you will be working in a fast paced and dynamic, agency style environment focused on meeting the needs of global loyalty customers. Your key responsibility is to act as Machine Learning subject matter expert through the provision of technical guidance to the Analytics and Insights team, driving machine learning/data engineering project implementation as well as researching, designing and implementing analytical models and algorithms that will be utilized for promotion, pricing, media & revenue optimization.\nReporting to the Director, Analytics and Insights, this role supports the Marketing Analytics & Insights teams\u2019 mandate of accelerated growth.The Data Scientist is responsible to:\nProvide subject matter expertise/coaching on data science/advanced analytics, including predictive modeling, clustering, and significance testing both in the team and across the organization.\nManage a team of 2 Data Scientists and a Data Engineer\nAct as project lead on a variety of Data Science and Data Engineering projects\nChampion development of next generation analytic models (econometric / propensity / forecasting), optimization (promotion, pricing, revenue, media) and their deployment/productionization across the enterprise.\nIdentify patterns in customer behavior, predict future behavior and deploy to market for growth.\nBuild & train models for production, monitor & refine existing algorithms to systematically increase the sophistication & utility of marketing\u2019s analytic capability & customer intelligence.\nWork closely with marketing stakeholders to understand Loyalty program member behavior, automate solutions and ensure a robust test n learn program is in place.\nProvide key insights & recommendations to drive business performance and test / validate leading hypothesis & theories.\nIdentify additional sources of data & predictive attributes which can improve existing products and/or enable the creation of actionable intelligence.\nData engineering experience including the automated cleaning, transformation data sets working with various data formats (e.g. unstructured logs, XML, JSON, flat files) a plus\nOversee marketing data warehouse development to power predictive models and insights\nLoyalty, retail, e-commerce and/or Marketing Analytics experience a strong plus.\n\nQualifications\nMasters in Math/Computer Science/Statistics/Economics or another quantitative field of study\nOver 5 years\u2019 experience applying Data Science to drive marketing results including (classification models, clustering, significance testing)\nMinimum +3 years of Data Science management experience\nProject management experience\nStrong Python and/or R coding experience\nSQL coding experience\nFamiliarity with customer scoring, model management, machine learning & trigger marketing\nAbility to communicate/present complex ideas/analysis in a concise, business friendly manner\nExperience automating/productionizing machine learning algorithms an asset\n\nAdditional Information\n\nBuilding a great company culture is as vital to us as building a great business. Over the last 5 years Points has been the recipient of the following awards:\nBest Workplaces (Medium) in Canada\nBest Workplaces for Women. We were also named one of\nCanada\u2019s Top Small and Medium Employers\nGreater Toronto\u2019s Top Employers\nHere are some of the perks that are included in our Points culture:\nCentral downtown location in the Financial District\nConnected to the PATH network of shops/restaurants\nWe want to celebrate with you: all employees get an extra day off for their Birthdays!\nFlexible work hours and casual dress every day\nMarvelous Snack Cart Fridays: free refreshments and snacks!\nFree coffee, tea, juice, pop, and snacks\nMonthly subsidized lunch program\nGreen commuter and fitness subsidies\nSecure bike storage with showers and towel service\nCompany-sponsored activities: bowling, movies, sports, paintball, and more!\nPoints is an equal opportunity employer and is committed to providing an accessible recruitment process. Upon request we will provide accommodation for applicants with disabilities.\nAll your information will be kept confidential.\nNo agencies please." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d1668aca097ac39d&fccid=de71a49b535e21cb&vjs=3", + "location": "Toronto,ON", + "title": "Data Scientist (Client Insights)", + "company": "IBM", + "salary": NaN, + "desc": "Job Description\nWe are a small, diverse team of passionate data scientists and developers who deliver a leading-edge analytic solution to IBM clients in the financial services sector via cloud. We offer flexible working arrangements, team spirit, and a learning-first environment in an agile framework. By joining our team, a data scientist would be exposed to \"production quality\" algorithms and processes, contribute to the IP and quality of the solution directly, participate in team-planning activities and work directly with clients periodically to ensure relevance of our models. Mentoring is provided on all aspects of the data science process from data modeling to feature identification to algorithm application, from coding styles to quality assurance and testing. We are an innovative and creative part of IBM's Watson Financial Services Sector team.\n\nIn this role you will work regularly with developers, quality assurance, offering management and research. Other teams such as support, operations, sales and services will be critical interaction points from time to time.\n\nJob Responsibilities will include but are not limited to:\nBuild models as needed: descriptive, predictive, prescriptive or cognitive\nAssess, document and articulate the effectiveness of developed models\nEnhance, document and curate a common data model to support all analytics\nCreate examples and use cases to support solution engagement and sales opportunities\nWork with client data to showcase the use and flexibility of cloud-based analytics models (and then improve those models based on experience gained)\nIdentify approaches to improve the accuracy and robustness of analytics models\nCreate visual and/or written presentations of analytics results and translate quantitative insights for a non-technical audience\nWork with a variety of experts in architecture, development and the financial services area.\nRefine, analyze and structure relevant data\n\nRequired Technical and Professional Expertise\n\nMaster's Degree in a quantitative discipline\nAt least 5 years\u2019 experience in one of the following fields: mathematics, statistics, operations research, engineering, economics or quantitative finance.\nExposure to the financial services industry (2+ years)\nProgramming or scripting skills for data science (e.g., R, python, Scala, SPSS) (2+ years)\nExperience with classification, recommender systems and basic neural net use cases (3+ years)\nDemonstrated familiarity with Spark and big data / distributed computing concepts (1+ years)\nEnglish: Fluent\n\n\nPreferred Tech and Prof Experience\n\nPhD in Mathematics or Statistics or similar quantitative discipline\n10 years\u2019 experience in one of the following fields: mathematics, statistics, operations research, engineering, economics or quantitative finance.\n5 years\u2019 experience working in for with the financial services industry\nHands on experience with deep learning (2 years)\nStrong programming or scripting skills for data science (esp. Spark) (2 years)\nAt least 1 years\u2019 experience in identifying and defining requirements and turning functional requirements into a predictive or prescriptive analytics solution that addresses difficult business problems.\nExperience working with financial data (e.g., stock market, retail banking, asset management or insurance premia) (3 years)\nDemonstrated knowledge of relational, nosql and dimensional data modeling (2+ years)\n\nEO Statement\nIBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=37f6a747159a37fb&fccid=a39673004f59ee1f&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "StackIT Recruitment", + "salary": NaN, + "desc": "Our North York based client is looking for Data Engineer for a 6 month contract to start.\n\nExperience Required:\nHands on experience in SQL Coding\nExtensive experience in Data Mining/Data Cleansing / Data Management / Data Analysis / Data Migration\nHave design and development experience in analyzing raw data and moving data into one target system\nExcited about Big Data and have the capability to give recommendations and guidance on new data tools (Hadoop etc..)\nYou have extensive experience in taking data from multiple sources and multiple formats and integrating into a common database\nResearch orientated and ready to analyse data that could be beneficial for the business\nBuild, improve, and optimize data deriving insights\nExcellent Business Acumen and the ability to recommend and implement solutions\nSTACK IT Recruitment Inc., based in Mississauga, places candidates throughout the Greater Toronto Area. We pride ourselves in being the number one recruitment company in information technology. Dont take our word for it our track record of placing highly qualified candidates speaks for itself!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b43ae92545d0d54e&fccid=1a8ef53ad2eefcfe&vjs=3", + "location": "Toronto,ON", + "title": "Lead Data Engineer", + "company": "Big Viking Games", + "salary": NaN, + "desc": "A Little About Us:\nMaking fans - That\u2019s what we\u2019re all about! Since our humble beginnings in 2011, these two words have driven Big Viking Game s to become the successful company it is today. With over 100 Vikings already on board, and studios in both Toronto, ON and London, ON, we are focused on making our mark by building awesome free-to-play mobile and social games. Big Viking Games has proudly amassed millions of loyal fans across its many popular titles with no signs of slowing down anytime soon. We believe that by investing in our employees and in new technologies, such as HTML5, we can continue our success for years to come. With that in mind, we are on the hunt for exceptional talent to join our growing team, and that\u2019s where you come in!\n\nThe Nitty Gritty:\nBig Viking Games is on the hunt for an experienced Lead Data Engineer to join our team! This position is reporting to the Technical Director and is available in either our Toronto, ON or London, ON studio.\n\nThe Duties:\nBuild data infrastructure to enable data self-service by the production team\nRecommend ways to improve data reliability, efficiency and quality\nResearch opportunities for data acquisition and new uses for existing data\nEvaluate business tracking needs; existing procedures for tracking and reporting data;\nDesign a robust analytics solution\nDesign advanced analytic features such as cross-game analysis, abnormal behavior detection, etc.\nAnalyze competitors Analytics solutions for ways to improve our own.\nMaintain existing data bases within existing project\nThe Must Haves:\n2 + years of professional experience with Java\nProfessional experience with Python\nStrong communication skills, both orally and written\nExperience leading teams\nProblem Solving Skills - experience working with product teams\nC++ programming skill required\nMySQL knowledge required for extracting data from games Databases\nThe Nice to Haves:\nExperience with Apache Airflow\nGoogle dataflow experience\nKafka/Flink knowledge\nExperience with Scala\nLinux and network knowledge\nETL experience is an asset\nExperience in the gaming industry is an asset!\nThe Loot:\nCompetitive salary, bonus program, Group Retirement Savings Plan matching, and participation in the Employee Stock Option Plan.\nComprehensive benefits package (health, dental, and vision), including generous time off policies.\nStocked kitchen, unlimited snacks and beverages, along with breakfast and daily hot lunches. Vikings can't work on an empty stomach!\nLots of other great perks such as frequent company paid outings, events and get-togethers.\nBecoming a Viking:\nDoes the idea of working for a gaming company doing what you love everyday sound exciting? Great, we\u2019d love to hear from you! Send us your resume and cover letter\nBig Viking Games is committed to providing accommodations for people with disabilities. If you require an accommodation, we will work with you to meet your needs. Accommodation may be provided in all parts of the hiring process. For More information regarding accessibility, please visit our\nAccessibility webpage\n[https://www.bigvikinggames.com/accessibility/]." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4181ed57251ed8a4&fccid=d8ca090bd1ad5f9d&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Scientist", + "company": "Rubikloud Technologies", + "salary": NaN, + "desc": "What We Are Building:\nAt Rubikloud, we are on a mission to bring \u201cIntelligent Decision Automation\u201d to the world\u2019s largest enterprise retailers. Our platform unifies the latest in distributed systems, artificial intelligence, cloud architecture and some of the brightest minds to fulfill our mission. Over the past three years, we have been able to connect with over 150,000 retail point of sales location in 10 countries and create a database of over $100 billion in first party retail transactional data. And the numbers are only growing!\nWhat We Are Looking For:\nAll aspects of building data science products are familiar to you: wrangling with messy or missing data, feature engineering, prototyping statistical/machine learning models, and coding up an appropriate solution that\u2019s fit for production. You are driven by the thought of solving real-world business problems and a practical mindset using the more appropriate technique for the problem, whether that be a simple linear regression or a LSTM.\nYou\u2019re a quick learner able to adapt to a myriad of challenges that come up in a data science project whether that be digging into a dataset to perform feature engineering, zooming into details of Scikit-learn algorithm implementation, or designing an experiment to test the efficacy of a new collaborative filtering algorithm. You\u2019re fluent in Python, have run more SQL queries than you would like to admit, and have hands-on experience with big data technologies such as Spark and Hadoop. You get the Frequentist vs. Bayesian jokes on xkcd (and love explaining it), can comfortably explain the difference between a random forest and gradient boosted trees, and are always willing to get your hands dirty analyzing the minutiae in the data.\nAs an effective communicator, you\u2019ll collaborate with other like minded individuals to come up with creative solutions to our retail data science problems interfacing across all departments and teams. Your primary focus is on providing meaningful impact to our clients, which requires asking the right questions, distilling the problem and coming up with creative solutions.\nRequirements\nWho You Are:\nMasters/PhD degree or equivalent in Computer Science, Engineering, Mathematics or related field\nProficiency with various machine learning & statistical techniques\nProficiency in Python or other data manipulation or analysis languages; software development experience is a plus\nExperience working with relational data via SQL; experience with big data technologies such as Spark and Hadoop a plus\nAbility to work in *nix environments\nBenefits\nWe are a group of intellectually curious people who are passionate about making a big splash in the world of retail. We offer competitive compensation including equity options - we want all the members of Rubikrew to own part of the Company. You will have a full health benefits package including extended health care, dental, vision etc. Lunch is catered Monday to Thursday so you won\u2019t have to worry about packing a lunch! Healthy snacks and drinks are also provided to keep you energized. We want our employees to feel like they\u2019re always developing personally and professionally so we offer a a personal development budget that you are free to use for knowledge expansion or as a fitness allowance.\nThank you to all who apply. We are only contacting applicants who are moving on to the next stage of the process. If you don\u2019t hear from us, please check back for any future opportunities!\nRubikloud welcomes and encourages applications from people with disabilities. Accommodations are available upon request for candidates taking part in all aspects of the selection process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=82de698aeb908e83&fccid=e9a025277c6309a9&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst II", + "company": "ProViso Consulting", + "salary": NaN, + "desc": "Contract\nID 3679\n\nSummary:\nThe Digital Channel, OMNI and Payments (DOP) is one of our key distribution Channels. The DOP has a global mandate and an enterprise-wide strategy for the Digital Channels across client. The aim of the DOP is to deliver an exceptional, seamless and effortless experience for customers and clients who manage their finances Digital. The DOP is accountable for the Digital strategy, customer experience and distribution of products and services across businesses.\nResponsibilities & accountabilities:\nEach year, DOP delivers over 150 projects. This role provides research, analysis, and execution/reporting of assigned activities to measure and track DOP delivery activities such as, but not limited to:\nCollect and analyze data to detect deficient controls, duplicated effort, or non-compliance with management policies\nCollect and scrub data in Clarity to ensure data integrity\nMaintain the data integrity in DOP projects in Clarity\nProvide research and analysis of DOP delivery data\nCreate data extracts and reporting to measure performance against channel KPIs\nPrepare detailed reports for management to aid in understanding of delivery KPI status\nSupport the data cleanup for the implementation of a resource management tool\nCreate reports and dashboards from multiple source complex data extracts\nInterface with change management and portfolio management to ensure compliance with data input processes in Clarity\nResolve all data discrepancies\nWork cross functionally to maintain alignment and buy in on resourcing reporting framework\nThis role requires a high degree of co-ordination with CTS and DOP PMO, and with partners such as DOP Portfolio managers, project managers and Change Management.\nThe position will report to the DOP Manager, Digital Delivery Transformation \u2013 Reporting & Tools, and have the following attributes, but not limited to:\nAbility to execute processes for the functions listed above in order to ensure data integrity and accuracy in reporting\nEffectively interact with all stakeholders internal and external to the DOP\nStrong analytical skills\nThrives in a fast pace environment.\nPrioritizes and manages own workload in order to deliver quality results and meet timelines\nAbility to manage multiple priorities\nInvestigates, escalates and ensures that all issues are effectively resolve\nMust Have:\n3-4+ yrs Data Analyst exp. within a Data mgt. / Reporting / Delivery support env.\nStrong MS Excel (Macros Building, V-Lookup, Pivot Tables, Sumproduct,@ If)\nProficiency using Clarity\nProficiency using SharePoint\nUnderstands Delivery processes, relevant products / tools involved\nStrong communicator with excellent oral and written skills\nNice To Have:\nExp. from a banking environment." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=f622e70070c61b4a&fccid=db092f8b7448d6e5&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Quantexa", + "salary": NaN, + "desc": "Quantexa are looking for \u2018big data\u2019 specialists at all levels to help us develop and deploy solutions to fight fraud and financial crime within Financial Services and Government. You\u2019d be working with a wide range of tools including emerging open-source tools such as Spark and Hadoop as well as traditional technologies. We\u2019re looking for individuals who can provide input throughout the project lifecycle, from presales engagement, through to analysing data and assuring high quality implementations. Ability and willingness to pick up new methods and technologies is as important as existing industry knowledge.\nWe are looking for individuals with a proven track record in big data projects. A background in AML, KYC, screening, regulatory compliance or fraud is highly advantageous, especially for more senior roles.\nIn this role you will:\nWork with clients to solve business problems in the area of fraud, compliance and financial crime:\nManage, transform and cleanse high volume data,\nWrite defensive, fault tolerant and efficient code for data processing,\nAutomate data processing to enable on-going alerts on high risk activity,\nPresent project results to clients,\nWork very closely with data scientists to ensure efficient and effective delivery of solutions\nUse leading open source big-data tools, such as Spark, Hadoop, Scala and Elasticsearch. You should be comfortable with working with high profile clients, on their sites.\nWork with our expert software development team to produce reusable applications:\nUse emerging and open source technologies such as Spark, Hadoop, and Scala,\nCollaborate on scalability issues involving access to massive amounts of data and information,\nTake on ad-hoc tasks as required for the running of a small, yet rapidly expanding business,\nFor senior roles in addition you should be comfortable:\nWorking with clients to Elicit and document solution requirements,\nAssuring high quality implementation of solutions,\nProviding technical vision for, managing and developing teams to deliver Quantexa\u2019s software to clients\nRequirements\nCandidates must have the following:\nProven big data experience, either from an implementation or a data science prospective,\nExcellent technical skills including expert knowledge of at least one big data technology such as Spark, Hadoop, or Elasticsearch.\nExperience of building data processing pipelines for use in production \u201chands off\u201d batch systems, including either (or preferably both) traditional ETL pipelines and/or analytics pipelines.\nStrong coding experience in the likes of Scala, Java or Python,\nStrong client facing, communication and presentation skills,\nEnthusiasm to learn and develop emerging technologies and techniques.\nExhibit strong technical communication skills with demonstrable experience of working in rapidly changing client environments.\nDemonstrate strong analytical and problem-solving skills and the ability to debug and solve technical challenges with sometimes unfamiliar technologies.\nBe comfortable with principles behind data science to build processing pipelines supporting analytical users (direct data science experience itself is not a pre-requisite but is desirable)\nIdeal candidates will also:\nHave worked on a variety of complex data orientated projects for financial services clients\nHave a good understanding of Computer Science and preferable come from a software engineering background or other scientific degree incorporating IT modules (e.g. Maths/Physics)\nHave exposure to Agile, especially SCRUM.\nBe open to short-medium term international travel\nArrive with experience at working with a variety of modern development tooling (e.g. Git, Gradle, Jenkins, Nexus) as well as technologies supporting automation and DevOps (e.g. Ansible, Chef, Puppet, Docker and a little bit of good old Bash scripting).\nHave an excellent appreciation of what makes a high quality, operationally stable system and how to streamline all areas of development, release and operations to achieve this.\nBenefits\nWe\u2019re looking for high performing individuals, and offer competitive base salary commensurate with experience plus bonus, generous benefits" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c882d95a10bc2704&fccid=2eebfc177bcf53a7&vjs=3", + "location": "Toronto,ON", + "title": "Compensation Analyst", + "company": "Canon Canada", + "salary": NaN, + "desc": "Compensation Analyst\nAs the Total Rewards and Data Analyst, you will be responsible for leading the total compensation cycle, which includes merit, success sharing, executive bonuses, and preparing Total Rewards Statements. You will also assist in developing, implementing, and administering total rewards policies, programs, new project and initiatives.\nKey Responsibilities\nDeveloping models for the annual merit cycle, monitoring all changes, and ensuring data accuracy\nDeveloping models for the annual Success Sharing program by building tables in the HRIS and completing the upload\nTabulating semi-annual executive bonuses and administering the semi-annual promotion cycle\nConducting salary recommendations and maintaining Pay Equity for all of Canada\nParticipating in, and analyzing, salary benchmarking surveys\nPreparing and analyzing various HRIS and Applicant Tracking System data in order to provide business insights\nPreparing and monitoring the monthly, quarterly, and annual HR budget\nTo Succeed, You Will Have\nPost-Secondary education in Human Resources, Finance, or Business Administration\n3-5 years of work experience in Human Resources with 2 years of focus on compensation, or in Finance\nAbility to build accurate data models and analyze and interpret data to discover patterns and trends\nStrong time, project and process management skills\nExcellent computer and technical skills; Microsoft Office with a focus on Excel and PowerPoint\nA CHRP or CCP designation is an asset\nFrench is considered an asset\n\nCome and join our team and reap the rewards as we work to take Canon to the next level!\nWe offer competitive compensation, comprehensive benefits, exceptional growth potential and stability, all within a casual and professional work environment.\nWhile we appreciate all applicant submissions, only those considered to be most qualified will be contacted for further assessment.\nCanon Canada Inc. is proud to provide accommodation(s) during the recruitment process. Should you require any accommodations, please indicate this on your application/cover letter and we will work with you to meet your accessibility needs. For any questions, suggestions or required documents regarding accessibility in a different format, please contact us via email at accessibility@canada.canon.com or via phone at 1-855-531-3850 or 905-863-8713\n\nSince 1973, Canon Canada has been the leading provider of consumer, business, professional and medical digital imaging innovation. Technology continuously changes, but our vision and commitment to delivering exceptional solutions and great customer experiences never does.\nHeadquartered in Brampton, Ontario, with 12 additional offices across the country, Canon is the preferred choice for technology and services that enhance the lives of people and drive business performance. We are committed to the highest level of customer satisfaction and loyalty, and provide 100% Canadian-based service and support for every product we distribute.\nEvery day our team comes to work excited to tackle real-world challenges, conceive new ideas and develop groundbreaking, innovative solutions \u2014 to make a difference for our customers, our business partners, our colleagues and our company.\nWe\u2019re proud of the difference we make for our customers and our business partners, and in the communities where we live and work." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3b55f4475026d862&fccid=9e77ef24448a927e&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst (Administrative)", + "company": "Roevin", + "salary": NaN, + "desc": "Temporary, Contract\nRoevin is currently looking for a Data Analyst (Administrative) to join our client's office in Mississauga location.\n\nData Analyst Job Responsibilities:\n\nParticipate in the GTM meetings to understand the business context and be available for adhoc requests.\nConfirm close business and identify where licenses are consumed by State for LinkedIn Sales Compensation Purposes.\nTools used will be MSX for Pipeline Reporting, MS Sales for Closed Business and MS Explore for finer licensing details.\nReinforce sales policies \u2013 In some cases transactions will book for less than 10 seats which is our minimum order.\nThis role will follow up with the field to advise them on the policy and correct with their end customer.\n\nData Analyst Job Requirements:\n\n2-5 years\u2019 experience as a sales operations support analyst.\nComfortable in Microsoft sales and pipeline, tools and systems.\nResponsive with solid communication skills to alert the team of dependencies or challenges in completing the request.\nWillingness and ability to challenge other leaders and accept and encourage challenge from others.\nTeam player who understands how to work with others\nStrong sense of responsibility and understanding of the critical impact of meeting commitments.\n\nIf you are interested in this Data Analyst role in Mississauga, apply by clicking the Apply now button below Or call Noori Pramodh on 905-896-8956 Extn 292.\n\nB2500" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=628b83e965e2baf2&fccid=3002307a9e5b4706&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer - Toronto, ON", + "company": "Scotiabank", + "salary": NaN, + "desc": "Requisition ID: 40444\nJoin the Global Community of Scotiabankers to help customers become better off.\nJob Purpose\nContributes to the overall success of the Data Office globally ensuring specific individual goals, plans, initiatives are executed / delivered in support of the team\u2019s business strategies and objectives. The main function of the Data Engineer is to design, develop, test and operationalize RDBMS and big data solutions in support of the strategic goals of the Data Office. Ensures all activities conducted are in compliance with governing regulations, internal policies and procedures.\nKey Accountabillities\nChampions a customer focused culture to deepen client relationships and leverage broader Bank relationships, systems and knowledge.\nWork with large data sets, experience working with distributed computing (MapReduce, Hadoop, Hive, Pig, Apache Spark, etc).\nProfile and analyze source data to determine the best reporting structures to build.\nDesign and develop ETL pipelines using multiple sources of data in various formats according to business requirements.\nConduct ETL, SQL and DB performance tuning, troubleshooting, support, and capacity estimation to ensure highest data quality standards.\nConduct dimensional modelling, metadata management, data cleaning and conforming, and warehouse querying.\nUse sound agile development practices (code reviews, testing, etc) to develop and deliver data products\nProvide day-to-day support and technical expertise to both technical and non-technical teams\nWork with other engineers to brainstorm solutions to problems and support others in their goals.\nExhibit sound judgement, keen eye for details and tenacity for solving difficult problems.\nUse strong analytical skills and support use of data for sound decision making.\nHelp us build data expertise and data focused mindset throughout the enterprise\nTranslate business needs into technical requirements\nUnderstand how the Bank\u2019s risk appetite and risk culture should be considered in day-to-day activities and decisions.\nActively pursues effective and efficient operations of his/her respective areas, while ensuring the adequacy, adherence to and effectiveness of day-to-day business controls to meet obligations with respect to operational risk, regulatory compliance risk, AML/ATF risk and conduct risk, including but not limited to responsibilities under the Operational Risk Management Framework, Regulatory Compliance Risk Management Framework, AML/ATF Global Handbook and the Guidelines for Business Conduct.\nChampions a high performance environment and contributes to an inclusive work environment.\nFunctional Competencies\nData modelling and warehousing experience\nProficiency with relational databases (Oracle, DB2, Redshift, etc.)\nStrong proficiency in SQL\nProficient in a variety of languages including: Scala, Python, Java, Javascript\nAPI development experience\nExperience working in an Agile team environment\nEducation/ Experience\nDegree in Engineering, Computer Science or Mathematics/Statistics.\n5+ years industry experience with big data technology (Hadoop, Hive, Spark, SQL, Kafka, etc.)\nIndustry experience as a Data Engineer\nLocation(s): Canada : Ontario : Toronto\nAs Canada\u2019s International Bank, we are a leader when it comes to inclusion. We are a diverse and global team, speaking more than 100 languages with backgrounds from more than 120 countries. We value the unique skills and experiences each individual brings to the bank, and are committed to creating and maintaining an inclusive and accessible environment for everyone. Candidates selected for an interview will be contacted directly. If you require accommodation during the recruitment and selection process, please let us know. We will work with you to provide as seamless a recruitment experience as possible." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c274be8e9ae9fb6b&fccid=44fd14c53aec5d7e&vjs=3", + "location": "Toronto,ON", + "title": "Senior Google Cloud Data Engineer (Contract or Full-Time/Permanent)", + "company": "Appnovation Technologies", + "salary": NaN, + "desc": "Permanent\nAppnovation is seeking a Senior Data Engineer with a Google Cloud Professional Data Engineer certification (preferred) to contribute to upcoming client projects. Candidates should possess excellent time and task management skills, have proficient team communications, and be able to either telecommute from home or work in one of our regional offices.\n\nWe are open to candidates working with us on contract or as a full-time/permanent employees from anywhere in North America or Brazil.\n\nYOU WILL HAVE AN OPPORTUNITY TO\nLead the design of industry-leading cloud-based data/software solutions to run on Google Cloud Platform (GCP)\nLead the design, delivery of, and maintenance of data structures and databases, data processing systems, analyze data and enable machine learning, model business processes for analysis and optimization, visualize data and advocate policy, design for security and compliance\nWork with the team to develop web and mobile applications, APIs, SDKs and other tools as required\nDocument software designs, functional and design specifications, presentations, and other documents as needed\nWork with our team on pre-sales scoping as a technical expert\nWHO YOU ARE\n8+ years hands-on experience in solution/data engineering\nExperience leading large scale data migrations\nComfortable with structured, unstructured and real-time data\nGoogle Cloud Professional Data Engineer certification preferred\nExperience designing data solutions with Cloud platforms such as Google Cloud, AWS or Azure; big data pipelines and management\nExperience with data security for data at rest and in transit (i.e., firewalls, hashing, encryption and SSL)\nExperience automating and managing key business data pipelines to deliver the output of models to targeted applications\nExcellent SQL coding and experience with a broad array of development tools and platforms including a strong Linux background and big data environment tools/languages, such as SQL, R, SAS, Python, etc.\nExperience with Google data tools such as MySQL, Postgres, Bigtable, Dataflow, Spanner and BigQuery\nExperience with machine learning an asset\nHands-on experience with two or more of: Go, python, php, Java, .Net or node.js\nExperience with GCP billing\nMS in Computer Science or equivalent program from an accredited University/College\nAble to collaborate and thrive in a fast-paced diverse high-performance environment\nDemonstrated excellence in written and verbal communication\nThank you for your interest in a career with Appnovation Technologies!\n\nPlease note that only those selected for an interview will be contacted. Appnovation Technologies is committed to fostering a diverse and representative workforce and an inclusive work environment where all employees are treated equally." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1f4505c89ed4023a&fccid=d5a5824be27ba831&vjs=3", + "location": "Toronto,ON", + "title": "Lead Data Scientist - App & Partner Platform", + "company": "Shopify", + "salary": NaN, + "desc": "About the role\n\nCommerce is changing at an incredible rate. It happens seamlessly between the online and offline worlds. Consumers now expect to be able to buy anywhere, receive products quickly, and return them effortlessly. The buyer experience is personalized, authentic, and on-demand. It\u2019s an incredibly exciting time for this industry, and Shopify is right at the centre of it. We\u2019re on a mission to scale our platform while simultaneously improving performance, reliability, and resiliency. To do this, we need the help of dedicated, methodical, and versatile Data Scientists.\nAs our newest Lead Data Scientist, you will be a crucial part of this mission. We're looking for a Lead Data Scientist to own the Data and Algorithms strategy around our Search and Personalization data products on our App and Partner Platform. Working closely with an interdisciplinary team, you and your team will help to drive optimization in this area through the development of Search and Personalization techniques that are scaled across our 600,000+ merchants. Improving the adoption rates of different Shopify services by merchants will be one of many ways that your team can make an impact at Shopify.\n\nYou'll need to have:\nA strong background in machine learning including experience implementing models and productionizing innovative end-to-end Machine Learning systems.\nA strong background in either statistics, mathematics, science, or Computer Science.\nSuccessfully led a Machine Learning project with significant complexity, setting the algorithmic and engineering direction of the team.\nWorked on every part of the pipeline and do not shy away from deep technical challenges.\nThe ability to thrive in a multidisciplinary team, working with, and inspiring product managers, UX researchers, designers, content strategists, and software engineers.\nGreat communication skills and the ability to breakdown difficult concepts and explain this to non-technical users.\nProven leadership skills through leading and growing a team of developing Engineers.\nExtensive experience using Python (including scikit-learn) or similar languages, with strong experience analyzing data using SQL.\nIt'd be great if you have:\nExperience with distributed systems, search, ranking, recommendations, personalization, and/or information retrieval.\nExperience with e-commerce and/or SaaS business and large-scale machine learning.\nPublished your innovations at related top-tier conferences." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c5ce3fcc1ed9cbf4&fccid=50f045c36aa7a501&vjs=3", + "location": "Toronto,ON", + "title": "Analyst, Master Data Shared Services (MDSS)", + "company": "Maple Leaf Foods", + "salary": NaN, + "desc": "ANALYST, MASTER DATA SHARED SERVICES (MDSS)\n\nConsidering a Career at Maple Leaf Foods?\n\nMaple Leaf Foods is Canada\u2019s leading consumer-packaged protein company, headquartered in\nToronto, Ontario. We make high-quality, great tasting, nutritious and innovative food products under leading brands including Maple Leaf\u00ae, Maple Leaf Prime\u00ae, Maple Leaf Natural Selections\u00ae, Schneiders\u00ae, Schneiders Country Naturals\u00ae and Mina\u2122. Our Company employs approximately 11,000 people in its operations across Canada and exports to more than 20 global markets including the U.S. and Asia.\n\nOur people are passionate about the work they do and the products we make. As we move forward, we are determined to leverage their integrity and passion to continue to build a high-performing, values-based company enabled by high-performing, motivated and talented people.\n\nPOSITION SUMMARY:\nThe Master Data Shared Services (MDSS) team is accountable for the maintenance and quality assurance of master data and adherence to data standards across all operating units within Maple Leaf Foods. The Data Analyst is responsible for supporting the business by:\nValidating requests received to create or change master data against existing master data governance and quality standards, including ensuring all required approvals and supporting documents are properly included\nAccurately maintaining master data in SAP and GS1, within established service level agreement (SLA) timelines\nResponding to all data maintenance related inquiries with a customer service mindset\n\nPOSITION RESPONSIBILITIES:\n-Validate data maintenance requests and perform data maintenance for all operating units within Maple Leaf Foods, ensuring only accurate, complete and compliant data is loaded into SAP and GS1\nParticipate in data conversion initiatives as required\nPrepare data extracts and reports as required\nParticipate in regular audit cycles\nEnsure SOP\u2019s and process maps for assigned data domains are well documented and up-to-date\nInteract collaboratively with fellow MDSS and Data Governance team members to drive continuous improvement and ensure overall data integrity\nDemonstrate an eagerness to understand business functions and use this knowledge to provide excellent customer service to internal customers through partnership and education\n\nPROFESSIONAL SKILLS, EXPERIENCE AND KNOWLEDGE REQUIRED:\n-A minimum of 3 years of SAP experience with master data management, specifically Material, Customer, Plant Maintenance and Vendor Master\nStrong written and oral communication skills. Must be able to communicate issues and data governance policy effectively across a wide and diverse group\nAbility to manage a large volume of work through effective prioritization, communication and excellent execution\nAbility to work well under pressure in time-critical situations\nExperience in data analysis\nExperience with MS-Excel at the intermediate level\n\nOTHER COMPETENCIES REQUIRED:\n-Customer service mindset\nHighly logical and detail oriented with a keen interest in data management\nSelf-starter with a strong bias for action and follow through\nStrong organizational and time management skills\nTeam player with strong interpersonal skills, both within the team and cross functionally\nEffective problem solving and analytical skills\nPassion for working in a rapid paced, changing environment\nStrong learner and teacher\n\n\n\nWe thank all applicants for their interest in exploring employment opportunities with Maple Leaf Foods however only those selected for an interview will be contacted. Applicants may be subject to a background check and must meet the security criteria designated for the position.\n\nMaple Leaf Foods is committed to Employment Equity and maintaining a diverse workforce. Job applicants with a disability who require reasonable accommodation for any part of the application or hiring process can contact our Talent Attraction Team at accommodations@mapleleaf.com. Reasonable accommodations will be determined on a case-by-case basis and your request will be responded to as soon as possible." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=54c3965c0fe785f5&fccid=8295f0911ec08bde&vjs=3", + "location": "Toronto,ON", + "title": "Data Reporting Analyst", + "company": "Robert Half Technology", + "salary": "$60,000 - $70,000 a year", + "desc": "$60,000 - $70,000 a year\nData Scientist - Burlington\n$60,000 - $65,000 Annual Salary\n\nOur client, located in Burlington, is looking for a Data Scientist that will help them discover the hidden information and drive the consumption and display of their IoT data, to help them and their customers make sense of it all. The primary focus will be in applying data-mining techniques, statistical analysis, and building high quality predictive systems, using machine learning that integrates with their core software product line.\n? Work closely with Development, Engineering, Mechanical, and Energy teams to understand the data domain\n? Analyze scoring using machine learning techniques\n? Build analytical, predictive, and recommendation systems\n? Present information and communicate findings using data visualization techniques\n? Preprocessing, cleansing, and verifying the integrity of data, in order to build models and cubes\n? Drive the collection of new data and refine existing data streams\n? Data mining using state-of-the-art methodology\n? Develop prototypes and proof of concepts for predictive models and data analytics\n? Extending company?s data with third party sources of information when needed\n? Perform and interpret data studies and conduct experiments with new data sources or new uses for existing data sources\n? Enhancing data collection procedures for robustness and reliability\n? Perform ad-hoc analysis and presenting results in a clear and concise manner\n? Provide ongoing tracking and monitoring of performance of statistical models, recommend improvements to methods and algorithms leading to new findings\n? Tailoring data collection for relevant information to assist in the building of analytical systems\n\nIf you meet these requirements, please send an updated CV to Aidan Kelly at aidan.kelly@rht.com.\n\n? Passion for empirical research and answering hard questions with data\n? Understanding of Machine Learning techniques and algorithms\n? Experience with data-visualization and Business Intelligence tools\n? Demonstrated experience solving loosely defined problems by leveraging data pattern detection\n? Excellent communication skills\n? Familiarity with SQL and NoSQL databases (SQL Server, MySQL, MongoDB, and DocumentDB)\n? Good applied math and statistical skills: distributions, statistical testing, and regression\n? Possess scripting skills and programming exposure: Python, JavaScript, C#\n? Possess knowledge of analysis tools such as: R, Matlab\n? Experience with tools for large data sets: Power BI, Azure ML, SRSS, Spark, Hadoop, Hive" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9a1180d1a03aa518&fccid=785af18d53962443&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Engineer", + "company": "FreshBooks", + "salary": NaN, + "desc": "FreshBooks has a big vision. We launched in 2003 but we're just getting started and there's a lot left to do. We're a high performing team working towards a common goal: building a world class online accounting application to help small businesses better manage their finances. Known for extraordinary customer service and based in Toronto, Canada, FreshBooks serves paying customers in over 120 countries.\n\nThe Opportunity \u2013 Senior Data Engineer\n\nFreshBooks seeks a Senior Data Engineer to join our team! In this role, you will help build new features and update existing ones in our current data pipeline infrastructure. You will also help set the future direction of the Data team. If you're committed to great work and are constantly looking for ways to improve the systems you're responsible for, we'd love to chat with you!\n\nWhat you'll do:\nCollaborate with Data Engineers and Full-Stack Developers on cross-functional agile teams working on features for our stakeholders\nWork closely with our Analytics, Data Science, and Product teams to ensure their data needs are met\nHelp guide the future of the Data team through ideas on where to go, and how to get there\nFind clever new ways to make better use of our data, analytics, and machine learning infrastructure to solve customer problems\nParticipate and share your ideas in technical design and architecture discussions.\nShip your code with our continuous integration process\nProvide coaching to Junior Data Engineers and share & learn from your peers\nDevelop your craft and build your expertise in Data Engineering\nWhat you bring:\nExpertise in world-class data pipelines, from batch job to real time implementations\nPassion for keeping on top of current data engineering trends and the ability to understand when they should be applied\nThe ability to ruthlessly prioritize, in a rapidly changing and ambiguous environment\nExperience with at least one main development language. You'll almost certainly work closely with Python code. If you have a stronger track record in a different language -- or, better yet, multiple different languages -- that's great, and we'll expect you to demonstrate to us that you can learn to produce well-factored idiomatic Python code\nExperience with MySQL, Postgres, or similar storage technologies\nA strong understanding of test-driven (and behavioural test driven) development, and of building substantially complete test code around the code that you write, and not just for the happy path\nExperience working with large codebases and writing robust and testable code\nFamiliarity with continuous integration and automated build pipelines\nExperience using github, reviewing code, reviewing PRs, and merging branches\nExperience working in an Agile environment\nThe ability to balance desire to ship code quickly to our internal customers with responsibility of making good technical decisions\nWhat you might bring:\nA track record of staying on the forefront of data engineering technology\nExperience with AWS, or another major cloud provider such as Google Cloud Platform\nExperience developing and/or managing real time data pipelines and fast data architectures\nExperience with BI tools: Periscope, Looker\nExperience with Redshift, Big Query, or similar cloud storage technologies\nExperience with other modern storage technologies such as Cassandra, MongoDB, and others\nExperience with Spark, Kafka, Flink, Gearpump, Dataflow, or other streaming technologies\nExperience with Docker, Kubernetes, Ansible, and Terraform, and other DevOps and infrastructure as code technologies\nExperience with machine learning technologies, techniques, and algorithms, especially operationalizing machine learning models\nA limitless imagination for where data could go and what we can do with it to make our customers and our people awesome!\nWhy Join Us?\n\nWe're an ambitious bunch, with our eyes laser-focused on shipping extraordinary experiences to small business owners. In this role you will be working at the forefront of marketing analytics surrounded by talented team members who share a common vision for building an amazing software company right here in downtown Toronto. If this sounds like something you would be interested in, we'd like to meet you.\n\nFreshBooks provides employment accommodation during the recruitment process. Should you require any accommodation, please indicate this on your application and we will work with you to meet your accessibility needs. For any questions, suggestions or required documents regarding accessibility in a different format, please contact us at phone 416-780-2700 and/or accessibility@freshbooks.com." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2d5fb185071d1425&fccid=44fd14c53aec5d7e&vjs=3", + "location": "Toronto,ON", + "title": "Intermediate Google Cloud Data Engineer (Contract or Full-Time/Permanent)", + "company": "Appnovation Technologies", + "salary": NaN, + "desc": "Permanent\nAppnovation is seeking an Intermediate Data Engineer with a Google Cloud Professional Data Engineer certification (preferred) to contribute to upcoming client projects. Candidates should possess excellent time and task management skills, have proficient team communications, and be able to either telecommute from home or work in one of our regional offices.\n\nWe are open to candidates working with us on contract or as a full-time/permanent employees from anywhere in North America or Brazil.\n\nYOU WILL HAVE AN OPPORTUNITY TO\nContribute to the design of industry-leading cloud-based data/software solutions to run on Google Cloud Platform (GCP)\nContribute to the design, delivery of, and maintenance of data structures and databases, data processing systems, analyze data and enable machine learning, model business processes for analysis and optimization, visualize data and advocate policy, design for security and compliance\nWork with the team to develop web and mobile applications, APIs, SDKs and other tools as required\nContribute to the documentation of software designs, functional and design specifications, presentations, and other documents as needed\nWHO YOU ARE\n5+ years hands-on experience in solution/data engineering\nExperience leading large scale data migrations\nComfortable with structured, unstructured and real-time data\nGoogle Cloud Professional Data Engineer certification preferred\nExperience working with Cloud platforms such as Google Cloud, AWS or Azure; big data pipelines and management\nExperience with data security for data at rest and in transit (i.e., firewalls, hashing, encryption and SSL)\nExperience automating and managing key business data pipelines to deliver the output of models to targeted applications\nExcellent SQL coding and experience with a broad array of development tools and platforms including a strong Linux background and big data environment tools/languages, such as SQL, R, SAS, Python, etc.\nExperience with Google data tools such as MySQL, Postgres, Bigtable, Dataflow, Spanner and BigQuery\nExperience with machine learning an asset\nHands-on experience with two or more of: Go, python, php, Java, .Net or node.js\nExperience with GCP billing\nMS in Computer Science or equivalent program from an accredited University/College\nAble to collaborate and thrive in a fast-paced diverse high-performance environment\nDemonstrated excellence in written and verbal communication\nThank you for your interest in a career with Appnovation Technologies!\n\nPlease note that only those selected for an interview will be contacted. Appnovation Technologies is committed to fostering a diverse and representative workforce and an inclusive work environment where all employees are treated equally." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=647b68981a86691c&fccid=353eb997fc901045&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Scientist, Andi", + "company": "Veeva", + "salary": NaN, + "desc": "Our Company\nAt 2,000 employees and growing, and consistently strong financials (NYSE:VEEV), Veeva was named among the top fastest growing public technology companies on Forbes\u2019 annual Fast Tech 25 list. We build innovative cloud solutions for some of the world\u2019s largest pharmas and biotechs, and we need great people like you to make it happen.\n\nOur Culture & People\nOur core values are Do the Right Thing, Employee Success, Customer Success, and Speed. We are innovators, collaborators, and thought leaders out to create best-in-class solutions that help our customers improve and extend human life. It\u2019s genuine, straight-forward, and no fuss.\n\nJob Summary\nAs a Senior Data Scientist for the Andi team, you will work with Andi Product Management, Engineering, and fellow Data Scientists to support product development. Andi is Veeva\u2019s Artificial Intelligence Engine currently in development, to be commercially available late 2019.\nAndi is a solution to coordinate data across the field and through different channels to support intelligent customer engagement. Andi\u2019s Next Best Action capabilities will enable reps to make decisions in the field through the generation of suggestions and insights based on dynamic programming engines and AI.\nYour role will be to generate and own the mathematical and behavioral models that will help drive the generation of impactful insights and suggestions. You will assist Engineering in productizing the code to ensure it can be scalable and repeatable. Our ideal candidate is multi-talented, with the capabilities to develop statistical, machine learning and optimization models to create scalable solutions that can be embedded within Andi.\nThis is a great opportunity for someone who is excited about using their deep Data Science expertise to help shape the product development from the early stages of Andi and can envision how Andi will enable reps to make smarter decisions in the field.\n\nResponsibilities\nDevelop advanced algorithms that solve problems of large dimensionality in a computationally efficient and statistically effective manner\nDesign, develop and assess highly innovative models for adaptive predictive learning, suggestion ranking, anomaly detection, and more\nCollaborate with Engineering to help implement machine learning algorithms and productize data science capabilities\nBuild and run test scenarios and simulations on different types of models and algorithms in order to assess performance and identify the best algorithms to integrate into Andi\nEnsure models and algorithms support our customers and help them drive towards more intelligent and effective engagement with their customers\nExecute statistical and data mining techniques (e.g. hypothesis testing, machine learning and retrieval processes) on large, unstructured data sets to identify trends and figures\nWork closely with the data warehouse product team to ensure architecture is effectively developed to support algorithms embedded in Andi\nRequirements\nM.S. or Ph.D. in Machine Learning, Applied Statistics, Operations Research, Mathematics, Computer Science, or other quantitative disciplines with at least 2 years of experience; In lieu of a PhD, 6+ years of relevant post-collegiate work experience\nAdvanced in-depth specialization in mathematical analysis methods, machine learning, statistical analyses, and predictive modeling\nGood understanding of high-performance Machine Learning techniques such as: classification, clustering, deep learning, fuzzy matching, sentiment analysis, A/B testing, active/adaptive learning and recommendations\nExperience implementing machine learning algorithms and scaling to productize with production-ready insights, predictions, or recommendations\nAdvanced knowledge of statistical analysis and data mining techniques (regression, decision trees, clustering, neural networks, text mining, etc.)\nExpertise in using R or Python to manipulate large data sets and develop statistical models, with the ability to accurately determine cause and effect relationships\nExperience with data analytics packages such as PySpark + MLLib\nExpert level SQL skills\nExperience with enterprise data and large-scale DB management (DBMS or Hadoop)\nIntellectual curiosity, along with excellent problem-solving and quantitative skills, including the ability to disaggregate issues, identify root causes and recommend solutions, even in situations with non-standard problems\nExcellent oral and written communication skills with the ability to effectively explain complex problems and advocate technical solutions to Engineering and customers\nNice to Have\nExperience with commercial aspects of the Life Sciences industry, including Field Sales or Field Medical, especially in GTM strategy\nExperience with Veeva CRM data sets or other commercial Life Sciences data\nExperience working in an agile software development environment\nExperience working with Software as a Service and/or enterprise products\nExperience with AWS\nHands-on experience building models with deep learning frameworks (Tensorflow or similar)\nExperience with Data Visualization and dashboarding tools such as Tableau or Qlik" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a466d44e9c7e04ac&fccid=3002307a9e5b4706&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer - Platform Organization", + "company": "Scotiabank", + "salary": NaN, + "desc": "Requisition ID: 39814\nJoin the Global Community of Scotiabankers to help customers become better off.\nAs Scotiabank\u2019s engine of modernization, the PLATO platform enables technology teams to build software quickly and securely using modern practices. PLATO is an integrated set of technical capabilities, services and processes that encapsulate critical enterprise functions through standardization, re-use and automation.\nThe PLATO team is comprised of engineers, problem solvers, agilists and creatives in roles such as Enterprise Platform Engineering and Architecture, Enterprise Data Services, Cloud Infrastructure and Architecture, Product Engineering, and Product Management. Together, the team provides the platform that enables the Bank to deliver transformative experiences that help our 24 million customers become better off.\nInterested in joining an agile team that\u2019s impacting change for our customers around the world? Watch our video\nJob Purpose\nAs a Data Engineer you will work on next generation data infrastructure, supporting new functionalities on existing platform, and mining data for analytics insights and product features. You will solve technical challenges in the areas of efficient query processing, large-scale data processing, machine learning and modeling, as well as satisfying complex business rules.\n\nKey Accountabilities\nDeveloping complex queries, pipelines and software programs to solve analytics and data mining problems.\nPrototype new metrics or data systems.\nPerforming data investigations to troubleshoot data issues that arise along the data pipelines.\nMaintain and improve data science platform.\nDeveloping technology for cloud solutions that meet the needs for scalability, reliability and performance.\nDeveloping and defining data flow for new cloud computing systems and help in existing systems migration to cloud architectures.\nImplementing process automation.\nImplementing CI/CD best practices for the Data engineering platform.\nIdentifying, analyzing, and resolving system problems.\nWorking as part of the infrastructure and development teams to ensure deployment and integration tasks are completed successfully.\nParticipating in all aspects of the software development lifecycle.\nDeveloping documentation on new and existing systems\n\nFunctional Competencies\n\nAbility to lead a work package for development and delivery.\nAbility to work well in a challenging environment.\nStrong troubleshooting skills\nExcellent writing skills, oral communication skills, strong process skills, and leadership ability.\nAbility to multi-task and prioritize for self and team members.\nExamine and solve the performance bottlenecks in the ETL process\nBe passionate about data\nEnjoy working with new technologies, setting up big data infrastructures and implementing new reporting solutions and metrics\n\nEducation/ Experience\nPossesses solid knowledge of design and analysis methodology and application development processes from both an industry and client perspective\nDemonstrates good understanding of the Software Development Life Cycle\nProficiency in ETL, UNIX skills , SQL skills\nSkills on Python/Java/Scala- Ability to work in an Agile Development environment\nBachelors degree or higher\nLocation(s): Canada : Ontario : Toronto\nAs Canada\u2019s International Bank, we are a leader when it comes to inclusion. We are a diverse and global team, speaking more than 100 languages with backgrounds from more than 120 countries. We value the unique skills and experiences each individual brings to the bank, and are committed to creating and maintaining an inclusive and accessible environment for everyone. Candidates selected for an interview will be contacted directly. If you require accommodation during the recruitment and selection process, please let us know. We will work with you to provide as seamless a recruitment experience as possible." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d56bf56259ca0894&fccid=ee1e8ba43a5cac2f&vjs=3", + "location": "Toronto,ON", + "title": "Sr. Data Analyst", + "company": "Ian Martin Group", + "salary": NaN, + "desc": "Contract\nSr. Data Analyst\nLocation: Toronto\nStart Date: October 15th\nEnd Date: December 21\nProject: Build various statistical models (e.g.: optimisation, predictive, etc.) to help answer our clients\u2019 media performance-related questions.\nResponsibilities:\nPost-campaign analysis (a.k.a Post-Implementation Reports (PIR))\nBuild statistical models using R and Python for data analysis\nGather data from multiple sources and manipulate for analysis\nRequirements:\n2- 5 years of experience with a background in Statistics and statistical modelling\nExposure to media data and experience in banking/financial industry (Statistics background will suffice)\nExposure to large amounts of data is a plus (make sure this is quantified in resumes)\nProficient in R or Python\nStrong SQL experience is a plus" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=573a38647c0b24f6&fccid=18b323e5d99fcec2&vjs=3", + "location": "Toronto,ON", + "title": "Sr. Data Scientist (Machine Learning) - Toronto", + "company": "gdR | Grossman Dorland Recruiting", + "salary": NaN, + "desc": "Permanent\nSr. Data Scientist (Machine Learning) - Toronto\n\ngdR is recruiting an Sr. Data Scientist (Machine Learning) - Toronto for an up-and-coming AI group to create solutions that will be embedded into all aspects of the business. The team members will be dedicated to a line of business and will have full autonomy and executive buy-in for the group\u2019s solutions. Named as one of the Top Companies for 2018 by LinkedIn, the company encourages its employees to pursue continuing education whether that means attending conferences, speaking at events or work patents.\n\nAbout the Company:\nUp-and-coming AI group to create solutions that will be embedded into all aspects of the business.\nStartup and agile environment, with the stability of an established company.\nOn the list of LinkedIn\u2019s Top Companies for 2018.\nEmphasis on continuing education whether that means attending conferences, speaking at events or getting work patents.\nUnique opportunity to help transform a company that's been established for 100+ years.\n\nWhy Join?\nIt\u2019s a startup and agile environment, with the stability of an established company. The group also has full autonomy and executive buy-in for their solutions. Team members will work together to define and produce workable solutions to the product development group. It\u2019s a unique opportunity to transform a company of 100+ years.\n\nYou\u2019re the ideal Sr. Data Scientist (Machine Learning) - Toronto if you have:\nPh.D or Master\u2019s in Statistics, Applied Math, Computer Science or field related to AI.\nExperience in the following areas: AI, ML, NLP or similar areas.\nExperience with machine learning models to be used in production environments.\n\nAs the Sr. Data Scientist (Machine Learning) - Toronto here\u2019s how you\u2019ll make an impact:\nInject AI solutions into all aspects of the business and the overall business strategy.\nTake ownership of AI projects, deliverables and execution.\nKeep updated on industry trends and research to support AI solutions.\n\nApply today for the Sr. Data Scientist (Machine Learning) - Toronto role or contact Brandon Shim-Ping, Director, Talent, at brandon AT grossmandorland DOT com to learn more.\n\n\nAbout gdR\n\nFounded in 2007, (gdR)s objective is to grow the leadership capacity and capabilities of people and companies in the Canadian tech ecosystem through Executive Recruiting, Individual Contributor Level Recruiting and Leadership Coaching & Development.\n\nWe\u2019re actively involved in the community by creating opportunities for people to connect and learn from one another e.g. Canadian Tech at Scale (in partnership with Shopify & Pivotal), which brings 120+ engineering leaders.\n\ngdR values inclusion in Canada\u2019s tech ecosystem and partners with employers that provide equal opportunities for individuals from diverse groups. If you\u2019re interested in moving to Canada, although we can\u2019t sponsor you here are some resources to help you with your journey.\nFollow gdR on LinkedIn, Twitter and Facebook for updates on new roles in tech." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=0df68001eabcf951&fccid=4271edc9c2f82254&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Analyst", + "company": "Sun Life Financial", + "salary": NaN, + "desc": "At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nSun Life has launched an ambitious journey to deploy data as a foundational pillar and strategy across the whole business. Be a part of an exciting and challenging opportunity by becoming part of the analytics community helping to accelerate the growth and application of data science capabilities.\n\nAs the Senior Data Analyst (Senior Analyst, Client Insights), you will be part of a large analytics community and will be focused within the Individual Insurance & Wealth (IIW) management business helping the team by, but not limited to, mining data for business insights, analyzing and interpreting trends using statistical tools and techniques, reporting on business performance, and triaging code and data-related issues.\n\nWithin SLF Canada, IIW is one of the largest business units, with over 1,700 employees. Individual accounts for approximately 20% of worldwide earnings in the overall Sun Life Financial group of companies, and over 45% of Canadian earnings. We manufacture and distribute leading-edge life insurance, health insurance and wealth management products and solutions for over two million individual customers.\n\nThe Senior Data Analyst (Senior Analyst, Client Insights), role sits in the client experience insights team within IIW, a team focused on using data and analytics to understand our clients and how our business can best support them in achieving their goals of lifetime financial security and living healthier lives. The team supports the IIW marketing team, but this role will be focused on short to medium term special projects, tackling the most pressing business issues using data and analytics to change decisions and the way we do business.\n\nSun Life views success in this role related to 4 key characteristics:\nFierce curiosity. You are drawn to discovering and leveraging new data and taking on challenging business puzzles. Understanding business. We\u2019ve got a lot of data, but it\u2019s not going to turn itself into insights, and you can\u2019t help with that unless you understand what the numbers mean. A passion for solving problems. The most successful data analysts don\u2019t just spin data and give numbers, they solve the problem. Technical skills. How to wrangle structured data is a must (i.e., SQL) with strong SAS skills needed currently and the opportunity to move to other analytical tools (R, Python etc) as our data environment matures.\n\nAccountabilities:\nAnalyze and interpret data to identify key insights and opportunities to better understand advisor and client behaviour through data mining client databases and other information systems, including analysis of CRM data, web and mobile applications to enhance the advisor and client experience\nHelp tackle key business problems via analytical work, from requirements specification, data gathering, analyst and statistical model building to presentations and adoption\nWork closely with stakeholders across Sun Life as a subject matter expert in the individual client data and to understand their business problems and how data can be best leveraged to inform decisions\nAbility to draw out business insights from analytical output and work with team leads to put together business recommendations.\nPut together effective presentations of findings and desire to present to multiple levels of stakeholders\nLeverage internal training, peers and other sources to continue to grow capabilities\nAn active contributing member to the analytics academy to help foster and grow the data science community at Sun Life\n\nKnowledge, Skills & Abilities:\n5+ years working with data (i.e., quantitative analysis experience, including handling, manipulating and analyzing data and creating analytical reports)\nComfortable writing complex SQL queries to extract and integrate data from multiple database sources\nExperience with building predictive and prescriptive models in a business setting (i.e., regression, decision trees, deep learning etc.)\nExpert using SAS to work with data, including macros\nExperience with BI tools such as Tableau to aid in effective and concise oral and written storytelling and insights communication\nAbility to work as a team to help deliver multiple projects with courage in managing expectations of team leaders\nDemonstrated business acumen and ability to translate knowledge of audience insights into marketing strategies\nProven track record of successfully operating in a matrix environment with cross-function team participation successes\nStrong partnering approach with a commitment to meeting internal and external business partners' unique needs and expectations\nBSc in a statistical, mathematical, or technical field (i.e., computer science)\n\nNice to haves:\nPast experience in life insurance/wealth management, or other financial services industry (e.g., retail banking, credit card, re-insurance and casualty insurance)\nMSc preferably in a statistical, mathematical, or technical field (i.e., computer science)\nAdditional statistical programming languages (i.e., Python/R)\nExperience working with unstructured data\nBig Data Technologies: Hadoop, HDFS, Hive, HBase, Storm, Spark, Kafka, etc.\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process or those needing job postings in an alternative format may e-mail a request to \u2018thebrightside@sunlife.com\u2019.\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\nLI-AD1\n\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n30/10/2018" + }, + { + "link": "https://www.indeed.ca/company/Swoon-Staffing/jobs/Data-Engineer-2c3fd5c4a3d2a312?fccid=0f8f43d7c2e2e7e5&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Swoon Group", + "salary": NaN, + "desc": "Permanent\nLocation: Mississauga, ON\nThis Data Engineer role is a full-time permanent position that offers benefits, fun work perks such as professional development, team lunches, and more!\nWe are looking to hire a Data Engineer for our client in Mississauga, ON. Our client is one of the leading telematics technology companies in the world is looking for a passionate, versatile, Data Engineer to join their team. The Data Engineer is responsible to help support the existing big data infrastructure on Google BigQuery ensuring that data is continuously and promptly available for analysis by their data science team, and to devise new methodologies and infrastructure for reconstructing and enriching data at scale. This Data Engineer role is a full-time permanent opportunity looking to start immediately.\nData Engineer requirements:\nBachelor's degree in Software Engineering, Computer Engineering, or other related degree\nExperience working with big data tools and streaming processes (i.e. such as Google BigQuery, streaming inserts, etc.)\nExperience with message queueing systems (such as Pub/Sub, Kafka) at large scale\n2+ years SQL experience (experience with Google BigQuery an asset)\nExperience with container orchestration (leveraging tools like Docker, Kubernetes, etc.)\nExperience working closely with data science teams to arrive at data infrastructure solutions that are optimized for scale\nFamiliarity with machine learning concepts an asset\nData Engineer Job Responsibilities:\nAssist in the support and maintenance of the company\u2019s existing big data infrastructure on Google BigQuery\nAssist in development of new data ingestion and management platform and ongoing support\nDevelop processes and alert systems to monitor the health of the company\u2019s big data infrastructure (Java or C#)\nDevelop processes to enrich the company\u2019s big data with tertiary data at scale\nWork with data scientists to understand data processing needs and develop infrastructure solutions to the organizations internal teams to assist with data integration with newly developed big data platform\nUse SQL and Python to interact with the Company\u2019s big data infrastructure as needed for data engineering\nPlease Apply with Your:\nCurrent Resume\nContact information - Phone number & current E-mail address.\nPlease contact michelle . dukhilall @ SwoonStaffing . com for more details\nJob Types: Full-time, Permanent\nExperience:\nData Engineering: 2 years (Required)\nEducation:\nBachelor's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5aa6197f6f561be6&fccid=44fd14c53aec5d7e&vjs=3", + "location": "Toronto,ON", + "title": "Expert Google Cloud Data Engineer (Contract or Full-Time/Permanent)", + "company": "Appnovation Technologies", + "salary": NaN, + "desc": "Permanent\nAppnovation is seeking a Data Engineer with a Google Cloud Professional Data Engineer certification (preferred) to lead our team on upcoming client projects. Candidates should possess excellent time and task management skills, have proficient team communications, and be able to either telecommute from home or work in one of our regional offices.\n\nWe are open to candidates working with us on contract or as a full-time/permanent employees from anywhere in North America or Brazil.\n\nYOU WILL HAVE AN OPPORTUNITY TO\nLead/oversee the design of industry-leading cloud-based data/software solutions to run on Google Cloud Platform (GCP)\nLead the design, delivery of, and maintenance of data structures and databases, data processing systems, analyze data and enable machine learning, model business processes for analysis and optimization, visualize data and advocate policy, design for security and compliance\nAssemble solution teams for data engineering projects\nMake internal recommendations to help improve and streamline the technical and architectural processes\nWork with the teams to develop web and mobile applications, APIs, SDKs and other tools as required\nDocument software designs, functional and design specifications, presentations, and other documents as needed\nLead our team on pre-sales scoping as a technical expert\nWHO YOU ARE\n10+ years hands-on experience in engineering with solution/data design leadership experience\nPrevious experience leading/designing multiple Cloud data projects, GCP and other cloud platforms (AWS, Azure)\nExperience leading large scale data migrations\nPrevious knowledge and experience with Machine Learning/AI\nExpert capabilities with structured, unstructured and real-time data\nGoogle Cloud Professional Data Engineer certification preferred\nExperience leading/designing with multiple Cloud platforms such as Google Cloud, AWS or Azure; big data pipelines and management\nExperience with data security for data at rest and in transit (i.e., firewalls, hashing, encryption and SSL)\nExperience automating and managing key business data pipelines to deliver the output of models to targeted applications\nExcellent SQL coding and experience with a broad array of development tools and platforms including a strong Linux background and big data environment tools/languages, such as SQL, R, SAS, Python, etc.\nExperience with Google data tools such as MySQL, Postgres, Bigtable, Dataflow, Spanner and BigQuery\nExperience with machine learning an asset\nHands-on experience with two or more of: Go, python, php, Java, .Net or node.js\nExpert knowledge of and experience with GCP budgeting and billing strategies\nMS in Computer Science or equivalent program from an accredited University/College\nAble to collaborate and thrive in a fast-paced diverse high-performance environment\nDemonstrated excellence in written and verbal communication\nThank you for your interest in a career with Appnovation Technologies!\n\nPlease note that only those selected for an interview will be contacted. Appnovation Technologies is committed to fostering a diverse and representative workforce and an inclusive work environment where all employees are treated equally." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b489346e8bffb073&fccid=1b217912a3042c02&vjs=3", + "location": "Toronto,ON", + "title": "Advanced Analytics Development Program- Toronto OR Boston (Masters and Ph.D. applicants)", + "company": "Manulife", + "salary": NaN, + "desc": "Are you looking for unlimited opportunities to develop and succeed? With work that challenges and makes a difference, within a flexible and supportive environment, we can help our customers achieve their dreams and aspirations.\n\nJob Description\nAdvanced Analytics Development Program\nManulife/John Hancock \u2013 Toronto or Boston\n\nAn Advanced Analytics Career at Manulife/JohnHancock\n\u201cData is the new oil and analytics is the new combustion engine\u201d\n\nAt Manulife/Johnhancok, our Advanced Analytics teams work on the most meaningful of projects. Globally, we have over 60 talented people working focused on data science and data engineering in Canada, US and Asia. The Advanced Analytics Development Program (AADP) provides the opportunity to be a member of a cross-functional team that includes experts in predictive modelling and machine learning.\n\nAdvanced Analytics Development Program (AADP)\nThe program is a 24 month program with 2-3 placements/rotations in data scientist roles with our Advanced Analytics teams. Each rotation can range from 8 to 12 months in duration and will provide graduates with exposure to multi-dimensional, complex analytic initiatives across all lines of business: insurance, retirement, wealth management and investments. The placement and its duration depend upon a number of factors including the participant's development needs and the needs of the business.\n\nThe program allows you the opportunity to make an impact in a global organization by working on diverse teams and projects and gaining exposure to international business. First placements are located in one of Manulife's Divisional headquarters; Toronto, Waterloo, Boston or Hong Kong. Subsequent placements could be at any one of our operations in Canada, US or Asia based on development needs of the participant and placement opportunities available.\n\nHow does Manulife differentiate as the employer of choice to build a career in Advanced Analytics?\n3 ways \u2013 Value, Challenge and Continuous Development\nValue\nAt Manulife, Advanced Analytics is a change agent. We are a business partner that helps with transforming the company using analytics to drive insight, action and value in everything Manulife does. The teams work closely with business leaders, build business cases and quantify the business value of the opportunity to the organization. The successful candidate will work with the team and the business unit to:\nConvert the business opportunity into an analytical problem\nMeasure the size of the opportunity\nDetermine key performance measures (KPIs) to track success.\nUse a variety of statistical and machine learning techniques to solve the problem.\nDemonstrate shared value through the operationalization of algorithms into a business process.\n2. Challenge\n\nChallenging opportunities exist for the data scientist and data engineer. In these roles the successful candidate will gain exposure utilizing software such as R, Python or SAS.\nThe data scientist is expected to either have or develop expertise in techniques such as:\nClassification and Regressions (Linear, Logit, Multinomial Logit, Poisson, Proportional Odds, Lasso, Ridge),\nDecision Trees,\nClustering (Traditional, Bagged, Hierarchical)\nRandom Forest,\nGBM, SVD, SVM,\nNeural networks,\nText Mining (TF-IDF, Latent Dirichlet and Similarity models),\nOptimizations (Linear and Non-linear),\nSimulations (MCMC) etc.\nThe scientist will apply these methods to solve business problems ranging from Marketing, Finance, Operations, Risk or Strategy domains across all of the organization\u2019s geographies and divisions.\nThe Data Engineer will gain valuable experience with a number of data technologies that support software development, advance analytics and reporting including:\nCloud (Azure)\nHadoop (Hortonworks, Pivitol)\nStatistical Packages (Matlab,)\nDatabases: HAWQ, HDB, MongoDB, Cassandra, HBase\nReporting and Data Visualization tools (Qlik, Tableau, Oracle etc)\nScripting Languages: Java, C++, PHP, Ruby\nThe engineer provides leadership and consultative support to data activities across the organization and is key to ensuring that the data environment supports value-add activities in analytics, decision making and direct customer facing activities.\n\n3. Continuous Development\nManulife is committed to Learning and Development. The candidate will be hired into the Advanced Analytics Development Program and introduced to a seasoned and eminent analytic leader in the organization who will act as a mentor. Manulife\u2019s analytic leaders have backgrounds ranging from Management Consulting, P&C, Life, Investments, Retirements and who have solved Business Problems for the likes of Walmart, Caterpillar, Lowes, AT&T, Farmers, Capital One, Google, HSBC to name a few.\nProgram participants will have access to and can expect to participate in:\nKaggle-style data science competitions\nTeam and networking events\nMonthly Global Best Practice meetings\nConferences/Training courses\nPresentations to Executives\n\n\nQualifications\n\nIs AADP the Right Program for You?\nThe Advanced Analytics Development Program may be a good fit if you possess the following qualifications:\nMS / PhD in Math or Stats / Business / Computer Science\nExperience with machine learning / predictive modelling\nExperience with R, Python or SAS\nExcellent communication skills with the ability to effectively influence\nDesire to be part of a growing advanced analytics function\nPassionate about developing a career in data science\nStrong academic performance\nWill graduate in 2018/2019\nPlease Note: AADP program is a full time and permanent opportunity available at both our Canada (Toronto) or USA (Boston) locations.\n\nPlease apply with your resume, transcript, work history (if applicable), and a cover letter.\n\nProgramme de perfectionnement des comp\u00e9tences en analyse avanc\u00e9e de Manuvie/John Hancock\n\nUne carri\u00e8re en analyse avanc\u00e9e \u00e0 Manuvie/John Hancock\n\u00ab Les donn\u00e9es repr\u00e9sentent le nouveau p\u00e9trole, et l\u2019analyse, le nouveau moteur \u00e0 combustion. \u00bb\n\n\u00c0 Manuvie/John Hancock, nos \u00e9quipes Analyse avanc\u00e9e travaillent sur les projets les plus importants. \u00c0 l\u2019\u00e9chelle mondiale, nous comptons plus de 60 employ\u00e9s talentueux dont le travail est ax\u00e9 sur la science des donn\u00e9es et l\u2019ing\u00e9nierie de donn\u00e9es au Canada, aux \u00c9tats-Unis et en Asie. Le programme de perfectionnement des comp\u00e9tences en analyse avanc\u00e9e donne l\u2019occasion de se joindre \u00e0 une \u00e9quipe interfonctionnelle compos\u00e9e notamment d\u2019experts en mod\u00e9lisation pr\u00e9dictive et en apprentissage automatique.\n\nProgramme de perfectionnement des comp\u00e9tences en analyse avanc\u00e9e\nD\u2019une dur\u00e9e de 24 mois, le programme propose de deux \u00e0 trois stages/rotations \u00e0 des postes de scientifique de donn\u00e9es au sein de nos \u00e9quipes Analyse avanc\u00e9e. La dur\u00e9e de chaque rotation peut varier de 8 \u00e0 12 mois et donnera l\u2019occasion aux dipl\u00f4m\u00e9s de participer aux initiatives ayant trait \u00e0 l\u2019analyse complexe et multidimensionnelle dans l\u2019ensemble des secteurs d\u2019activit\u00e9s : assurance, retraite, gestion de patrimoine et placements. La nature et la dur\u00e9e de l\u2019affectation d\u00e9pendent de divers facteurs, dont les besoins en perfectionnement du participant et les besoins de l\u2019entreprise.\nLe programme vous offre l\u2019occasion d\u2019avoir une incidence au sein d\u2019une organisation mondiale en travaillant sur divers projets au sein d\u2019\u00e9quipes diversifi\u00e9es, et en \u00e9tant expos\u00e9 au secteur d\u2019activit\u00e9s internationales. Les premiers stages auront lieu dans l\u2019un des si\u00e8ges sociaux divisionnaires de Manuvie : Toronto, Waterloo, Boston ou Hong Kong. Les stages suivants pourraient avoir lieu dans l\u2019un ou l\u2019autre de nos bureaux au Canada, aux \u00c9tats-Unis ou en Asie, selon les besoins en perfectionnement du participant et les possibilit\u00e9s offertes.\n\nComment Manuvie se distingue-t-elle en tant qu\u2019employeur de choix offrant l\u2019occasion de b\u00e2tir une carri\u00e8re dans le domaine de l\u2019analyse avanc\u00e9e?\nElle se distingue de trois fa\u00e7ons : valeur, d\u00e9fis et perfectionnement continu.\n\nValeur\n\u00c0 Manuvie, l\u2019analyse avanc\u00e9e est un agent du changement. Nous sommes un partenaire d\u2019affaires qui facilite la transformation de la compagnie, et ce, en faisant appel \u00e0 l\u2019analyse pour fournir des donn\u00e9es, inciter \u00e0 l\u2019action et cr\u00e9er de la valeur dans toutes les activit\u00e9s de Manuvie. Les \u00e9quipes travaillent \u00e9troitement avec les dirigeants, r\u00e9alisent des analyses de rentabilit\u00e9 et quantifient la valeur commerciale associ\u00e9e aux occasions pour l\u2019organisation. Le candidat retenu travaillera avec l\u2019\u00e9quipe et l\u2019unit\u00e9 administrative pour :\nTransformer les occasions d\u2019affaires en dossiers d\u2019analyse.\n\u00c9valuer la port\u00e9e des occasions.\n\u00c9tablir des indicateurs de rendement cl\u00e9s permettant d\u2019effectuer le suivi des succ\u00e8s.\nRecourir \u00e0 diverses techniques statistiques et techniques d\u2019apprentissage automatique pour traiter les dossiers.\nProduire de la valeur partag\u00e9e au moyen de la mise en \u0153uvre d\u2019algorithmes dans un processus op\u00e9rationnel.\n\nD\u00e9fis\nDes d\u00e9fis int\u00e9ressants se pr\u00e9sentent au scientifique de donn\u00e9es et \u00e0 l\u2019ing\u00e9nieur des donn\u00e9es. Dans le cadre de ses fonctions, le candidat retenu se familiarisera avec des logiciels comme R, Python ou SAS.\nOn s\u2019attend \u00e0 ce que le scientifique de donn\u00e9es poss\u00e8de ou acqui\u00e8re de l\u2019expertise li\u00e9e \u00e0 des techniques comme :\nle classement et les r\u00e9gressions (lin\u00e9aires, logistiques, r\u00e9gression logistique multinomiale, Poisson, probabilit\u00e9s proportionnelles, Lasso, Ridge);\nles arbres d\u00e9cisionnels;\nla mise en grappe (traditionnelle, \u00ab Bagged \u00bb, hi\u00e9rarchique);\nles arbres al\u00e9atoires;\nGBM, SVD, SVM;\nles r\u00e9seaux neuronaux;\nl\u2019exploration de texte (TF-IDF, allocation de Dirichlet latente et mod\u00e8les de mesure de similarit\u00e9);\nles optimisations (lin\u00e9aires et non lin\u00e9aires);\nles simulations (MCMC), etc.\nLe scientifique de donn\u00e9es appliquera ces m\u00e9thodes pour r\u00e9soudre des probl\u00e8mes touchant divers domaines, comme le marketing, les finances, l\u2019exploitation, la gestion des risques et les strat\u00e9gies, et ce, dans toutes les divisions et tous les territoires o\u00f9 la Soci\u00e9t\u00e9 exerce ses activit\u00e9s.\nL\u2019ing\u00e9nieur des donn\u00e9es acquerra une pr\u00e9cieuse exp\u00e9rience avec un certain nombre de technologies li\u00e9es aux donn\u00e9es qui soutiennent le d\u00e9veloppement de logiciels, l\u2019analyse avanc\u00e9e et la production de rapports, y compris :\nla plateforme infonuagique (Azure);\nHadoop (Hortonworks, Pivotal);\nles progiciels de statistiques (Matlab);\nles bases de donn\u00e9es : HAWQ, HDB, MongoDB, Cassandra, HBase;\nles outils de visualisation des donn\u00e9es et de production de rapports (Qlik, Tableau, Oracle, etc.);\nles langages de script : Java, C++, PHP et Ruby.\nL\u2019ing\u00e9nieur des donn\u00e9es fournit un leadership et des services de consultation relativement aux activit\u00e9s ayant trait aux donn\u00e9es dans l\u2019ensemble de l\u2019organisation. De plus, il joue un r\u00f4le cl\u00e9 pour veiller \u00e0 ce que l\u2019environnement de donn\u00e9es soutienne des activit\u00e9s \u00e0 valeur ajout\u00e9e relatives \u00e0 l\u2019analyse, \u00e0 la prise de d\u00e9cisions et aux contacts directs avec les clients.\n\nPerfectionnement continu\nManuvie a \u00e0 c\u0153ur la formation et le perfectionnement. Le candidat sera admis au programme de perfectionnement des comp\u00e9tences en analyse avanc\u00e9e. Il sera pr\u00e9sent\u00e9 \u00e0 un dirigeant chevronn\u00e9 et \u00e9minent du secteur de l\u2019analyse au sein de l\u2019organisation, lequel agira \u00e0 titre de mentor. Les dirigeants du secteur de l\u2019analyse de Manuvie poss\u00e8dent des exp\u00e9riences vari\u00e9es (services-conseils en mati\u00e8re de gestion, incendie, accidents et risques divers (IARD), assurance vie, placements, retraite) et ont r\u00e9solu des probl\u00e8mes commerciaux pour le compte d\u2019entreprises telles que Walmart, Caterpillar, Lowes, AT&T, Farmers, Capital One, Google et la HSBC, pour n\u2019en nommer que quelques-unes.\nLes participants du programme peuvent s\u2019attendre \u00e0 participer aux activit\u00e9s ci-apr\u00e8s.\nConcours de science des donn\u00e9es de style Kaggle\nActivit\u00e9s de r\u00e9seautage et d\u2019\u00e9quipe\nR\u00e9unions mensuelles portant sur les meilleures pratiques \u00e0 l\u2019\u00e9chelle mondiale\nConf\u00e9rences/cours de formation\nPr\u00e9sentations \u00e0 des dirigeants\n\n\nComp\u00e9tences\n\nLe programme de perfectionnement des comp\u00e9tences en analyse avanc\u00e9e vous convient-il?\nC\u2019est le cas si vous poss\u00e9dez les qualifications professionnelles ci-apr\u00e8s.\nMa\u00eetrise ou doctorat en math\u00e9matiques ou en statistiques/affaires/informatique.\nExp\u00e9rience li\u00e9e \u00e0 l\u2019apprentissage automatique/la mod\u00e9lisation pr\u00e9dictive.\nExp\u00e9rience li\u00e9e \u00e0 R, \u00e0 Python ou \u00e0 SAS.\nExcellentes aptitudes pour la communication et capacit\u00e9 d\u2019exercer son influence de fa\u00e7on efficace.\nVolont\u00e9 de faire partie des services d\u2019analyse avanc\u00e9e, qui sont en pleine expansion.\nVif d\u00e9sir de faire carri\u00e8re dans le domaine de la science des donn\u00e9es.\nExcellents r\u00e9sultats scolaires.\nObtention du dipl\u00f4me lors de l\u2019ann\u00e9e 2018-2019.\nRemarque : Le programme de perfectionnement des comp\u00e9tences en analyse avanc\u00e9e offre des occasions d\u2019emploi permanent \u00e0 temps plein \u00e0 nos bureaux du Canada (Toronto) ou des \u00c9tats-Unis (Boston).\n\n\u00c0 propos de Manuvie/John Hancock\nJohn Hancock Financial est une division de Manuvie, groupe canadien et chef de file des services financiers qui exerce ses activit\u00e9s principalement en Asie, au Canada et aux \u00c9tats-Unis. Connu sous le nom de Manuvie au Canada et en Asie, et principalement sous le nom de John Hancock aux \u00c9tats-Unis, notre groupe de soci\u00e9t\u00e9s offre \u00e0 sa client\u00e8le une gamme vari\u00e9e de produits de protection financi\u00e8re et de services de gestion de patrimoine par l\u2019entremise d\u2019un vaste r\u00e9seau d\u2019employ\u00e9s, d\u2019agents et de partenaires de distribution. En d\u00e9cembre 2015, l\u2019actif g\u00e9r\u00e9 et administr\u00e9 par Manuvie et ses filiales se chiffrait \u00e0 935 milliards de dollars canadiens (676 milliards de dollars am\u00e9ricains). La Soci\u00e9t\u00e9 Financi\u00e8re Manuvie est inscrite aux bourses de Toronto (TSX), de New York (NYSE) et des Philippines (PSE) sous le symbole \u00ab MFC \u00bb, et \u00e0 la Bourse de Hong Kong (SEHK) sous le symbole \u00ab 945 \u00bb. Elle est pr\u00e9sente sur le Web, \u00e0 l\u2019adresse manuvie.com. L\u2019unit\u00e9 John Hancock, gr\u00e2ce \u00e0 son groupe de soci\u00e9t\u00e9s d\u2019assurance, constitue l\u2019un des principaux assureurs vie aux \u00c9tats-Unis. John Hancock propose une large gamme de produits financiers, notamment de l\u2019assurance vie, des rentes, des placements, des r\u00e9gimes 401(k), de l\u2019assurance soins de longue dur\u00e9e, des r\u00e9gimes d\u2019\u00e9pargne-\u00e9tudes et d\u2019autres formes d\u2019assurance pour les entreprises. Pour de plus amples renseignements au sujet de John Hancock, visitez le site www.johnhancock.com.\nLI-JH- JHC\nLI-JHI \u2013 JHC Investments\n\nIf you are ready to unleash your potential it\u2019s time to start your career with Manulife/John Hancock.\n\nAbout Manulife\nManulife Financial Corporation is a leading international financial services group that helps people achieve their dreams and aspirations by putting customers' needs first and providing the right advice and solutions. We operate as John Hancock in the United States and Manulife elsewhere. We provide financial advice, insurance, as well as wealth and asset management solutions for individuals, groups and institutions. At the end of 2016, we had approximately 35,000 employees, 70,000 agents, and thousands of distribution partners, serving more than 22 million customers. At the end of 2016, we had $977 billion (US$728 billion) in assets under management and administration, and in the previous 12 months we made almost $26 billion in payments to our customers.\n\n\n\nOur principal operations are in Asia, Canada and the United States where we have served customers for more than 100 years. With our global headquarters in Toronto, Canada, we trade as 'MFC' on the Toronto, New York, and the Philippine stock exchanges and under '945' in Hong Kong.\n\n\nManulife is committed to supporting a culture of diversity and accessibility across the organization. It is our priority to remove barriers to provide equal access to employment. A Human Resources representative will consult with applicants contacted to participate at any stage of the recruitment process who request an accommodation. Information received regarding the accommodation needs of applicants will be addressed confidentially." + }, + { + "link": "https://www.indeed.ca/company/Harrington-Starr/jobs/Client-Solution-Data-Analyst-669d82f778c2fdca?fccid=5bba21dab6181064&vjs=3", + "location": "Toronto,ON", + "title": "Client Solutions Data Analyst - Fixed Income", + "company": "Harrington Starr", + "salary": NaN, + "desc": "Graduate Data Analyst\nHarrington Starr are working with a leading provider of Portfolio Optimization technology.Our client is hiring for a Client Solutions Analyst to be based out of their Toronto office.\nThe day to day responsibilities will involve but will not be limited to:\nWorking with front and middle office teams at banks and buy sides to gather trade data\nWork closely with clients to ensure the calibre and accuracy of data\nWork as part of a global team and follow the sun support and client services model\nThis is an exciting opportunity to join a growing business.This is an excellent opportunity for an ambitious data and statistics analyst to join an up a growing financial technology company.Our client operates as a start-up business but are owned by a large financial institution, making this an excellent opportunity to grow and get broad exposure within a highly secure and cash rich business.\nTo be successful in this role, you should have the following skills and experience:\nYou will have a background working within a Financial Institution across Fixed Income processes\nYou should have strong data and statistic tools such as VBA, Python, SQL and R Programming\nExcellent communication skills are required, you should be confident working with clients at multiple levels\nYou should enjoy working with quantitative financial data and have a strong attention to detail\nJob Type: Full-time\nSalary: $75,000.00 /hour" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7f0483005462bafc&fccid=628b72be31b2a8d9&vjs=3", + "location": "Toronto,ON", + "title": "Data Engineer", + "company": "Michael Page International", + "salary": NaN, + "desc": "Permanent\nDesign & build Big Data pipeline using Spark, Kafka, Hive, Impala\nPerform data analysis, data processing, and data visualization using SQL\nDesign and build data applications for customer experience\nWork with stakeholders to help them solve problems\nThe Successful Applicant\nBachelor's/Master's degree in Computer Science, Engineering, or similar\nExcellent programming skills in Python and Scala\nExposure to Hadoop and Apache Spark\nExperience designing and building large-scale data applications\nExperience putting data pipelines into production\nFamiliar with database technologies (SQL/NoSQL)\nWhat's on Offer\nCompetitve salary and bonus package\nContact:\nAmanda Esmailian\nQuote job ref: 1310431" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bdfe28f64e0a916d&fccid=9645047fb7b1d4e3&vjs=3", + "location": "Toronto,ON", + "title": "Bioinformatician", + "company": "SickKids", + "salary": NaN, + "desc": "Casual\nThe Data Science team (DS) at The Hospital for Sick Children is seeking a highly motivated Data Scientist. The successful candidate will be able to apply their machine learning knowledge to unique health and biological data. The position will report directly to the DS Manager, and will interact closely with the DS Director along with personnel in other computational and analytical roles within the DS team at SickKids.\nHere's What You'll Get To Do:\nApply state-of-the-art machine learning methods to clinical and molecular data\nContribute to cutting-edge findings in biology and health.\nDevelop data processing and reporting pipelines to manage and maintain data quality and provenance.\nWork in a casual work environment where learning and development are keys to success.\nHere's What You'll Need:\nBachelor of Science in Computer Science, Statistics, Biostatistics, or equivalent.\nProficiency in R and python is essential.\nExperience with running statistical analyses in real data (preferably health related) is required.\nUnderstanding and experience with basic (e.g. random forest, SVMs) and advanced (e.g. deep learning, stochastic processes) machine learning methods is an asset\nKnowledge of biology is a plus\nPossess a good level of proficiency in Linux/Unix.\nAbility to function independently, yet collaboratively within a multidisciplinary team is required.\nAbility to manage competing demands and deadlines with minimal supervision.\nExcellent oral and written communication skills.\nEmployment Type:\n1 year contract (full time) with a possibility of extension\nA complete application should include a statement of interest, a CV, and the names of 2 references. Once the suitable candidate is identified, the position will commence immediately upon completion of the necessary paperwork. The position will remain open until filled." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=769e588f61a9017f&fccid=5bcd1ef0a7f4fb99&vjs=3", + "location": "Toronto,ON", + "title": "Senior Business and Data Analyst", + "company": "Citi", + "salary": NaN, + "desc": "Primary Location: Canada,Ontario,Mississauga\nEducation: Bachelor's Degree\nJob Function: Technology\nSchedule: Full-time\nShift: Day Job\nEmployee Status: Regular\nTravel Time: No\nJob ID: 18033097\n\nDescription\n\nThis role is for a Business technology specialist, to be part of post trade data procurement team.\nThe key responsibilities will include but not limited to :\nHave a deep understanding of the Financial Securities Domain and Trade Lifecycle management of at least one asset class.\nHave complete understanding of the Business Goals & Strategies, and align the technical deliverables to the Business Vision.\nRequirement Gathering & Analysis, estimating potential delivery barriers and provide lead time to Technology Teams.\nProficient in documenting requirements , talking with business stakeholders, articulating and raising queries/clarifications with stakeholders\nPreparing Tactical Reports in Excel using visualization tools like pivots, charts, dashboards etc.\nExperienced in working/partnering with business stakeholders\nProviding Functional Expertise to Technology team queries.\nDevelop Test Case Reviews and ensure consistent and scalable technical solutions.\nUsage of Standard Practices/Templates in all stages of Development Lifecycle.\nRDBMS Concepts, Oracle SQL and PL/SQL Knowledge.\nStrong Analytical Skills with working experience of Visual Modelling Tools (Visio and XL Pivots).\nHave a deep understanding of the Financial Securities Domain and Trade Lifecycle management of at least one asset class.\nHave proficient knowledge of Software Development Lifecycle processes.\nOptional Working Experience in ETL Tools / UNIX Environment Commands.\nHands on experience in writing SQL queries\"\n\nQualifications\n\nRequired Skills and Experience:\nOver all 6 to 10 years experience in data focused initiatives across Post-Trade activities and life cycle.\nGood functional understanding of financial functions/products/instruments/asset class like Derivatives, Money markets, Commodities, Trade and transactions, settlements etc.\nBachelor\u2019s Degree in IT or similar\nCandidate should have minimum of two to three years of working experience in a Data Warehousing Project.\nCandidate should have exposure in working with global teams\nGood analytical skills\nPassion for research and exploration\nSelf starter\nAbility to work in a team or independently\nOrganized and able to manage multiple projects in the stream\nExcellent communication skills and good presentation skills\nExperience in FIX, XML messaging is a plus.\nCiti Canada is an equal opportunity employer. Accordingly, we will make accommodations to respond to the needs of people with disabilities (including, without limitation, physical and mental health disabilities) during the recruitment process and otherwise in accordance with law. Individuals who view themselves as Aboriginals, members of visible minority or racialized communities, and people with disabilities are encouraged to apply." + }, + { + "link": "https://www.indeed.ca/company/Ward-Technology-Talent-Inc./jobs/Senior-System-Data-Analyst-eeb249a9e5653ad1?fccid=f2ed9176e8633cba&vjs=3", + "location": "Toronto,ON", + "title": "Sr. Systems/Data Analyst - CONTRACT", + "company": "Ward Technology Talent", + "salary": NaN, + "desc": "Contract\nJob Summary\nJob Description\nWe are looking for a Sr. Systems/Data Analyst to help with a project that involves the data mapping and pre-migration/upgrade for two legacy Meditech systems.\nThe project involves dictionaries / key data elements that are being standardized / harmonized between the 2 legacy Meditech systems (paper exercise, not being implemented in Meditech).\nThis project is to standardize / harmonize the dictionaries / key data elements between the 2 legacy Billing systems in preparation for the HIS implementation.\nDue to the many integration points / data flows between the clinical and registration systems and Billing, the standardization decisions made in the clinical and registration systems will have a major impact on Billing.\nFrom the business analysis, it is evident that the naming conventions of the master billing charge code dictionary (and the related billing codes in the clinical systems) were not descriptive enough nor had consistent structures to allow efficient reporting, audit and analysis.\nResponsibilities\nAssess clinical / registration standardization decisions' impact on Billing system(s), identify any potential issues, identify options, and make recommendations to resolve\nReview and recommend a Billing system standardization structure that both aligns with the clincial / registration system standardization and that is best practice for Billing system(s)\nRecommend a framework / guiding principles on Billing data / dictionaries, per best practices\nAdvise on issues or questions that arise after delivery of your report (e.g. during Billing dictionary / data standardization detailed work)\nMeditech experience is a must - clinical and financial (billing and supply chain) modules highly preferred\nJob Type: Contract" + }, + { + "link": "https://www.indeed.ca/company/TekStaff-IT-Solutions/jobs/Data-Analyst-c79f184a6fb94eff?fccid=35a6e34d9a964df9&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst II- Hadoop / Autosys", + "company": "TekStaff IT Solutions", + "salary": NaN, + "desc": "Contract\nDuration: 12 months to start with\nTravel / Location: Base: Downtown Toronto, but travel to London ,on as per requirement.\nMUST HAVE:\n1.) AutoSys \u2013 2 yrs\n2.) Data-warehouse \u2013 2 yrs\n3.) Data Analysis \u2013 2 yrs\n4.) Hadoop \u2013 1 yr\n5.) Visual Basic, Java, SQL \u2013 2 yrs\nNICE TO HAVE\n1.) Financial industry\nJob Type: Contract" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8b96e6bf9d399ee4&fccid=18b323e5d99fcec2&vjs=3", + "location": "Toronto,ON", + "title": "Sr. Data Scientist (Machine Learning) - Montreal", + "company": "gdR | Grossman Dorland Recruiting", + "salary": NaN, + "desc": "Permanent\nSr. Data Scientist (Machine Learning) - Montreal\n\ngdR is recruiting an Sr. Data Scientist (Machine Learning) - Montreal for an up-and-coming AI group to create solutions that will be embedded into all aspects of the business. The team members will be dedicated to a line of business and will have full autonomy and executive buy-in for the group\u2019s solutions. Named as one of the Top Companies for 2018 by LinkedIn, the company encourages its employees to pursue continuing education whether that means attending conferences, speaking at events or the opportunity to work on patents.\n\nAbout the Company:\nUp-and-coming AI group to create solutions that will be embedded into all aspects of the business.\nStartup and agile environment, with the stability of an established company.\nOn the list of LinkedIn\u2019s Top Companies for 2018.\nEmphasis on continuing education whether that means attending conferences, speaking at events or getting work patents.\nUnique opportunity to help transform a company that's been established for 100+ years.\n\nWhy Join?\nIt\u2019s a startup and agile environment, with the stability of an established company. The group also has full autonomy and executive buy-in for their solutions. Team members will work together to define and produce workable solutions to the product development group. It\u2019s a unique opportunity to transform a company of 100+ years.\n\nYou\u2019re the ideal Sr. Data Scientist (Machine Learning) - Montreal if you have:\nPh.D or Master\u2019s in Statistics, Applied Math, Computer Science or field related to AI.\nExperience in the following areas: AI, ML, NLP or similar areas.\nExperience with machine learning models to be used in production environments.\n\nAs the Sr. Data Scientist (Machine Learning) - Montreal here\u2019s how you\u2019ll make an impact:\nInject AI solutions into all aspects of the business and the overall business strategy.\nTake ownership of AI projects, deliverables and execution.\nKeep updated on industry trends and research to support AI solutions.\n\nApply today for the Sr. Data Scientist (Machine Learning) - Montreal role or contact Brandon Shim-Ping, Director, Talent, at brandon AT grossmandorland DOT com to learn more.\n\n\nAbout gdR\n\nFounded in 2007, (gdR)s objective is to grow the leadership capacity and capabilities of people and companies in the Canadian tech ecosystem through Executive Recruiting, Individual Contributor Level Recruiting and Leadership Coaching & Development.\n\nWe\u2019re actively involved in the community by creating opportunities for people to connect and learn from one another e.g. Canadian Tech at Scale (in partnership with Shopify & Pivotal), which brings 120+ engineering leaders.\n\ngdR values inclusion in Canada\u2019s tech ecosystem and partners with employers that provide equal opportunities for individuals from diverse groups. If you\u2019re interested in moving to Canada, although we can\u2019t sponsor you here are some resources to help you with your journey.\nFollow gdR on LinkedIn, Twitter and Facebook for updates on new roles in tech." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c676b54f7cf91c48&fccid=105ecfd0283f415f&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst Lead - SAP BODS Developer / Administrator", + "company": "Capgemini", + "salary": NaN, + "desc": "General Accountabilities:\n\nThe successful candidate will be part of the Asset Analytics Project team responsible for the development and testing of new SAP Business Objects Data Services (BODS) interfaces for Hydro One\u2019s Asset Analytics solution.\n\nSpecific Accountabilities:\nSupporting the Asset Analytics project in the:\no Design, develop, test, deploy, and documentation of new BODS interfaces and data conversion programs.\no Assist in the creation of build / run documentation leading to the commissioning of the system and transition to sustainment.\no Provide input and support to optimize and tune new BODS interfaces.\no Provide post deployment support on the new interfaces.\no Provide guidance and train staff new to BODS technology and the new interfaces.\no Provide input to best practices and standards in BODS development.\no Provide technical insight into BODS and its use specific to Asset related applications.\nDiagnosing and resolving issues and problems with the clients' information technology systems, applications, and databases involving several processes. Investigating causes, analyzing and diagnosing the problem and repairing or providing detailed alternative solutions.\nAssessing clients' business requirements to determine their information technology infrastructure and applications needs. Working with clients, vendors and service providers to establish the availability of various technologies and determine the most effective approach. Defining and analyzing alternative solutions and recommending changes to business processes to provide effective information technology systems\nLeading and participating in project teams established to address clients' requirements. Implementing major and minor system releases to apply the required changes and enhancements to the system-planning the work, obtaining approval for the time and resources required, setting priorities, developing the solutions, performing technical and integration testing, carry out configuration and change management, and implementing the finished product.\n\nSpecific Technical Knowledge Required:\nAt least 3 years hands-on current experience with new development and conversion projects using SAP Business Objects Data Services (BODS).\nAt least 3 years hands-on current experience with BODS administration on a UNIX platform.\nAt least 3 years experience in BODS working SAP ECC, SRM and BW, and non-SAP sources/targets.\nFormal SAP BODS training preferred\nExperience in design, build, test, deploy and support (full development life cycle) of BODS solutions.\nGood understanding of asset related data.\nExperience in documentation: technical specification, functional specifications, test plans and results, deployment plans\nExperience with performance tuning of BODS interfaces.\nExperience with SAP ECC, SAP SRM, and SAP BI/BW systems.\nExperience with Oracle, SQL, UNIX, and SQLServer environments.\nExperience with UNIX shell script development.\nRequires a strong understanding of extract-transform-load (ETL) concepts.\nGood understanding of utility asset related functional area.\nIndustry experience: Utility industry experience preferred\nRequires knowledge and experience with the Company's architectures, standards and processes for information technologies, such as, but not limited to, TSDC Maintenance and Application Release Management, Project Management, ITSM, Change and Problem Management, CMM, ITIL, or similar.\n\nGeneral Qualifications:\nRequires a thorough knowledge of information technology systems and applications.\nRequires an understanding of the clients' business to develop effective information technology solutions. Requires excellent communications skills.\nThis knowledge is normally acquired through a 4-year university education in information technology and experience in developing applications and systems.\nProvides advice and guidance on specific aspects of information technology that has a direct impact on the results of the group.\nMay lead sub-project teams established to address clients' requirements. Problems occur when interpreting clients' information technology requirements and when providing advice and guidance. Solutions of technical problems requires innovative thinking to analyze variables involved and requires modifying processes and systems to address the problems.\nWorks with clients to provide information technology services that add value by increasing their efficiency.\nRequires coordinating activities with clients, vendors and service providers to establish the availability of new technologies and make recommendations on information technology purchases.\nRequires working in a normal business office environment where the work requires concentrated attention to develop effective information technology solutions.\n\nOrganizational:\nPossess high organizational and planning skills.\nWorks effectively and independently in a dynamic environment.\nResponsible, takes ownership of work, and follows through to completion.\nPossess a high attention to detail.\nAbility to multi-task.\nAbility and desire to perform admin work as well as technical work.\nAbility to follow processes.\nRequires experience in working with demanding deadlines, high workload and some degree of conflicting priorities.\nSelf motivated, self-managed, and results-oriented with a strong work ethic, excellent organizational skills and perseverance to accomplish objectives.\n\nAnalytical:\nExcellent diagnostic, problem solving and issue resolution ability.\nAble to learn quickly with minimal supervision.\nAbility to determine the clients' true business needs.\nAbility to assess status quo, and come up with new ideas.\nConfidence in the accuracy of recommendations and analytical results.\n\nCommunication:\nHigh written and verbal communication skills.\nAbility to maintain productive business relationships.\nProvides status and feedback.\n\n\nCandidates should be flexible / willing to work across this delivery landscape which includes and not limited to Agile Applications Development, Support and Deployment.\n\n.\nQualifications\n(Includes Data Modeler, Data Miner.) Responsible for importing, cleaning, transforming, validating and modeling data with the purpose of understanding and drawing conclusions from data (may be presented in charts, graphs, and/or tables). Also, design and develop relational databases for collecting and storing data and build and design data input and data collection mechanisms.\n\nRequired Skills and Experience:\n\nYou are responsible for data related activities such as data extraction, profiling, cleansing, de-duplication, standardization, conversion, transformation and loading, data mining, warehousing, archiving and reporting. Responsible for all activities required to ensure optimum performance and data integrity of databases in production environments, in line with the requirements. Responsible for server based databases in development and test environments including database software installation, database creation, performance and capacity design, backup and recovery design, security design.\n\nQualifications: 3-9 years experience, Bachelor\u2019s Degree.\nShould be proficient in Software Engineering Techniques, Software Engineering Architecture, Software Engineering Lifecycle and Data Management.\nShould have progressing skills in Business Analysis, Business Knowledge, Software Engineering Leadership, Architecture Knowledge and Technical Solution Design.\n\nCapgemini is an Equal Opportunity Employer encouraging diversity in the workplace. All qualified applicants will receive consideration for employment without regard to race, national origin, gender identity/expression, age, religion, disability, sexual orientation, genetics, veteran status, marital status or any other characteristic protected by law.\n\nThis is a general description of the Duties, Responsibilities and Qualifications required for this position. Physical, mental, sensory or environmental demands may be referenced in an attempt to communicate the manner in which this position traditionally is performed. Whenever necessary to provide individuals with disabilities an equal employment opportunity, Capgemini will consider reasonable accommodations that might involve varying job requirements and/or changing the way this job is performed, provided that such accommodations do not pose an undue hardship.\n\n\nClick the following link for more information on your rights as an Applicant - http://www.capgemini.com/resources/equal-employment-opportunity-is-the-law\n\n\nAbout Capgemini\n\nA global leader in consulting, technology services and digital transformation, Capgemini is at the forefront of innovation to address the entire breadth of clients\u2019 opportunities in the evolving world of cloud, digital and platforms. Building on its strong 50-year heritage and deep industry-specific expertise, Capgemini enables organizations to realize their business ambitions through an array of services from strategy to operations. Capgemini is driven by the conviction that the business value of technology comes from and through people. It is a multicultural company of 200,000 team members in over 40 countries. The Group reported 2017 global revenues of EUR 12.8 billion (about $14.4 billion USD at 2017 average rate).\n\n\nVisit us at www.capgemini.com. People matter, results count." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5efe92947e7afd2d&fccid=3dd6650be492f5ca&vjs=3", + "location": "Toronto,ON", + "title": "Research Assistant", + "company": "SE Health", + "salary": NaN, + "desc": "POSITION SUMMARY:\nThe SE Health (SE) Research Centre conducts impact-oriented health services research to synthesize, generate, translate, adapt and directly apply scientific evidence in the design, delivery and evaluation of person and family-centred health and social care services.\nThe primary role of the Research Assistant is to support the implementation of health services research projects within the SE Research Centre priority research fields using strong project management and scientific research skills.\nPOSITION RESPONSIBILITIES:\nThis position has three main areas of responsibility:\n1. Represent the SE Research Centre Priority Research Fields:\nSpeak to the SE Research Centre priority research fields and all active projects both internally and externally with other researchers and academic audiences\n2. Participate in strong project management of SE Research Centre health services research projects , in particular:\nCarry out the SE Research Centre Project Management roles of \u2018Data Collector\u2019 or \u2018Data Analyst\u2019 for any project in any of the SE Research Centre priority research fields\nTake on the SE Research Centre Project Management role of \u2018Project Coordinator\u2019 for small/medium projects in any of the SE Research Centre priority research fields\n3. Participate in strong scientific conduct of health services research activities, in particular :\nCollect and analyze qualitative/quantitative health services research data\nSupport the development of various knowledge translation materials and tools\nSort and screen literature from relevant health and social research databases\nTranslate ethics application appendices into research tools for use in research projects\nMonitor and maintain key project knowledge translation outputs\nQUALIFICATIONS:\nEducation & Experience\nBachelor\u2019s degree in a science or health care related discipline from a recognized university\nExperience in health services research in one or more of the following ways:\nPrevious work or studentship as a Research Assistant\nUndergraduate Thesis completed\nUndergraduate Research Methods course completed\nTechnical Competencies & Skills\nExperience in supporting qualitative and quantitative health services research projects\nFamiliarity with the principal health sectors in Canada including hospital, home and community care\nExcellent oral and written communication skills\nExcellent organization and time management skills\nAbility to contribute to a team under complex research and organizational conditions, and in an environment of multiple competing priorities\nDiplomacy and interpersonal skills\nDemonstrated ability to coordinate project activities\nGood problem solving, creative thinking and decision-making capacity\nDemonstrated commitment to person and family-centred health and care\n\nAbout SE Health\nSE Health is a national health care provider that has been opening the door to new possibilities and care experiences for more than a century. Recognized as Canada\u2019s largest social enterprise, we employ 8,000 people and visit 18,000 clients every day. Through the Saint Elizabeth Research Centre, our Health Career Colleges and the Saint Elizabeth Foundation, we are helping to make the future of health care brighter and stronger. Learn more at www.sehc.com or find us on Twitter at @StElizabethSEHC.\nSE Health is committed to the success of all its employees. If you feel you need accommodations because of illness or disability, please do not hesitate to contact Human Resources at hresources@sehc.com at your earliest convenience." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=093128a8ca77d792&fccid=1f664b308b4fe32b&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst 1 / Analyste de donnes 1 (12352)", + "company": "emergiTEL Inc.", + "salary": NaN, + "desc": "In this role, as a key member of our Our Client Health team, you will be joining a growing team of Analysts transforming and converting health data for Canadian doctors to a Our Client EMR (Electronic Medical Record). This is an exciting opportunity to leverage your experience and skillset within an innovative and collaborative environment. Your work will be crucial to the success of the EMR platform within Our Client Health!\n\nWhat YOU Get To Do:\nAs part of the team, you\u2019ll be responsible for:\nExtracting data from various source systems and data stores by performing light business coding (Java/.NET, scripting, etc.)\nMeeting with clients to conduct requirements gathering and perform validation in-person and over teleconference\nMapping and transforming data using various techniques (XSLT, SSIS, MapForce, etc.) based on client input and requirements\nPlanning and performing final transformation, performing validation to ensure no data is lost or corrupted\nPerforming ad-hoc queries (SQL, LINQ, etc.) and reports to analyse client data before and after migration\nWorking with various teams to identify roadblocks, resolve issues, track go-live dates and ensure timely completion for each project\nDocumenting details of projects in Salesforce/Jira and completing cleanup tasks\nExecuting production data migrations (requires occasional evening/weekend work)\nContributing to on-going development and refinement of data migration tools and processes\nTracking issues, communicating project status, and managing project risk\nWhat YOU Bring:\nRequired Knowledge:\nSQL/TSQL\nData Transformation Scripting and Mapping (ex. XML, XSL/XPath)\nFamiliarity with databases such as MSSQL, Oracle, MySQL, etc\nLinux and Groovy an asset\nAgile & Project Management skills\nScripting (ex. Python) or development (ex. Java/C#)\nAwareness of data migration standards\nMedical experience or clinical workflow as asset\nRequired Skills & Abilities:\nAvid problem solver\nAbility to speak and write in English, French is an asset\nAbility to analyse problems and identify root cause\nAbility to perform validation with clients and complete User Acceptance Testing (UAT) for each physician\nAbility to communicate effectively with physicians and other clinic staff to manage their expectations\nAbility to be self-directed in completing project-based work\nAbility to track issues on multiple concurrent projects\nMust have skills:\n: (please at least 3 skills/exp): 1. BASH/Linux scripting or equivalent 2. XML/XSLT experience 3. SQL\nNice to have skills\n: (please at least 3 skills/exp): 1. Java/C# programming experience 2. Agile & Project Management skills 3. Medical experience or clinic workflow" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=dec3055c487d32e2&fccid=a4e4e2eaf26690c9&vjs=3", + "location": "Toronto,ON", + "title": "Data Science Consultant", + "company": "Accenture", + "salary": NaN, + "desc": "The digital revolution is changing everything. It\u2019s everywhere transforming how we work and play. Accenture is looking for talented individuals who want to be part of this change by joining Accenture Applied Intelligence, the world\u2019s largest team in applying data science, machine learning, and AI with deep industry experience to solve clients most sophisticated and difficult challenges. We are a team of experts in data science, data engineering, artificial intelligence and human ingenuity with industry knowledge that spans every industrialized area - energy, health care, transportation, retail, social media, and more. By deploying AI responsibly and combining it with our deep industry and analytics expertise, we enable the digital transformation of organizations, extend human capabilities, and make intelligent products and services a reality. Follow @AccentureAI and visit accenture.com/appliedintelligence.\n\nRole Description: Data Scientist\nAs a consultant working at the Accenture you will work on a team with diverse clients and industries delivering analytics solutions and help clients turn data into actionable insights that drive tangible outcomes, improve performance and help clients lead the market. This position requires in-depth understanding and use of statistical and data analysis tools.\n\nKey Responsibilities:\nYou must be able to effectively utilize statistical, data mining, machine learning, and/or deep learning techniques in delivering data science insights\nApply data science methodologies to deliver insights to clients\nWork closely with internal Accenture teams and clients to understand challenges and create solutions\nProvide thought leadership within projects and leading technologies\nFacilitate the development of \u201crequest for proposals\u201d responses and contract development\nStay abreast of technology trends in multiple industries\nProvide thought leadership within projects and leading technologies\n\nBasic Qualifications\nMinimum 3 years of experience in data science and use of statistical methodologies\nMinimum 3 years of experience capturing, assessing and making recommendations, including reviewing data for completeness and consistency, analyzing and interpreting data\nMinimum 1 years of designing algorithms to address technical problems\nMinimum 1 year of developing machine learning methods, including familiarity with techniques in clustering, regression, regression, optimization, recommendation, and other.\nStrong quantitative and analytical skills with minimum 2 years of experience with data science tools, including Python, R, Scala, Julia, or SAS\nBachelor\u2019s degree in data science and related disciplines as mathematics, statistics, computer science, physics, or related fields. Master\u2019s degree preferred.\nPreferred Qualifications\nPassionate, creative, and forward thinking\nDrive to learn and master new technologies and techniques\nDeadline-driven, organized and able to multi-task\nFamiliarity with using cloud services (AWS, Google, Azure) or Big Data tools (Hadoop, Hive, Spark) in data science solutions\nDemonstrable knowledge in artificial intelligence, machine learning, data science, and other relevant technical domains\nPossess a blend of advanced analytical capabilities and consulting expertise that will create value and insights for our clients\nAbility to work across industries and with cross-functional organizations\nExcellent written and oral communication skills with the ability to clearly communicate results, concepts and ideas to clients\nDemonstrated leadership in professional setting; either military or civilian\nDemonstrated teamwork and collaboration in a professional setting; either military or civilian\nWHAT\u00b4S IN IT FOR YOU?\nCompetitive benefits, including a fair and balanced parental leave policy.\nAt Accenture, we believe in bringing the best to our clients through continuous learning & improvement \u2013 from basic skills to industry-specific content \u2013 available to all our people.\nCareer coaching and mentorship to help you manage your career and develop professionally.\nPerformance Achievement \u2013 our performance management process that focuses on your strengths, progress and career possibilities.\nFantastic opportunities to develop your career across a variety client.\nOpportunities to get involved in corporate citizenship initiatives, from volunteering to doing charity work.\nTo learn more about Accenture, and how you will be challenged and inspired from Day 1, please visit our website at accenture.ca/careers. https://accntu.re/2Hcjdtn\n\nIt is currently our objective to assign our people to work near where they live. However, given the nature of our business and our need to serve our clients our employees must be available to travel when needed.\n\nAccenture does not discriminate on the basis of race, religion, color, sex, age, non-disqualifying physical or mental disability, national origin, sexual orientation, gender identity or expression, or any other basis covered by local law. Accenture is committed to providing employment opportunities to current or former members of the armed forces.\n\nWe are committed to employment equity. We encourage all people, including women, visible minorities, persons with disabilities and persons of aboriginal descent to apply.\nAccenture is a leading global professional services company, providing a broad range of services and solutions in strategy, consulting, digital, technology and operations. Combining unmatched experience and specialized skills across more than 40 industries and all business functions\u2014underpinned by the world\u2019s largest delivery network\u2014Accenture works at the intersection of business and technology to help clients improve their performance and create sustainable value for their stakeholders. With more than 435,000 people serving clients in more than 120 countries, Accenture drives innovation to improve the way the world works and lives. Visit us\nwww.accenture.com" + }, + { + "link": "https://www.indeed.ca/company/Veritaaq/jobs/Bilingual-Data-Analyst-af6915818f832cfa?fccid=d711e85163f98421&vjs=3", + "location": "Toronto,ON", + "title": "Bilingual Data Analyst - Major Telco Client", + "company": "Veritaaq", + "salary": "$35 - $45 an hour", + "desc": "$35 - $45 an hour\nContract\nThis is a contract position for one of our major Telco Client in downtown Toronto as a data analyst. To be considered for this position you must be bilingual in English and French.\nAdvanced Excel Skills\nData manipulation skills \u2013 macro/automation/database\nBA type listening skills\nKnowledge of Server, Network, Security, Telephony, and storage technologies and the interconnectivity between various services such as web, application, and database\nAbility to create process and procedural documentation\nLead the data integrity and information analysis activities to gather and consolidate customer data for migration activities\nAnalyze, document and validate business requirements from business users and function specification requirements using interviews, document analysis, and task and workflow analysis. Refines requirements using critical evaluation techniques.\nDocument process flows for current / proposed processed, workflows, and data flows.\nCommunicates with project managers, subject matter experts, and end users\nPerforms analysis for projects with some impact on and risk to customer service or revenue generation.\nTypically works on multiple, unrelated projects simultaneously.\nActs as liaison between business and system areas.\nEnsures projects align with the business and technical requirements at the strategic level.\nDemonstrated people skills and ability to influence all levels of management including cross functional teams\nJob Type: Contract\nSalary: $35.00 to $45.00 /hour\nExperience:\nServer, Network, Security: 2 years (Preferred)\nvalidate business requirements: 1 year (Preferred)\nAdvanced Excel: 3 years (Preferred)\nmacro/automation/database manipulation: 3 years (Preferred)\nprocedural document creation: 2 years (Preferred)\nLanguage:\nFrench (Preferred)\nEnglish (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1fc98e8562662c8b&fccid=8263389b819d48ea&vjs=3", + "location": "Toronto,ON", + "title": "Business Systems Analyst with Data Analyst skills", + "company": "Modis Canada", + "salary": NaN, + "desc": "Temporary, Contract\nBSA with Data Analysis skills\nDuration: 3 months\nLocation: Downtown\nOur client requires the services of a Sr. Business Systems Analyst with the ability to quickly learn organizational structure, business strategies and processes.\nResponsibilities:\nLead discussions on detailed requirement phases identifying, tracking, escalating and/or resolving business systems issues\nKnowledgeable on business process modeling, process mapping\nWrite clear and well-structured business requirements documents\nAdvanced ability to resolve minor conflicts/issues using different tactics for prior to escalation\nStrong analytical and problem solving skills\nStrong written and verbal communication skills\nAdvanced facilitation and presentation skills\nExperience/knowledge with desktop applications/suites such as MS Excel, SQL Server databases, etc.\nGood organizational skills with the ability to handle multiple concurrent activities and to work successfully under pressure\nExperience/Knowledge with testing, preparing test cases and test automation\nExperience in a cross functional team working in an agile project environment" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9a4cf6ef32bfff91&fccid=39d1c8076d23beb5&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst - HRIS Implementation - 261460", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nData Analyst - HRIS Implementation\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Data Analyst - HRIS Implementation.\nData Analyst - HRIS Implementation - Job Description\nCreate reports for senior and executive level audiences\nContribute to the development of automated reporting solutions\nProactively recommend and source HR data/information\nLeverage key HR partners to deliver requests\nBe an active member of the HR Business Intelligence and Reporting team\nData management including complex reporting required by business leaders\nPreparation of data to support the business in making impactful decisions\nLiaise with HR community to identify, design and develop value added processes and report support\nProvide regular and ad hoc reports to leaders and partners\nConvey results information to a diverse range of audiences to support sound decision making\nSupport the implementation and maintenance of Organization Unit hierarchy in MyHR\nConsistently exercising discretion in managing all data and information\nData Analyst - HRIS Implementation - Mandatory Skills\nAccuracy and attention to detail with a strong understanding of data management and data integrity.\nStrong organizational and time management skills, with the ability to work in a fast-paced environment and manage multiple reporting deadlines and priorities.\nEffective organizational and time management skills, with the ability to multi-task, adapt to changing priorities and deliver effectively on ad hoc requests\nProven ability to develop complex reporting, understand statistical information and make recommendations based on analysis of the data.\nStrong understanding of the regulatory environments in which the bank operates and understanding our governance, control and risk management processes.\nAdvanced expertise in Microsoft Office suite, SQL server, Tableau, other ETL products.\nHighly self-motivated team player who is resourceful and solutions-focused and has the ability to work in both a team environment and independently.\nStrong knowledge of the Bank's operating model and the ability to understand the reporting impacts of changes to the model.\nExcellent written and verbal communication skills along with strong commitment to customer service/responsiveness\nStrong analytical and problem-solving skills with the ability to identify, negotiate, resolve and escalate issues.\nExperience in relationship management and partnering with other departments to achieve a common goal.\nStrong team player\nAbility to identify opportunities for process improvement\nData Analytics and reporting background - 5+ years\nUnderstand statistical information and creating advanced reporting packages - 5+ years\nConvey results information to a diverse range of audiences to support sound decision making - 2+ years\nAdvanced expertise in Microsoft Office suite - 5+ years\nIntermediate/Advanced knowledge with SQL Server Database (executing queries; extracting data from SQL database) - 4+ years\nTableau for reporting/data visualization - 3+ years\nExercising due diligence surrounding sharing of personal/sensitive information\nExcellent communication skills\nData Analyst - HRIS Implementation - Nice to Have Skills\nPrevious Banking/Financial Industry experience\nProviding insights based on analysis\nExperience with HR-related data reporting\nExperience with HRIS systems - Peoplesoft, Kenexa, etc.\nExperience with Workday HR Software\nData Analyst - HRIS Implementation - Assignment Start Date\nASAP - 4 months to start\nData Analyst - HRIS Implementation - Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=12d84ebf398b62c3&fccid=9d98e659fe07fe0e&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Engineer", + "company": "GuruLink", + "salary": NaN, + "desc": "Permanent\nWe believe that understanding data is a fundamental skill and when leveraged well, it can be used to elevate even the best designed products. This is why we\u2019re thrilled to be adding two Data Engineers to our engineering team. We are looking for people to work alongside our engineers and project managers to improve and maintain the integrity of our data systems which are responsible for transforming the millions of raw logs we capture each day into actionable insights used by everybody in the company. These actionable insights are foundational to improving the user experience in our products in a meaningful way. This role is intended for a highly experienced and technically proficient candidate.\nYou will work on:\nAcquiring a complete understanding of how data moves and is transformed across our systems from raw event logs to critical reports consumed by internal teams\nCreating and maintaining optimal data pipelines within our architecture\nBuilding jobs and tools on top of the data pipeline to provide actionable insights into key metrics\nDebugging discrepancy issues that come up in the ETL (e.g. misaligned metrics with 3rd parties, duplicates, failures in the ETL, performance bottlenecks)\nBuilding tools to automate data verification and ensure integrity of our reported metrics\nIntegrating data from multiple sources across internal and external partners\nWorking alongside Architects and Project Managers to strive for greater functionality in our data systems\n\n\nMust Have Skills:\nStrong SQL skills\nExperience with tools used for large scale data processing: Spark, Hadoop, Kafka\nExperience with AWS cloud services: EC2, EMR, RDS, Redshift, Kinesis, Api Gateway. Lambda\nExperience with object-oriented, functional and scripting languages: Scala, Python, Java\nExperience with relational SQL and NoSQL databases, including Redshift, Postgres, Redis and MySQL\nKnowledge of message queuing, stream processing, and highly scalable \u2018big data\u2019 technologies\n\n\n\nNice to Have Skills:\nKnowledge of Machine Learning and experience implementing ML applications\nWorked with real time and streaming analytics\nExperience building tech that operates at scale\nContributed to an Open Source Project\n\n\n\nDetails:\nStarting: ASAP\nTravel: 0%\nDress Code: Casual" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3a9174cab04a10f4&fccid=054f21d6c182fe0d&vjs=3", + "location": "Toronto,ON", + "title": "Data Analyst- Human Resources/Workday", + "company": "BeachHead Inc", + "salary": NaN, + "desc": "Contract\nData Analyst- Human Resources/Workday\n\n#7962\n\nWorking with one of our top financial clients, this role calls for a Data Analyst who will support the innovation, optimization, and simplification of HR data while working on reporting and analysis and support leaders to grow the business, realize efficiencies, drive legendary experience and enable better people and business decisions. The Analyst will provide a high level of service to the HR community and businesses as it relates to producing regular and ad hoc people-based reporting and analysis. This person will create reports for senior and executive level audiences while contributing to the development of automated reporting solutions. The successful candidate will proactively recommend and source HR data/information while leveraging key HR partners to deliver requests. The ideal candidate will be an active member of the HR Business Intelligence and Reporting team while working on Data management including complex reporting required by business leaders.\n\nResponsibilities:\nPreparation of data to support the business in making impactful decisions\nLiaise with HR community to identify, design and develop value-added processes and report support\nProvide regular and ad-hoc reports to leaders and partners\nConvey results information to a diverse range of audiences to support sound decision making\nSupport the implementation and maintenance of Organization Unit hierarchy in MyHR\nRequirements:\nAccuracy and attention to detail with a strong understanding of data management and data integrity\nStrong organizational and time management skills, with the ability to work in a fast-paced environment and manage multiple reporting deadlines and priorities.\nEffective organizational and time management skills, with the ability to multi-task, adapt to changing priorities and deliver effectively on ad-hoc requests\nProven ability to develop complex reporting, understand statistical information and make recommendations based on analysis of the data\nStrong understanding of the regulatory environments in which the client operates and understanding our governance, control and risk management processes\nAdvanced expertise in Microsoft Office suite, SQL server, Tableau, other ETL products\nHighly self-motivated team player who is resourceful and solutions-focused and has the ability to work in both a team environment and independently\nStrong knowledge of the client's operating model and the ability to understand the reporting impacts of changes to the model\nExcellent written and verbal communication skills along with a strong commitment to customer service/responsiveness\nStrong analytical and problem-solving skills with the ability to identify, negotiate, resolve and escalate issues\nExperience in relationship management and partnering with other departments to achieve a common goal\nStrong team player\nAbility to identify opportunities for process improvement\nDesired Skill Set:\n5-7 years of experience with Data Analytics and reporting\n5-7 years of experience with Microsoft Office suite\n5-7 years of experience with SQL Server Database\n3-5 years of experience with Tableau for reporting/data visualization\nExcellent communication skills\nNice to Have:\nExperience within the financial sector\nExperience in providing insights based on analysis\nExperience with HR-related data reporting\nExperience with HRIS systems \u2013 Peoplesoft, Kenexa, etc.\nExperience with Workday HR" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a9ad550610b3d24a&fccid=de71a49b535e21cb&vjs=3", + "location": "Toronto,ON", + "title": "Software Engineer - Customer Experience Assurance", + "company": "IBM", + "salary": NaN, + "desc": "Job Description\nWe are looking for enthusiastic, self-motivated, and passionate individuals to be an integral part of one of the most critical projects in the IBM Analytics organization - \"IBM Cloud Private For Data\" that makes data simple and available across the enterprise to help drive a data driven culture allowing companies to drive towards AI initiatives. The main responsibility will be to drive Customer Experience Assurance for different personas like Data Scientist, Data Curator, and Data Engineer to collaborate with each other on their Data Journey and work with various products within the IBM portfolio. Define tests that will drive the system similar to a customer to ensure a delightful customer experience and appropriate overall system health. You will be working closely with a broad team of developers, testers, designers and offering managers in an agile manner to meet aggressive time lines. This product will change the foundation on how companies build AI and we are looking for people that can lead that vision.\n\n\n\nRequired Technical and Professional Expertise\n\n1 to 5 years of experience in QA Testing\nProven product development/quality assurance techniques and process skills\nJenkins and automated QA pipelines\nSelenium and automated UI Testing\nLinux, Kubernetes, System Admin, System Tuning and Server/Storage skills\nRelational Database, Data Governance and Cataloging, Data Science Tools, and ETL tools\nFast learner, self-motivated, and a passion for usability, simplicity and consistency in software testing\n\nPreferred Tech and Prof Experience\n\nKnowledge of DSx, Db2, Unified Governance and Integration Catalog, and/or IBM Information Server\nKnowledge of Hadoop and NoSQL Databases\nExperience with React or Angular\n\n\n\nEO Statement\nIBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5f0a5e75674b6946&fccid=c09c1d910cb12b34&vjs=3", + "location": "Toronto,ON", + "title": "Application Data Analyst, Private Markets Applications", + "company": "MaxSys Staffing & Consulting", + "salary": NaN, + "desc": "Contract\nOur client in the Pensions and Fund Industry is seeking a Application Data Analyst for their Downtown Toronto Office. This is a 1 year contract to start, possible extension OR offer of permanency.\n\n\nWhy join us?\nOur Client\u0092s Private Markets (\u0093Private Markets\u0094) manages $18 billion in equity capital on behalf of the Client\u0092s pension plan. Through its two investment platforms, Client\u0092s Infrastructure and Private Equity, Private Markets has a diversified, global portfolio of infrastructure and private equity assets. Investments are aimed at generating superior, risk-adjusted returns to help deliver strong and sustainable pensions to company members. It has offices in Toronto, New York, London and Sydney. Our Client is one of Canada\u0092s largest pension funds with net assets of more than $65 billion and an AAA credit rating.\nAs a key member of the Private Markets Applications team, the Application Data Analyst\u0092s primary role is to ensure data quality and integrity across Private Markets Applications. The Application Data Analyst will quickly gain a solid understanding of the Private Markets Application solutions. Applications and tools include CRM, SharePoint, BI and Financial systems. The Application Data Analyst will work closely with the Business to develop and create new reports, dashboards and outputs based on business requirements. In addition, the Application Data Analyst will become involved in other business projects and work on data migration planning, data clean up and data analysis and other project activities. The Application Data Analyst is expected to work with BI tools to integrate into applications across Private Markets. The Application Data Analyst will work closely with the Manager, Private Markets as well as other representatives across the Enterprise IT function to ensure to drive towards the Client\u0092s Enterprise strategy.\nAs a member of this team, you will be responsible for:\n\u0095 Gaining a solid understanding of the OPM CRM Solution based on Microsoft Dynamics CRM\n\u0095 Gaining a solid understanding of all other OPM Applications\n\u0095 Work with BI tools to create reports, and enable users to perform data analysis from various OPM applications\n\u0095 Developing and implementing data analyses, data collection systems and other strategies that optimize statistical efficiency and quality\n\u0095 Responsible for ensuring data quality across Private Markets Applications \u2013 work with the Applications team / Business team to implement processes to ensure data quality and integrity\n\u0095 Analyze requirements for data, reporting, workflow, logical processes, hardware and operating system environment, interface with other systems, internal and external checks, controls, and outputs\n\u0095 Work with management to prioritize business and information needs\n\u0095 Creation of reports, dashboards and outputs for business users\n\u0095 Locate and define new process improvement opportunities\n\u0095 Provide time estimates for assigned work to support the development of timelines and project plans and work with the Manager, Private Markets Applications to appropriately manage business expectations.\n\u0095 Data clean up and migration tasks where required\n\u0095 Other tasks as assigned by Management\nTo succeed in this role, you:\n\u0095 Proven experience working in a data analyst role\n\u0095 Significant experience using and implementing BI solutions including Power BI, Tableau etc.\n\u0095 Technical expertise regarding data models, database design development, data mining and generation of business reports\n\u0095 Experience with Microsoft Dynamics CRM\n\u0095 Experience with other Microsoft Applications a huge plus\n\u0095 Experience working with Financial systems including Microsoft NAV a plus\n\u0095 Strong knowledge of and experience with reporting packages, databases, programming etc.\n\u0095 Strong analytical skills with ability to collect, organize, analyze and disseminate significant amounts of information with attention to detail and accuracy\n\u0095 Demonstrated proficiency in understanding and implementing business workflows and processes\n\u0095 Training users on new reports / dashboards / BI tools\n\u0095 Troubleshooting data related issues\n\u0095 Support with Data Migration activities\n\u0095 Strong initiative to find ways to improve solutions, systems, and processes\n\u0095 Excellent understanding of the organization\u0092s goals and objectives.\n\u0095 Any Microsoft Certifications are a huge plus\n\u0095 College or University degree in Computer Science, Mathematics, Economics, Information Management or a related discipline\nPersonal Attributes\n\u0095 Able to exercise independent judgement and take action on it.\n\u0095 Excellent analytical, mathematical, and creative problem-solving skills.\n\u0095 Excellent listening, interpersonal, written, and oral communication skills.\n\u0095 Logical and efficient, with keen attention to detail.\n\u0095 Highly self-motivated and directed.\n\u0095 Ability to effectively prioritize and execute tasks while under pressure.\n\u0095 Experience working in a team-oriented, collaborative environment.\n\u0095 Internally motivated, able to work proficiently both independently and in a team environment\n\u0095 Proven communication skills with both internal team members and external business stakeholders\n\n\nTo Apply, Please send your resume to: r.bagga@maxsys.ca\n\n\nMST" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7ntxl6CekgI_C-SvR7t5FYqnJczOpObGrbhYf00GyXwgnCPnqljEcI6-v1f6L2EMpFBZhOquJhlfCdKagBlnDZGGaWzJv_5jKmkcJpwaczp7XGTDFBEUdEIiGwfMciuluCoFPJL4YvIuSZ69tFUa5vTP9ORvautge-ENA0nfGCyaY5DDanBmqXUc5JurEEdSetpFTPmW1UzjNlryBy72unQoX3rGFZB3KuuLIuCZlDJguC5-7hzCyLN-1JHHERIb1qE6HSHJLYZ9wL2odolBfXlfNgmxDWKatDmwlnCJI1Fettt9Wgye9nqk2XrqFveHsaLzGIlzSnVdSpFHwYSnj7JogpMkfP795BDKtkR8uaGPKhY0f4z_hHFg0f5yoP1BLd_hUXrs41FXmEeGb1nKcyoyeEwrkXqLC_NXe7Cfp3_wC_rSJaL7DHVQYQ2x7CzoBa-v1iO7thDMi1QOOotORMHMpegq5x7aZ7w3hnIGGufKv5oFFTcQ28sNAnTsrGbbqONsae7MkLrS0kLwXSWU2o9Ig8O8qlvTHv9VLQkYGuTMCX3qtpQO166AUNCmmSCLRqZEGFpgsBghZMVPcnTr1AWMauOjJr-usiY&vjs=3&p=3&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Marketing Consultant - Data Scientist - 262344", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nMarketing Data Analyst / Data Scientist\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Marketing Data Analyst / Data Scientist.\nMarketing Data Analyst / Data Scientist - Job Description\nManage and enhance daily/weekly/monthly reporting to provide results and context to deliver actionable insights, not just reporting data\nManage, prioritize, and respond to ad-hoc requests\nUncover and identify opportunities to improve the customer experience by leveraging statistical approaches against multiple sources of data including internal sales/transactions, CRMs, and external 3rd party data/benchmarks\nResearch, design and implement reporting infrastructure that leads to automated and flexible reporting\nPerform data maintenance tasks when required to ensure ongoing data integrity\nWork closely with and build strong relationships with LOB partners\nMarketing Data Analyst / Data Scientist - Mandatory Skills\nExperience working with SAS/SQL is required\nGood verbal and written communication skills; able to effectively present analytics data to Business and Marketing users\nDriven to understand the relationship between data and the business\nPost-Secondary education in Math, Computer Science, Business, Marketing, or related field\nMarketing Data Analyst / Data Scientist - Nice to Have Skills\nWork experience (incl. internships) in Financial industry would be an asset\nExperience in visualization tools such as Spotfire or Tableau would be an asset\nExperience working with CRMs such as Microsoft Dynamics and salesforce.com would be an asset\nMarketing Data Analyst / Data Scientist - Assignment Start Date\nASAP - 12 months to start\nMarketing Data Analyst / Data Scientist - Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3TZs8s_K_8c3BAkEYAHQBDEdCv28K2qWT4XD65DctvKIQ5xBFEiN6Q2BwfTEBLhvzI2M_5JhJZtskjMze0_imkiXMarqa8juRKXTsb1n84hUEuyEvbkxr2XJBaPqqY278NNRSjXBtSY9n73xRIlOUYO0DK4PDA1S35OmOnFXlDpdSUv0lWwW19z7nfX2Yb-o7WB_pjxxcWG8zU0j1nFxW9zlaODo6nstBJdXd8Ttj1-0ytxMsuef6d99AnTr6tkVJIC3XXAq4Sv8JdAd8TWXBs8ubGf7hk0qt3vdf_mCEuI_fT4pG85XtEoDyhWcYrAm_9baTKWj3_ZsXw4lrdVsKA1v84PATKQEP8FKzqY4vs_uhBQsvoZ79dZ6p1caeKsnGZrXZ5bdEyM1nkUbqG7i0MfXQIxzCxghkLniL2LscssQ8T4Optvm8pDQ_3vs24TWZicpZUk8Y6ozAG-0e8Rd3s85YF8eO-pOJYNhXRvc6ECg7w65aKgRXlNoSPzWMkVYnMKTZllQheQB64YPQD8QbTBuloxtfoKZFua4krGa-nplk4AEXthVNTxby7ACIT7UCTEeM3AcfLwApv-vtiz-MYMxPRdtFEBkBP4xt7u7MrFaw-VQO77_LFND6T6IwEpCmAblEt_NZL00BD8K56ahcuxt7a3Fp6usxk9gPF-Dz8DjOrV2j28d-HYhT_gPbNzQXzP8upEm8jTLeCsrf0juF1gRi7X_TsUSRPOmWJXsIQm8NetwtrCO_wMySZDlnwHrur6xI3YXZiyrXCGXd_Fj5PHuot19llZ2Ki_9yJLcESxw==&vjs=3&p=4&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Logojoy", + "salary": NaN, + "desc": "Logojoy is looking for a machine learning focussed Data Scientist to join our AI lab. We have an exciting long term project here that will require a dedicated individual to look at our existing research, data and algorithms and come up with a solution for a new intelligence system we\u2019re creating.\nThe role:\nCollaborate with engineering and product development teams.\nBuild generative models and machine-learning algorithms.\nKeep current with the state of the art in machine learning research.\nAnalyze large amounts of information to discover trends and patterns.\nPropose solutions and strategies to business challenges.\nUndertake preprocessing of structured and unstructured data.\nPropose creative solutions to hard machine learning problems.\nCollaborate with designers and developers to expand Logojoy\u2019s product offerings.\nGenerate original design elements using deep learning and data science.\n\nRequirements\nYour background:\nA solid knowledge of Python and ideally an understanding of Javascript.\nHands on experience working on machine learning or a relevant degree (ie. Machine learning/AI, physics, software engineering, math, computer science.)\nA strong understanding of ML concepts, theories and algorithms.\nExperience preparing large datasets.\nProfessional experience with Tensorflow or Torch.\nMust have database experience.\n\nBenefits\nWe offer a whole range of benefits to make life just that little bit easier, some of our benefits below:\nStock Options.\nA guaranteed end of year bonus.\nUnlimited vacation.\nA personal learning and development budget.\nHealth and dental care.\nMoney every month towards a fitness activity of your choice.\nFlexible working." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aqmv_5JD5v6gg1ICRL12VY6BolF0XAUkQtat1DEGOKAXfQ1dVUDIPnIZ_mCCh7xlyQW7DAuc1kdzDGEwToHb14mp3uMqX0pcouZuLjYghzjGEEZCxVwhcSYtd9FBhxZEFmSBw17mleeeHpUQJadVhpKJSq7gUmaaJT9wx7qoaswg6fGp2ey0twnYXxqFMvO41FO1OUknGhacGKMSzVyuTueRbW8CwQqDk1PovxN84BtJl8yIjZlAdvtxMpkfqAnyXEPIdroxsDzjYcYDVNiWE0STUO_l47WWH9UDOk4JRe2ZUfj1FdwZnkUbLsbSytMK767gW9vYF7eEpeowsTGKgPyGa9ujoLkrJcbK2JscpQ-HmFct1fK3VO-0l26bbuQF5wYxlgfTZT79_EPwSNgXcOvMV5z9gArn4pKDDbyvRnFIdd2R8StnT__MOzTls50AD7FKDy3W_-cCkgojgDGzkRtGPXd-ctfn1gnmeAHWezRFNzy-qf3fyY2jMReP867uRUcNfaMYY8sWERuCpQUaSYdGgBaJ6A7j1n6OlPT8_295HxwThqSj-DHZvHyl741xfQ5C8GOyEeP0JDXQv_3NYl7JyTBf-og_djaERaG996K65XSEfZStCi7X4j4tFkXpxmEugm1in-R04BlgnEd5lq0DSE3YcHpAoBc83lZqmiXE9lzlRcBfVGq1vUS_Ts9Q-SDmVhGgt6zJuPKu9yYbPqt6GQzoZN43FfilXxxd8BZVJke8RizkX4cj4j96rKTLCO02hr3fBmTjAnxwHBCBwjx8kuMEv0O_EPRtTqVLquWASwNrHhNHt-L7RL6m1nVr9AMXmUabHZs8hpUMXOBW8pWj8xbzMXgT5F9pq5nn4by2OWq86x1_H1I3RoSfDgaDQ8bC9Atb8E999Kb882dqvT6lvyHVIl9Ync1jct55vkE1xhxB-6TJgBYLI0w-cixgNLnf7vIBFCyugflY1mA7MirVgmtTYJk1IKKrULk2dZLCD9E6OkeLemfMiAoI-FwPtq-ZWjT4lgMVqsry09aiKxbf2OgWsu-YW7_6MgrjaE_8U9z3N37vbWQtgktUshpTI3NvA-0pC8StV_gYgR_wYCwLVnioPJFRYG5xw9CAEvsbleXq5lbXbKnlIleX8OaXAVVyIkYF7sEP2BnuxBjEbuwlCtJ2wyjJE=&vjs=3&p=5&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Analyst", + "company": "Cox Automotive", + "salary": NaN, + "desc": "Description\n\nDealetrack, a business of Cox Automotive, is looking for a Data Analyst who will be responsible for the design, maintenance, and on-going support of operational and compliance reports as well as dashboards. This individual will ensure optimal efficiency by monitoring work quality as well as delivering reports, statistics, data analysis, and recommendations for improvement. The Data Analyst will also work with various organizations across the company to facilitate process and product improvements.\n\nPrimary Responsibilities and Essential Functions\nCommunicate insights and suggest improvements based on data and observed trends\nDevelop and present standard and ad-hoc reports and analysis to stakeholders across the organization\nPerform proactive and reactive analyses to ensure data integrity\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nUndertake preprocessing of structured and unstructured data\nBuild predictive models and machine-learning algorithms\nPresent information using data visualization techniques\nPerforming exploratory data analysis, generates and tests working hypotheses, and uncovers noteworthy trends and relationship\nImplement algorithms to power user-facing data-driven features\nBe a champion for data science by helping business users understand algorithms outputs thru meaningful metrics and visualizations.\nDevelop python scripts/methods for a range of subject areas by conducting research on existing Python and R libraries for agent based, predictive, inferential, and optimization models;\nSupport visualizations and client reporting through meaningful dashboards, graphics and maps;\nUse strong analytical skills, business acumen and attention to quality to provide data and analysis to assist in solving complex problems\n\n\nQualifications\n\nBS/BA in related discipline\n2-5 years of experience in related technology field OR MS/MA and generally 2-4 years of experience in related technology field\nKnowledge of and experience with Microsoft Business Intelligence suite (SSIS,SSAS, SSRS) and Microsoft BI Publisher\nHands on experience in SQL and RDBMS (Oracle & SQL Server)\nExcellent interpersonal, leadership, and presentation skills\nMust be able to work with minimal supervision as this position requires owning initiatives from inception to execution\n\n\n\n\nAbout Cox Automotive\nCox Automotive Inc. makes buying, selling and owning cars easier for everyone, while also enabling mobility services. The global company\u2019s 34,000-plus team members and family of brands, including Autotrader\u00ae, Clutch Technologies, Dealer.com\u00ae, Dealertrack\u00ae, Kelley Blue Book\u00ae, Manheim\u00ae, NextGear Capital\u00ae, VinSolutions\u00ae, vAuto\u00ae and Xtime\u00ae, are passionate about helping millions of car shoppers, tens of thousands of auto dealer clients across five continents and many others throughout the automotive industry thrive for generations to come. Cox Automotive is a subsidiary of Cox Enterprises Inc., a privately-owned, Atlanta-based company with revenues exceeding $20 billion. www.coxautoinc.com\nCox is an Equal Employment Opportunity employer - All qualified applicants/employees will receive consideration for employment without regard to that individual\u2019s age, race, color, religion or creed, national origin or ancestry, sex (including pregnancy), sexual orientation, gender, gender identity, physical or mental disability, veteran status, genetic information, ethnicity, citizenship, or any other characteristic protected by law.\nStatement to ALL Third-Party Agencies and Similar Organizations: Cox accepts resumes only from agencies with which we formally engage their services. Please do not forward resumes to our applicant tracking system, Cox employees, Cox hiring manager, or send to any Cox facility. Cox is not responsible for any fees or charges associated with unsolicited resumes.\n\nOrganization: Cox Automotive\n\nPrimary Location: CA-ON-Mississauga-2700 Matheson Blvd E\n\nEmployee Status: Regular\n\nJob Level: Individual Contributor\n\nShift: Day Job\n\nTravel: No\n\nSchedule: Full-time\n\nUnposting Date: Ongoing" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7ntxl6CekgI_C-SvR7t5FYqnJczOpObGrbhYf00GyXwgnCPnqljEcI6-v1f6L2EMpFBZhOquJhlfCdKagBlnDZGGaWzJv_5jKmkYmrAYYDueq_5hn8qWUb6W2_S12G___tQGShrH8cigEMHgdAmjy9RMBVXtyoisST_gecCHXOzoxThKVbKZQ_dh5mgaiYIu41BH32YtcA3f-wC2hcDANjZPWXoTJVumUJ9cm0tK-swmPdzIMLrw0suwqvTTrZ7g2ZqqAHB1d4N4YkZynvDzjFQlDR9gkbGe3IhUcK1ORkUvRxqB2-0XWxYV__LuUlqJFuGWOuJcmIykQqLAevLoWi-dvU0OTKuCKFICvsoR-rpTX4CD1ut2Dbd2G4Zv6-qOYV6m5wk_mxH3rLt97Oo3WZHhQSiHHxFQlNvCrHYkP0Vhp8CaLOrcBJrNfM9wZWZwtaliY-SaO04sxjuLXM8yk5cdR_OoIscEKm7b3d-IAoepzqttQrz8dsa6p_7nfT1rJ4ieMBcJIKspimkYBgeokgaQVXkQrg_w8JeUnymwD9LriquqxJdexcb2bx_xcU3pBe7bLgdFGn5Q5nkaxTr-RU2-cvmMbjmftNN&vjs=3&p=1&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Marketing Consultant - Data Scientist - 262344", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nMarketing Data Analyst / Data Scientist\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Marketing Data Analyst / Data Scientist.\nMarketing Data Analyst / Data Scientist - Job Description\nManage and enhance daily/weekly/monthly reporting to provide results and context to deliver actionable insights, not just reporting data\nManage, prioritize, and respond to ad-hoc requests\nUncover and identify opportunities to improve the customer experience by leveraging statistical approaches against multiple sources of data including internal sales/transactions, CRMs, and external 3rd party data/benchmarks\nResearch, design and implement reporting infrastructure that leads to automated and flexible reporting\nPerform data maintenance tasks when required to ensure ongoing data integrity\nWork closely with and build strong relationships with LOB partners\nMarketing Data Analyst / Data Scientist - Mandatory Skills\nExperience working with SAS/SQL is required\nGood verbal and written communication skills; able to effectively present analytics data to Business and Marketing users\nDriven to understand the relationship between data and the business\nPost-Secondary education in Math, Computer Science, Business, Marketing, or related field\nMarketing Data Analyst / Data Scientist - Nice to Have Skills\nWork experience (incl. internships) in Financial industry would be an asset\nExperience in visualization tools such as Spotfire or Tableau would be an asset\nExperience working with CRMs such as Microsoft Dynamics and salesforce.com would be an asset\nMarketing Data Analyst / Data Scientist - Assignment Start Date\nASAP - 12 months to start\nMarketing Data Analyst / Data Scientist - Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrIC7ba-c9WBCFccyPj-p-NVsbRmEJW59M_8u4WRwgk-ycwwrtTu2I9Dde4d5HvHJTKL6YEpVAaMLALGJ0KX8C1MET7CYPgGsIEa7VDbu_uyMJW4aFStmkeMDykIq90ecUeFjIeb0sOFLURmmAMUHjv-ZQLRvw5y-wxg68zqwhZXlS0C4gDtv0GScqG44YtWlggZkrJxUwcQETebcE4qU-582AvgPW2I_7rcJDUfvodlZ5mpj8Io_f0nVQ_EGl-5qGTLxxKTvk4Wu0nHFU35aOlOnxEdHMvzP4TD9LlcBOpwiQVobWXZZCKdJHMiQam6HDayx7UIkMSRm1HEqLaXksryoU1gmISvhIgNV_ZdxWfnjLIaN-aVqlkmECUuSMwposPjYDp9KU5rHOJ1Ks0LyLlsiHimAWSo-KyFq6BrsaZnkPOAG83iDWHh5M6bN_HhS5fwRU8NibFnRz6uhIE5nttf2Evl_fL3jBYGLQzWmNQcua0lt_thNuojlkcPxVBn78H2-6484ELT76Wp4dZd49rmqtR9YtbJ9-6ApRRWyuO86rg==&vjs=3&p=2&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Senior Data Analyst", + "company": "Sun Life Financial", + "salary": NaN, + "desc": "At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nSun Life has launched an ambitious journey to deploy data as a foundational pillar and strategy across the whole business. Be a part of an exciting and challenging opportunity by becoming part of the analytics community helping to accelerate the growth and application of data science capabilities.\n\nAs the Senior Data Analyst (Senior Analyst, Client Insights), you will be part of a large analytics community and will be focused within the Individual Insurance & Wealth (IIW) management business helping the team by, but not limited to, mining data for business insights, analyzing and interpreting trends using statistical tools and techniques, reporting on business performance, and triaging code and data-related issues.\n\nWithin SLF Canada, IIW is one of the largest business units, with over 1,700 employees. Individual accounts for approximately 20% of worldwide earnings in the overall Sun Life Financial group of companies, and over 45% of Canadian earnings. We manufacture and distribute leading-edge life insurance, health insurance and wealth management products and solutions for over two million individual customers.\n\nThe Senior Data Analyst (Senior Analyst, Client Insights), role sits in the client experience insights team within IIW, a team focused on using data and analytics to understand our clients and how our business can best support them in achieving their goals of lifetime financial security and living healthier lives. The team supports the IIW marketing team, but this role will be focused on short to medium term special projects, tackling the most pressing business issues using data and analytics to change decisions and the way we do business.\n\nSun Life views success in this role related to 4 key characteristics:\nFierce curiosity. You are drawn to discovering and leveraging new data and taking on challenging business puzzles. Understanding business. We\u2019ve got a lot of data, but it\u2019s not going to turn itself into insights, and you can\u2019t help with that unless you understand what the numbers mean. A passion for solving problems. The most successful data analysts don\u2019t just spin data and give numbers, they solve the problem. Technical skills. How to wrangle structured data is a must (i.e., SQL) with strong SAS skills needed currently and the opportunity to move to other analytical tools (R, Python etc) as our data environment matures.\n\nAccountabilities:\nAnalyze and interpret data to identify key insights and opportunities to better understand advisor and client behaviour through data mining client databases and other information systems, including analysis of CRM data, web and mobile applications to enhance the advisor and client experience\nHelp tackle key business problems via analytical work, from requirements specification, data gathering, analyst and statistical model building to presentations and adoption\nWork closely with stakeholders across Sun Life as a subject matter expert in the individual client data and to understand their business problems and how data can be best leveraged to inform decisions\nAbility to draw out business insights from analytical output and work with team leads to put together business recommendations.\nPut together effective presentations of findings and desire to present to multiple levels of stakeholders\nLeverage internal training, peers and other sources to continue to grow capabilities\nAn active contributing member to the analytics academy to help foster and grow the data science community at Sun Life\n\nKnowledge, Skills & Abilities:\n5+ years working with data (i.e., quantitative analysis experience, including handling, manipulating and analyzing data and creating analytical reports)\nComfortable writing complex SQL queries to extract and integrate data from multiple database sources\nExperience with building predictive and prescriptive models in a business setting (i.e., regression, decision trees, deep learning etc.)\nExpert using SAS to work with data, including macros\nExperience with BI tools such as Tableau to aid in effective and concise oral and written storytelling and insights communication\nAbility to work as a team to help deliver multiple projects with courage in managing expectations of team leaders\nDemonstrated business acumen and ability to translate knowledge of audience insights into marketing strategies\nProven track record of successfully operating in a matrix environment with cross-function team participation successes\nStrong partnering approach with a commitment to meeting internal and external business partners' unique needs and expectations\nBSc in a statistical, mathematical, or technical field (i.e., computer science)\n\nNice to haves:\nPast experience in life insurance/wealth management, or other financial services industry (e.g., retail banking, credit card, re-insurance and casualty insurance)\nMSc preferably in a statistical, mathematical, or technical field (i.e., computer science)\nAdditional statistical programming languages (i.e., Python/R)\nExperience working with unstructured data\nBig Data Technologies: Hadoop, HDFS, Hive, HBase, Storm, Spark, Kafka, etc.\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process or those needing job postings in an alternative format may e-mail a request to \u2018thebrightside@sunlife.com\u2019.\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\nLI-AD1\n\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n30/10/2018" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1b40b0f15ed194d1&fccid=2bef55e014d470c4&vjs=3", + "location": "Toronto,ON", + "title": "Senior Business Process & Data Analyst, Data & Implementation Science", + "company": "University Health Network", + "salary": NaN, + "desc": "Permanent\nDigitally enabling the good work at UHN!\n\nUHN is a major landmark in Canada\u2019s health care system with four hospitals, five research institutes, and our Michener Institute of Education. Our purpose is to transform lives and communities through excellence in care, discovery, and learning. With over 1,200 beds, more than one million clinic visits per year, and a budget of over $2 billion, UHN and its 16,000 employees make a difference in the lives of patients and their families every day.\nFor more information on UHN, visit www.uhn.ca.\nOVERVIEW OF THE POSITION:\nThe Data and Implementation Science Team supports impactful delivery of solutions benefiting the health system; discovers, validates, designs and delivers opportunities of change, and brings contextual awareness through data to ensure successful implementations, value and outcomes for UHN\u2019s patients.\nAn exciting opportunity is available to showcase your talents as a Senior Analyst. We are seeking a bold, creative, and innovative individual who can lead and support various types of digital projects that support clinicians, researchers, educators, patients, and corporate business areas. These initiatives include process redesign, technology strategy, data analytics, and system selection/design and implementation.\nIn your role, you will design solutions that are patient-centric and data-driven, bring value to our stakeholders, and achieve UHN\u2019s business objectives. The responsibilities include:\n\nAnalyze business needs, problems, opportunities, and solution scope\nEvaluate and validate solution value and benefits to the organization, supporting business case development and return on investment analysis\nFacilitate process and design workshops with multidisciplinary groups to identify, validate, and document clinical, business and technical requirements\nConduct workflow review and process redesign, and support continuous improvement processes\nCoordinate system design, build, and testing\nDesign data collection processes, collect and analyze data, lead data reporting and data visualization activities\nApply rigorous project management techniques to assist in the management of project plans, schedules, status reports, and budgets\nApply sound change management techniques for effective stakeholder engagement and communications, training, and implementation support\nDevelop an adequate level of knowledge of the subject matter and digital systems being managed to effectively move projects forward\nLead simple to moderately complex projects of small to medium scope\n\nQUALIFICATIONS:\n\nExperience, Education & Certifications\n\nUndergraduate Degree in Health Informatics, Computer Science, Epidemiology, Industrial Engineering, Business, or related field\nMinimum 3 years of project management, business process/analysis, and data analysis experience or equivalent\nSound knowledge of project management (project planning, implementation, evaluation, risk assessment, benefits realization)\nExperience leading project workstreams or small projects independently, and either supervising or influencing project team members\nExperience in leading and conducting workflow analysis, value stream mapping, data mapping, and Plan-Do-Study-Act cycles\nExperience leading and performing application testing (e.g. unit, regression, acceptance testing)\nExperience in applying change management methodologies and tools\nExperience in delivering management-level presentations, training and/or end user support\nExperience with hardware and/or software vendor relations an asset\nProject Management Professional (PMP) or Change Management certification an asset\nClinical training and experience with electronic patient record systems an asset\nFamiliarity with healthcare information systems, interfaces, HL7, ITIL, and/or enterprise architecture an asset\nSkills\nExcellent problem definition, problem resolution, business analysis, and systems analysis skills\nDemonstrated proficiency in qualitative and quantitative data analytics, data visualization, and data reporting\nExcellent written and oral communication skills\nExcellent prioritization, organization skills and flexibility to work in a highly dynamic and fast-paced environment\nStrong facilitation, interviewing, conflict resolution, and consensus-building skills\nExcellent interpersonal and client relationship skills, with the ability to communicate effectively with both technical and non-technical teams\nExcellent team building, listening, coaching, and mentorship skills\nDemonstrated ability to work independently and also as a contributing team member\nWell-developed ability to evaluate situations and make judgement calls on timely issue escalation\nProficient use of computer, software, and peripheral equipment (MS Office suite, MS Project, MS Visio, and scrum or enterprise work management tools such as Kanban, Atlassian Jira, ServiceNow)\nMeetings and Travel:\nOffice is in the Toronto Downtown area (Yonge/Dundas). Some travel throughout the GTA is required, dependent on project assignment.\nReasons to Stay and Grow with UHN\nWe are committed to making UHN a preferred place to work and learn. UHN offers exceptional benefits and programs to our employees, activated upon their start date. These include medical and dental benefits, a leading pension plan (HOOPP) with retirement income for life, group life insurance, and a strong vacation package.\nPOSTED DATE: October 3, 2018 - October 31, 2018 (or until filled)\nStaffing Advisor, Human Resources RFE 2nd Floor \u2013 Posting #823776\n\nFor current UHN employees, only those who have successfully completed their probationary period, have a good employee record along with satisfactory attendance in accordance with UHN's attendance management program, and possess all the required experience and qualifications should apply.\nUniversity Health Network thanks all applicants, however, only those selected for an interview will be contacted. UHN is a respectful, caring, and inclusive workplace. We are committed to championing accessibility, diversity and equal opportunity. Requests for accommodation can be made at any stage of the recruitment process providing the applicant has met the Bona-fide requirements for the open position. Applicants need to make their requirements known when contacted." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=41116b083e851dd9&fccid=105ecfd0283f415f&vjs=3", + "location": "Toronto,ON", + "title": "Senior Software Engineer - Senior Data Science Engineer", + "company": "Capgemini", + "salary": NaN, + "desc": "Required Skills and Experience:\nYou Supervise, mentor, guide other data analysts.\nRepresent data analyst team in project team meetings.\nResponsible for importing, cleaning, transforming, validating and modeling data with the purpose of understanding and drawing conclusions from data (may be presented in charts, graphs, and/or tables).\nDesign and develop relational databases for collecting and storing data and build and design data input and data collection mechanisms\nMust have experience in Software Engineering Techniques, Software Engineering Architecture, Software Engineering Lifecycle and Data Management.\nShould be proficient in Business Analysis, Business Knowledge, Software Engineering Leadership, Architecture Knowledge and Technical Solution Design.\nExperienced Apache Spark / Big Data (Spark with Scala preferred)\nMust have knowledge of statistical concepts such as regression, time series, mixed model, Bayesian methods, clustering, etc. to analyze data and provide insights\nMust have experience in designing and implementing machine learning or statistical models for big data analytics using Spark-ML / Tensorflow\nShould be able to present the results with any visualization tools\nUnderstanding of Hadoop, Hive, Kafka & Cloud technologies\nKnowledge of SAS skills will be preferred\nMust be able to work independently\n\n\nCandidates should be flexible / willing to work across this delivery landscape which includes and not limited to Agile Applications Development, Support and Deployment.\n\n\nQualifications\nSoftware Engineers perform requirements analysis. They then design, develop or maintain the physical application (components) or the application environment, based on the Software Architecture (models and principles). Activities include coding, integrating, implementing, installing or changing frameworks and standard components, or technical and functional application management. A Software Engineer also develops languages, methods, frameworks and tools, and/or undertakes activities in support of server-based databases in development, test and production environments.\n\nRequired Skills and Experience:\n\nYou have mastered several Software Engineering areas, applications or database environments. You act as a Software Engineering stream leader with technical delivery ownership within a (limited) number of technology areas. You contribute to bids or client proposals based on your technological expertise. You also act as a team leader with delivery ownership, and guide individuals and groups towards desired outcomes. You actively participate in at least one community and contribute to community discussions.\n\nQualification: Minimum 5 years experience, Bachelor\u2019s Degree.\nCertification: Should have SE Level 1 and seeking level 2.\nShould be proficient in Business Analysis, Business Knowledge, Software Engineering, Testing, Data Management, Architecture Knowledge and Technical Solution Design.\n\nCapgemini is an Equal Opportunity Employer encouraging diversity in the workplace. All qualified applicants will receive consideration for employment without regard to race, national origin, gender identity/expression, age, religion, disability, sexual orientation, genetics, veteran status, marital status or any other characteristic protected by law.\n\nThis is a general description of the Duties, Responsibilities and Qualifications required for this position. Physical, mental, sensory or environmental demands may be referenced in an attempt to communicate the manner in which this position traditionally is performed. Whenever necessary to provide individuals with disabilities an equal employment opportunity, Capgemini will consider reasonable accommodations that might involve varying job requirements and/or changing the way this job is performed, provided that such accommodations do not pose an undue hardship.\n\nClick the following link for more information on your rights as an Applicant - http://www.capgemini.com/resources/equal-employment-opportunity-is-the-law\n\n\nAbout Capgemini\n\nA global leader in consulting, technology services and digital transformation, Capgemini is at the forefront of innovation to address the entire breadth of clients\u2019 opportunities in the evolving world of cloud, digital and platforms. Building on its strong 50-year heritage and deep industry-specific expertise, Capgemini enables organizations to realize their business ambitions through an array of services from strategy to operations. Capgemini is driven by the conviction that the business value of technology comes from and through people. It is a multicultural company of 200,000 team members in over 40 countries. The Group reported 2017 global revenues of EUR 12.8 billion (about $14.4 billion USD at 2017 average rate).\n\n\nVisit us at www.capgemini.com. People matter, results count." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4a0d83e097b1a71f&fccid=628b72be31b2a8d9&vjs=3", + "location": "Toronto,ON", + "title": "Senior Data Engineer", + "company": "Michael Page International", + "salary": NaN, + "desc": "Permanent\nLarge-scale batch and real-time pipelines\nApply design thinking to experiment and deliver new initiatives\nHelp drive transformation and innovation\nDevelop and grow personal skills and career within the company\nThe Successful Applicant\nThe ideal candidate must have:\nSpark 2.x applications in Scala to process large data\nCapable of improving spark performances\nProven experience in big data technologies (i.e. Hadoop, Kafka)\nExperience optimizing graph databases\nKnowledge/exposure to machine learning fundamentals\nInterest in cloud environments\nWhat's on Offer\nCompetitive compensation package\nConvenient downtown Toronto location\nOpportunity for career growth\nOpportunity to join a project at the beginning and grow with it\nContact:\nRachel McGonigle\nQuote job ref: 1306767" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e78b268e0aa52af9&fccid=364a29b4600c505a&vjs=3", + "location": "Toronto,ON", + "title": "Configuration Analyst (with work from home 1-2 days per week)", + "company": "Instanda", + "salary": NaN, + "desc": "Based in the UK, INSTANDA is an insurance software provider challenging the status quo. We have built an exciting software tool which fundamentally changes how companies who sell insurance can design and deliver insurance products to the market. We work directly with Insurers, Managing General Agents (MGA\u2019s), and Brokers. Using leading edge technologies, INSTANDA insurance software is entirely configurable from the ground up. It is not a one-size-fits-all model. We allow companies to use insurance software in the way they want to. We have many global clients using INSTANDA who confirm the game-changing benefits of the product - significant speed coupled with time and cost savings for the insurance sector.\nFounded in 2012, we spent several years designing and building the platform which is now being used globally by some of the world\u2019s largest insurance companies. Amongst our many achievements, we were recently chosen by Microsoft UK as a disruptive technology that their ventures program sponsored. INSTANDA now has over 60 employees based in the UK (London, Huntingdon, and Cambridge), in the US, and we are looking to hire Canadians to be based at our partners office in Burlington.\nLearn more about us at www.instanda.com and watch an overview of our business by clicking here.\nJOB DESCRIPTION\nWe are looking to hire Configuration Analysts to join our team in Canada. These are customer facing roles focusing on gathering requirements, documentation, configuration and client support of the INSTANDA platform to meet our clients\u2019 needs. No prior experience of the INSTANDA platform is required but exposure to the insurance industry is a huge asset. We are seeking smart and technically savvy individuals who have strong project management skills to join the team. These individuals should have the ability to clearly communicate, analyse and be part of a team to deliver the solution our clients need. Our clients face technology and resource constraints which mean that new insurance products and/or offerings could take a very long time to launch and be very costly. With INSTANDA however, insurers can build their products, set their distribution networks, test and launch their products in unprecedented timescales \u2013 all without writing a single line of code. The person in this role will ensure our customers can successfully and easily do all these things and more!\n*** Note that this is our first Configuration Analyst role in Toronto... we are really excited to be looking for Canadians to join our team in \"the 6ix\"\nResponsibilities will include:\nParticipate in workshops and interviews our clients and stakeholders\nEffectively capture, understand, define and document business requirements\nPartner with our service delivery and engineering teams to support design and sign off potential new functionalities\nImplement and configure the selected INSTANDA solution (we provide training \u2013 no complex coding required)\nSupport the UAT process of the INSTANDA configuration and of new functionalities\nTrain INSTANDA clients/users about our SAAS product to successfully hand over the configurations\nTake a hands-on approach to trouble shooting\nFor the London based roles, this role will require travel to client sites in London and surrounding area with occasional travel to other parts of the UK and overseas\nFor the Toronto based roles, this job will require travel to client sites in the GTA with occational travel across the Americas with visits to the UK\nRequirements\nA degree in Maths, Business, Engineering, Computer Science, or equivalent degree is an asset\n3+ years of professional experiences in a configuration, business/data analyst or project manager role (internships count!) - we are hiring a number of Configuration Analysts are many levels, so feel free to apply even if you have 5+ years of experience\nExperience working with a SaaS based product and/or in the insurance industry\nExcellent Excel skills, with strong working knowledge of formulas and functionalities\nAbility to manage competing deadlines in a fast-paced environment\nProven ability to be organized and prioritize\nStrong conceptual, analytical and problem solving skills\nExcellent written and verbal communication skills with a flair to express technical concepts in an everyday language\nPrevious exposure working for a SaaS based product or in the insurance industry is required\nNICE TO HAVES\nExposure to insurance product design, e-trading or TCF guidelines\nStakeholder management or workshop facilitation experience is an asset\nBenefits\nYou can be part of a brand new small team making big changes - especially being one of the first Canadian employees\nWe offer 25 vacation days but recognize that some people like more personal time! We offer the option of buying up to 5 additional vacation days per year\nOur Canadian Health & Wellness Benefits are still TBD - but help us form what this should look like!\nWe offer a discretionary quarterly bonus based on the performance of the company for our employees who have passed their probationary period\nSome travel opportunities for visiting overseas clients, and of course to visit the mothership in the UK\nWe offer flexibility to work from home 1-2 days per week\nMETHOD OF APPLICATION\nPlease apply directly online before October 5th\nYou must be eligible to work in Canada to apply for this role" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2bc9c1d0806c5428&fccid=e996c2d6855fe778&vjs=3", + "location": "Toronto,ON", + "title": "Retention Manager", + "company": "ADP", + "salary": NaN, + "desc": "At ADP we are driven by your success. We engage your unique talents and perspectives. We welcome your ideas on how to do things differently and better. In your efforts to achieve, learn and grow, we support you all the way. If success motivates you, you belong at ADP.\nService Delivery at ADP. It's all about enabling the clients we serve to be more effective employers. You can make it happen by collaborating with other ADP Associates to ensure our products and services deliver winning results. The expert support you provide can make our workforce solutions stand out in an increasingly competitive global marketplace.\n\nService Excellence is a core value at ADP. We are committed to providing accurate, convenient, risk-free payroll, tax processing and integrated business solutions.\nPOSITION SUMMARY\nThe Retention Manager maximizes Client retention by acting as the liaison between Client Service Business Units and acts to resolve any issues that may affect the client's decision to continue their relationship with ADP. The successful candidate will turn data into information, information into insight and insight into business decisions.\nRESPONSIBILITIES\nDevelops and maintains analytical/quantitative tools to assess clients at risk across segments\nManages the Technical losses process and acts as a liaison with all Service Delivery\nManages Month End processes and reports to Senior Leadership\nWorks closely with LAR (Lost Accounting) to assist with business risk\nManages the resolution process for any Technical Loss Business to determine; clients continuing to process, terminating, migrating or if they are a seasonal or inactive client.\nAnalyses and reports data to determine forecasting for Service Delivery\nPrepares statistical reports which incorporate information regarding YOY Retention\nWorks with Directors to ensure TLB items are investigated and alerts Service to any red-flags\nOwns the Red Alert process and actions outstanding issues\nPrepares Monthly/Weekly reports for senior leadership to determine Clients @ risk\nWorks with Service/LAR to ensure Terminations, 90 day letters, Soft loss are all completed in a timely manner\nUpdates, analyses SharePoint files to ensure actions from clients @ risk are followed up and outstanding concerns addressed\nEliminates work effort by analyzing data prior to Technical losses report each week\nWorks closely with our US Sales team to produce weekly reports.\nDevelop analysis and reporting capabilities. Monitor performance and quality control plans to identify improvements.\n\n\n\n#LI-GR1\n#LICORP\n\nCOMPETENCIES\nEducation:\n5 years post-secondary education or equivalent business experience\nProven working experience as a data analyst or business data analyst\nAdvanced knowledge of excel, modeling and statistical analysis\nKnowledge, Experience, and Skills:\nRequired\nSolid understanding of analysis and appropriate technical tools to analyse data\nAbility to effectively resolve issues of all levels of complexity\nInterpreting data, analyzing results using statistical techniques\nStrong verbal and written communication skills\nAn analytical mind and inclination for problem-solving\nProven working experience as a data analyst or business data analyst\nAttributes\nAbility to acquire data from primary or secondary data sources and maintaining databases\nAbility to effectively research and resolve complex Retention issues\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nIdentify, analyze, and interpret trends or patterns in complex data sets\nWork with management to prioritize business and information needs\nStrong analytical skills with the ability to collect, organize, analyze, and disseminate significant amounts of information with attention to detail and accuracy\nSuperior client service orientation and effective interpersonal skills - ability to act as a liaison with the business segments to resolve issues and maintain contact to ensure continued satisfaction.\nEffective conflict management skills; abilities to negotiate - determining how to best handle the losses process\nAbility to work under pressure of time constraints and to prioritize weekly losses Reports.\nAbility to consistently deliver quality service when dealing with multiple high-priority issues; ability to follow up in a timely and effective manner\nAbility to work independently with limited supervision and direction; uses discretion to resolve issues and refer issues to the appropriate areas\nAbility to analyze information, develop sound recommendations and present data to aid in effective decision making\nAbility to multitask and manage multiple priorities in a fast-paced work environment\nExceptional communications skills - verbal, listening and written; ability to resolve a wide range of issues\nSuperior teamwork and collaborative skills; ability to influence without authority\nPossess communication, presentation and project management skills\nBe the \"point of contact\" for all Technical Losses across all Business Lines.\n\n\nAbout ADP: We power organizations with insightful solutions that drive business success. Consistently named one of the \"Most Admired Companies\" by FORTUNE\u00ae Magazine, and recognized by Forbes\u00ae as one of \"The World's Most Innovative Companies,\" ADP has over a half-million clients around the globe and 60+ years of experience as a world-wide leader of business outsourcing solutions.\n\nADP is an Equal Opportunity Employer.\n\n\nNOTE TO JOB SEEKERS\n\nPlease note that any offer of employment will be conditional upon a background check, including a criminal record check.\n\n\nSoftware in the Cloud. Experts on the Ground:\nADP powers the working world with comprehensive solutions that drive business success. Consistently named one of the \"Most Admired Companies\" by FORTUNE\u00ae Magazine, and recognized by Forbes\u00ae as one of \"The World's Most Innovative Companies,\" ADP has over a half-million clients around the globe and 65 years of experience as one of the largest providers of human capital management solutions world-wide.\n\nAt ADP, we believe that diversity fuels innovation. ADP is committed to equal employment opportunities regardless of race, color, genetic information, creed, religion, sex, sexual orientation, gender identity, lawful alien status, national origin, age, marital status, or protected veteran status. We support an inclusive workplace where associates excel based on personal merit, qualifications, experience, ability, and job performance." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=32d4b94da12f97f2&fccid=5522dd7fc3f67c79&vjs=3", + "location": "Toronto,ON", + "title": "Business Intelligence Report Developer", + "company": "Heart and Stroke Foundation", + "salary": NaN, + "desc": "The Heart and Stroke Foundation\nLife. We don\u2019t want you to miss it.\u2122\n\nThat\u2019s why Heart & Stroke leads the fight against heart disease and stroke. Powered by donors and volunteers, we fund life-saving research and help Canadians lead healthier lives.\nHeart & Stroke is a health charity active in communities across the country. We are sustained by the commitment and generosity of more than 100,000 volunteers and more than 1.4 million donors.\nThe opportunity\nWe are looking for a focused, analytical, fast learning, BI Report Developer to join Heart and Stroke\u2019s Information Management team.\n\nThe Business Intelligence (BI) Report Developer will be responsible for interpreting business reporting requirements and will focus on designing customer data outputs leveraging Business Intelligence tools and data warehouse solution across a variety of Heart and Stroke data solutions. The position will develop a range of data outputs from ad-hoc queries, data exports, through to building standard reports which provide flexible program reporting, and campaign analysis to guide insights and decision making.\n\nThe BI Report Developer will contribute to the strategic design and implementation of an Enterprise Business Intelligence solution. The role will maintain and enhance the data warehouse database structures to collect relevant data based on business needs. The position will normalize and centralize data from multiple sources and leverage the BI environment to streamline the processes for reporting and analysis. The role will collaborate within a multi-site team setting with a variety of stakeholders, including internal business partners and external vendors and suppliers.\nKey responsibilities\nTranslation and Integration\nTranslate high-level data requirements into solution architecture\nGather detailed user data requirements, interpret and translate into technical specification\nProduce technical and functional documentation for appropriate audience\nIdentify and analyze data sources and prospective data points for solution delivery\nDevelop data services and frameworks to extract, load and transfer data into applications\nAutomate procedures to streamline data integrations across the organization\nReport Development and Management\nDesign, develop and deploy new custom reports using MS Reporting Services or BI tools\nEvaluate current reports, modify and consolidate where appropriate\nDevelop suitable outputs and formats such as extractions, reports, graphical, and pivots\nPerform quality control from unit testing, to end to end and user acceptance\nAbility to take raw data and provide summary analysis\nAssists in development of standards to ensure data quality\nDevelop Reports Catalogue with end user perspective\nProvide accurate estimate delivery time for solution to business partner\nData Warehouse Modifications and Maintenance\nSupport modification (cubes, dimensions, query objects) of BI data warehouse with external provider\nTroubleshoot and support BI data warehouse environment with refresh procedures\nTroubleshooting and performance optimization with external provider\nAssess and propose solutions to enhance the architecture of the selected BI solution\nOther\nContribute to definition and implementation of BI strategy and roadmap\nPrepare and maintain appropriate documentation related to technical versioning and best practices knowledge\nDeliver solutions according to Systems Development Life Cycle (SDLC)\nConduct specific training as needed.\nKeep well-informed of trends and best practices in the BI industry to strengthen organizational and technical knowledge as it relates to enterprise information\nQualifications\nEducation\nBachelor degree or college diploma in computer science, information systems, business administration or related field\nWork Experience and Skills\nA minimum of 5+ years of information management experience supporting large database environments from a data analyst and reporting/metrics perspective\n3 \u2013 5 years of MS SQL Server Reporting Services (SSRS), MS SQL Server Integration Services (SSIS), MS SQL Server Analysis Services (SSAS)\n3 \u2013 5 years of SQL Server query development and stored procedures\n3 \u2013 5 years of data warehousing and OLAP reporting\n3 \u2013 5 years of gathering and documenting reporting requirements and translating needs into useful specifications, reports and processes\nExpert knowledge and experience of MS SQL Server Reporting Services (SSRS)\nExpert knowledge and experience of MS SQL Server Integration Services (SSIS)\nStrong knowledge and working experience of MS SQL Server Analysis Services (SSAS)\nStrong Knowledge of SQL Server, query development and stored procedures\nKnowledge of data warehousing and OLAP reporting\nProven ability to identify and document reporting requirements and translate needs into useful reports and processes\nDemonstrated analytical skills to review, synthesize information and produce analytical reports\nKnowledge of and experience with Software Development Life Cycle\nExcellent troubleshooting and problem solving skills\nExcellent oral and written communications skills in English\nWorking knowledge of French is an asset\nProject management skills and proven success with cross functional projects\nOutstanding documentation skills\nAn exceptional customer service attitude\nResults-driven and metrics focused with a passion for continuous improvement\nAbility to partner with multi-disciplinary teams and vendors\nPrevious experience with Blackbaud applications (The Raisers Edge, CRM), Salesforce, and/or MS Dynamics Great Plains considered an asset\nWorking Conditions\nMainly office based.\nEvening and weekend work as required\nApplying\nIf you have the qualifications and share our passion for our mission, we invite you to forward your resume, cover letter and salary expectations to HSFC.Recruitment@heartandstroke.ca. We offer comprehensive benefits including pension, dental and medical coverage.\n\nThis posting will remain open until a suitable candidate is found.\n\nPlease include the exact job title, including location, in the subject line of your email.\n\nWe thank all applicants for their interest however, due to volume, we can only contact those selected for interviews.\n\nCandidates from diverse groups are encouraged to apply. We are committed to fostering an inclusive, barrier-free and accessible environment. If you have been contacted for an interview and require an accommodation due to disability to participate in the recruitment and selection process, please advise and we will work with you to meet your needs.\n\nLearn more and get involved with Heart and Stroke at www.heartandstroke.ca\n\n\u2122Life. We don\u2019t want you to miss it., Saving moments. Funding breakthroughs. Saving lives., and the heart and / Icon on its own or followed by another icon or words in English are trademarks of the Heart and Stroke Foundation of Canada." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e8ee7f44da95c0e1&fccid=39d1c8076d23beb5&vjs=3", + "location": "Toronto,ON", + "title": "Lead Business Data Analyst - Credit - 261984", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nLead Business Data Analyst - Credit\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Lead Business Data Analyst - Credit.\nLead Business Data Analyst - Credit\u2013 Job Description\nGathering/Documenting Business Requirements\nDesign components for a SQL datamart\nCode development for Datamart\nAll levels of QA\nData Lineage\nKeen ability to communicate equally with Business and Technology Stakeholders alike, and with all levels of management\nSuperior problem solving and data analytical skills in order to effectively facilitate and guide the team to timely resolution of issues: data gap and/or QA issues.\nExtensive experience dealing with issues that are normal with large amounts of data, coupled with a keen ability to visualize data patterns\nExperience with Leading BA's to deliver comprehensive and effective Business Requirements to upstream technology teams\nMandatory strong SQL skills to provide effective guidance and facilitation to the design phase and complex QA issues which may be encountered\nFlexibility and Adaptability are essential; Fundamental Understanding that solutions need not always be perfect\nStrong negotiation and collaboration with internal and external project managers and teams\nAdept at motivating team to work effectively and efficiently towards aggressive deadlines\nLead Business Data Analyst - Credit\u2013 Mandatory Skills\nIT BSA Experience - 8+ years\nLead experience - coaching technical resources and teams - 4+ years\nSQL Data Mart experience - designing, reviewing SQL Codes, providing recommendations to developers - 7+ years\nHands on SQL coding experience - 3+ years\nQA Experience - Test execution, test case management - 5+ years\nExperience with HPQC, JIRA\nLarge sets of Data - data lineage, data gaps, visualizing data patterns - 5+ years\nExcellent communication skills\nLead Business Data Analyst - Credit\u2013 Nice to Have Skills\nPrevious banking experience\nWorked on projects surrounding integrating data into retail systems\nWorking within Credit Cards LOB\nCBAP or PMP designation\nLead Business Data Analyst - Credit- Assignment Start Date\nASAP - 12 months to start\nLead Business Data Analyst - Credit- Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=09512aa9992a883a&fccid=9645047fb7b1d4e3&vjs=3", + "location": "Toronto,ON", + "title": "Research Program Manager-RI", + "company": "SickKids", + "salary": NaN, + "desc": "Casual\nThe Data Science team (DS) at The Hospital for Sick Children is seeking a highly motivated Project Manager/Data Scientist. The successful candidate will be able to apply their machine learning knowledge to unique health and biological data. The position will report directly to the Drs Anna Goldenberg and Michael Brudno, the directors of the DS Core and Centre for Computational Medicine, respectively.\nAdvise and assist collaborators and clients in assessing and increasing the feasibility of their ML projects\nCoordinate grants and research studies applying ML to clinical and molecular data\nContribute to cutting-edge findings in biology and health.\nDevelop, maintain, and communicate data processing and reporting pipelines to manage and maintain data quality and provenance.\nWork in a casual work environment where learning and development are keys to success.\nHere's What You'll Need:\nGraduate degree in Computer Science, Statistics, Biostatistics, or equivalent\nProficiency in R and python\nExperience with running statistical analyses in real data (preferably health related)\nUnderstanding and experience with basic (e.g. random forest, SVMs) and advanced (e.g. deep learning, stochastic processes) machine learning methods\nKnowledge of biology\nIt would be beneficial to also have:\nPossess a good level of proficiency in Linux/Unix\nAbility to function independently, yet collaboratively within a multidisciplinary team\nAbility to manage competing demands and deadlines with minimal supervision\nExperience in a supervisory role\nExcellent oral and written communication skills\nEmployment Type:\n1 year contract (part time or full time) with a possibility of extension\nA complete application should include a statement of interest, a CV, and the names of 2 references. Once the suitable candidate is identified, the position will commence immediately upon completion of the necessary paperwork. The position will remain open until filled." + }, + { + "link": "https://www.indeed.ca/company/MAPLESOFT-CONSULTING-INC./jobs/Senior-Metadata-Solution-Engineer-de77e03f9988a1ed?fccid=053daadb2c024ea7&vjs=3", + "location": "Toronto,ON", + "title": "Senior Metadata Solutions Engineer", + "company": "Maplesoft Consulting Inc.", + "salary": NaN, + "desc": "Contract\nPosition/Title:\nSenior Metadata Solutions Engineer\nLocation:\nToronto, ON\nContract Length:\n3-6 Months\nOverview\nMaplesoft is looking for a Senior Metadata Solution Engineer with 5+ years of continuous experience working with high-performing technical and business teams on large-scale, strategic Enterprise Data Management projects. The individual must have deep experience in investigating operational and analytical data lineage and documenting information assets. In addition, the Engineer must be detailed oriented conducting a macro-level analysis of documented lineage flows across and between business processes, systems and data elements. Strong analytical skills and industry expertise on extrapolating business rules and data rules from legacy systems is also a must.\nExperience and Skillsets\nMinimum 5 years experience as a senior technical data analyst advising Senior Management and implementing (end-to-end from initial data mapping to cutover to legacy decommissioning) at least two, multiyear large-scale enterprise data projects in the fields of Master Data Management, Enterprise Data Warehousing, or Big Data Analytics in some combination of Public Sector, Insurance, and Banking.\nMinimum 5 years of continuous experience in preparing technical project artifacts such as data-centric solution design documents, implementation strategy decks, data risk assessments, data security and infrastructure design as well as business focused deliverables such as business data requirements, data acceptance testing, data governance and stewardship requirements.\nMinimum 2 years experience in a technical role with IBM Information Server Information Governance Catalog or working with automated data lineage solutions.\nMinimum 2 years experience with code scanning (primarily Cobol/JCL), code flow, data lineage, and metadata tools\nWorking knowledge of Information Server Manager and Fastrack is an asset as is experience working with Mainframe, SAS, SQL Server, DB2, and Oracle. Working knowledge of business rule mining, categorization, etc., as it relates to IBM Information Governance Catalog \u2013 IGC is preferred.\nMust have excellent verbal and written communication skills and experience delivering prototypes and early outputs to show progress to enable discussion for the agreement of requirements.\nResponsibilities\nReview source systems\u2019 application stack, source code, data, and hardware environments. Fill in detail as required and prepare solution documentation and discuss/resolve any concerns with various resources as appropriate.\nIdentify and document metadata naming conventions and standards from existing environments and those to be used in new environments.\nObtain approvals for an approach to security and connectivity and submit requests as necessary for access, security setup, firewall rules, etc.\nAssist with creating a data and metadata ingestion preparation document and checklist and work with resources as required to obtain information, access, support, etc., as needed to identify and satisfy all pre-requisites.\nPerform configuration, connectivity, testing and validation of environments and associated set up of source/target connectivity, interfaces with version control, job scheduling and other SDLC related interfaces and activities while maintaining complete step by step documentation.\nProvide performance and design improvement recommendations.\nJob Type: Contract\nExperience:\nData Security and Infrastructure Design: 5 years (Required)\nImplementation Strategy: 5 years (Required)\nSolution Design: 5 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b2d11cb8ef860a3b&fccid=39d1c8076d23beb5&vjs=3", + "location": "Toronto,ON", + "title": "Senior Business Systems, Data Analyst - 261842", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nSenior Business Systems Analyst, Data Analyst\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Senior Business Systems Analyst, Data Analyst.\nSenior Business Systems Analyst, Data Analyst \u2013 Job Description\nWindows 10 migration project\nThe data analysts need to go through each application, communicate with the app owner to understand how to rationalize the application and assign the target distribution code to them.\nThe main skills needed for this role are data analysis skills and strong communication / coordination skills.\nSenior Business Systems Analyst, Data Analyst \u2013 Mandatory Skills\nBachelor degree in Computer Science, Computer Engineering or related field\n7+ years experience as a Business Systems Analyst\nStrong background in Data Analysis\nKnowledgeable on business process modeling, process mapping\nStrong written and verbal communication skills\nExperience/knowledge with desktop applications/suites such as MS Excel, SQL Server\nExperience/Knowledge with testing, preparing test cases and test automation\nExperience in a cross functional team working in an Agile project environment\nSenior Business Systems Analyst, Data Analyst - Assignment Start Date\nASAP - 3 months to start\nSenior Business Systems Analyst, Data Analyst - Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4a69c7c2b61a4333&fccid=4512634d9e7338a8&vjs=3", + "location": "Toronto,ON", + "title": "Senior Technology Architect (OSS)", + "company": "TELUS Communications", + "salary": NaN, + "desc": "Join our team\nThe OSS Network team is responsible for providing Operational Support Systems (OSS) network solutions, architecture, standards and strategies. This team ensures our OSS network meets TELUS\u2019 needs now and well into the future.\n\nHere\u2019s the impact you\u2019ll make and what we\u2019ll accomplish together\n\nThis is an opportunity to focus on OSS architecture for large custom deals (LCDs) as well as consolidate our enterprise service management toolset. You will leverage your extensive OSS experience with systems such as IBM Tivoli suite of tools and CA Spectrum and CA eHealth to provide complete OSS solutions that mesh together various individual OSS systems into one cohesive solution for TELUS\u2019 needs in provision, activation, monitoring, quality of service and other OSS.\n\nHere\u2019s how\nProduce OSS architectures solutions including systems for provisioning, activation, monitoring, and quality of service, performance statistics, and others\nCollaborate with LCD account team, business analysts and network and enterprise architects to ensure consistent, achievable solutions are aligned to strategic imperatives\nCreate OSS solution that meets or exceed the requirements on LCD bids while maintaining alignment with our overall OSS strategy\nLead the implementation of the OSS solutions on LCD builds\nProvide strategy and leadership for enterprise service management toolset consolidation\nProduce business cases includes the financial benefits, which support the business viability of your OSS architecture solution\nProduce system and service roadmaps for OSS\nSpecify and oversee proof of concepts for solutions involving new technologies, ensuring that objectives are met\nEvaluate and recommend vendor OSS products and proposals\nAlign product/service instances across various systems such as provisioning, assurance and service management\nSpecify reusable technical architecture components to reduce development and support costs\nPerform impact analysis on incoming service and support requests\nQualifications\nYou\u2019re the missing piece of the puzzle\nValued for your experience with in OSS and business operations, especially in one or more of Network Provisioning, Service Fulfillment, Service Assurance, Service Management/Network Surveillance and Performance Management\nRespected for your experience with systems consolidation\nSkilled at translating business requirements, network strategies and architectures to into solutions\nRecognized for your ability to work with Sales to meet customer\u2019s requirements on large service bids and in creating new services\nRegarded for your full system development life cycle experience\nDistinguished for your communication, facilitation and presentation skills\nCommended for your knowledge of MPLS/VPN and QOS\nAcknowledged of internetworking technologies and multiple network protocols (i.e. ATM, SONET, DWDM, frame relay, IP, Gigabit Ethernet , MPLS)\nSkilled in managing projects and providing direction to team members\nInsight of the telecommunication industry and its products and services\nUniversity degree\nGreat-to-haves\nKnowledge of big data\nEngineer and/or Master of Business Administration (MBA) degree\nOSS certifications and published papers\nExtensive experience with OSS and business operations, especially in one or more of Network Provisioning, Service Fulfillment, Service Assurance, Service Management/Network Surveillance and Performance Management\nExtensive experience with producing OSS architectures solutions; including systems for provisioning, activation, monitoring, quality of service, performance statistics, and others\nExperience with consolidating enterprise service management toolset\nExperience in creating OSS Roadmaps and strategic directions\nExperience with producing business cases, includes the financial benefits, which support the business viability of your OSS architecture solution\nExperience with proof of concepts for solutions involving new technologies\nExperience with evaluating and recommending OSS vendor products and proposals" + }, + { + "link": "https://www.indeed.ca/company/CST-Consultants-Inc./jobs/Digital-Marketing-Specialist-0ae531b3b6271ad2?fccid=0637381a9efee7a4&vjs=3", + "location": "Toronto,ON", + "title": "Digital Marketing Specialist", + "company": "CST Consultants Inc.", + "salary": NaN, + "desc": "Permanent\nPosition: Digital Marketing Specialist\nCompany: CST Consultant Inc. & CST Spark\nIndustry: Financial Services\nReports to: Director, Digital Marketing\nLocation: North York, Ontario\nJob Summary:\nThis is a brand new and exciting position that will be managing multiple digital marketing campaigns with a reputable company in the financial services industry that specializes in providing Registered Education Savings Plans (RESPs) to families across Canada.\nWhat\u2019s in it for you?\nBelow are examples of the some of the things you can take advantage of from this opportunity:\nBe part of a growing innovative company that\u2019s a leader in their industry\nWork with a highly motivated, collaborative, and fun team/work environment\nCompetitive salary\nRRSP Contribution, Pension Plan...\nAbove industry standard benefits that starts on your first day (no waiting period); 100% company paid\nAnnual performance bonus program\nEducation reimbursement program (for approved courses)\nGreat vacation package, plus additional personal days, study days, volunteer days, 10 paid sick days, etc.\nWellness Program (Ex. Gym membership, Health & Fitness Representative, and Masseuse on-site, etc.)\nEmployees Recognition Program\nOrganization & team celebration events (ex. Summer BBQs, Team Spirit Days, Holidays\u2026)\nEmployee Assistance Program and much more!!!\nDuties/Responsibilities:\nIntegrated Marketing Strategy\nGather market intelligence to identify new digital marketing opportunities and trends in the RESP market: be an efficient creative and pave the way\nWork closely/partner up with Customer Experience team and direct sales channel to align vision, strategies and tactics\nPerform analysis of company\u2019s position regarding online and digital marketing\nWork closely with company\u2019s agencies to align strategic vision for digital marketing initiatives\nDevelop and propose the overall digital campaign and content strategies\nDigital Marketing and Campaigns\nDefine and propose a road-map for digital marketing campaigns (top, mid and bottom funnel)\nPlan and execute digital campaigns \u2013 some directly, some with company\u2019s ad agencies\nWork closely with Content Marketing team for lead nurturing, SEO and campaign development\nAnalyze and adapt marketing campaigns for optimized leads\nParticipate in designing and executing marketing campaigns with company\u2019s agencies\nCollaborate in supporting product launches, brand employer management, and services\nBe an internal visionary for ensuring company\u2019s campaigns are planned and executed across multiple channels to ensure maximum effectiveness\nSEO and SEM\nAnalyze company\u2019s needs for Search Engine Marketing and Search Engine Optimization\nWork with Director of Marketing on initiatives and budget requirements\nSet up and manage Google AdWords campaigns\nSet up, launch, measure and constantly optimize SEO organic results\nDrive collaboration between business, company\u2019s agencies and advertising partners (Google, Media Partner, etc.), track and act on analytics\nAnalytics\nWork closely with Data Analyst to set up attribution models and develop a detailed understanding of company\u2019s campaign performance, per channel\nDesign, execute and report on tests of new campaigns and ensure marketing efficiency for the organization\nSupport the development of measurement plan and daily KPI reporting based on set marketing objectives linked to key campaigns and always-on digital marketing tactics, including setting ROI targets\nEnsure all digital marketing spend/ROI are measured and communicated\nQualifications/Requirements:\n3+years of experience working in a digital marketing agency or in an in-house digital marketing position\nDigital Media planning and buying experience\nGoogle AdWords certification or equivalent experience needed\nExperience with programmatic, display and partner campaign execution and management\nKnowledge and experience with A/B testing methodology, and CPA strategy/efficiencies\nStrong experience and knowledge on search engine optimization\nSocial Media campaign management experienced\nStrong project management and time management skills\nGreat people & relationship building skills; team player; confident dealing with all levels (junior to executive)\nExcellent communication and presentation skills\nPersonable, energetic, positive with \"can-do\" attitude\nFlexible & adaptable; able to work in a fast-paced environment\nProactive, takes initiative, and has great ability to multi task\n*On your email application subject line please insert: Digital Marketing Specialist\nThank you for your interest in this job opportunity. Only those selected for an interview will be contacted. We will consider your resume for other opportunities as they arise.\nJob Types: Full-time, Permanent" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=459c1731679dcaa2&fccid=6576e7250aa78c3c&vjs=3", + "location": "Toronto,ON", + "title": "Technical Product Manager - PriceMetrix", + "company": "McKinsey & Company", + "salary": NaN, + "desc": "Qualifications\nBachelor\u2019s degree in business, math, engineering, economics, computer science, or similar discipline, or equivalent experience\n2+ years of professional experience in Data Analyst, Analytics, or Technical Product Management roles\nPassion for analytics, extensive experience working with SQL (or other DB programming languages) and knowledge of data warehousing concepts and ETL\nClear oral and written communication skills to present complex value propositions.\nStrong knowledge of Agile development methodologies and corresponding tools (ex. JIRA)\nTechnical aptitude to garner respect and success with development teams\nExceptionally high attention to detail\nNatural curiosity and an ability to undertake creative exploration\nWorking knowledge of SaaS technical issues (e.g., configuration, integration, etc.)\nExperience or familiarity with financial services, retail wealth management and / or pricing analytics is an asset\nEntrepreneurial spirit with a vision to work in a dynamic start up environment, with the ability to consistently deliver exceptional results on demanding timelines\nGlobal mindset; able to appreciate differences in market needs, competitive environment, and cultural norms across multiple countries\nResults oriented, positive, can-do-attitude in face of challenging operating environment; at ease with ambiguity\nWho You'll Work With\nYou will be based in Toronto and will be part of the PriceMetrix team. You'll collaborate with inspiring data scientists, software engineers, consultants, data engineers, product managers, and designers globally, with a real passion for mobile and consumer behavior data.\nYou will be part of an agile team working on improving an analytical model and productizing it into an interactive web application to generate value for our Pricing Analytics clients.\nThe PriceMetrix platform uses analytics and industry benchmarking to help financial advisors and their firms better serve their clients and grow their businesses. Our team is small and agile and you\u2019ll collaborate with very smart, fun and driven colleagues. PriceMetrix is the first choice in practice management software for North American wealth managers.\nWhat You'll Do\nYou will lead the development & delivery of the analytical application and requirements powering our software.\nYou will join a dynamic, entrepreneurial team in developing industry leading solutions bringing to bear our advanced analytics and big data platform. In addition to owning data and technical requirements, you will collaborate closely with the engineering team to drive measurable product goals. Beyond engineering, you will craft partnerships with the client development, client services and analytics teams to see the product evolve from idea to implementation." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a1ec73f8ed0b2616&fccid=0339c3487d70dff8&vjs=3", + "location": "Toronto,ON", + "title": "Technical Product Manager", + "company": "PriceMetrix", + "salary": NaN, + "desc": "Qualifications\nBachelor\u2019s degree in business, math, engineering, economics, computer science, or similar discipline, or equivalent experience\n2+ years of professional experience in Data Analyst, Analytics, or Technical Product Management roles\nPassion for analytics, extensive experience working with SQL (or other DB programming languages) and knowledge of data warehousing concepts and ETL\nClear oral and written communication skills to present complex value propositions.\nStrong knowledge of Agile development methodologies and corresponding tools (ex. JIRA)\nTechnical aptitude to garner respect and success with development teams\nExceptionally high attention to detail\nNatural curiosity and an ability to undertake creative exploration\nWorking knowledge of SaaS technical issues (e.g., configuration, integration, etc.)\nExperience or familiarity with financial services, retail wealth management and / or pricing analytics is an asset\nEntrepreneurial spirit with a vision to work in a dynamic start up environment, with the ability to consistently deliver exceptional results on demanding timelines\nGlobal mindset; able to appreciate differences in market needs, competitive environment, and cultural norms across multiple countries\nResults oriented, positive, can-do-attitude in face of challenging operating environment; at ease with ambiguity\nWho You\u2019ll Work With\nYou will be based in Toronto and will be part of the PriceMetrix team. You\u2019ll collaborate with inspiring data scientists, software engineers, consultants, data engineers, product managers, and designers globally, with a real passion for mobile and consumer behavior data.\nYou will be part of an agile team working on improving an analytical model and productizing it into an interactive web application to generate value for our Pricing Analytics clients.\nThe PriceMetrix platform uses analytics and industry benchmarking to help financial advisors and their firms better serve their clients and grow their businesses. Our team is small and agile and you\u2019ll collaborate with very smart, fun and driven colleagues. PriceMetrix is the first choice in practice management software for North American wealth managers.\nWhat You\u2019ll Do\nYou will lead the development & delivery of the analytical application and requirements powering our software.\nYou will join a dynamic, entrepreneurial team in developing industry leading solutions bringing to bear our advanced analytics and big data platform. In addition to owning data and technical requirements, you will collaborate closely with the engineering team to drive measurable product goals. Beyond engineering, you will craft partnerships with the client development, client services and analytics teams to see the product evolve from idea to implementation.\nPriceMetrix is a part of McKinsey & Company. Clicking on \u201cApply Now\u201d will redirect you to McKinsey\u2019s website." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=01de0075572f83fa&fccid=3a429036b3725efa&vjs=3", + "location": "Toronto,ON", + "title": "Senior Manager, Strategic Analytics", + "company": "BMO Financial Group", + "salary": NaN, + "desc": "The Senior Manager, Strategic Analytics works with the business and corporate areas incl. technology partners to lead the design, development, and implementation of analytics solutions that drive measurable business outcomes and create a distinctive customer experience. The Senior Manager, Strategic Analytics plays a key role in defining the engagement approach, managing business use cases and is accountable for the execution of analytics initiatives; including conducting research and analysis, generating ideas, structuring data to derive insights, and building solutions for results delivery.\nThis is an exciting opportunity that is on the forefront of a critical enterprise capability, providing thought leadership to the enterprise on the value of data and analytics. The incumbent will get to work with and support multiple lines of business to help them achieve their objectives and will work directly with business leaders and lead projects with measurable and sustainable results.\nThis role has the opportunity to get involved on the data science / cognitive analytics aspects and hence attractive for a past or aspiring Data Scientist who has performed big data analytics on large volumes and wide varieties of data. The role would permit the incumbent to be engaged on both the business and technology side and will use analytics to provide additional insight to our environment and provide intelligence that will act as a catalyst of change for the organization.\n\nKEY ACCOUNTABILITIES:\nLeads in the design, development and implementation of analytic solutions that meet business objectives:\nParticipating in interviews, brainstorming sessions and workshops with key stakeholders to identify business objectives and use cases.\nTranslating business objectives into solutions as Data & Analytics agents of change.\nBuilding high quality analytic solutions that are intuitive for senior audiences, simple to maintain, and drive real business outcomes.\nContributing to building an enterprise community of Data & Analytics practitioners to facilitate best practice sharing and support.\nExecutes initiatives in line with the enterprise strategy and direction:\nEducates business partners on the enterprise strategy by effectively communicating the approach and benefits.\nBuilds solutions with the enterprise direction to facilitate integration across models.\nChampions the adoption of enterprise standards & analytics tools\nDefines and partners with business and functional areas to adopt an enterprise ontology, cross-domain taxonomies/ hierarchies, knowledge grid, and to democratize information\nManages key relationships with partners to build a lasting foundation of trust and advice:\nEnsures successful transition of solutions to the business for on-going maintenance, sustainment, and continued improvement.\nContributing to aligning enterprise data communities to domain clusters to facilitate best practice sharing & support and to enable monetization of bank data lake through insights\nQualifications\nKnowledge:\nPossesses a university degree in business/commerce, data sciences, engineering, finance and/or mathematics (graduate level degrees preferred) and/or 7 to 10 years of industry experience in analytics, finance and/or consulting.\nPossess advanced knowledge of design and analysis methodologies to work in an agile development environment.\nFluent in one or more industry leading analytics tools and techniques including, but not limited to, SAS, R, Python, networks analysis, and sentiment analysis.\nIf already a BMO employee, demonstrates solid knowledge of BMO\u2019s strategic roadmap for data & analytics and current practices.\nSkills:\nExhibits advanced analytical, critical thinking skills, and integrative skills.\nDemonstrates solid communication skills (both written and verbal) and relationship management skills at a senior management level.\nDemonstrates ability to build a good fact base, apply sound reasoning, and generate relevant recommendations that get implemented and lead to business success.\nDemonstrates innovative thinking and creativity.\nIs able to handle multiple priorities and aggressive delivery targets.\nIs able to work highly independently and work successfully with a team that has diverse skills, knowledge, and educational backgrounds.\nPossesses solid leadership skills and can influence without authority.\n\n\nWe\u2019re here to help\n\n\nAt BMO we have a shared purpose; we put the customer at the centre of everything we do \u2013 helping people is in our DNA. For 200 years we have thought about the future\u2014the future of our customers, our communities and our people. We help our customers and our communities by working together, innovating and pushing boundaries to bring them our very best every day. Together we\u2019re changing the way people think about a bank.\n\nAs a member of the BMO team you are valued, respected and heard, and you have more ways to grow and make an impact. We strive to help you make an impact from day one \u2013 for yourself and our customers. We\u2019ll support you with the tools and resources you need to reach new milestones, as you help our customers reach theirs. From in-depth training and coaching, to manager support and network-building opportunities, we\u2019ll help you gain valuable experience, and broaden your skillset.\n\nTo find out more visit us at https://bmocareers.com .\n\nBMO is committed to an inclusive, equitable and accessible workplace. By learning from each other\u2019s differences, we gain strength through our people and our perspectives. Accommodations are available on request for candidates taking part in all aspects of the selection process.\nJob\nAnalytics & Reporting\nPrimary Location\nCanada-Ontario-Toronto\nOrganisation\nT&O Risk-X005694\nSchedule\nfull-time\nJob Posting\n10/15/18\nUnposting Date\nOngoing" + }, + { + "link": "https://www.indeed.ca/company/Air-Makers-Inc/jobs/Senior-Web-Developer-SEO-3b01a7a83d43289f?fccid=723a3e999c412a73&vjs=3", + "location": "Toronto,ON", + "title": "Senior Web Developer/SEO", + "company": "Air Makers Inc.", + "salary": NaN, + "desc": "Air Makers Inc. is looking for a confident web designer/SEO to work with the marketing team who is excited about leading the design and development of all digital aspects of our brand. We're one of the top HVAC companies in Canada and have our own development/marketing team in house. We are looking for someone who is ready to take on the challenge of making our visitors' experience the best it can be from design to implementation.\nAs a Website Designer and SEO at Air Makers, you will be working with the marketing team, improving the look, feel and performance of current web pages, designing new interactive web-based tools and webpages, increasing visibility to our site through SEO and mobile-friendly best practices, and reporting on the efficacy of various marketing campaigns.\nWhat\u2019s in it for you?\nBelow are examples of the some of the things you can take advantage of from this opportunity:\nBe part of a growing innovative company that\u2019s a leader in their industry\nWork with a highly motivated, collaborative, and fun team/work environment\nCompetitive salary\nAbove industry standard benefits that starts on your first day (no waiting period); 100% company paid\nPerformance bonus program\nEmployees Recognition Program\nOrganization & team celebration events (ex. Summer BBQs, Team Spirit Days, Holidays\u2026)\nDuties/Responsibilities:\nIntegrated Marketing Strategy\nGather market intelligence to identify new digital marketing opportunities and trends in the RESP market: be an efficient creative and pave the way\nWork closely/partner up with Customer Experience team and direct sales channel to align vision, strategies and tactics\nPerform analysis of company\u2019s position regarding online and digital marketing\nWork closely with company\u2019s agencies to align strategic vision for digital marketing initiatives\nDevelop and propose the overall digital campaign and content strategies\nDigital Marketing and Campaigns\nDefine and propose a road-map for digital marketing campaigns (top, mid and bottom funnel)\nPlan and execute digital campaigns \u2013 some directly, some with company\u2019s ad agencies\nWork closely with Content Marketing team for lead nurturing, SEO and campaign development\nAnalyze and adapt marketing campaigns for optimized leads\nParticipate in designing and executing marketing campaigns with company\u2019s agencies\nCollaborate in supporting product launches, brand employer management, and services\nBe an internal visionary for ensuring company\u2019s campaigns are planned and executed across multiple channels to ensure maximum effectiveness\nSEO and SEM\nAnalyze company\u2019s needs for Search Engine Marketing and Search Engine Optimization\nWork with Director of Marketing on initiatives and budget requirements\nSet up and manage Google AdWords campaigns\nSet up, launch, measure and constantly optimize SEO organic results\nDrive collaboration between business, company\u2019s agencies and advertising partners (Google, Media Partner, etc.), track and act on analytics\nAnalytics\nWork closely with Data Analyst to set up attribution models and develop a detailed understanding of company\u2019s campaign performance, per channel\nDesign, execute and report on tests of new campaigns and ensure marketing efficiency for the organization\nSupport the development of measurement plan and daily KPI reporting based on set marketing objectives linked to key campaigns and always-on digital marketing tactics, including setting ROI targets\nEnsure all digital marketing spend/ROI are measured and communicated\nQualifications/Requirements:\n3+ years of experience working in a digital marketing agency or in an in-house digital marketing position\nDigital Media planning and buying experience\nGoogle AdWords certification or equivalent experience needed\nStrong experience working with all relevant Adobe CC suite products.\nKnowledge and experience with A/B testing methodology, and CPA strategy/efficiencies\nStrong experience and knowledge on search engine optimization\nSocial Media campaign management experienced\nExcellent communication and presentation skills\nGood to have:\nUnderstanding of how to develop and customize Wordpress websites.\nSolid understanding of PHP, HTML5, CSS3, JavaScript and jQuery.\nCan use HTML5/CSS3 to build mobile-first responsive websites.\nJob Type: Full-time\nExperience:\nSEO/Web Development: 3 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=df5a86b20eea454f&fccid=d7114f1cac8d0711&vjs=3", + "location": "Toronto,ON", + "title": "Senior Manager, Advanced Analytics", + "company": "TD Bank", + "salary": NaN, + "desc": "Tell us your story. Don't go unnoticed. Explain why you're a winning candidate. Think \"TD\" if you crave meaningful work and embrace change like we do. We are a trusted North American leader that cares about people and inspires them to grow and move forward.\nStay current and competitive. Carve out a career for yourself. Grow with us. Here's our story: jobs.td.com\n\nDepartment Overview\nThe Model Validation (MV) group in Risk Management is responsible for the independent validation and approval of analytical models used for pricing, hedging, compliance and risk/capital evaluation of financial products and portfolios of financial products. This also includes validation of decision making models, such as credit approval and behavioral scoring models for the Bank\u2019s Retail and Non-Retail portfolio.\n\nJob Type\nRegular\n\nJob Status\nFull Time\n\nHours\n37.5\n\nBusiness line\nOther\n\nJob Category - Primary\nEnterprise Data & Analytics\n\nJob Category(s)\nEnterprise Data & Analytics\n\nJob Description\nThe position reports to AVP, Non-retail Model Validation group. Detailed accountabilities include:\nPlay a leading role in validating advanced data analytic models and cutting edge analytic solutions across all areas in the Bank, such as different Machine Learning / Artificial Intelligence (ML / AI) applications\nLead the development of risk-based enterprise standards and procedures for validation of ML and AI models that adhere to industry best practices and are compliant with the Bank\u2019s internal Model Risk Policy.\nBuild up a specialized team of Advanced Analytics professionals that drive changes and improvements in validation practices through advanced analytics; and develop team expertise to align with enterprise demand and the Bank's direction; assess team skills and capabilities and continually look for ways to provide and enhance the value delivered\nProvide analytical thought leadership and staying current on developments in data mining and the application of data science; Maintain full professional knowledge of techniques and developments in the field of advanced data analysis, and provide subject matter expertise to business units and senior management on modeling and validation.\nAct as an ambassador of innovations to lead and promote advanced data solutions to different validation teams; ensure timely communication of issues/ points of interest.\nAct as a lead or top technical data scientist and work closely with senior leadership on significant data projects; and lead strategic development efforts on new or emerging data science related projects ;\nIdentify opportunities of applying innovative and sound solutions that can enhance the efficiency and effectiveness of the current model validation; and develop creative and innovative data driven analytical solutions to optimize validation efficiencies and leverage synergies to support overall business strategies.\nDevelop powerful business insights from social, marketing and industrial data using advanced machine learning techniques; and identify new analytical trends / data needs and repeatable analytic solutions and works with different validation team to build analytical benchmark models to provide effective challengers\nShowcase advance level peer leadership, impact and influence partner, and provide knowledge transfer within the team\nAct as a key business partner, guide and collaborate with business leaders to prioritize and identify key business needs and provide impactful and risk-based validation; and work effectively with internal model development group, Audit, and other internal partners to ensure models meet required Bank standards for use.\nPlay a key role in ensuring the appropriate use of ML/AI models. Identify the need to implement new models/techniques for risk management as industry standards evolve and regulatory requirements change.\n\n#LI-POST\n\nJob Requirements\nStrong quantitative skills with a graduate degree in one or more of the following areas: statistics, mathematics, physics, engineering, and computer science or Professional Certificate in Machine Learning and Artificial Intelligence\nIn-depth knowledge of ML/AI modelling and advanced data analytic solutions.\nExperience in either developing or validating ML/AI models.\nProficient in relevant programming languages in ML/AI such as TensorFlow, Python, Matlab, and R\nExtensive understanding of different financial/banking business with deep expertise and highly specialized knowledge of analytical concepts and techniques\nHand-on experience in data visualization / processing software, such as Looker, ZOOMDATA, Tableau, Apache Spark\nExcellent verbal and written communication skills.\nGood time management and multitasking skills with minimal supervision.\n\nInclusiveness\nAt TD, we are committed to fostering an inclusive, accessible environment, where all employees and customers feel valued, respected and supported. We are dedicated to building a workforce that reflects the diversity of our customers and communities in which we live and serve. If you require an accommodation for the recruitment/interview process (including alternate formats of materials, or accessible meeting rooms or other accommodation), please let us know and we will work with you to meet your needs.\n\n**Province/State (Primary)\nOntario\n\nCity (Primary)\nToronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8b9d4c2025ab2aa0&fccid=105ecfd0283f415f&vjs=3", + "location": "Toronto,ON", + "title": "Delivery Architect - AI Leader", + "company": "Capgemini", + "salary": NaN, + "desc": "Required Skills and Experience:\nYou Supervise, mentor, guide other data analysts.\nRepresent data analyst team in project team meetings.\nResponsible for importing, cleaning, transforming, validating and modeling data with the purpose of understanding and drawing conclusions from data (may be presented in charts, graphs, and/or tables).\nDesign and develop relational databases for collecting and storing data and build and design data input and data collection mechanisms\nMust have experience in Software Engineering Techniques, Software Engineering Architecture, Software Engineering Lifecycle and Data Management.\nShould be proficient in Business Analysis, Business Knowledge, Software Engineering Leadership, Architecture Knowledge and Technical Solution Design.\nExperienced Apache Spark / Big Data (Spark with Scala preferred)\nMust have knowledge of statistical concepts such as regression, time series, mixed model, Bayesian methods, clustering, etc. to analyze data and provide insights\nMust have experience in designing and implementing machine learning or statistical models for big data analytics using Spark-ML / Tensorflow\nShould be able to present the results with any visualization tools\nUnderstanding of Hadoop, Hive, Kafka & Cloud technologies\nKnowledge of SAS skills will be preferred\nMust be able to work independently\n\n\nCandidates should be flexible / willing to work across this delivery landscape which includes and not limited to Agile Applications Development, Support and Deployment.\n\nQualifications\nDelivery Architects assess a project\u2019s technical feasibility, as well as implementation risks. They are responsible for designing and implementing a project\u2019s technical architecture. They define the structure of a system, its interfaces, and the principles that guide its organization, software design and implementation. The scope of the Delivery Architect\u2019s role is bounded by the business issue at hand. A Delivery Architect needs to have knowledge of all the different aspects of the technical Delivery as well as robust business knowledge. This includes the Software Architect.\n\nDay to Day Responsibilities:\n\nYou are responsible for the end-to-end architecture of a Delivery, including its assembly and integration into the IT architecture principles defined with the client.\nYou define the structure of the system, its interfaces, and the principles that guide its organization, software design and implementation.\nYou are responsible for the management and mitigation of technical risks, ensuring that the Delivery services can be realistically delivered by the underlying technology components.\n\nRequired Skills and Experience:\nQualification: Minimum 5 years experience, Bachelor\u2019s Degree.\nCertification: Has or seeking IAF level 1.\nShould be proficient in foundation, People Leadership, client acquisition & development, service & delivery and business leadership.\nShould be experienced in technology awareness & leveraging and innovation & growth capability.\n\n\nCapgemini is an Equal Opportunity Employer encouraging diversity in the workplace. All qualified applicants will receive consideration for employment without regard to race, national origin, gender identity/expression, age, religion, disability, sexual orientation, genetics, veteran status, marital status or any other characteristic protected by law.\n\nThis is a general description of the Duties, Responsibilities and Qualifications required for this position. Physical, mental, sensory or environmental demands may be referenced in an attempt to communicate the manner in which this position traditionally is performed. Whenever necessary to provide individuals with disabilities an equal employment opportunity, Capgemini will consider reasonable accommodations that might involve varying job requirements and/or changing the way this job is performed, provided that such accommodations do not pose an undue hardship.\n\nClick the following link for more information on your rights as an Applicant - http://www.capgemini.com/resources/equal-employment-opportunity-is-the-law\n\n\nAbout Capgemini\n\nA global leader in consulting, technology services and digital transformation, Capgemini is at the forefront of innovation to address the entire breadth of clients\u2019 opportunities in the evolving world of cloud, digital and platforms. Building on its strong 50-year heritage and deep industry-specific expertise, Capgemini enables organizations to realize their business ambitions through an array of services from strategy to operations. Capgemini is driven by the conviction that the business value of technology comes from and through people. It is a multicultural company of 200,000 team members in over 40 countries. The Group reported 2017 global revenues of EUR 12.8 billion (about $14.4 billion USD at 2017 average rate).\n\nVisit us at www.capgemini.com. People matter, results count." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5cbef4a325c4a7d5&fccid=39d1c8076d23beb5&vjs=3", + "location": "Toronto,ON", + "title": "Senior Business Analyst - 262081", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nRole: Senior Business Analyst\nOn behalf of our client in the banking sector, we are seeking a Sr Business Analyst with strong experience in Capital Markets for 6 months contracting opportunity. The Project is to upgrade /add features to the product based on the need of traders. And to onboard and expand the European SwapOne.\n\nThe successful candidate must come from a Front office BA role and should have experience interfacing directly with the traders for requirements gathering and look at their trade workflow.\n\nSenior Business Analyst Job Details:\n1. Requirements and Business Analysis\nAbility to decompose complex business requirements into technology implementable requirements and solutions\nExcellent written and verbal communication and organization skills.\nRequirements documentation, communication and organization: use cases, flow diagrams, GUI design,\nKnowledge for software development lifecycle ? Rational, Agile\n2. Product Knowledge\nStocks, Bonds, Swaps, Options.\nUnderstanding of trade lifecycle, risk, P&L, settlements, corporate actions\n3. Other\nProficiency with SQL, Stored procedures\n5-7 years of BA experience in Financial Capital Markets\nMS Project Plan, Visio, Excel and macros\nPrior experience with a Derivatives Trading System (Calypso, Murex, SwapOne, Sophis) preferred\nTesting experience, including preparing test strategies, plans and test cases.\n\nSenior Business Analyst Must have skills\nFront office BA role\nCapital Markets\nSwaps or derivatives products or Fixed Income experience\nStrong SQL skills ( not as a programmer but from a data analyst perspective).\n\nSenior Business Analyst Nice to have skills\nImagine and Swap One (SwapOne (hard to find) else any other products like Sophis or Calypso also works.) \u2013 nice to have\n\nSenior Business Analyst Duration - 6 months\n\nSenior Business Analyst Location - Toronto" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=4eae8d64ce5a17d1&fccid=2d88a9c34448e1e0&vjs=3", + "location": "Toronto,ON", + "title": "Post-Doctoral Fellow- Cancer Outcomes and Health Services Research", + "company": "Sunnybrook Health Sciences Centre", + "salary": NaN, + "desc": "Post-Doctoral Fellow\u2013 Cancer Outcomes and Health Services Research\nThe Sunnybrook Research Institute is seeking a temporary full-time (2-year term) Post-Doctoral Fellow to join Dr. Natalie Coburn\u2019s research team. This individual will be joining our established research program of clinical epidemiologists, clinicians and pharmico-economists. The focus of the research team is to use population level data to examine outcomes, such as survival, patient-reported symptoms and resource utilization and costs of gastro-intestinal cancers in Ontario. This position is unique in that it offers the successful individual the ability to independently conduct research as it meets the objectives of the research team.\nDescription\nThe ideal candidate has extensive experience using administrative datasets and a keen interest in improving gastro-intestinal cancer outcomes. They will be enthusiastic, highly motivated and enjoy collaborating and conducting research in a fast-paced and stimulating environment.\nKey Responsibilities\nIndependently carry out project-specific activities from project initiation to project completion\nIndependently develop analytic approaches and carry out advanced statistical analyses using healthcare administrative and costing data\nDevelop data creation plans to create study cohorts and analytic plans\nCarry out quantitative data analyses including multilevel modelling, sensitivity analyses, and parametric and nonparametric modeling scenarios\nCalculate cost-effectiveness for clinical and treatment scenarios\nWork closely with the data analyst to ensure proper and timely analysis of the data\nReview and interpret analytic output\nDraft and prepare reports, manuscripts, presentations and abstracts\nMonitor project timelines, liaise with team members to ensure timely completion of projects\nAssist with grant writing and Research Ethics Board applications\nOther duties as appropriate for the team.\nSkills and Qualifications\nA PhD in Epidemiology or related discipline, with a strong background in methodology\nStrong quantitative research skills with the ability to independently develop an analytic approach\nExperience using large, administrative datasets (ICES, CIHI, Medicare)\nStrong data management and analytic skills, e.g. cohort creation, defining variables and analytic techniques such as multilevel modelling and survival analysis\nUnderstanding of costing and economic analysis\nData management and analytical skills\nAbility to work closely as a team and provide assistance to support team members\nAbility to work with minimal supervision while achieving specific goals within specific timeframes\nStrong organizational and time management skills to manage and prioritize work load and timelines\nStrong verbal and written communication skills\nSalary will be commensurate with experience. Please send a cover letter and curriculum vitae in one PDF document to Laura Davis by e-mail to laura.davis@sunnybrook.ca\nWe thank all candidates for their interest, but only candidates selected for an interview will be contacted. This post will stay active until the position is filled.\n\nSunnybrook Research Institute is committed to providing accessible employment practices that are in compliance with the Accessibility for Ontarians with Disabilities Act (AODA). If you require accommodation for disability during any stage of the recruitment process, please indicate this in your cover letter.\nSunnybrook Research Institute is strongly committed to inclusion and diversity within its community and welcomes all applicants including but not limited to: visible minorities, all religions and ethnicities, persons with disabilities, LGBTQ persons, and all others who may contribute to the further diversification of ideas." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7nt_W1_ybLH0QPRxUxEcgVV87p7Wtq5Txix_phCOo7B5cCbkOFWR-Oql65OsHJtksEKnodh5A6jq_lzHLc1njVVp3fZJmtRYUStv1vjsVw8T65WmQTYTsNl4afg2_-xW0oNbZFrZyQUXIu5dCXQdCtKci00A0HCLJIGsZfLWehwZ9vRbpCt0O7Y-TFoFuSY3mQmoIvy3lDE0pwKqlMe_v_6powPzHgshqiM1TbH5EC80WzS5Y9bTIC5sVuz6T5SuyC-dkmFETTRC1jUrrkLTWMlN-LrOmzMJCp6haame-yR3yxFoyYj1ZQyN5ViDIiwd4z9ZM0xqe3vHbT2IGRJqcbVRp7NE2lXp_tN1S6h6KQVk0YBU7fUkw2V2Q5GezSgttLGogf2zrh7jqaWiouaMh402KRTO6tf3hTQgLrhsTSN8YSDqUOxnwaUp6siWdZRSbm12-OmySM_Tfa2jIv6cD9WT6g9rSpneGEbfibX05iYPYKIjewOz3-8jdRkUSMMtIzNrTgoc1R5WK4TL59AEUj42_98zJidR_2CcI8llCxV9LX27UylSn92dh2SANuLst2AqAHTFGQV5JaZgwfNd3j3o2j0Dtc_uLRx&vjs=3&p=3&sk=&fvj=0", + "location": "Toronto,ON", + "title": "SAS Data Analyst - 262268", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nSenior Campaign Analyst\nOn behalf of our client in the Banking Sector, PROCOM is looking for a Senior Campaign Analyst.\nSenior Campaign Analyst\u2013 Job Description\nSupporting ongoing post campaign analytics\nMeeting with various stakeholders including product, marketing etc.\nUnderstanding various lines of business within the personal and business banking speheres\nBeing able to efficiently pull and manipulate the data\nAnalysing and transforming the data into actionable insights\nTelling the story via powerpoint presentations\nBeing able to effectively and autonomously manage milestones and deadlines to ensure tasks are completed on time and are of the highest quality\nSenior Campaign Analyst\u2013 Mandatory Skills\n5+ years working in a similar role\nSolid experience with SAS\nSolid Analytical acumen\nBeing able to tell a story with the data\nSomeone who has worked with complex data in a large corporation\nLeadership\nLogical thinker\nCommunication skills (adjust to the audience)\nPresentation skills\nAble to anticipate drive and managing expectations\nUniversity degree with preference for a quantitative discipline (Business, Match, Science)\nSenior Campaign Analyst\u2013 Nice to Have Skills\nTipco Spotfire\nExperience working in other Financial Institution\nUnica\nSenior Campaign Analyst- Assignment Start Date\nASAP - 12 months to start\nSenior Campaign Analyst- Assignment Location\nDowntown Toronto" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aji6ATb26Yyb09g5imj6JxAacRjLEDyoHO-vrhJmHqVUoHrBHvjf13V9v4P7h0GX00ltatNKoidGYffZmFcM8FP9Jx4HddGxphKrZ4QN9hZciYDU3SL9OHzFxSiFzrLU7PIepoxdhC_8SMRH443VgwjrMdgyw2M3CtgsOwkS62WhmKjgAWI2cn3khbb017r3v9EjZ8ls-_tEf81GktgMrM6nIA_a_OLl3CXH5ufhFUIPR6ELOIT9g4x4vbQDQokr35JaFfBI_6_xkodAMRgH6DnJhsecc5v0iuhdUk71r7HOQ42CJfZ3NQEUSLQZZ6qaxvZg2Pqc04gnz-7Oh8dvhPao93vx0CKRqjQOx9b7_38C1xQhmRyZoffy38zgmEnJXG-7KOcUtA0oVpvMV-l7frhd6Ij_cC975KLxuUu3gtmE_8-7E6BC3WUuzfG9UZB7oF9QW6EQfEuYtcqxiJJTKmaF5GGuJTML-O77Z7hKRGNmadTIlJtMvTKjlItX_ErXc=&vjs=3&p=4&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Analyst, Marketing", + "company": "International Financial Group", + "salary": NaN, + "desc": "Contract\nOur client, one of the top 5 Banks in Canada, located in downtown Toronto, is currently looking to recruit a Data Analyst who has experience with marketing data analytics. Please see a detailed job description below.\nContract: 12 months\nAs a Data Analyst you will be responsible for the following:\nManage reports on a timely basis (daily/weekly/monthly)\nProactively identify opportunities to improve the customer experience by leveraging statistical approaches against multiple sources of data including internal sales data, CRM client information, and external third party data/benchmarks\nResponsible for researching, designing and implementing new reporting infrastructure to produce innovative reporting solutions\nPerform data maintenance\nAs a Data Analyst you must have the following skill-set:\nPost-secondary education in one of the following fields: Math, Computer Science, Marketing, Business\nExperience working with SAS/SQL\nPrevious experience working in a financial industry\nExperience in visualization tools such as Spotfire or Tableau is an asset\nExperience working with CRMs (Microsoft Dynamics, Salesforce) is an asset\nThank you for applying, please submit all resumes to fabiha@ifgpr.com" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3TZs8s_K_8c3BAkEYAHQBDEdCv28K2qWT4XD65DctvKIQ5xBFEiN6Q2BwfTEBLhvzI2M_5JhJZtskjMze0_imkOhXT_iYvXOhJaF7tZy1ncILGxv6doDt17Uoea8wiERqO8iWVZDCYZ2Noa4wQmHAG185lsThlDCXN7VNvIdaNNdHvpVYhDmE-vNLMeRzXCtfFkm5DhO5DFaMxGUCXqSGSSrfjKT5cd-zvRvMxM3X2fzZ4WFbZDexoKlXp0XHYu1QjJj_ccZGPAYiCTfBUYt7XoRrPKzTXg3DN1dnkI9qclMfhmthMxLGf7i5x40HDHwE4jFT5n9Cjgv4uknbguMfs2cBYR2k9Cf_sjiRcN3QC4pfdkU_HFrQwCcNpBOqh5lLTo79jvFJj9I5PlOyAE2yKYxsNkAeOevcftXk5mzHtFd1kiO1LaoUpDhinezo6j4I89t2UX9ZHvhm2Taeji7DZPDoZYo-tNTYC8nFgHEkrc5YLjbiAJ9kX0yxikKehXMDw_ThNlU4ByGzIfxR56WAHCk4NW-th0LFz1bDRIVcwqPBW_ARFqO9yL7VhX_33xNHeMC3RjrNhMqlsG4UzPlachCxIbh9Yta6e2nlQX8yB-d4p774Ir1C7Kedvq_WQgTPa5EKrq9a2t8sjIIB1HIwgU7eNaaY6tnHJShHCVMfFGRaIn2aXQQSpMYKkJiLDbWvf3kWQdjJMzB6gnuGTz3dNTDMD4Emb1o3pZPF0qUrl7RKvVtsxIxdfGP5Y31oaJwrbmWuBd8NN9RjBVzTK44tOim8znZ8PL9NF2zl1fZ9toA==&vjs=3&p=5&sk=&fvj=0", + "location": "Toronto,ON", + "title": "Data Scientist", + "company": "Logojoy", + "salary": NaN, + "desc": "Logojoy is looking for a machine learning focussed Data Scientist to join our AI lab. We have an exciting long term project here that will require a dedicated individual to look at our existing research, data and algorithms and come up with a solution for a new intelligence system we\u2019re creating.\nThe role:\nCollaborate with engineering and product development teams.\nBuild generative models and machine-learning algorithms.\nKeep current with the state of the art in machine learning research.\nAnalyze large amounts of information to discover trends and patterns.\nPropose solutions and strategies to business challenges.\nUndertake preprocessing of structured and unstructured data.\nPropose creative solutions to hard machine learning problems.\nCollaborate with designers and developers to expand Logojoy\u2019s product offerings.\nGenerate original design elements using deep learning and data science.\n\nRequirements\nYour background:\nA solid knowledge of Python and ideally an understanding of Javascript.\nHands on experience working on machine learning or a relevant degree (ie. Machine learning/AI, physics, software engineering, math, computer science.)\nA strong understanding of ML concepts, theories and algorithms.\nExperience preparing large datasets.\nProfessional experience with Tensorflow or Torch.\nMust have database experience.\n\nBenefits\nWe offer a whole range of benefits to make life just that little bit easier, some of our benefits below:\nStock Options.\nA guaranteed end of year bonus.\nUnlimited vacation.\nA personal learning and development budget.\nHealth and dental care.\nMoney every month towards a fitness activity of your choice.\nFlexible working." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmXMZa8woolaJGrd-8Gzwec7xvNP0SvOLMmMCvsM5206kpwiZOLYC5MDEoMLZuOdeojoWmROO4I72ZjyLLeVtzl0E5umqRQ5WeWHMczxO5V_UixINydy8hfeBPDIMXkX7DenlE6Fooewq3YzXv96R2U1hFbn9djC8Qm6wwvcN5OEZvA8lis0Ex0t_EdYwQJdYTZeFgErLDLtp_CYo_WGkbtqqMAfZKXMUoUf4f5EOmV7a4GYEKrRoHW7CO50o0lHkZ76SGiRCqxCyuD6uYdHRZzx5UmGYCiTA4PSzlEXzSpJfv85SXEL-6JXrzeAoYmxydFwH46x687KHooT2_A7DbziFBFyDPRbQgAjGCoHVaYuxb5xykAjhzOm_WJWJP-UerpTjGcl7RFISeRY0Y4D2nLCdUFybH7tcYlnpSwjtfClak46-MpzWyhn0gsalnqmUMM=&vjs=3&p=1&sk=&fvj=1", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "SPORTLOGiQ", + "salary": NaN, + "desc": "SPORTLOGiQ is the leading provider of advanced analytics data for professional sports teams and broadcast media. As a Data Scientist, you will be a part of our highly talented research team, building our next generation advanced sport analytics platform. To be successful in this role, you must be a fast learner and have the ability to thrive in a dynamic environment; combining conceptual and applied research, entrepreneurship, systems building and collaborative work. You will work together with similarly-minded individuals on a unique development team where your skills and expertise will be put to the test! This is a once-in-a-lifetime opportunity to help shape the future of sport analysis, coaching and media storytelling.\nResponsibilities:\nOur ideal candidate would have strong experience in developing novel statistical modeling techniques and applying them to solve real-world problems. The selected candidate will be part of the sport analytics research team, and will be in charge of the development of novel descriptive and predictive models for sport games data.\nRequired Skills:\nGraduate degree (PhD preferred) with research experience in applied statistical modeling\nSolid skills in C/C++, Python, R, or Julia\nAbility to develop novel metrics and models on large, complex data\nDeep understanding of statistical theory and modeling\nStrong working knowledge of data science best practices\nDesired Skills & Experience:\nResearch experience and publications in relevant fields in top-tier conferences and journals\nUp-to-date knowledge and understanding of recent advances in statistics and machine learning, particularly sports analytics and spatio-temporal modeling\nResearch experience in time series analysis, spatial modeling, and methods for big data\nPractical experience with Stan, INLA, Keras, or related frameworks\nWhat We Offer:\nCompetitive salary\nFlexible work schedule\nBonus structure and employees stock options\nComprehensive benefits program\nA cooperative and fun work environment\nFreedom to work on your own projects\nJob Type: Full-time\nEducation:\nDoctoral Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmW0uackYElX5z2Aw_CShhxyiX8pLfXa4qIReJ9Ox7bCuRbtP-2_CJjnZU-P5MudFSiQQFNiXcYPgH9nhPZussykRjjORplUSKyFAcdH9t3AI0bTAA0t57wybun1Zsf_RKHNR24YmlUWhYNJVKPgsRxgvTsK7jVjRKuHAKb9YZo1WVi3e-DXMZem-_8C3llx71yBbBreM5Y8TUumv6lx8-r0UlZc_GG_CXx68SryDqtWiv161Vj4z8HRmh1IV-2g6yN8Q2hLx72oyjiWDJQLt7NS7SuoGZoXeIrLoJWrL6ZTqMKVXiN62h4LTx_lfnItZHSZ-GJurSEqIuFNiXqrTUHQEGM6J-gzxtUG1IxBlN2_rMUItNWkNGc6i-Grr8afXR4QaRuCfH6JeNWKyFmognl133Giiau1r2rLgaAHOa9ydGNZbtQxylKFyD7ShzmBXQL49FoANdvaJQ==&vjs=3&p=2&sk=&fvj=1", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "SPORTLOGiQ", + "salary": NaN, + "desc": "Data Analyst\nSPORTLOGiQ is a computer vision technology company who is the leading provider of advanced analytics data for professional sports teams and broadcast media. Our player tracking and activity recognition algorithms generate detailed game statistics using standard, single-camera game footage.\nResponsibilities:\nParticipate in creating new advanced sports metrics\nDevelop automation scripts for reports and metrics visualization\nGather and analyze data for internal and external customers\nRequirements:\n2-3 years of experience as Data/Business/BI Analyst\nBA in relevant field\nExperience with python, SQL, R\nAbility to prioritize tasks\nAbility to communicate analytic results in a technical and non-technical manner\nExperience as PHP programmer an asset\nKnowledge and passion for sports analytics\nWhat we offer:\nExtremely competitive salary/bonus program\nCentralized and accessible location in trendy Mile-End\nComprehensive benefits program\nFlexible work schedule\nA cooperative and fun work environment\nFreedom to work on your own projects\nJob Type: Full-time\nLocation:\nMontr\u00e9al, QC (Required)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bAhiFfLCFCTDWTXhkrZezmMhEvrd50Rhpmn7pz2PcghQvYKfU3dMXlTcCU4rxSDJVQSNAAFdO2_zQvff-AcUFYP_h09qdqWtaG5r4cvsOc01tCCCrcVvB9a72zD35rM0fO_Z9cLBy8MUum2M5a82-a9SXgEX5emhgykfnl86HAS7OLtrjXet_HsMecEdnzJZOErhxgr8JmmeU0tEJjcOXvew_JXgPWy0YDn8OduP7ynMdoz2TYrk6M9FsW-fO7QT584zLQO8Ox3atLKVI-4mdEN9ETpExWA3sWAY0V0mD2UH-dkW9PL19njggo3HUxskJrNVkf6k5YC18TMHQcLSCIM1u2ogHhM4sfWUx8yQ7GnoxfI7joW0zx4PNjPH61s77bOeT_LLPjV-uTmvxFFVcmTZke8_TAiRc7kqWB-8i-skK7wS3gMvA05Se4Von8MjV-84_W_i4khJhGCveLjgIDgdMgB676yeJw==&vjs=3&p=3&sk=&fvj=0", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "Sun Life Financial", + "salary": NaN, + "desc": "At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nWe are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations.\n\nRole Summary:\n\nWorking within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations.\n\nMain Responsibilities:\nLead development of new batch/low-latency analytical solutions that leverages both traditional and emerging technologies\nDesign, develop and implement highly scalable data capture and transformation processes\nCreate effective ETLs/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption\nAct as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design\nExpand and grow data existing platform capabilities to solve new data problems and challenges\nEnsure all automated processes preserve data integrity by managing the alignment of data availability and integration processes\nSupport quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources\nIdentify opportunities for new data acquisition and new uses for existing data resources\nResearch and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices\nPerform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk\nDefine data retention policy, establish data governance best practice, and create automated anomaly detection services\nDocument and update business continuity and disaster recovery procedures\nEngage in ongoing collaboration with data architects, modellers and other members to achieve common goals\nProvide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members\nProduce and maintain support documentation for ongoing operations\nAct as Tier-2/3 support to troubleshoot and resolve technical issues with production data models and services\n\nPreferred skills:\nUniversity degree in Computer Science, Software Engineering, or equivalent\nExperience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services\nSolid understanding of data warehousing principles, architecture and its implementation in complex environments\nHands-on experience with development of ELT/ETL processes in traditional and distributed environments\nExperience as designer of complex Dimensional data models for analytics services\nExperience with development for Microsoft SQL Server Analysis Services or equivalent technologies\nExperience with various testing methodologies and user acceptance testing\nSolid skills in SQL, Python, C++, Java and other languages used in data manipulation\nExperience with Hadoop and Big Data technology\nExperience with processing large datasets from multiple sources\nAbility to operate effectively and independently in a dynamic, fluid environment\nStrong verbal and written communications skills with experience in relating complex concepts to non-technical users\nDemonstrated ability to exchange ideas and convey complex information clearly and concisely\nProven ability to lead and drive projects and assignments to completion\n\nAssets:\nExperience with optimization and tuning of large data extracts for Tableau\nFamiliarity with Agile development practices\nUnderstanding of ITIL processes Incident/Change/Release management methodologies\nKnowledge of Insurance or Financial Services industry\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n25/10/2018" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0C6nKFHSiMBxFBp_E9a0ZdPCM_qsZkYnNiPA1S70PNI9YvP2Tm5CUfOHvXmGt72fY3efShd9VmAf7mA5v5jL41oa37a_VR2m0Ca0CYEzAVeeh4SPlCHxPNlt9kIZj_Uep5Nma9DObXAQJqqVqg2YxWrYCgm-gNIzprO-qq6H6Ggkkw8KiD7hPb58rMYZijXjxEIVq74KuFsEV0zCdEQnH0spARsT3N2chYY0kZl9BUEL1dTCDBsBeOl2_nt3eFGL1XEPfHyxI92EsydGqKZ0YoUo3EzetoMnQlwOp4758wMRMZiCdt6nna0mY7U3qXE_rbQr49XTsvKaHfy8NkdLQumoy8qxmGyKUjonge9KFo0g-567mqDcpxu8AMG_RlITw_I6mIF0l8choW3x7RMAot3g3vZL5YfKMvVveYxy9HnnVtb2tBmAyc97Gns_Y1yfX8YAC4tGfUk0HMxDdYxV_GCGMLMgkriaxL9Z-Udte-hSgxmf64re0RyJHgh3plgMH-H9uJx40tBC9pxZZufsiYmZ0mIwvnGm_yYao0q6Syl_8wuIrOswKp3&vjs=3&p=4&sk=&fvj=0", + "location": "Montr\u00e9al,QC", + "title": "Data engineer / Ing\u00e9nieur de donn\u00e9es", + "company": "IVADO Labs", + "salary": NaN, + "desc": "Job Description\n\nThe Data Engineer is responsible for the data lifecycle, from collection to retention. Data completeness and accuracy is a constant preoccupation for the Data Engineer, and as such he/she oversees the design data warehouse, as well as the ingestion and integration of data. The ideal candidate has solid knowledge of data, database design, programming, data collection, data warehousing, and data cleansing. The data Engineer will work hand in hand with the Data Scientists and the product delivery team.\nResponsibilities\nManipulate and prepare data, including supporting the feature engineering exercise, for consumption by machine learning and optimization models.\nArchitect and implement highly scalable data management systems that ingest and integrate large volumes of data from different sources\nDesign, build, and productize complex data pipelines, including ETL/ELT jobs, to process disparate, dirty data sources and form a high integrity, high quality, clean data asset\nMonitor and track data quality and data flow dynamics\nImprove data foundational procedures, guidelines, and standards\nIntegrate new data management technologies and software engineering tools into existing structures\nCreate custom software components and analytics applications\nCollaborate with other Engineers, Data Scientists and stakeholders, taking learning and leadership opportunities as they arise\nEnsure client\u2019s needs are addressed\n\nL\u2019Ing\u00e9nieur de donn\u00e9es est responsable du cycle de vie des donn\u00e9es, de la collection \u00e0 la r\u00e9tention. L\u2019int\u00e9gralit\u00e9 et la pr\u00e9cision des donn\u00e9es est une pr\u00e9occupation constante pour l\u2019Ing\u00e9nieur de donn\u00e9es, et de ce fait il/elle supervise l'entrep\u00f4t de donn\u00e9es design, ainsi que l\u2019ingestion et l\u2019int\u00e9gration des donn\u00e9es. Le candidat id\u00e9al poss\u00e8de de solides connaissances en mati\u00e8re de donn\u00e9es, de la conception des bases de donn\u00e9es, de programmation, de la collecte de donn\u00e9es, de l\u2019entreposage de donn\u00e9es et du nettoyage de donn\u00e9es. L\u2019Ing\u00e9nieur de donn\u00e9es collabore main dans la main avec le Scientifique de donn\u00e9es et l\u2019\u00e9quipe de livraison de produits.\n\nRESPONSABILIT\u00c9S\n\nConcevoir, construire, installer et maintenir des syst\u00e8mes de gestion des donn\u00e9es \u00e9volutifs qui ing\u00e8rent et int\u00e8grent un gros volume de donn\u00e9es sensibles et temporelles provenant de diff\u00e9rentes sources\nConcevoir, b\u00e2tir et mesurer des t\u00e2ches ETC/ELT complexes afin de traiter des sources de donn\u00e9es disparates ou douteuses et former des donn\u00e9es exactes, int\u00e8gres et de haute qualit\u00e9\nSurveiller la qualit\u00e9 et le flux des donn\u00e9es\nAm\u00e9liorer les proc\u00e9dures, directives et normes fondamentales de donn\u00e9es\nInt\u00e9grer aux structures existantes de nouvelles technologies de gestion des donn\u00e9es et des outils logiciels d\u2019ing\u00e9nierie\nCr\u00e9er des composants de logiciel personnalis\u00e9s et des applications d\u2019analyse\nCollaborer avec d\u2019autres Ing\u00e9nieurs, Scientifiques des donn\u00e9es et parties prenantes, saisissant les opportunit\u00e9s d\u2019apprentissage et de leadership lorsqu\u2019elles se pr\u00e9sentent\nS\u2019assure que les besoins et attentes du client sont rencontr\u00e9es.\n\nQualifications\n\nRequirements\nBachelor's degree in Computer Science, Engineering, or related field\nMaster\u2019s degree an asset\nA minimum of 3 years industry experience working with data, coding and scripting (Python/Java/Scala/SQL/JS/Bash), design and testing\nA minimum of 3 years experience developing large data systems\nA minimum of 3 years experience in data modeling of NoSQL and SQL databases\nA minimum of 3 years experience with at least one the following: Hadoop ecosystem, Spark, Cassandra, DynamoDB, Redis, or other large-scale data management platform (preferably cloud)\nExperience with AWS/GCP/Azure suite such as: BigQuery, BigTable, Cosmo DB, S3, Redshift, EMR, Glue/Athena, an asset\nExperience with Kafka, Kinesis, Flume, HDFS, Hive, an asset\nExperience with usage and deployment of machine learning tools such as scikit-learn, MLlib, TensorFlow, an asset\nSolid knowledge of CS fundamentals in algorithms and data structures\nWillingness to participate in all levels of project work when necessary\nExcellent English written and verbal communication skills, French an asset Skills\nAbility to handle complex long-term focused projects involving multiple disciplines and lines of business\nAbility to work independently and with management on highly visible, divisional and cross-divisional complex projects\nCreative thinker with excellent problem solving abilities\nAbility to thrive in a fast-paced, performance-driven environment\nTeam player with solid interpersonal skills\nCustomer oriented focus\n\nEXIGENCES\n\nBaccalaur\u00e9at en Informatique, Ing\u00e9nierie, ou un domaine connexe\nMa\u00eetrise un atout\nUn minimum de 3 ann\u00e9es d\u2019exp\u00e9rience dans un r\u00f4le traitant les donn\u00e9es, le codage, le scriptage (Python/SQL/CQL/AWS/JS/Bash), le design et les essais\n\u2022 Un minimum de 3 ann\u00e9es d\u2019exp\u00e9rience en d\u00e9veloppement et administration de syst\u00e8mes de donn\u00e9es importants \u2022 Un minimum de 3 ann\u00e9es d\u2019exp\u00e9rience en mod\u00e9lisation des donn\u00e9es et administration de bases de donn\u00e9es NoSQL et SQL\nUn minimum de 3 ann\u00e9es d\u2019exp\u00e9rience avec au moins deux des fonctions suivantes : Hadoop ecosystem, Spark\nExp\u00e9rience avec la suite AWS (S3, Redshift, EMR, Glue/Athena) un atout\nExp\u00e9rience avec la suite GCP (GCS, BigQuery) un atout\nExp\u00e9rience avec Kafka, Kinesis, Flume, HDFS, Hive,un atout\nExp\u00e9rience avec l\u2019utilisation et le d\u00e9ploiement des outils d\u2019apprentissage machine tels que scikit-learn, MLlib, TensorFlow, un atout\nSolide connaissance des essentiels informatiques en termes d\u2019algorithmes et de structures de donn\u00e9es\nVolont\u00e9 de participer \u00e0 tous les niveaux des projets au besoin\nMa\u00eetrise de l\u2019anglais tant \u00e0 l\u2019oral qu'\u00e0 l\u2019\u00e9crit, fran\u00e7ais un atout\n\nCOMP\u00c9TENCES\n\nCapacit\u00e9 de g\u00e9rer des projets complexes \u00e0 long terme impliquant de multiples disciplines et lignes d\u2019affaires\nCapacit\u00e9 \u00e0 travailler de fa\u00e7on ind\u00e9pendante et avec la direction sur des projets transverses complexes et \u00e0 grande visibilit\u00e9\nEsprit cr\u00e9atif et excellentes aptitudes \u00e0 r\u00e9soudre des probl\u00e8mes\nHabilet\u00e9 \u00e0 travailler dans un environnement orient\u00e9 sur la performance et au rythme rapide\nEsprit d\u2019\u00e9quipe et fortes comp\u00e9tences relationnelles\nOrient\u00e9 client\n\n\nAdditional Information\n\nnull" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=891fedf6bd2314ff&fccid=1cd7c6119a13c5d4&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "SQL Data Scientist", + "company": "Plotly", + "salary": NaN, + "desc": "At Plotly, we develop modern analytics apps for the enterprise. As a SQL data scientist, you will have the opportunity to help advance the discipline of data visualization.\nJob requirements\nAdvanced knowledge of SQL queries and database admin\nExperience with Redshift and Google BigQuery a plus\nExperience with GitHub, GitHub pages, and git required\nAbility to clearly present quantitative results\nTo successfully apply for this position, please download Falcon, make a graph using it, and send us a link to your graph" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=9253edb582104398&fccid=479fd129e9715110&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Business Data Analyst", + "company": "Technicolor", + "salary": NaN, + "desc": "Job Description\n\nThis role will be based in Montreal\nThis position will be reporting to Senior Manager \u2013 Financial Planning & Analysis and Strategy. Responsibilities will include but not be limited to:\nDevelop CRM activities plan for the three Business Units\nPerform data analyses and post activity evaluations to deliver customer insights and make recommendations\nOptimization of CRM activities by defining market sectors and customer selection based on customer profiling and segmentation\nIdentification of key trends and criteria that influence customer behavior\nInitiation of any analysis that can generate customer insights or operations projects to add value to the customer relationship\nCustodian of customer database with specific responsibility of maintenance and management of customer data to ensure data integrity\nPerform timely and accurate KPI reporting on monthly basis\n\nQualifications\n\nWhat we are looking for\nMinimum of 4-5 years of relevant experience in multinational companies\nStrong analytical and problem solving skills with ability to deliver insightful ideas\nGood interpersonal, communication and presentation skills\nProactive, responsible, attention to detail and a good team player\nAbility to prioritize and execute tasks in a high-pressure fast paced environment\nDemonstrated ability to work independently\nFluency in written and spoken English\n\nAdditional Information\n\nAll your information will be kept confidential according to EEO guidelines." + }, + { + "link": "https://www.indeed.ca/company/Breathe-Life/jobs/Data-Scientist-92014f82b82ba5f4?fccid=93dbf078cab8e7fc&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "Breathe Life", + "salary": NaN, + "desc": "About Us\nThere\u2019s no denying it, the financial world is messy and confusing. People suffer as they try to manage their financial lives and financial institutions haven\u2019t cracked the code at helping them along the way. Legacy systems and antiquated distribution models have created a huge gap in the market, leaving hundreds of millions of people vulnerable in North America. As unexpected events occur in these people\u2019s lives, many will encounter life changing situations and serious debt. It\u2019s an inconvenient truth, but the one size fits all products, paper forms and fax machines are often the harsh status quo of the industry.\nAt Breathe Life, we\u2019re building technology that helps people take control of their financial future so they can do what\u2019s right for them, their loved ones and have peace of mind. Our platform helps them learn about financial products, identify the ones best suited for them, and make their purchase online when they\u2019re ready. Breathe Life is shaping an industry that hasn\u2019t changed in 100 years and having a massive impact in the process.\nBreathe Life has secured significant financial and strategic backing from Diagram, a venture launchpad focused on insurance, financial and health technology. Diagram is backed by Power Financial Corporation, Great-West Lifeco, and IGM Financial through Portag3, along with 50+ leading angel investors. Our backing from Diagram gives us a significant competitive advantage that will help us win our market.\nWe are looking for a Data Scientist to join our growing team in Montreal. Reporting to the Head of Growth, you will be working in a cross-functional product team to identify key metrics, conduct deep and thorough analysis, and deliver insights to the team to drive product improvements.\nOur team believes too few people know what it takes to ensure the financial future of their loved ones, and we aspire to help the 100+ million underinsured people in North America do what\u2019s right for the people they love.\nCome along as we change this high impact industry that inherently touches many, many lives.\nWhat you'd be doing:\nPerform quantitative research and analysis of Breathe Life's, or it's partners, data that results in actionable insights and recommendations;\nWork daily with marketing managers, product managers and engineers to discover and guide the most impactful product investments;\nDesign and analyze rigorous A/B experiments;\nBuild repeatable and accessible data analysis;\nCommunicate analysis and recommendations to cross functional stakeholders for decision making;\nExecute on Data Engineering by adding new data sources and monitoring;You need to have:\nBachelor's degree in Computer Science, Software Engineering, Mathematics, or Statistics ;\nPassion for, and a track record of leveraging data for business impact;\nUnderstanding of A/B testing and other forms of statistical analysis using statistical packages similar to R, SAS, or Pandas;\nExperience with analytical visualization tools such as Tableau, Looker, D3.js, Google Data Studio or similar tools;\nExperience building tools and automated processes to extract, clean, and distill data in a procedural language of your choice such as Python, Julia or R;\nAbility to write complex and performant queries in your dialect of SQL to extract data from our BigQuery cluster;\nExcellent communication skills with the ability to distill complex problems into meaningful and digestible insights;\nML Experience is a plus;\nStrong English communications skills;\nFrench is an asset.What we offer:\nHave a significant impact on a product that will change how people think about and purchase Life Insurance;\nBe part of an innovative and exciting company that is completely changing an outdated industry;\nWork with a team of very experienced, hard-working, ambitious and caring individuals;\nDevelop reusable skills with a team that has been successful in the past;\nWork from a beautiful sunny location in Old Montr\u00e9al, next to caf\u00e9s, restaurants and in front of a metro and a Bixi stand;\nGet delicious healthy meals catered by top Montreal chef;\nCompetitive salary, stock options, top tier benefits plan (including a telemedicine service).\nJob Type: Full-time\nExperience:\nData Scientist: 1 year (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=42cf62c56f8b4517&fccid=237908de095b6446&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Ubisoft", + "salary": NaN, + "desc": "Job Description\n\nUbisoft Montreal, an industry leading developer of video games, located in the heart of Montreal\u2019s Mile-End, offers a unique environment where creativity, teamwork and cutting-edge technology bring to life critically acclaimed video games and iconic AAA franchises.\nWhen you join Ubi Montreal, you enter a community of passionate, extraordinary people connected by their need to innovate, to be creative and to work with the latest technology. You\u2019ll discover a world where employees enjoy constant career advancement, a supportive learning environment, and competitive compensation packages.\nSummary\nThe successful candidate will turn data into information, information into insight and insight into business decisions. Data analyst responsibilities include conducting full lifecycle analysis to take into account requirements, activities and design. Data analysts will develop analysis and reporting capabilities, identify and recommend new ways to save money by streamlining business processes. They will be working alongside teams within the business et the management teams to establish and prioritize business needs.\n\nResponsibilities:\nPropose relevant analyses (whether exploratory, descriptive or predictive) that meet the needs and have the maximum possible impact.\nContribute to the development of reports for business and management teams detailing the behaviour of players within our games;\nProvide systematic, reliable, meaningful data estimates;\nDeliver data analysis through charts and reports, which will be integrated in internal presentations;\nProduce compared data analysis to discover models and patterns;\nParticipate to the development of our systems, formulate recommendations to help improve the current process and the report templates;\nPerform any other related tasks.\n\nQualifications\n\nEducation:\nBachelor\u2019s degree in Mathematics, Statistics, Computer Science, or a related field;\nData Analyst certification is a plus.\nRelevant experience:\nMinimum 3 years in a data analyst role;\nMinimum 3 years of BI/Data Warehousing/ Analytics experience;\nExperience working with high volumes of data;\nTechnical expertise regarding data models, database design development, data mining and segmentation techniques;\nVideogame industry experience is a plus.\nSkills:\nGreat communication and presentation skills;\nAbility to communicate ideas easily to both functional and technical users;\nStrong analytical skills with the ability to collect, organize, analyze, and disseminate significant amounts of information with attention to detail and accuracy ;\nAbility to interpret data, analyze results using statistical techniques and provide ongoing reports;\nAbility to render the results of analyzes via reporting tools like MicroStrategy or Tableau;\nAdept at queries, report writing and presenting findings;\nMath skills.\n\nKnowledge:\nExcellent English skills (spoken and written);\nFrench fluency is an asset;\nGood knowledge of Python or R for analytical purposes;\nGood knowledge of relational databases;\nGood knowledge MicroStrategy and Tableau and associated BI tools;\nGood knowledge of Teradata;\nKnowledge of statistics and experience using statistical packages for analyzing datasets (Excel, R etc.);\nAgile knowledge is a plus.\n\nAdditional Information\n\nWe are an equal-opportunity employer and value diversity at our company. We do not discriminate on the basis of race, ethnicity, religion, gender, sexual orientation, age or disability status." + }, + { + "link": "https://www.indeed.ca/company/SPORTLOGiQ/jobs/Data-Scientist-4ca0cac253b0f9d2?fccid=904580c96717ebe0&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "SPORTLOGiQ", + "salary": NaN, + "desc": "SPORTLOGiQ is the leading provider of advanced analytics data for professional sports teams and broadcast media. As a Data Scientist, you will be a part of our highly talented research team, building our next generation advanced sport analytics platform. To be successful in this role, you must be a fast learner and have the ability to thrive in a dynamic environment; combining conceptual and applied research, entrepreneurship, systems building and collaborative work. You will work together with similarly-minded individuals on a unique development team where your skills and expertise will be put to the test! This is a once-in-a-lifetime opportunity to help shape the future of sport analysis, coaching and media storytelling.\nResponsibilities:\nOur ideal candidate would have strong experience in developing novel statistical modeling techniques and applying them to solve real-world problems. The selected candidate will be part of the sport analytics research team, and will be in charge of the development of novel descriptive and predictive models for sport games data.\nRequired Skills:\nGraduate degree (PhD preferred) with research experience in applied statistical modeling\nSolid skills in C/C++, Python, R, or Julia\nAbility to develop novel metrics and models on large, complex data\nDeep understanding of statistical theory and modeling\nStrong working knowledge of data science best practices\nDesired Skills & Experience:\nResearch experience and publications in relevant fields in top-tier conferences and journals\nUp-to-date knowledge and understanding of recent advances in statistics and machine learning, particularly sports analytics and spatio-temporal modeling\nResearch experience in time series analysis, spatial modeling, and methods for big data\nPractical experience with Stan, INLA, Keras, or related frameworks\nWhat We Offer:\nCompetitive salary\nFlexible work schedule\nBonus structure and employees stock options\nComprehensive benefits program\nA cooperative and fun work environment\nFreedom to work on your own projects\nJob Type: Full-time\nEducation:\nDoctoral Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/company/Camfil-Farr-Power-Systems/jobs/Data-Scientist-Intership-4ea41849c076234d?fccid=0be184394e28fa88&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist INTERSHIP- Winter 2019", + "company": "Camfil Power Systems", + "salary": NaN, + "desc": "Internship\nCamfil Power Systems is a leading manufacturer of air filters and related equipment for industrial gas turbines with its N. America HQ located in Laval, Canada. We conduct a lot of research to ensure we make the highest quality products to serve our clients\u2019 needs as best as possible. This opportunity is open to both intermediate and junior level candidates.\nThe environment is intellectual, collaborative, relaxed and playful, with a strong focus on results. You will learn about air filtration through in-house testing, training sessions, and hands-on experience. You will also gain exposure to the latest business innovations and will be able to quickly and clearly see the impact of your work. The role you carve out for yourself will also be dependent on your strengths and the types of problems you enjoy thinking about.\nYou will work on the following:\n- Gather and organize experimental data\n- Perform data clean-up (based on prescribed criteria)\n- Analyse data to identify key performance drivers and corresponding trends\n- Perform controlled tests to validate hypotheses\n- Weekly update/report on progress (English)\n- Improve and amend written procedures for data collection\n- Read and get familiarized with various standard test procedures\n- Periodically present data and analysis results to laboratory team\nRequirements\n- Must have an analytical and scientific background\n- Must be rigorous and detail oriented\n- Must be autonomous\n- Ability to troubleshoot the equipment (if required)\n- Strong English writing skills\n- Team player\n- Must be able to work from the Laval office\nYou should:\n- Be enrolled in a University Science/Engineering Program or CEGEP Technical Program (DEC)\n- Have relevant programming experience: MATLAB, R or Python preferred\n- Familiar with statistics and regression techniques\n- Be proficient in MS Office (esp. MS Excel) and Adobe Pro\n- Must be eligible to work in Canada\nMajor:\nScience/Physical/Computer Science, Science/Physical/Physics, Engineering/Mechanical\nJob Type: Internship\nExperience:\nMachine Learning: 1 year (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b53750daa82beca4&fccid=0ddad3766f834b33&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst // Analyste de donn\u00e9es", + "company": "SSENSE", + "salary": NaN, + "desc": "Reporting to the Enterprise Data Operations Manager, the Data Analyst is responsible for answering business questions using data analysis and visualization. The Data Analyst translates business requirements into technical reporting requirements, to create valuable insights, support decision making and enable various projects. The ideal candidate has an analytical mindset and is passionate about business analysis, programming, visualization, statistics, and math.\n\nRESPONSIBILITIES\nGenerate reports summarizing business, financial, or economic data for review by the executive team, managers, partners and other stakeholders\nCreate, update and maintain business intelligence tools, databases, and dashboards\nProvide technical support for existing reports, dashboards, and other tools\nDocument specifications for reports, dashboards, and other outputs\nREQUIREMENTS\nBachelor\u2019s degree in Engineering, Mathematics, Statistics, or related field\nA minimum of 2 years experience working with data visualization and data analysis\nAdvanced skills in working with data visualization tools such as Tableau or similar data discovery and visualization tools\nExcellent programming skills using SQL\nExperience with other data manipulation technology an asset\nExcellent English written and verbal communication skills, French an asset\nSKILLS\nCapacity to synthesize and simplify complex information\nHighly analytical and detail oriented\nHighly motivated and organized\nCreative thinker with excellent problem solving abilities\nTeam player with solid interpersonal skills\n----------\n\nRelevant de la Gestionnaire des op\u00e9rations, donn\u00e9es d\u2019entreprise, l\u2019Analyste de donn\u00e9es est responsable de r\u00e9pondre aux questions d\u2019affaires \u00e0 l\u2019aide d\u2019analyses de donn\u00e9es et de visualisation. L\u2019Analyste de donn\u00e9es traduit les exigences commerciales en exigences en mati\u00e8re de rapports techniques, pour cr\u00e9er des observations utiles, soutenir la prise de d\u00e9cisions et faciliter divers projets. Le candidat id\u00e9al dispose d\u2019un esprit analytique et d\u2019une passion ind\u00e9niable pour l\u2019analyse commerciale, la programmation, la visualisation, les statistiques et les maths.\n\nRESPONSABILIT\u00c9S\nG\u00e9n\u00e9rer des rapports qui r\u00e9sument les donn\u00e9es commerciales, financi\u00e8res ou \u00e9conomiques destin\u00e9s \u00e0 informer l\u2019\u00e9quipe de direction, les gestionnaires, les partenaires ainsi que d\u2019autres parties prenantes\nCr\u00e9er, mettre \u00e0 jour et maintenir les outils de veille commerciale, les bases de donn\u00e9es et les tableaux de bord\nAssurer un soutien technique pour les rapports, les tableaux de bord et d\u2019autres outils existants\nDocumenter les sp\u00e9cifications pour rapports, tableaux de bord et autres extrants\nEXIGENCES\nBaccalaur\u00e9at en Ing\u00e9nierie, Math\u00e9matiques, Statistiques, ou un domaine connexe\nUn minimum de 2 ann\u00e9es d\u2019exp\u00e9rience de travail en visualisation des donn\u00e9es et en analyse des donn\u00e9es\nComp\u00e9tences avanc\u00e9es avec les outils de visualisation de donn\u00e9es tels Tableau ou des outils d\u2019exploration et visualisation de donn\u00e9es similaires\nExcellentes comp\u00e9tences en programmation avec SQL\nExp\u00e9rience avec autre technologie de manipulation des donn\u00e9es un atout\nMa\u00eetrise de l\u2019anglais tant \u00e0 l\u2019oral qu'\u00e0 l\u2019\u00e9crit, fran\u00e7ais un atout\nCOMP\u00c9TENCES\nSolides aptitudes analytiques et soucieux du d\u00e9tail\nCapacit\u00e9 \u00e0 synth\u00e9tiser et simplifier de l\u2019information complexe\nHautement motiv\u00e9 et organis\u00e9\nEsprit cr\u00e9atif et excellentes aptitudes \u00e0 r\u00e9soudre des probl\u00e8mes\nEsprit d\u2019\u00e9quipe et fortes comp\u00e9tences relationnelles" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=454080b4e954cb3a&fccid=8d985e5f2e5b141b&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "Momentum Travel Group", + "salary": NaN, + "desc": "-----------------------------------------------\nEveryday is a trip, your adventure starts here.\n-----------------------------------------------\n\n-------------------\nCome fly with us!!!\n-------------------\n\nWe are looking for a Data Scientist to join our fraud prevention team! In this role you will analyze large data-sets to optimize our fraud prevention algorithms. You will explore and experiment with new prevention techniques to eliminate losses and false positives. If you love working with data and want to use your skills to stop fraud in its tracks, don't miss this opportunity!\n\nWe are a group of passionate people who work hard and move quickly in the goal of redefining the flight shopping experience for the entire world. We get high off seeing progress and we strive to be the best at what we do. Why just have a job when you can be a part of something bigger?\n\nTO BE SUCCESSFUL IN THIS ROLE, YOU'LL NEED:\nTo optimize rule based scoring model to improve fraud detection, reducing losses and false positives\n2+ Years of experience working with large data-sets, developing and delivering ML models with demonstrated results\nTo develop, optimize and maintain predictive Machine Learning (ML) models\nTo work closely with software developers to put predictive models into production\nTo mine data and develop deep analysis to extract meaningful insights\nGood communication to give findings concisely and use visualizations as necessary\nDegree in Computer Science, Statistics, Mathematics or other related discipline\nExpertise with Python for Data Analysis and Machine Learning\nProficiency with SQL\nCHECK US OUT!\n\nVisit http://momentumtravel.com/ to learn more about us\n-------------------------------------------------------------\n\nIf you know someone who could fit this job description, check out our REFERRAL PROGRAM ( http://momentumtravel.com/careers#referral-program )\n\n(please note that additional responsibilities may apply)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b084edb0ace20b9b&fccid=4512634d9e7338a8&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst (Importer) - TELUS Health", + "company": "TELUS Communications", + "salary": NaN, + "desc": "Join our team\nThe TELUS Health & Payment Solutions (THPS) - Clinical Customer Solution Delivery team is looking for an experienced, detail-oriented candidate with a strong capacity for working under pressure, both alone and as part of a team. The successful candidate will work in a pleasant environment where communication and cooperation among all team members is valued and encouraged.\n\nHere\u2019s the impact you\u2019ll make and what we\u2019ll accomplish together\n\nAs a Data Analyst (Importer), you will be involved in analyses and in various activities relating to conversion and clinical solution delivery for the projects to which you are assigned. You will be tasked with advocating the optimization of the quality of products and services delivered to customers. You will take part in the analysis of conversion strategies, discussions on how to prioritize different activities, and validation of customer data during testing, including implementation of test scenarios that affect conversions, both internally and with customers. You will participate in programming, testing, debugging and documentation for simple or moderately complex extract, transform, and load (ETL) type applications. Finally, you will be tasked with importing the converted data to production in the evenings, about twice a week, typically 9:00 P.M. to 10:30 P.M.\n\nHere\u2019s how\nAnalyze and document strategies for converting and loading data\nSupport the development of data conversion tools\nHandle all tests, validations and mapping activities related to the execution of clinical data conversions\nWhen the need arises, validate data directly with customers\nImport converted data for our customers on a timely basis\nAssist colleagues in the continuous improvement of processes and tools by sharing best practices and working on required improvements\nWork with all teams responsible for delivering clinical solutions to our customers\nQualifications\nYou\u2019re the missing piece of the puzzle\nStrong experience with Structured Query Language (SQL)\nKnowledge of best practices and methodologies for the analysis, development, validation and execution of customer data conversion operations\nKnowledge and expertise required for analysis, data mapping, testing, customer validation and execution of conversions\nExcellent communication skills and customer focus\nStrong analytical skills, always seeking solutions to issues identified\nAbility to work independently, team spirit and eagerness to participate\nConcern for a job well done and meeting deadlines\nStrong ability to adapt and flexibility in the face of change\nBilingualism in English & French, especially excellent fluency in French, spoken & written\nUniversity degree in Computer Science or equivalent diploma from a technical institute, or equivalent experience\n5 years of experience as an Analyst/Developer whose main duties and responsibilities entailed tool development as well as the conversion and loading of customer data\nExtensive experience executing and delivering releases, and experience with production patches\nGreat-to-haves\nKnowledge of Microsoft (MS) SQL Server Integration Services (SSIS) & SQL Server Reporting Services (SSRS) tools\nWeb & C# development skills\nKnowledge of Information Technology (IT) systems used in clinical settings in this market" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=448d9b3872de0a03&fccid=7e0d9a513baca44d&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Scientifique des donn\u00e9es - Data Scientist", + "company": "Gameloft", + "salary": NaN, + "desc": "Job Description\n\nNous sommes pr\u00e9sentement \u00e0 la recherche d'un(e) scientifique des donn\u00e9es afin de compl\u00e9ter notre \u00e9quipe de Science des donn\u00e9es.\nSous la supervision du chef du d\u00e9partement de science des donn\u00e9es, le candidat s\u00e9lectionn\u00e9 devra collaborer avec les parties prenantes pour comprendre en d\u00e9tail, mod\u00e9liser, pr\u00e9dire, segmenter et mon\u00e9tiser les clients de Gameloft. Le candidat devra \u00e9galement collaborer avec une \u00e9quipe internationale d'experts en donn\u00e9es et contribuer au programme de recherche et d\u00e9veloppement en donn\u00e9es de Gameloft.\n\nD\u00e8s le d\u00e9but de votre aventure avec nous, vous serez appel\u00e9(e) \u00e0 :\nD\u00e9velopper de fa\u00e7on proactive de nouvelles analyses et perspectives pour favoriser la prise de d\u00e9cisions et les strat\u00e9gies d'acquisition, de r\u00e9tention et de mon\u00e9tisation des utilisateurs.\nD\u00e9velopper des mod\u00e8les complexes d'apprentissage machine (machine-learning) pour la pr\u00e9diction et la classification des m\u00e9triques cl\u00e9s de Gameloft.\nParticiper au d\u00e9veloppement des connaissances de Gameloft via la recherche fondamentale et appliqu\u00e9e sur les concepts cl\u00e9s de la science des donn\u00e9es.\nCr\u00e9er de vastes rapports syst\u00e9matiques et d'autres \u00e0 partir de larges jeux de donn\u00e9es.\nCollaborer au d\u00e9veloppement d'applications interactives pour l'extraction et la visualisation de donn\u00e9es.\n***\n\nWe are currently looking for a Data Scientist to join our Data Science team.\nUnder the supervision of the Data Science Manager, the successful candidate will work closely with relevant parties to gain an in-depth understanding of Gameloft customers, and to model, predict, segment, and monetize them. The candidate will also collaborate with an international team of data research experts and contribute to Gameloft\u2019s data research R&D program.\n\nFrom the beginning of your adventure with us, you will be tasked with:\nProactively developing new insights and types of analyses to drive decisions and strategies for user acquisition, retention and monetization\nDeveloping complex machine-learning models for the prediction and classification of key Gameloft metrics\nParticipating in the development of Gameloft\u2019s knowledge by engaging in fundamental and applied research on key data-science concepts\nCreating extensive systematic (and other) reports using large datasets\nParticipating in the development of interactive applications for data extraction and visualization\n\nQualifications\n\nExp\u00e9rience et comp\u00e9tences recherch\u00e9es :\nBaccalaur\u00e9at en math\u00e9matiques, informatique d\u00e9cisionnelle, \u00e9conomie, g\u00e9nie ou autre champ technique requis (ma\u00eetrise ou doctorat, un atout important).\nSensibilit\u00e9 et go\u00fbt prononc\u00e9 pour l'exploration de donn\u00e9es et la recherche appliqu\u00e9e.\nComp\u00e9tences en g\u00e9nie logiciel; connaissance de Python, Pandas et NumPy n\u00e9cessaire.\nExcellentes comp\u00e9tences en bases de donn\u00e9es (SQL) : exp\u00e9rience pouss\u00e9e en recherche dans de vastes listes de donn\u00e9es complexes.\nAptitude \u00e0 cr\u00e9er des mod\u00e8les et des algorithmes complexes.\nExp\u00e9rience pertinente en analyse quantitative, de pr\u00e9f\u00e9rence pour une entreprise du domaine de l'e-commerce, de l'Internet ou des technologies.\nCompr\u00e9hension des m\u00e9thodes statistiques avanc\u00e9es.\nConnaissance des techniques d'apprentissage machine et des biblioth\u00e8ques aff\u00e9rentes en Python (Scikit-learn, TensorFlow, etc.)\nCapacit\u00e9 \u00e0 travailler dans un environnement dynamique et \u00e0 respecter des \u00e9ch\u00e9anciers et des priorit\u00e9s fluctuants sur plusieurs projets simultan\u00e9s.\nExcellent sens de l'organisation et grande autonomie.\nExcellentes aptitudes interpersonnelles et de communication.\nAppr\u00e9cie le travail individuel et en \u00e9quipe.\nExcellente connaissance de l'anglais n\u00e9cessaire (\u00e9crit et oral).\nInt\u00e9r\u00eat marqu\u00e9 pour les jeux vid\u00e9o et les donn\u00e9es.\nEt par-dessus tout, de la motivation et une passion pour son m\u00e9tier.\n***\n\nExperience and Qualifications:\nBachelor\u2019s degree in mathematics, business intelligence, economics, engineering or other technical field is required (master's degree or PhD is a major asset)\nPassion for, and interest in, data exploration and applied research\nSoftware engineering skills: knowledge of Python, pandas and Numpy are must-haves\nExcellent database (SQL) skills: extensive experience querying large, complex datasets\nAbility to create complex models and algorithms\nRelevant experience performing quantitative analysis, preferably for an e-commerce, Internet, or technology company\nUnderstanding of advanced statistical methods\nKnowledge of machine-learning techniques and related Python libraries (scikit-learn, TensorFlow, etc.)\nAbility to work in a fast-paced environment and to keep up with changing deadlines and priorities on multiple simultaneous projects\nStrong organizational skills and self-reliance\nExcellent communication and interpersonal skills\nEnjoys working in both individual and team settings\nStrong knowledge of English is a must-have (written and spoken)\nKeen interest in video games and data\nAnd above all, motivation and a passion for your work!\n\nAdditional Information\n\nVoici pourquoi entrer dans l\u2019univers Gameloft :\nParce que vous voulez vivre une exp\u00e9rience exceptionnelle, au sein d'une entreprise en constante \u00e9volution !\nParce que vous voulez travailler avec des coll\u00e8gues talentueux et pionniers dans l\u2019industrie !\nParce que l\u2019id\u00e9e d\u2019ouvrir vos horizons \u00e0 une culture internationale et au partage de connaissances avec des coll\u00e8gues \u00e0 l\u2019autre bout du monde vous enchante !\nOu tout simplement parce que vous recherchez un endroit o\u00f9 il y fait bon travailler !\nNous offrons :\nAvantages sociaux dignes d'une grande entreprise\nVacances et cong\u00e9s mobiles\nRemboursement d\u2019une partie du co\u00fbt de la carte OPUS\nLocal \u00e0 v\u00e9los de 80 places\nCollations offertes quotidiennement\nEspaces de jeux\nTerrasse sur le toit\nNous souhaitons vous conna\u00eetre!\nSoumettez votre candidature d\u00e8s maintenant.\n***\n\nWhy Join the World of Gameloft?\nBecause you want to be part of an exceptional experience within a company that is constantly growing!\nBecause you want to work with talented people who are industry pioneers!\nBecause you want to join a global company and meet great people around the world from all walks of life.\nOr, just because you\u2019re looking for a great place to work!\nWhat We Offer\nBenefits befitting a company of our size\nVacation and personal days off\nPublic transportation allowances (partial reimbursement of OPUS card)\nA storage room for 80 bikes\nDaily snacks\nA game room\nA rooftop terrace\n\nWe want to get to know you!\nSubmit your application now." + }, + { + "link": "https://www.indeed.ca/company/TMC---People-Drive-Technology/jobs/Data-Scientist-5cab917cdc0b9157?fccid=97deb09e631bb2b4&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist / Data Engineer", + "company": "TMC - People Drive Technology", + "salary": NaN, + "desc": "| RESPONSIBILITY:\nAs a Data Scientist in our team you will be responsible with designing and/or building the complex data processing infrastructure that meets the business\u2019s requirements; transforming large, complex data-sets into pragmatic, actionable insights; leveraging data to identify, quantify and realize tangible business gain; have the capacity to thrive in our fast-paced environment, adapt quickly and take ownership of your work; challenge ideas and methods while working together with talented, highly skilled team members.\n| YOUR PROFILE:\nPh.D. or M.Sc. in Computer Science, Software Engineering, (Theoretical) Physics, Statistics, Scientific Computing, Bioinformatics or comparable background\n2+ years of experience in producing complex solutions in various data science, machine learning, DevOps, or software engineering projects at mid-size or large enterprises\nStrong background in advanced analytics or statistics theory\nKnowledge in Machine Learning, AI and neural network concepts\nExperience in relational and non-relational databases, dimensional modelling and database design, and data warehousing (Redshift, Cassandra, Elastic search, Dynamodb)\nStrong knowledge of Python, Hadoop, Spark, Keras, Pytorch, Theano, Tensorflow, R, Java or others\nStrong knowledge of common BI toolkits, such as Tableau, Qlikview, Spotfire, Splunk, SAS,or others\nExperience with processing large data sets ( > 1 TB), an asset\nBilingual is a key asset\n| WHAT YOU CAN EXPECT OF TMC:\nOur Benefits:\nProfessional certified coach to support your career plan chosen by you and assigned from day one\nSessions in an entrepreneurial lab to work on your own projects\nAll the advantages of a large group (RRSP contributions and Health & Life Insurance) in an environment and work mode of a start-up, with a young and dynamic team\nA customized package including, among others, an individual profit sharing based on transparency.\nOur business model:\nA truly unique and innovative work tool: The Employeneurship Model\nAccess to our network of executive coaches to support your career growth.\nA modern and collaborative framework that encourages innovation, knowledge sharing and the development of transversal expertise (Brainstorming sessions, Impact sessions, Entrepreneurial Lab.\nA horizontal organization that promotes initiative and facilitates decision-making\nPerforming in an environment that values Research and Development ( 70% of the team are Masters and PhD).\nBeing part of an efficient management culture based on total transparency and revaluation of our Engineers' salaries and individual profit sharing\nGetting access to real development opportunities in a group with strong national and international growth\nhttps://www.youtube.com/watch?v=vXAOlAtFbMs\nType d'emploi : Temps Plein" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c9cac75624514d04&fccid=f3d208bcc3f0b7a2&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "FlightHub", + "salary": NaN, + "desc": "-----------------------------------------------\nEveryday is a trip, your adventure starts here.\n-----------------------------------------------\n\n-------------------\nCome fly with us!!!\n-------------------\n\nWe are looking for a Data Scientist to join our fraud prevention team! In this role you will analyze large data-sets to optimize our fraud prevention algorithms. You will explore and experiment with new prevention techniques to eliminate losses and false positives. If you love working with data and want to use your skills to stop fraud in its tracks, don't miss this opportunity!\n\nWe are a group of passionate people who work hard and move quickly in the goal of redefining the flight shopping experience for the entire world. We get high off seeing progress and we strive to be the best at what we do. Why just have a job when you can be a part of something bigger?\n\nTO BE SUCCESSFUL IN THIS ROLE, YOU'LL NEED:\nTo optimize rule based scoring model to improve fraud detection, reducing losses and false positives\n2+ Years of experience working with large data-sets, developing and delivering ML models with demonstrated results\nTo develop, optimize and maintain predictive Machine Learning (ML) models\nTo work closely with software developers to put predictive models into production\nTo mine data and develop deep analysis to extract meaningful insights\nGood communication to give findings concisely and use visualizations as necessary\nDegree in Computer Science, Statistics, Mathematics or other related discipline\nExpertise with Python for Data Analysis and Machine Learning\nProficiency with SQL\nCHECK US OUT!\n\nVisit http://momentumtravel.com/ to learn more about us\n-------------------------------------------------------\n\nIf you know someone who could fit this job description, check out our REFERRAL PROGRAM ( http://momentumtravel.com/careers#referral-program )\n\n(please note that additional responsibilities may apply)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ff97a8b29d0bcf6d&fccid=237908de095b6446&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst- Ubisoft Club", + "company": "Ubisoft", + "salary": NaN, + "desc": "Job Description\n\nUbisoft Montr\u00e9al is looking for you, Data Analysts!\nUbisoft Montreal, an industry leading developer of video games, located in the heart of Montreal\u2019s Mile-End, offers a unique environment where creativity, teamwork and cutting-edge technology bring to life critically acclaimed video games and iconic AAA franchises. You will benefit from a competitive compensation package, an open learning environment, and contribute to an international team driving innovation.\n\nOn being a Data Analyst at Ubi Montr\u00e9al\nThe Ubisoft Club is looking for a game data analyst interested in creating new features based on player analytics to drive engaging and visually impactful user experiences.\nMore specifically we are looking for a brilliant analyst that, within a versatile Agile team, would take an active role in recommending evolutions to enhance the Ubisoft Club player experiences on mobile, consoles and Web. We are currently growing our personal gaming assistant: Sam, a \u201cchatbot\u201d using the latest technologies in conversational interfaces. If this picks your interest, we would love to chat with you.\n\nThe daily life of a Data Analyst at Ubi Montr\u00e9al\nDetermine new sources of relevant information for data collection, enter the data and validate the quality of the data and results;\nCommunicate data synthesis by highlight priority information relevant to decision-making;\nDevelop action plans and work with different teams to implement recommendations and follow up;\nDetermine, publish and constantly enhance the development and communication of key performance indicators (KPIs) and other analyses;\nDraft reports and create scorecards;\nCreate new processes and automate, standardize and optimize existing processes;\nInnovate and develop analysis models to test scenarios and make recommendations;\nCollaborate with different partners (Community Manager, Marketing, Monetization, Production, Technical Operations) to support decision-making and guide the studio\u2019s strategic actions by providing quantitative logic for the various scenarios;\nCarry out all other related tasks.\n\nQualifications\n\nWhat it takes to make it\nBachelor\u2019s degree in Business Administration, Engineering, Mathematics or any other relevant University degree (MBA, MSc or master\u2019s, an asset);\n2-5 years\u2019 experience in a similar position or any other relevant experience;\nExperience in the video game sector, an asset;\nAbility to adopt structured, strategic and rigorous thinking;\nStrong problem-solving skills;\nAbility to develop and maintain good interdepartmental relations and communicate with people at all hierarchical levels;\nAbility to reconcile technical and business perspectives;\nSense of initiative and innovation;\nAutonomy and entrepreneurship;\nExtensive knowledge of data analysis tools, software and systems (Excel, SQL Server, Tableau);\nExcellent communication skills/bilingualism (French-English, spoken and written).\n\nAdditional Information\n\nWe are an equal-opportunity employer and value diversity at our company. We do not discriminate on the basis of race, ethnicity, religion, gender, sexual orientation, age or disability status." + }, + { + "link": "https://www.indeed.ca/company/Feedeos-Inc./jobs/Lead-Data-Scientist-76ff8180b69c6ae1?fccid=09cfb76d88016248&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Lead Data Scientist", + "company": "Feedeos Inc.", + "salary": "$100,000 - $110,000 a year", + "desc": "$100,000 - $110,000 a year\nContract, Freelance, Permanent\nAbout Us:\nAccording to Cisco research, more than 75% of global mobile data traffic will be video content by the year 2020. There are millions of videos uploaded daily to Youtube and Facebook. That in itself is the problem, finding your way through this swamp can be tricky!\nFeedeos is on a mission to fix this and revolutionize the way you watch videos forever.\nWe've made video viewing on your mobile super easy, practical, and lightning fast. Create video feeds for your interests and let Feedeos machine learning and killer mobile first UX/UI keep you up to date on the latest videos.\nFeedeos is a dynamic startup founded by an experienced team of digital media, UX/UI, and system scaling veterans. We have secured a financial and strategic backing from some of the largest investors in the digital media world. Our investors understand the problem we are solving and fully support us on our ambitious quest to revolutionize mobile video.\nWe are looking for a data scientist to help us implement our machine learning vision and strategy. The ideal candidate will help us make sense and discover correlations in vast amounts of data, in order to deliver an outstanding personalized video experience to our users. Your primary focus will be in building scoring models to assess the quality of content and build recommendation systems to match users with content based on several features. Experience with visual machine learning is a very strong plus.\nResponsibilities:\nSelecting features, building and optimizing classifiers using machine learning techniques\nOutlier detection techniques to spot abnormal patterns in data\nFinding relevant corpuses of text and creating topic models and classification models\nExtending company\u2019s data with third party sources of information when needed\nEnhancing data collection procedures to include information that is relevant for building analytic systems\nProcessing, cleansing, and verifying the integrity of data used for analysis\nDoing ad-hoc analysis and presenting results in a clear manner\nAnalyzing videos for objects and patterns, and developing learning systems from the data uncovered in videos\nWhat we are looking for:\nAt least 5 years of experience in the field\nSc. in computer science or statistics\nExcellent understanding of machine learning techniques and algorithms, such as DBSCAN, k-NN, SVM\nExperience with CNN\u2019s and NLP\nExperience with NumPy, TensorFlow\nExperience with data visualization tools\nExperience with MongoDB\nGood applied statistics skills, such as distributions, statistical testing, regression, etc.\nGood scripting and programming skills, specifically with web services creation (REST)\nData-oriented personality\nGreat communication skills\nOur offering:\nThe opportunity to have a significant impact on an ambitious product that can change how people consume media on their devices;\nThe opportunity to be part of an innovative and exciting company with big dreams;\nThe opportunity to work with a team of experienced, hard-working, and caring individuals;\nJob Types: Full-time, Contract, Freelance, Permanent\nSalary: $100,000.00 to $110,000.00 /year\nLocation:\nMontr\u00e9al, QC (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5fb7672aeaa38cc9&fccid=cd0eb30c0c661b0d&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Mino Games", + "salary": NaN, + "desc": "We are looking to hire a Data Analyst to help us launch and grow our newest game. You\u2019ll be joining a small, but successful startup where you\u2019ll have the opportunity to really own your domain of expertise \u2013 along with all the responsibilities that come with it.\nAs Data Analyst, you\u2019ll be working directly with the leadership team and will work alongside ambitious and fun individuals.\nResponsibilities:\nAnalyze user-acquisition campaign data and post-install behaviors to find opportunities to increase ROI.\nProvide actionable insights based on a wide range of data analyses to improve game engagement, user retention, monetization and profitability.\nDevelop prediction methodologies and algorithms to forecast mobile revenue and profitability.\nDevelop models to measure and forecast the impact of new game features on the business and its user-acquisition campaigns.\nWork cross-functionally with Product and Engineering to validate data and its insights.\nRequirements\nQuantitative degree (Engineering, Math, Economics, Finance, Computer Science, etc.) or equivalent experience.\n2+ years of experience performing quantitative analysis, preferably for a technology company or gaming company.\nHighly proficient in SQL\nHighly proficient in Statistics\nHighly proficient in Data analysis (Python or R)\nExcellent verbal and written communication\n\nCompetencies:\nAnalytical thinking\nProblem solving\nCommunication\nBenefits\nPrivate health insurance\nHave a large impact as part of a small, close-knit team." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d04beca59764465f&fccid=354f4c12e3c6bd5a&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Directeur actuariat, \u00c9quipe de science des donn\u00e9es -Manager Data Scientist", + "company": "Aviva", + "salary": NaN, + "desc": "An English version will follow\n\nVous allez vous joindre \u00e0 une \u00e9quipe d\u2019actuaires et de scientifiques et d\u2019ing\u00e9nieurs de donn\u00e9es passionn\u00e9s, charg\u00e9e de mettre les donn\u00e9es au service de la prise de d\u00e9cisions \u00e0 tous les niveaux de notre organisation. L\u2019industrie de l\u2019assurance est en pleine transformation, et vous serez aux commandes de cette r\u00e9volution technologique orient\u00e9e par les donn\u00e9es.\n\nVous participerez \u00e0 des projets de grand impact allant de l\u2019estimation de la valeur \u00e9conomique des clients \u00e0 l\u2019optimisation de l\u2019exp\u00e9rience client en passant par le recours \u00e0 de nouvelles sources de donn\u00e9es pour mettre au point des algorithmes de tarification d\u2019avant-garde. Vous dirigerez une \u00e9quipe d\u2019actuaires qui collabore \u00e9troitement avec des scientifiques des donn\u00e9es afin de mettre des mod\u00e8les \u00e0 la fine pointe sur le march\u00e9. L\u2019\u00e9quipe \u00e0 laquelle vous appartiendrez explore les fronti\u00e8res de l\u2019industrie de l\u2019assurance, t\u00e2chant notamment d\u2019apprendre des donn\u00e9es sur la maison et la voiture connect\u00e9es pour concevoir des produits nouveau genre pour notre client\u00e8le.\n\nEn tant que directeur, vous ferez partie d\u2019une \u00e9quipe dynamique qui travaillera de concert avec divers intervenants d\u2019affaires et qui aura une influence directe sur les produits et les solutions novatrices \u00e0 venir. Vous proposerez des mod\u00e8les d\u2019apprentissage automatique et des mod\u00e8les statistiques qui m\u00e8neront \u00e0 des applications pratiques utiles \u00e0 des millions de clients. L\u2019\u00e9quipe a d\u00e9j\u00e0 mis au point des algorithmes qui sont utilis\u00e9s dans des syst\u00e8mes de production et vous serez de ceux appel\u00e9s \u00e0 \u00e9tendre la port\u00e9e de ces algorithmes. Voici donc votre chance de faire partie de la r\u00e9volution InsureTech!\n\nCe dont vous avez besoin pour r\u00e9ussir\n\nVous aurez besoin des comp\u00e9tences et de l\u2019exp\u00e9rience suivantes pour bien accomplir vos t\u00e2ches en tant que directeur :\nAu moins trois ans d\u2019exp\u00e9rience dans le secteur de l\u2019assurance de dommages, notamment en mod\u00e9lisation pr\u00e9dictive et dans la manipulation de vastes blocs de donn\u00e9es et, de pr\u00e9f\u00e9rence, de l\u2019exp\u00e9rience en mod\u00e9lisation statistique non lin\u00e9aire\nPoss\u00e9der les comp\u00e9tences pluridisciplinaires qui chevauchent celles des scientifiques des donn\u00e9es et des actuaires pour acheminer l\u2019innovation jusqu\u2019aux processus d\u2019acceptation des mod\u00e8les, aux pratiques fiables d\u2019\u00e9valuation des mod\u00e8les et de l\u2019automatisation de bout en bout\nSuperviser, constituer et encadrer une \u00e9quipe tr\u00e8s productive qui pourra d\u00e9velopper, mettre \u00e0 l\u2019essai, valider et maintenir des outils et des mod\u00e8les robustes avec des techniques supervis\u00e9es ou non en se servant de nouveaux produits et services, de segments de client\u00e8le et de strat\u00e9gies comp\u00e9titives\nCollaborer avec les \u00e9quipes de tarification en combinant les comp\u00e9tences de mod\u00e9lisation cr\u00e9ative aux d\u00e9cisions d\u2019affaires judicieuses pour \u00e9laborer des mod\u00e8les perfectionn\u00e9s qui appuient une tarification\nCollaborer avec des intervenants d\u2019affaires pour d\u00e9finir une vision et cr\u00e9er une culture qui consid\u00e8re les donn\u00e9es comme un actif consid\u00e9rable\nAm\u00e9liorer les capacit\u00e9s des diff\u00e9rents services en cr\u00e9ant et en d\u00e9ployant des outils qui contribueront \u00e0 l\u2019\u00e9volution continue de l\u2019entreprise\n\nCe qui vous distingue de la masse\n\nVous avez d\u2019excellentes aptitudes interpersonnelles et vous parvenez \u00e0 communiquer et exposer clairement \u00e0 des non-initi\u00e9s des algorithmes complexes. Vous comprenez qu\u2019il ne suffit pas de disposer d\u2019un algorithme aussi excellent soit-il, il faut cr\u00e9er un facteur de ralliement qui am\u00e8ne les parties concern\u00e9es \u00e0 adopter la solution propos\u00e9e.\nVous poss\u00e9dez d\u2019excellentes qualit\u00e9s de leadership, vous cherchez constamment \u00e0 am\u00e9liorer l\u2019engagement, le sens de l\u2019innovation et la responsabilisation des membres de l\u2019\u00e9quipe.\nVous \u00eates toujours pr\u00eat \u00e0 vous retrousser les manches et \u00e0 faire ce qu\u2019il faut pour faire avancer les projets. Il vous arrivera, \u00e0 ce poste, de devoir porter plusieurs chapeaux en agissant comme gestionnaire de projet, d\u00e9veloppeur, mod\u00e9lisateur ou communicateur en chef pour les solutions propos\u00e9es.\nVous \u00eates ax\u00e9 sur les besoins du client et vous \u00e9tablissez des relations efficaces avec les sp\u00e9cialistes internes tels que ceux de l\u2019indemnisation, de l\u2019actuariat, de la production, des services op\u00e9rationnels et de la technologie de l\u2019information.\nVous mettez l\u2019accent sur les r\u00e9sultats, vous soulignez l\u2019urgence d\u2019agir pour r\u00e9gler les probl\u00e8mes touchant les affaires et vous acceptez la responsabilit\u00e9 qui s\u2019y rattache.\nVous poss\u00e9dez une expertise dans le domaine de l\u2019assurance, de la r\u00e9glementation des tarifs et de la mod\u00e9lisation predictive et vous parlez couramment l'anglais.\n\n\nWhat you will do\n\nJoin an exciting team of actuaries, data scientists and engineers at the forefront of leveraging data to drive decisions at every level of our organization. The insurance industry is undergoing a transformation and you get to be in the driver\u2019s seat of this data-driven, technology revolution.\n\nYou will work on impactful projects that range from predicting customer life-time values and optimizing customer journeys to incorporating novel data sources for building cutting-edge pricing and machine-learning algorithms. You will be responsible for managing a team of actuaries who work closely with data scientists to bring cutting-edge models to market. This team is exploring the frontiers of the insurance business such as how to harness the data from connected homes and cars to deliver new types of products to customers.\n\nAs a manager, you will be part of a dynamic team with exposure to different business stakeholders and direct influence on future products and innovative solutions. You will lead the proposal of innovative machine-learning and statistical models for practical applications that impacts millions of customers. The team has already developed algorithms used in production systems and you will be part of the team that expands the scope of these algorithms. This is your chance to join the InsureTech revolution!\n\nWhat you need to succeed\n\nAs a manager, you will need the following skills and experience to succeed in the role:\n3+ years of experience in general insurance industry including predictive modeling and working with large datasets. Experience in developing non-linear statistical model is preferred\nHave cross-functional skills that allow you to straddle the worlds of data scientist and actuaries and bring innovation to model acceptance processes, sound model monitoring practices and end-to-end automation\nOversee, develop and mentor a highly productive team to develop, test, validate, and maintain robust tools/models using supervised and/or unsupervised techniques through new products and services, customer segments, and competitive strategies\nWork with pricing teams to combine creative modeling knowledge with sound business judgment in developing sophisticated models to support rate implementation\nCollaborate with business stakeholders to establish a vision and create a culture that treats data as a massive asset\nAdvance the departments capabilities by creating and deploying long term tools to continually evolve the business\n\nWhat sets you apart\n\nAmazing people skills and able to translate and communicate complex algorithms to non-technical experts. Someone who understands that it is not enough to just have a great algorithm but important to create a buy-in for the solution from different stakeholders\nExcellent leadership skills who constantly seeks to improve the engagement, innovation and empowerment of the team members\nA can-do team player who is willing to roll-up the sleeves and do whatever is needed to move projects forward. That means at times you will wear multiple hats and be a project manager, developer, modeler and chief communicator of solutions\nCustomer focused who builds effective relationships with internal partners, including claims, actuarial, underwriting, operations, and information technology\nResults-oriented who demonstrates a sense of urgency and accountability for business issues\nExpert subject matter expertise in insurance, rate regulation and predictive modeling" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c1054d9e2510715d&fccid=943271990b714a32&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Immunology Data Analyst - Weekend Shift", + "company": "Caprion", + "salary": NaN, + "desc": "Summary\nThe Data Analyst performs a variety of analytic functions within the Caprion Biosciences Data Analysis Unit. These functions include analysis and reporting of flow cytometry data and data from other platforms as needed. The analyst works under the supervision of the Manager of the Data Analysis Unit to ensure accurate and timely completion of data analysis. Maintains study-related documentation as per GLP/GCLP and regulatory guidance.\nThe schedule is from Wednesday to Sunday on the day shift.\nKey Responsibilities\nAnalyzes data as per Caprion SOPs;\nReviews data analyzed by other analysts and reports data as needed or instructed;\nAssists as required in the organization of study data and associated information required for interim and final study reports;\nInvolved in implementation of new analytical/statistical tools to increase the data analysis throughput.\nEducation\nM.Sc. in immunology.\nRequired Expertise and Skills\n0 \u2013 6 months experience data analysis in immunology\nMultiparametric flow cytometry statistical analysis (FlowJo and BD FACSDiva software);\nKnowledge in statistical analysis softwares (R, Prism etc\u2026).\nKnowledge and understanding of GLP regulations sufficient to carry out GLP studies;\nKnowledge and understanding of the English language sufficient to write and carry out procedures and protocols;\nStrong computer skills and significant experience with Microsoft Excel, Word, and PowerPoint;\nDetail-oriented person;\nAbility to work in a fast pace environment,\nAbility to work autonomously and in a structured environment." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=fb4d39c32801535b&fccid=54c670cb3bbbd461&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Retail Data Insight Analyst", + "company": "Prodco Analytics", + "salary": NaN, + "desc": "Prodco is looking for Data Analyst to draw insights from our extensive set of retail data to benefit our customers and the broader retail industry. As part of a growing organization, this is a unique opportunity to collaborate on the analytical direction of Prodco.\n\nThis position requires an extremely high level of concentration combined with detail oriented work ethics and the ability to analyze data and provide guidance for performance improvements to our retail customers.\n\nResponsibilities;\n\nModel and analyze Prodco\u2019s set of data and prepare actionable recommendations for our retail customers\nMine data to produce periodic trend reports for both specific retailer as well as broader industry consumption\nWork closely with the managed services team to design and implement advanced data solutions for customers\nMonitor and analyze data to increase the performance of the business\nAnalyze all data sets and apply corrective measures\nThe ideal candidate will exhibit the following characteristics;\n\n2-4 years of related work experience preferred\nPassionate about the retail industry and applying analytics to enhancing the retail experience\nAbility to glean actionable insights from large data sets and find the story within the data\nStrong understanding of and sensitivity towards data integrity and cleanliness\nExcellent attention to detail, in terms of both numerical data as well as presentation precision and elegance\nAbility to thrive in a fast-paced environment and comfortable working collaboratively\nExpert knowledge of Microsoft Excel, Word and PowerPoint required\nSQL knowledge and experience strongly preferred\nExperience with statistical data analysis such as linear models, multivariate analysis, and predictive modeling preferred\nFluently bilingual French / English (both written and spoken)\nSend all resumes indicating which position you are applying for to careers" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7062e59cba767605&fccid=b9eb458007c490ea&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "B.Yond", + "salary": NaN, + "desc": "Job Description\n\nThe Data Scientist will help develop the Research and develop statistical learning models for data analysis and keep up-to-date with latest technology trends.\nThe primary responsibilities\u2026\nDevelop flexible and robust runtime algorithms\nDevelop, maintain and improve our state-of-the-art AI systems, including path-finding, navigation, perception, behavior execution, vehicle control, and autonomous decision making\nDevelop robust and reusable AI frameworks\nResponsible for implementing and refining the AI for components of our games\nImplement AI behavioral features and refine as needed\nThe challenges...\nNetworks and Clouds are complex, multi-tiered ecosystems with a high level of integrated components. They also service millions of users and generate massive amounts of data. This makes the management and control highly challenging, but also very susceptible to automation, especially AI. Our challenge is to translate this wealth of data and information into processes and procedures that improve the services for everyone from enterprises to digital lifestyles.\nBuilding the intelligence that makes our product stand out above anyone else\u2019s in the market. This involves on one part selecting the problems where making a difference has an impact but also developing top-performing models for these solutions.\nWhat success looks like...\nDevelopment and delivery of successful algorithms that address defined business problems\nContinuous experimentation to achieve above and beyond what the current technology enables\nInnovating new methods and novel solutions in data science\nWhat makes it rewarding...\nTransforming an industry with cutting-edge technology\nWorking in some of the most data-driven industries that are actively looking to monetize and automate\nWe are open to experimenting and trying new things. We give our scientists the freedom to innovate, explore, and create.\n\nQualifications\n\nHow others describe you...\nBeing a team player in the truest sense, with an ability to work with partners across different time zones.\nExpert problem solver, always looking for multiple solutions.\nA work ethic to drive projects and tasks to finish on time, overcoming any obstacles along the way.\nA desire to take the initiative, seizing opportunities when you see them.\nThe skills and experience that will help you succeed...\n3+ years hands-on experience implementing Machine Learning solutions and optimizing machine learning algorithms\nData mining and statistical analysis expertise\n2+ years Python and SQL experience\n1+ year of R experience, plus Spark, Scala, or Java\n2+ years of Software development, understanding of various data structures, common methods in data transformation, object-orientated programming\nStrong interest in researching and implementing new AI-related technologies\nBS/MS degree in computer science, Statistics, Applied Math or related field, Ph.D. desirable\n\nAdditional Information\n\nWhen applying for the job, take the opportunity to tell us in five sentences or less what makes you the best candidate for this position and for our company, and why B.Yond is a fit for you.\nPlease Note: This job description is not intended to be a complete list of all responsibilities, duties or skills and due to the changing nature of the job is subject to review and change at any time, with or without notice." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=52c991039e5d4447&fccid=c651baacf627deef&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "District M", + "salary": NaN, + "desc": "While working for District M, you will play a key role in delivering actionable insights to improve our performance (be it revenue, processes or value to our customers). If you enjoy working with data, we would like to meet you! We offer a competitive compensation package and a fun working environment. Responsibilities \u2022 Provide a wide range of analysis to identify trends, issues, and opportunities that help drive product, marketing and other business decisions \u2022 Collaborate with internal teams for BI needs (reports, visualizations, ad hoc analysis) \u2022 Work within the development team on building analytics, segmentation and predictive models \u2022 Effectively communicate insights through reports and presentations Skills \u2022 Proficient in one or more of Python, SQL, R, node.js \u2022 Knowledge of Hadoop eco-system (Spark, Hive, etc.) \u2022 Adept at applying analytic methods (e.g. linear regression, visualization, optimization) to big data sets in order to generate actionable business insights \u2022 Able to deal with unstructured data \u2013 make recommendations with available information \u2022 Excellent analytical, problem-solving and communication skills \u2022 Self-starter \u2013 able to work autonomously and on multiple projects Qualifications \u2022 University degree in Mathematics, Computer Science or related field \u2022 1-2 years of data analysis experience" + }, + { + "link": "https://www.indeed.ca/company/Nvizzio-Creations-Inc/jobs/Game-Data-Analyst-c3cd6592ba215d6e?fccid=436b5edb4838ca5f&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "GAME DATA ANALYST", + "company": "Nvizzio Creations Inc", + "salary": NaN, + "desc": "*About the Position:\n*The Game Data Analyst will be a key contributor to the Atari marketing and product teams. You will analyze data from various platforms including Delta DNA, Appsflyer, ironSource, Unity and others, to derive actionable insights that drive product and marketing decisions for our game division. You are a detail-oriented, structured, and proactive self-starter who can collect, organize, and report on key performance metrics from multiple advertising campaigns (for mobile, console, PC and digital titles), delivering recommended actions based on the data. This includes building internal dashboards, spreadsheets or documents to track and monitor the engagement, return on ad spend, cost per install, creative performance and other KPIs of the product. You will manage paid user acquisition, coordinate with our mobile marketing agency, and support in developing our marketing strategy. The ideal candidate will need to effectively communicate analytical insights and concepts across multiple teams, to think creatively, and to be agile in testing out new ideas rapidly. This position is based in New York City.\nRole Responsibilities\nExtract, consolidate, and analyze data from various data platforms; deliver insights and actionable next steps based on this data to help guide marketing and product decisions\nBuild internal dashboards, spreadsheets and/or documents to track key performance metrics related to paid marketing and user acquisition\nProactively work with agency partners and internal teams to optimize performance based on this tracking\nManage paid user acquisition campaigns across mobile, PC, console and digital platforms.\nCoordinate with agency to set-up campaigns, report performance and work with our production team to identify product features that could support user acquisition strategies\nManage mobile marketing agency to ensure campaigns are within budget and following strategic direction\nManage in-game advertisers (i.e. Tapjoy, Unity, ironSource, Google, etc.) to optimize mobile ad revenue for rewarded video, offerwall and other placements\nAnalyze creative performance for ad units to guide marketing and product teams in right direction\nAssist in creative development with art director, marketing and external agencies\nCollaborate with marketing, product, finance and sale teams\nCollaborate with product team to define how insights could have an impact on product features and propose best insight strategies based on product capabilities\nIdentify market trends and insights, analyze competitive landscape, and brainstorm new and creative growth strategies\nReport to head of game division with dotted line to head of marketing\nSkills/Experience\nFour (4) plus years of data analyst experience with mobile gaming or related company\nMS+ in Data Science, Analytics, Statistics, Computer Science or other quantitative discipline or BS in similar\nSkilled in creating visualizations\nExperience with large datasets and data cleansing\nUnderstanding of statistical concepts and applying them\nHighly organized, responsible and detail-oriented\nAbility to collaborate well cross-functionally\nExperience managing external vendors\nBonus Skills\nFinancial industry experience/knowledge\nDeveloping predictive models\nA gamer; plays mobile, PC, console games\nCreative thinker\nMarketing experience\nAbout the Company:\nAtari is an interactive entertainment production company. As an iconic brand that transcends generations and audiences, the company is globally recognized for its multi-platform, interactive entertainment and licensed products. Atari owns and/or manages a portfolio of more than 200 games and franchises, including world-renowned brands like Asteroids\u00ae, Centipede\u00ae, Missile Command\u00ae, Pong\u00ae, and RollerCoaster Tycoon\u00ae. Visit us online at www.Atari.com.\nJob Type: Full-time\nExperience:\ndata analyst: 4 years (Preferred)" + }, + { + "link": "https://www.indeed.ca/company/ProspekPro/jobs/Data-Analyst-1ad0947c5b3e2cfc?fccid=e99c5c77dc4ae72a&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst - Amazing Montreal start-up", + "company": "ProspekPro", + "salary": NaN, + "desc": "Permanent\nDESCRIPTION\nOur partner, a Montreal start-up owned by a larger incubator specializing in the development of mobile solutions is currently looking for a Data Analyst (Data Scientist) to join his team. In this highly strategic role, you will report directly to the Product Manager and Lead Analytics Engine.\nThis start-up is now in full swing and its 2019 roadmap is breathtaking! If you are looking for an organization that is close to its employees, that is driven on results with collaborative teams, here it is! Located in a hype neighborhood of Montreal, they offer flexible hours and infinite opportunities for advancement.\nRESPONSABILITIES\nExtract and prepare data from different database sources (SQL, noSQL, CSV);\nDevelop and test regression models, classification models and probabilistic models using modern frameworks and algorithms;\nTranslate complex data models into visual representations;\nUse modern data analysis tools (Python, etc.);\nTransform search results into pipeline code;\nDesign and analyze of A / B tests to optimize the product iteratively.\nQUALIFICATIONS\nDegree in a highly quantitative / technical field (Physics, Computer Science, Statistics, Mathematics, etc.);\nExperience or education in analytical functions ideally in a consumer-oriented business;\nAbility to solve business problems and provide clear and analytical solutions.\nTHE CLIENT OFFERS\nOut of the ordinary career opportunities;\nAmazing synergy and teams with a collaborative spirit;\nThe chance to be part of a modern and innovative project;\nTeam-building activities;\nUltra-competitive salary and benefits.\nVisit www. prospekpro.com to know more or send your resume today at sprimeau@prosekpro. com\nJob Types: Full-time, Permanent" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=54a151842ffda495&fccid=36ab93224c32e449&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Reitmans (Canada) Ltd", + "salary": NaN, + "desc": "Addition Elle / Penningtons is seeking a full-time Data Analyst to play a vital role in our Plus Division team. The successful candidate will have a passion for business analytics and the capability to transform our data into meaningful insight that drives productive business solutions. The Data Analyst performs business analysis using various techniques, i.e. statistical analysis, explanatory and predictive modeling and data mining. This position will determine best practices and develops actionable insights and recommendations for the current business operations in order to have a significant impact on the profitability, efficiency, and the reputation of the business.\nReporting directly to the GM of the Plus Division, this role is responsible for developing and maintaining analysis that helps our entire organization make better, faster decisions. If you\u2019re an organized, ambitious, and intelligent analysis aficionado with a mind for statistics and analysis and experience working in Excel, Access, SQL, and Tabloid, Python or R, then this may be the position for you. The ideal candidate will have experience in developing linear regression models, analyzing, presenting, and interpreting complex data sets and developing data visualization tools.\n\nPrimary Responsibilities:\no Provide data-driven strategic insights owning the analysis from start to finish: understand the underlying data, & to discover trends & provide solutions.\no Develop and implement databases, data collection systems, data analytics and other strategies that optimize statistical efficiency and quality.\no Work independently and collaboratively with internal stakeholders on a regular basis while managing multiple projects with changing priorities and completing ad-hoc requests as required\no Responsible for the extraction and analysis of complex information from a variety of databases & to build automated processes using SQL/R/Python to improve data cleanliness, processing and analysis\no Develop capabilities to identify areas of opportunity and improve processes and efficiency on reporting.\no Act as gatekeeper with regards to security and confidentiality of data obtained through all sources.\no Actively identify and execute initiatives to improve process and data infrastructure strictly adhering to legal and compliance guidelines; regarding access and exposure to sensitive and confidential information\n\nRequirements :\no BS or Masters Degree in Data Analytics, Computer Science, Statistics, Mathematics, Economics or Information Management or equivalent working experience\no Has Advanced MS Office skills (Excel, Word, Access) & an excellent understanding of data models, database design, data mining and segmentation techniques\no Must have excellent statistical and probability skills with a focus on critical thinking with a high degree of attention to detail\no Programming skills with Python, Scala or R.\no Data mining experience working with a large relational customer database\no Experience in utilizing advanced SQL data extraction and manipulation tools (MS SQL, Unix, Linux, IBM Netezza, IBM DB2, Teradata, Tabloid).\no Experience in BI platform (Microstrategy, Cognos, SAS, etc.)\nComments :\nWe thank all applicants. Only selected candidates will be contacted." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1690b0df8e8221d0&fccid=36801496409e6dc9&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "dunnhumby", + "salary": NaN, + "desc": "Data Scientist - (DADS2.01.491209)\ndunnhumby is the world's leading customer science company. We analyse data and apply insights from nearly one billion shoppers across the globe to create personalised customer experiences in digital, mobile, and retail environments. Our strategic process, proprietary insights, and multichannel media capabilities build loyalty with customers to drive competitive advantage and sustained growth for clients. dunnhumby employs over 2,000 experts in offices throughout Europe, Asia, Africa, and the Americas and works with a prestigious group of companies including Tesco, Monoprix, Raley's, Macy's, Coca-Cola, Procter & Gamble, and PepsiCo. For more information, please visit us at www.dunnhumby.com.\nTo utilise analytical techniques and/or new data sets and assist in project delivery for Data Science work plans that ultimately improve customer understanding and help drive clients\u2019 growth.\nHelp identify new opportunities within the Data Science space to help identify new opportunities for future dunnhumby solutions.\nSupport in the delivery of projects on time and to a high standard for Data Science work plans whilst supporting the market needs.\nSupport the roll-out of new Data Science methods, technologies and thinking to the market, enabling the business to better understand the Data Science tools and processes.\nAssist in any QA processes on projects, rectifying issues where possible and escalating any issues.\n\nQualifications\nDesired:\nPhD in Computer Science, Artificial Intelligence, Machine Learning, Applied Statistics, Physics, Engineering or related field.\nEssential:\nMaster\u2019s degree or equivalent in Computer Science, Artificial Intelligence, Machine Learning, Applied Statistics, Physics, Engineering or related field.\nFunctional Skills:\nData Interpretation / Insight Analysis\nExcel\nSolution Design & Development\nStatistical Modeling\nProgramming (SAS, SQL, R or other)\nQuality Assurance and Testing\nData Visualisation\nData understanding\nComputer Science Techniques (e.g. Machine Learning)\nPrototyping\nAnalytical Technology\nSecondary Market Research / Desk Research\nGeneric Skills:\nBusiness and Commercial Acumen\nChange Management\nProject Management\nData Analysis and Modelling\nStakeholder Management\nFinancial Analysis\ndunnhumby Capabilities and Solutions\nLeadership Skills:\nWork as a team with others\nBuild strong relationships with colleagues\nIdentify opportunities\nIdentify personal priorities\nDemonstrate enthusiasm\nDeliver work to high standard\nSolve challenging problems\nBe driven to improve yourself and the way things are done\n\nPrimary Location: Canada-Montreal\nJob: Data and Analysis-Data Science\nJob Type: Regular\nJob Posting: Sep 24, 2018, 1:40:05 PM" + }, + { + "link": "https://www.indeed.ca/company/Responsa/jobs/Data-Analyst-67833f8fd000721d?fccid=2351c91d93b0e45c&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst (SAS)", + "company": "Responsa", + "salary": NaN, + "desc": "A leader in the Montreal biotechnology scene, our clients advanced research capabilities and advanced scientific innovation have successfully performed discovery projects for pharmaceutical & health care companies all over the world. They\u2019re advanced scientific capabilities all starts with their bioinformatics team \u2013 and more specifically their data analysts. As lead researchers in the global fight against some of the most lethal and recognized diseases, this is an opportunity to surround yourself an in environment that proudly pushes the boundaries of research, innovation, and science.\nWhat will you be doing?\nSupporting the management of data on assigned projects\nLeading the analysis of data and contributing to customer requirements and regulatory requirements\nPreparing the documentation of data management projects and plans\nTesting software functionality related to ongoing studies (SAS)\nWhat\u2019s in it for you?\nA competitive salary of 50K to 70K (contingent on experience)\nFull benefits package\nVacation plan\nConvenient and centralized downtown location with easy accessibility by public transport or car\nYou work alongside some of the brightest minds in the Canadian (and global) science and biotechnology community\nAn opportunity to work for a company whose top leadership include some of the most qualified and respected PhD professionals in their industry\nWhat will you need?\nUniversity degree in related discipline (Bioinformatics, Statistics, Sciences)\n3 years + of professional experience in GLP/GDP environments\nStrong experience in SAS and SQL\nStrong communication skills in English (written & spoken)\nFor any qualified and excited data analysts, that maintains a passion & love for science and technology, this is a unique opportunity to participate in some of the most exciting and meaningful projects in the industry. Please send your resume and have your application evaluated immediately!\nJob Type: Full-time\nExperience:\nData Analysis using SAS: 3 years (Required)\nEducation:\nBachelor's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a2600fa98327ec66&fccid=98c522aa9024c59e&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist - Insurance Product", + "company": "Element AI", + "salary": NaN, + "desc": "Who we are\n\nElement AI offers a scalable, customizable and sustainable suite of core AI-enabled products for the world's biggest organizations. Our access to the latest AI research through our Fellow Network gives us a unique view on developing products that are able to solve the most complex business problems.\n\nAbout the role\n\nAs a Data Scientist, your mission is to help design and build AI products that will help shape the future of insurance. You will be part of a globe-spanning Insurance Pod, where you will have the opportunity to learn from and work with our world-class AI specialists.\n\nAs part of a cross-functional team with a diversity of skill sets, you will enjoy a unique opportunity to collaborate with both developers and applied research scientists to help us set up innovative data-driven production systems with significant impact on the users of our products.\n\nYou have experience in manipulating large and diverse datasets, either through graduate studies or industrial projects. You are an expert in a data science discipline, including but not limited to knowledge discovery, clustering, statistical analysis, data visualisation and data engineering. You're also a solid programmer and you're comfortable working in a software production environment. You have a practical hands-on approach to data and you keep up to date with the latest developments in your field.\n\nWhat you'll do\n\nYou will be confronted with real-world challenges and industrial-sized datasets, and you will need to use your expertise and creativity to apply data science methods to solve these problems in practical and scalable insurance product development across various insurance domains such as claims, underwriting etc. This will involve understanding product capabilities, and translating them into product features that address those needs.\n\nYou will be expected to propose appropriate models/techniques and to train models yourself. Where useful, you will not hesitate to employ statistical or classical machine learning methods as well as use modern techniques such as deep learning.\n\nFinally, you will be expected to embrace the fact that the value of your work is ultimately reflected in the impact it has on the end-customers using our products and to find ways of measuring that impact as an integral part of your mission.\n\nYou want to join us because you are passionate about\n\nWorking with large, often noisy datasets, and making them ready for production machine learning systems;\nPerforming preliminary analysis and knowledge discovery on data provided by our customers or partners, and presenting the results in an accessible fashion;\nProviding suggestions on how to optimize computations on large datasets;\nUnderstanding the business imperatives of the insurance space and helping design and build AI products that will help shape the future of insurance;\nCollaborating in a cross-disciplinary team that will produce state-of-the-art software;\nContinuously learning the best practices for developing high-quality production code in a shifting technological landscape;\nEmbracing modern devops principles to development and working in a setting where code is expected to be shared and peer-reviewed.\nYou have\n\nPassion and excitement about making a difference for insurance customers using AI;\nA getting-things-done mindset with a desire to turn knowledge into products people will rely on;\nAt least 3 years of industrial R&D experience, ideally in an insurance setting;\nA university degree in related field or an acceptable combination of education, training and experience;\nExperience and mastery of scientific programming languages, libraries and tools relevant to your field, for example: scikit-learn, pandas DataFrame, NumPy, R, RapidMiner, Tableau, D3.js, etc.\nExperience with at least one of the following programming languages, preferably for the development of production code: Python, R, C#, Scala, Javascript, Go;\nAn understanding that well-organized data pipelines are the core of any AI system;\nBroad knowledge of statistical and Machine Learning techniques;\nA history of shipping high-quality code;\nExperience in helping develop/deploy technology products (major plus);\nExperience working in a diverse team;\nExcellent written and oral communication skills (English and French is an asset).\nMore experienced candidates could evolve into a leadership position as we grow the team.\n\nWhat's in it for you\n\nFully paid for benefits, flexible hours and participation in the employee stock option program.\nThe chance to work with one of Canada's most prolific, passionate and dedicated community of ML & AI researchers, developers and scientists.\nLots of food, snacks and coffee.\nNote that, internally, your job title will be Data Expert.\n\nWe are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ee7b4780f68b0544&fccid=f6d6085fc6341c01&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "LVL Studio", + "salary": NaN, + "desc": "Data Scientist\nMontreal, QC\nWhat we do\n\nBefore you can view content, that content must travel from a database to your screen. That process is surprisingly rich and intricate and, if done right, creates immense value for the viewer. LVL\u2019s expertise is in a product that delivers that content in a seamless, data-driven, enjoyable way.\nIn other words, by refining content discovery and consumption for each individual viewer, we provide media and entertainment companies with the tools to better reach, engage and retain their audience. With our expanding client roster, our solutions are now used by millions of people.\nThe Team\n\nLVL\u2019s Data Scientist interacts with all of our product stakeholders! Reporting directly to the CTO, not only will you work closely with LVL\u2019s product team of 20+ software developers, you will also work with our management, sales and design departments.\nYour Challenge\n\nAs our Data Scientist, you will be responsible for proactively fetching data from various sources and analyze it for the purpose of building AI tools that will automate both LVL\u2019s organizational processes as well as our very own E2 Platform's product processes. Note that E2 is a next-gen solution we developed that facilitates the rapid development and deployment of multiplatform OTT and TVE apps, and that leverages Unity\u00ae to target smart TVs, smartphones and gaming consoles.\nYour main responsibilities will include:\nWorking with a variety of stakeholders within the organization to identify opportunities for leveraging company data to drive our E2 product\nMining and analyzing data to drive optimization and improvement of product development, marketing techniques and business strategies\nAssessing the effectiveness and accuracy of new data sources and data gathering techniques\nCoordinating with different functional teams to implement models and monitor outcomes\nDesigning and developing data models and schemas (normalized and de-normalized)\nThe Profile\n\nAs a Data scientist you know how to make value out of data. In addition to your exceptional analytical skills and your ability to troubleshoot data, you are the type of person that is self-motivated and results-oriented. You also have either an MBA, a Master\u2019s or a Bachelor\u2019s Degree in Software Engineering, Computer Science or Mathematics.\nAdditional profile requirements include:\n5+ years of experience working within web or TV-based product-oriented companies\n5+ years of experience working with relational databases\nExperience with cloud-based SAS business environments\nDigital marketing experience\nAbility to write & optimize SQL & scripting languages\nExcellent understanding of object-oriented design and programming as well as unit testing\nKnowledge of product instrumentation\nExperience with NoSQL databases such as MangoDB\nExperience with Star & Snowflake data warehouse schemas\nExperience with data warehouse architecture and development including ODS, ETL tools\nExperience with Python\nKnowledge of Amazon\u2019s Redshift, Data Pipeline and other web services\nWorking knowledge of Google Analytics, Intercom.io, Amplitude,\nStrong English verbal and written communication skills\nThe dream candidate will also have the following (but don\u2019t worry \u2013 if you don\u2019t, we\u2019ll teach you!)\nKeen interest in extracting, gathering, querying and analysing data\nStrong desire to understand user behavior and trends with quantitative and qualitative data from acquisition to engagement\nAbility to work within cross-team organizations\nAbility to work in a fast-paced start-up Agile development environment\nSelf-motivated with solid analytics capability, excellent hands-on skills and someone that enjoys helping deliver engaging products\nResults-oriented & able to contribute to a team environment\nStrong French verbal and written communication skills\nIf you\u2019re interested in this position but do not meet all the requirements, we\u2019d still love to hear from you \u2013 just drop us a line to convince us you\u2019re the best fit!\nAlso, be sure to check out our open-source library and follow us on LinkedIn and Facebook to stay up to date on any new LVL job opportunities.\nWhy Join LVL ?\n\nYou\u2019ll be intellectually challenged. You\u2019ll create something new. You\u2019ll be paid well and maintain great work-life balance. You\u2019ll be mentored by the best, learn new skills, and grow your expertise. You\u2019ll be proud of your work. You\u2019ll work with amazing, huge clients \u2013 our solutions find their way into millions of households. Oh, and we have a killer view of vibrant, beautiful Montreal!\n\nLVL is an equal opportunity employer that values diversity. We do not discriminate on the basis of ethnicity, religion, colour, national origin, gender, sexual orientation, age, marital status or disability status.\nApply to careers@lvlstudio.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=91ea7756e26cce7a&fccid=39ac827d92081748&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Ludia", + "salary": NaN, + "desc": "Job Description\n\nWhat is the challenge for a Product Owner Data Analyst at Ludia?\nIn order to improve the quality of our games as well as the overall player experience, you\u2019ll be in charge of providing complex analysis and studies to the game design and editorial teams, using a data driven approach.\nYour role will also consist in building a creative toolset to measure and analyze user data within the Freemium environment, in order to produce automated tailored reports intended for the relevant decisional teams.\nKey Responsibilities:\nSpecify all the data architecture requirements from conceptualization to implementation for new games in development;\nEstablish the blueprint of the project tracking system;\nCollaborate with the QA team to insure the accuracy of the collected information;\nDefine metrics which will meaningfully illustrate the game\u2019s performance;\nGenerate customized analysis and reporting; examining the effectiveness of a game feature;\nInterpret data and analyze results using statistical techniques, and provide reports/suggestions;\nProduce daily/weekly reports on key metrics;\nDetect, analyze and explains major trends or patterns within the game;\nIn charge of A/B testing during the soft launch and the live operations of the project (Price Elasticity, Tutorial Performance, etc.);\nPromote data driven decision process to the stakeholders;\nSupport process improvements for the Game Analytics teams at Ludia.\n\nQualifications\n\n5 years of experience as a data analyst or equivalent pertinent position in the gaming industry and/or mobile apps;\nMaster, PHD or very strong background in Mathematics, Computer Science or any relevant education;\nProven experience of data driven liveOps ideally within a game operation context;\nExperience of a full software development cycle;\nThorough understanding of statistical methods;\nStrong experience in SQL and Python;\nExperience in Spark;\nExperience in Tableau, or any similar tools;\nExperience with AWS services S3, Redshift etc;\nUnderstanding of the general concepts of game design and game economic design;\nInquisitive, analytical problem-solving mindset;\nFocus on accuracy and reliability of information;\nInterest in business and marketing;\nFluent in French and English.\n\nAdditional Information\n\nWhat's in it for you?\nWork in the heart of Old Montreal\nAn open concept work environment with an employee game room, foosball, Ping-Pong and pool table, Tiki Lounge and more\nA broad health and wellness plan that includes annual health assessments\nFour weeks vacation, RRSP contributions, referral incentives, and an attractive bonus program\nFree snacks, coffee and tea, as well as catered meals\nA training budget with free language lessons in English and French\nA free gym pass starting on day one and access to on-site massages\nHappy Hour Fridays with beer and wine after work, including our own beer on tap: La Ludique\nAn amazing team of creative individuals who work hard and play hard! Check out this video to learn more:" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=981182cdf828e516&fccid=2fc94816d368458b&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data engineer / Ing\u00e9nieur de donn\u00e9es", + "company": "IVADO Labs", + "salary": NaN, + "desc": "Job Description\n\nThe Data Engineer is responsible for the data lifecycle, from collection to retention. Data completeness and accuracy is a constant preoccupation for the Data Engineer, and as such he/she oversees the design data warehouse, as well as the ingestion and integration of data. The ideal candidate has solid knowledge of data, database design, programming, data collection, data warehousing, and data cleansing. The data Engineer will work hand in hand with the Data Scientists and the product delivery team.\nResponsibilities\nManipulate and prepare data, including supporting the feature engineering exercise, for consumption by machine learning and optimization models.\nArchitect and implement highly scalable data management systems that ingest and integrate large volumes of data from different sources\nDesign, build, and productize complex data pipelines, including ETL/ELT jobs, to process disparate, dirty data sources and form a high integrity, high quality, clean data asset\nMonitor and track data quality and data flow dynamics\nImprove data foundational procedures, guidelines, and standards\nIntegrate new data management technologies and software engineering tools into existing structures\nCreate custom software components and analytics applications\nCollaborate with other Engineers, Data Scientists and stakeholders, taking learning and leadership opportunities as they arise\nEnsure client\u2019s needs are addressed\nRequirements\nBachelor's degree in Computer Science, Engineering, or related field\nMaster\u2019s degree an asset\nA minimum of 3 years industry experience working with data, coding and scripting (Python/Java/Scala/SQL/JS/Bash), design and testing\nA minimum of 3 years experience developing large data systems\nA minimum of 3 years experience in data modeling of NoSQL and SQL databases\nA minimum of 3 years experience with at least one the following: Hadoop ecosystem, Spark, Cassandra, DynamoDB, Redis, or other large-scale data management platform (preferably cloud)\nExperience with AWS/GCP/Azure suite such as: BigQuery, BigTable, Cosmo DB, S3, Redshift, EMR, Glue/Athena, an asset\nExperience with Kafka, Kinesis, Flume, HDFS, Hive, an asset\nExperience with usage and deployment of machine learning tools such as scikit-learn, MLlib, TensorFlow, an asset\nSolid knowledge of CS fundamentals in algorithms and data structures\nWillingness to participate in all levels of project work when necessary\nExcellent English written and verbal communication skills, French an asset Skills\nAbility to handle complex long-term focused projects involving multiple disciplines and lines of business\nAbility to work independently and with management on highly visible, divisional and cross-divisional complex projects\nCreative thinker with excellent problem solving abilities\nAbility to thrive in a fast-paced, performance-driven environment\nTeam player with solid interpersonal skills\nCustomer oriented focus\n\nL\u2019Ing\u00e9nieur de donn\u00e9es est responsable du cycle de vie des donn\u00e9es, de la collection \u00e0 la r\u00e9tention. L\u2019int\u00e9gralit\u00e9 et la pr\u00e9cision des donn\u00e9es est une pr\u00e9occupation constante pour l\u2019Ing\u00e9nieur de donn\u00e9es, et de ce fait il/elle supervise l'entrep\u00f4t de donn\u00e9es design, ainsi que l\u2019ingestion et l\u2019int\u00e9gration des donn\u00e9es. Le candidat id\u00e9al poss\u00e8de de solides connaissances en mati\u00e8re de donn\u00e9es, de la conception des bases de donn\u00e9es, de programmation, de la collecte de donn\u00e9es, de l\u2019entreposage de donn\u00e9es et du nettoyage de donn\u00e9es. L\u2019Ing\u00e9nieur de donn\u00e9es collabore main dans la main avec le Scientifique de donn\u00e9es et l\u2019\u00e9quipe de livraison de produits.\nResponsabilit\u00e9s\nConcevoir, construire, installer et maintenir des syst\u00e8mes de gestion des donn\u00e9es \u00e9volutifs qui ing\u00e8rent et int\u00e8grent un gros volume de donn\u00e9es sensibles et temporelles provenant de diff\u00e9rentes sources\nConcevoir, b\u00e2tir et mesurer des t\u00e2ches ETC/ELT complexes afin de traiter des sources de donn\u00e9es disparates ou douteuses et former des donn\u00e9es exactes, int\u00e8gres et de haute qualit\u00e9\nSurveiller la qualit\u00e9 et le flux des donn\u00e9es\nAm\u00e9liorer les proc\u00e9dures, directives et normes fondamentales de donn\u00e9es\nInt\u00e9grer aux structures existantes de nouvelles technologies de gestion des donn\u00e9es et des outils logiciels d\u2019ing\u00e9nierie\nCr\u00e9er des composants de logiciel personnalis\u00e9s et des applications d\u2019analyse\nCollaborer avec d\u2019autres Ing\u00e9nieurs, Scientifiques des donn\u00e9es et parties prenantes, saisissant les opportunit\u00e9s d\u2019apprentissage et de leadership lorsqu\u2019elles se pr\u00e9sentent\nS\u2019assure que les besoins et attentes du client sont rencontr\u00e9es.\n\nQualifications\n\nExigences\nBaccalaur\u00e9at en Informatique, Ing\u00e9nierie, ou un domaine connexe\nMa\u00eetrise un atout\nUn minimum de 3 ann\u00e9es d\u2019exp\u00e9rience dans un r\u00f4le traitant les donn\u00e9es, le codage, le scriptage (Python/SQL/CQL/AWS/JS/Bash), le design et les essais\n\u2022 Un minimum de 3 ann\u00e9es d\u2019exp\u00e9rience en d\u00e9veloppement et administration de syst\u00e8mes de donn\u00e9es importants \u2022 Un minimum de 3 ann\u00e9es d\u2019exp\u00e9rience en mod\u00e9lisation des donn\u00e9es et administration de bases de donn\u00e9es NoSQL et SQL\nUn minimum de 3 ann\u00e9es d\u2019exp\u00e9rience avec au moins deux des fonctions suivantes : Hadoop ecosystem, Spark\nExp\u00e9rience avec la suite AWS (S3, Redshift, EMR, Glue/Athena) un atout\nExp\u00e9rience avec la suite GCP (GCS, BigQuery) un atout\nExp\u00e9rience avec Kafka, Kinesis, Flume, HDFS, Hive,un atout\nExp\u00e9rience avec l\u2019utilisation et le d\u00e9ploiement des outils d\u2019apprentissage machine tels que scikit-learn, MLlib, TensorFlow, un atout\nSolide connaissance des essentiels informatiques en termes d\u2019algorithmes et de structures de donn\u00e9es\nVolont\u00e9 de participer \u00e0 tous les niveaux des projets au besoin\nMa\u00eetrise de l\u2019anglais tant \u00e0 l\u2019oral qu'\u00e0 l\u2019\u00e9crit, fran\u00e7ais un atout\nCapacit\u00e9 de g\u00e9rer des projets complexes \u00e0 long terme impliquant de multiples disciplines et lignes d\u2019affaires\nCapacit\u00e9 \u00e0 travailler de fa\u00e7on ind\u00e9pendante et avec la direction sur des projets transverses complexes et \u00e0 grande visibilit\u00e9\nEsprit cr\u00e9atif et excellentes aptitudes \u00e0 r\u00e9soudre des probl\u00e8mes\nHabilet\u00e9 \u00e0 travailler dans un environnement orient\u00e9 sur la performance et au rythme rapide\nEsprit d\u2019\u00e9quipe et fortes comp\u00e9tences relationnelles\nOrient\u00e9 client\n\nAdditional Information\n\nnull" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ea8ff644f85339a7&fccid=f8529b1ea6204edf&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "Guavus", + "salary": NaN, + "desc": "Guavus is looking for a highly motivated and talented developer to participate in the development of the most advanced solutions in the Big Data space by using agile methodologies. The developer will actively participate and collaborate with the data team to design and implement a data pipeline.\nYou\u2019ll work within the data chapter in the Montreal tribe. The data chapter is implementing a generic data pipeline on top of the Hadoop ecosystem; both streaming and batch processing methods are leveraged to provide data in the desired format for analytics and reporting. Developers are assigned the design, implementation and documentation of different components.\nResponsibilities:\nAnalyze and implement the required proof of concepts related to big data technologies\nEngage in the full life cycle of maintaining and developing data pipeline components in consultation with senior chapter members.\nImplement unit and integration tests using Guavus proprietary data pipeline tools.\nProduce quality code and documentation following Guavus coding conventions and best practices for maintainability.\nQualifications and Experience:\nMinimum 1 to 3 year of experience in a data processing position\nHolding a degree in Computer Science or Engineering\nFluent in Java, object-oriented programming\nFluent in SQL and data modelling\nEnough experience in Linux and shell scripting to do day-to-day development\nInterest in Scala and functional programming\nFluency in English, both written and spoken\nAsset:\nExperience in Hadoop ecosystem including not limited to HDFS, YARN, Hive, Zookeeper\nExperience in cloud-based applications and knowledge of Python and shell scripting\nDistributed system design and performance and highly scalable applications\nSpeaking in French" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=1eecf3ffd4ab9fa8&fccid=b839f9af280b111f&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "CAERise: Analyste de donn\u00e9es en formation simulation / Simulation training data analyst", + "company": "CAE Inc.", + "salary": NaN, + "desc": "CAE is a global leader in training for the civil aviation, defence and security, and healthcare markets. Backed by a 70-year record of industry firsts, we continue to help define global training standards with our innovative virtual-to-live training solutions to make flying safer, maintain defence force readiness and enhance patient safety. We have the broadest global presence in the industry, with 8,000 employees, 160 sites and training locations in over 35 countries. Each year, we train more than 120,000 civil and defence crewmembers and thousands of healthcare professionals worldwide. www.cae.com\n\n\n\n\nCAERise: Analyste de donn\u00e9es en formation simulation / Simulation training data analyst\n\nPosition Type:\n\nRegular\n\nRole and Responsibilities\n(English message to follow)\n\n\u00cates-vous naturellement port\u00e9(e) \u00e0 favoriser la collaboration, aimez-vous r\u00e9soudre des probl\u00e8mes, et \u00eates-vous toujours pr\u00eat(e) \u00e0 relever des d\u00e9fis? Si oui, nous aimerions vous rencontrer!\n\nVoici quelques raisons pour lesquelles les membres de notre personnel aiment travailler au sein de notre entreprise :\nTravail significatif qui favorise le perfectionnement professionnel.\nPossibilit\u00e9 d\u2019entrer dans l\u2019industrie technologique et de s\u2019y \u00e9panouir.\nEnvironnement de travail ax\u00e9 sur la collaboration.\n\u00c9quipe de haut niveau.\n\nCe que nous avons \u00e0 offrir :\nR\u00e9gime d\u2019assurance collective souple\nR\u00e9gime de retraite \u00e0 prestations d\u00e9termin\u00e9es\nR\u00e9gime d\u2019achat d\u2019actions du personnel\nR\u00e9gime enregistr\u00e9 d\u2019\u00e9pargne-retraite collectif\nProgramme pour le bien\u2011\u00eatre physique\nProgramme d\u2019aide aux employ\u00e9s\nPrestations de maternit\u00e9 compl\u00e9mentaires\nHoraire de travail variable\nVendredis Californie \u00bb tout au long de l\u2019ann\u00e9e\n\nVotre mission\n\nEn tant que membre d'une \u00e9quipe dynamique de d\u00e9veloppeurs de logiciels travaillant sur l'une des nombreuses initiatives de R&D de CAE, vous participerez \u00e0 la conception, au d\u00e9veloppement et au support des composants de notre infrastructure Cloud. Vous devrez travailler en \u00e9troite collaboration avec divers groupes de pilotes et d\u2019expert d\u2019entrainements dans le cadre des initiatives cloud de CAE.\n\nNous sommes \u00e0 la recherche d\u2019une personne capable de r\u00e9aliser les t\u00e2ches suivantes :\nParticiper au d\u00e9veloppement de crit\u00e8res et r\u00e8gles d\u2019\u00e9valuation de qualit\u00e9 de man\u0153uvres ou de missions en raffinant en session de simulation les crit\u00e8res de ces r\u00e8gles, impl\u00e9mentant les r\u00e8gles et la param\u00e9trisation de ces derni\u00e8res dans un moteur d\u2019analyse\nParticiper aux tests et validation internes de la solution en cr\u00e9ant des machines d\u2019essais virtuels\nParticiper au d\u00e9ploiement de la solution ainsi qu\u2019au support apr\u00e8s-vente (analyse de d\u00e9ficience)\nSupporter nos clients interne et externe\nTravailler dans un environnement agile\n\nVoici les caract\u00e9ristiques de notre candidat(e) id\u00e9al(e) :\nCapacit\u00e9 \u00e0 s\u2019adapter au processus organisationnel\nD\u00e9montre une forte appartenance et une flexibilit\u00e9 face aux t\u00e2ches et projets assign\u00e9s\nD\u00e9montre une forte habilet\u00e9 \u00e0 travailler et prendre des d\u00e9cisions de fa\u00e7on autonome\nCapacit\u00e9 \u00e0 s\u2019adapter rapidement aux changements technologiques et d'\u00e9voluer dans un environnement de recherche et d\u00e9veloppement\nApproche ax\u00e9e sur les r\u00e9sultats, solides comp\u00e9tences en planification et en organisation\nCapacit\u00e9 \u00e0 diagnostiquer les probl\u00e8mes\nDoit avoir de l'Initiative, du dynamisme, et de l'esprit d\u2019\u00e9quipe\nExp\u00e9rience minimum de 3-5 ans en d\u00e9veloppement logiciel ou exp\u00e9rience connexe\nExp\u00e9rience minimum de 3-5 ans en simulation de syst\u00e8mes avions\nConnaissance des langages de programmation C, C#, C++ un atout\nConnaissance des outils de d\u00e9veloppement Microsoft pour la plate-forme Windows (Visual Studio 2012 et plus).\nConnaissance des syst\u00e8mes avions et diff\u00e9rentes man\u0153uvres de pilotage utilis\u00e9 en entrainement pour un avion et/ou h\u00e9licopt\u00e8re\nConnaissance de Jira\nExcellentes aptitudes \u00e0 la communication oral et \u00e9crite\nBilinguisme (Fran\u00e7ais et Anglais)\nDisposition \u00e0 se d\u00e9placer chez les clients pour le support\nPoss\u00e8de un Baccalaur\u00e9at en G\u00e9nie Logiciel ou dans un domaine d'expertise similaire (Informatique, \u00c9lectricit\u00e9, etc)\n\nJoignez-vous \u00e0 une organisation qui fait une diff\u00e9rence chaque jour!\n\n______________________________________________________________________________________________________________________________________________________________________________________________\n\nAre you a natural collaborator and problem solver always up for a challenge? We want to hear from you!\n\nHere are the reasons why folks love working here!\nMeaningful work that drives professional development\nAbility to enter and grow within the technology industry\nWorking in a collaborative environment\nBeing part of a high performance team\n\nWhat we have to offer:\nFlexible Group Insurance Plan\nDefined Benefits Retirement Plan\nEmployee Stock Purchase Plan\nGroup Registered Retirement Savings Plan (RRSP)\nPhysical Wellness Plan\nEmployee Assistance Plan\nSupplementary Maternity Plan\nFlextime\nCalifornia Fridays all year\n\nYour mission:\n\nAs a member of a dynamic software developers team working on one of CAE's many R&D initiatives, you will participate in design, development and support of Cloud Enabled Services infrastructure components\n\nWe are looking for people who:\nWill have to work closely with various groups of pilots and training experts in the context of CAE's Cloud Enabled Services initiatives\nWill support criteria and rules development aiming at assessing pilot manoeuvering qualities or mission completeness by tuning the rules in simulated sessions, implement rules and associated parametrization into a cloud based software engine\nParticipate in the internal Testing/validating of the solution by creating testing virtual machines\nParticipate in the deployment of the solution as well as the post-delivery support (analyzing customer issues)\nWill provide support to internal and external customers\nWill be part of a team working in a \u201cAgile\u201d methodologies context\n\nAs our ideal candidate you will also have:\nThe ability to work using organizational processes\nDemonstrate flexibility and strong project and assigned tasks ownership\nDemonstrate an ability to work and make decisions unsupervised\nAbility to adapt quickly to changes in technology and to operate in an R&D environment\nResult-oriented, strong planning and organizational skill\nAbility to troubleshoot problems\nMust be self-motivated, dynamic and a team player\nMinimum of 3-5 years\u2019 of relevant experience in software development\nMinimum of 3-5 years\u2019 of relevant experience in aircraft system modulization\nKnowledge of C, C#, C++ programming languages an asset\nKnowledge of Microsoft development tools for Windows platform (Visual Studio 2012 and higher)\nKnowledge of aircraft systems and the different airplane/helicopter pilot manoeuvers used during training\nKnowledge of Jira\nExcellent verbal and written communication skills\nBilingualism (French and English)\nAvailability to travel occasionally to various locations for on-site support\nBachelor\u2019s degree in Electrical, Software or Computer Engineering or in a similar area of expertise\n\nJoin an organization making an impact every single day.\n\n\n\n\nCAE thanks all applicants for their interest. However, only those whose background and experience match the requirements of the role will be contacted.\n\n\nEqual Employment Opportunity\nCAE is firmly committed to ensuring a positive and professional working environment in which all people are treated with dignity and respect. We aim to provide a fair and consistent method for filling job openings in support of equality of opportunity and cultural diversity within the company.\n\nThe masculine gender is used throughout this job description solely to make the text easier to read and therefore applies to both men and women." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d7a069f9e9a5beb8&fccid=b839f9af280b111f&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Ing\u00e9nieur de donn\u00e9es /Data Engineer", + "company": "CAE Inc.", + "salary": NaN, + "desc": "CAE is a global leader in training for the civil aviation, defence and security, and healthcare markets. Backed by a 70-year record of industry firsts, we continue to help define global training standards with our innovative virtual-to-live training solutions to make flying safer, maintain defence force readiness and enhance patient safety. We have the broadest global presence in the industry, with 8,000 employees, 160 sites and training locations in over 35 countries. Each year, we train more than 120,000 civil and defence crewmembers and thousands of healthcare professionals worldwide. www.cae.com\n\n\n\n\nIng\u00e9nieur de donn\u00e9es /Data Engineer\n\nPosition Type:\n\nRegular\n\nRole and Responsibilities\n(English message to follow)\n\n\u00cates-vous naturellement port\u00e9(e) \u00e0 favoriser la collaboration, aimez-vous r\u00e9soudre des probl\u00e8mes, et \u00eates-vous toujours pr\u00eat(e) \u00e0 relever des d\u00e9fis?\n\nVoici quelques raisons pour lesquelles les membres de notre personnel aiment travailler au sein de notre entreprise :\nTravail significatif qui favorise le perfectionnement professionnel.\nPossibilit\u00e9 d\u2019entrer dans l\u2019industrie technologique et de s\u2019y \u00e9panouir.\nEnvironnement de travail ax\u00e9 sur la collaboration.\n\u00c9quipe de haut niveau.\n\nCe que nous avons \u00e0 offrir :\nR\u00e9gime d\u2019assurance collective souple\nR\u00e9gime de retraite \u00e0 prestations d\u00e9termin\u00e9es\nR\u00e9gime d\u2019achat d\u2019actions du personnel\nR\u00e9gime enregistr\u00e9 d\u2019\u00e9pargne-retraite collectif\nProgramme pour le bien\u2011\u00eatre physique\nProgramme d\u2019aide aux employ\u00e9s\nPrestations de maternit\u00e9 compl\u00e9mentaires\nHoraire de travail variable\n\u00ab Vendredis Californie \u00bb tout au long de l\u2019ann\u00e9e\n\nVotre mission :\n\u00c0 titre d\u2019ing\u00e9nieur des donn\u00e9es, vous serez appel\u00e9 \u00e0 transformer des donn\u00e9es dans un format pouvant \u00eatre exigeant sur un certain nombre de plans pour d\u2019autres intervenants en analyse. Cela sera accompli principalement par l\u2019\u00e9laboration, l\u2019entretien et la mise \u00e0 l\u2019essai d\u2019infrastructures destin\u00e9s \u00e0 la production de donn\u00e9es. Cette \u00e9quipe jouera \u00e9galement un r\u00f4le important dans la promotion de solutions d\u2019architecture pour des projets de science des donn\u00e9es et de mod\u00e9lisation avanc\u00e9e.\n\nNous sommes \u00e0 la recherche d\u2019une personne capable de r\u00e9aliser les t\u00e2ches suivantes :\nCr\u00e9er et maintenir une architecture de pipeline de donn\u00e9es optimale et \u00e9volutive.\nAssembler des ensembles de donn\u00e9es complexes qui respectent les exigences op\u00e9rationnelles fonctionnelles et non fonctionnelles.\nConcevoir l\u2019infrastructure requise pour l\u2019extraction, la transformation et le chargement de donn\u00e9es optimaux \u00e0 partir d\u2019une grande vari\u00e9t\u00e9 de sources de donn\u00e9es et de technologies de \u00ab donn\u00e9es massives \u00bb.\nD\u00e9finir, concevoir et mettre en \u0153uvre des am\u00e9liorations de processus internes : l\u2019automatisation des processus manuels, l\u2019optimisation de la transmission de donn\u00e9es, la nouvelle conception de l\u2019infrastructure pour une plus grande \u00e9volutivit\u00e9, etc.\nMettre au point des outils d\u2019analyse qui utilisent le pipeline de donn\u00e9es pour fournir des perspectives applicables en mati\u00e8re d\u2019acquisition de clients, d\u2019efficacit\u00e9 op\u00e9rationnelle et d\u2019autres mesures cl\u00e9s du rendement op\u00e9rationnel.\nTravailler avec des intervenants, y compris les \u00e9quipes de la direction, de l\u2019exp\u00e9rience client et de la conception pour les assister dans la r\u00e9solution de questions techniques li\u00e9es aux donn\u00e9es et le soutien de leurs besoins en infrastructure.\nMaintenir les donn\u00e9es s\u00e9par\u00e9es et en s\u00e9curit\u00e9 \u00e0 travers les fronti\u00e8res nationales par l\u2019entremise de plusieurs centres de donn\u00e9es.\nTravailler avec des experts en donn\u00e9es et en analyse pour parvenir \u00e0 une meilleure fonctionnalit\u00e9 de nos syst\u00e8mes de donn\u00e9es.\n\nVoici les caract\u00e9ristiques de notre candidat(e) id\u00e9al(e) :\nBaccalaur\u00e9at en informatique, en ing\u00e9nierie ou un domaine connexe\nAu moins trois (3) ans d\u2019exp\u00e9rience dans l\u2019industrie en mati\u00e8re de travail avec des donn\u00e9es, de code, de cr\u00e9ation de scripts (Python/Java/Scala/SQL/JS/Bash), de conception, et de mise \u00e0 l\u2019essai\nAu moins trois (3) ans d\u2019exp\u00e9rience en mati\u00e8re d\u2019\u00e9laboration et d\u2019administration de gros syst\u00e8mes de donn\u00e9es\nSolides connaissances des principes fondamentaux du soutien \u00e0 la client\u00e8le en mati\u00e8re d\u2019algorithmes et de structures de donn\u00e9es.\nExp\u00e9rience en soutien et en travail avec des \u00e9quipes interfonctionnelles dans un environnement dynamique Exp\u00e9rience en utilisation d\u2019outils de traitement de donn\u00e9es massives : Hadoop, Spark, Kafka, etc.\nExp\u00e9rience en utilisation de bases de donn\u00e9es relationnelles SQL et NoSQL, y compris Postgres et Cassandra.\nExp\u00e9rience en utilisation de pipelines de donn\u00e9es et d\u2019outils de gestion du flux de travail : Azkaban, Luigi, Airflow, etc.\nExp\u00e9rience en utilisation de services infonuagiques AWS : EC2, EMR, RDS, Redshift\nExp\u00e9rience en utilisation de services infonuagiques Microsoft : Azure, Databrick, etc.\nExp\u00e9rience en utilisation de syst\u00e8mes de traitement de flux : Storm, Spark-Streaming, etc.\nExp\u00e9rience en utilisation de langages de script orient\u00e9s objet et \u00e0 fonction d\u2019objet : Python, Java, C++, Scala, etc.\nVolont\u00e9 de participer \u00e0 tous les niveaux de l\u2019ex\u00e9cution des travaux li\u00e9s \u00e0 un projet, au besoin\nExcellentes aptitudes pour la communication verbale et \u00e9crite, en fran\u00e7ais et en anglais\n\nJoignez-vous \u00e0 une organisation qui fait une diff\u00e9rence chaque jour!\n_______________________________________________________________________________________________________________________________________________________________________________________________________________________\n\nAre you a natural collaborator and problem solver always up for a challenge?\n\nHere are the reasons why folks love working here!\nMeaningful work that drives professional development\nAbility to enter and grow within the technology industry\nWorking in a collaborative environment\nBeing part of a high performance team\n\nWhat we have to offer:\nFlexible Group Insurance Plan\nDefined Benefits Retirement Plan\nEmployee Stock Purchase Plan\nGroup Registered Retirement Savings Plan (RRSP)\nPhysical Wellness Plan\nEmployee Assistance Plan\nSupplementary Maternity Plan\nFlextime\nCalifornia Fridays all year\n\nYour mission:\nAs a Data Engineer you will be asked to transform data into a format that can be consuming for other analytics stakeholders. This should be accomplished mainly through developing, maintenance and testing infrastructure for data generation. You will also play an instrumental role enabling architecture solutions for Data Science and advance modelling projects.\n\nWe are looking for people who:\nCreate and maintain optimal and scalable data pipeline architecture\nAssemble large, complex data sets that meet functional / non-functional business requirements\nBuild the infrastructure required for optimal extraction, transformation, and loading of data from a wide variety of data sources and \u2018big data\u2019 technologies.\nIdentify, design, and implement internal process improvements: automating manual processes, optimizing data delivery, re-designing infrastructure for greater scalability, etc.\nBuild analytics tools that utilize the data pipeline to provide actionable insights into customer acquisition, operational efficiency and other key business performance metrics.\nWork with stakeholders including the Executive, CX and Design teams to assist with data-related technical issues and support their data infrastructure needs.\nKeep data separated and secure across national boundaries through multiple data centers.\nWork with data and analytics experts to strive for greater functionality in our data systems.\n\nAs our ideal candidate you will also have:\nBachelor's degree in Computer Science, Engineering, or related field\nA minimum of 3 years industry experience working with data, coding and scripting (Python/Java/Scala/SQL/JS/Bash), design and testing\nA minimum of 3 years experience developing and administering large data systems\nSolid knowledge of CS fundamentals in algorithms and data structures\nExperience supporting and working with cross-functional teams in a dynamic environment. Experience with big data tools: Hadoop, Spark, Kafka, etc.\nExperience with relational SQL and NoSQL databases, including Postgres and Cassandra.\nExperience with data pipeline and workflow management tools: Azkaban, Luigi, Airflow, etc.\nExperience with AWS cloud services: EC2, EMR, RDS, Redshift\nExperience with Microsoft cloud services: Azure, Databrick, etc.\nExperience with stream-processing systems: Storm, Spark-Streaming, etc.\nExperience with object-oriented/object function scripting languages: Python, Java, C++, Scala, etc.\nWillingness to participate in all levels of project work when necessary\nExcellent English and French written and verbal communication skills.\n\nJoin an organization making an impact every single day.\n\n\n\nCAE thanks all applicants for their interest. However, only those whose background and experience match the requirements of the role will be contacted.\n\n\nEqual Employment Opportunity\nCAE is firmly committed to ensuring a positive and professional working environment in which all people are treated with dignity and respect. We aim to provide a fair and consistent method for filling job openings in support of equality of opportunity and cultural diversity within the company.\n\nThe masculine gender is used throughout this job description solely to make the text easier to read and therefore applies to both men and women." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=6cddb85adc5e8c30&fccid=8d08a26504cbffaa&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Groom & Associates", + "salary": NaN, + "desc": "Data Analyst\n\nOur client is a small, young, fast paced organization that thrives in a technological world. They operate dozens of high traffic web properties that streams media content to users around the world in the form of movies, music and games.\n\nThey are fun loving, hardworking and very outgoing individuals each with a personal drive to take ownership and see the group succeed through dedication to excellence.\n\nThey are looking for a Data Analyst to join their team.\n\nLocation: Montreal, QC\nPosition status: Full time permanent\nSalary: 65k + Full Benefits + Vacation\n\nTO APPLY: Please send your resume to Emily at emily.woods@groomassocies.com\n\nResponsibilities include:\n\nDaily and monthly reporting\nMaking suggestions on business decisions to assist with growth, forecasting, and analysis of traffic trends\nAssist in the translation of business requirements into technical specifications\nExtract, cleanse and modify raw data from data warehouse, conduct customer analysis or campaign measurement to identify opportunities for clients\n\nRequirements:\n\nKnowledge of automated reporting systems as well as check data manually using MySQL\nAdvanced knowledge of Excel\nAny experience with R or Python is a great asset\nUnderstanding of reading through large data sets, understanding of how to interpret data into readable and manageable reports, and how to interpret what those reports mean and make actionable, data driven suggestions.\nExperience in a financial setting - knowledge of how to read processing financial statements (what fees are charged, how they\u2019re applied, how settlements work)\nExperience working with credit card processing in a non-North American context (European processing knowledge)\nUnderstanding of affiliate networks (CPA payments, and how banner ads work)\nUnderstanding of free trial offers." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2db1d2d59f803aaa&fccid=0ddad3766f834b33&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Senior Data Scientist // Scientifique des donn\u00e9es principal", + "company": "SSENSE", + "salary": NaN, + "desc": "Reporting to the Analytics Manager, the Senior Data Scientist is responsible for answering sophisticated business questions using complex data patterns. He/She will advocate, evangelize and build innovative data-fuelled models that support our success. The ideal candidate demonstrates a strong passion for producing new, creative and leading-edge analytics solutions.\n\nRESPONSIBILITIES\n\nTranslate complex analytical results into actionable business initiatives\nDevelop a deep understanding of the business, its data, and patterns\nExtract data from multiple sources to uncover opportunities or detect issues\nResearch and develop learning models, perform statistical analysis and deliver data reviews and optimization to internal teams and executives\nPartner with strategic business stakeholders to provide evidence-based guidance\nContribute to data mining architecture, modeling standards and data analysis methodologies\nDesign and implement accessible, high-impact visualizations that clearly communicate conservation results, elucidate patterns, promote accountability, generate actionable insights, and facilitate decision making\nWork iteratively in collaboration with different teams to refine initial concepts and prototypes that can be presented to stakeholders for feedback\nDevelop and continuously improve processes, tools, and techniques\nStay abreast of emerging tools and technologies\nREQUIREMENTS\n\nMaster\u2019s or PhD degree in Statistics, Mathematics, Quantitative Methods, or a related field\nA minimum of 5 years experience in analytics / data science with a focus on driving business impact\nStrong understanding of advanced modeling techniques, such as Machine Learning, nonparametric approaches and neural networks\nExcellent programming skills using SQL, Python, and statistical softwares (eg. R, SAS)\nExperience with data manipulation technologies and knowledge of programming languages\nExtensive experience solving analytical problems using quantitative approaches\nExperience using Spark or similar languages, an asset\nExperience with e-Commerce, an asset\nExperience in econometric models, an asset\nUnderstanding of web analytics, an asset\nSKILLS\n\nHighly analytical and detail oriented\nCapacity to synthesize, simplify and present complex information to technical and business stakeholders at various levels of the organization\nAbility to design and present complex data sets in a variety of visually compelling formats\nAbility to thrive in a fast-paced, performance-driven environment\nTeam player with solid interpersonal skills\n----------\n\nRelevant du Gestionnaire des analyses, le Scientifique des donn\u00e9es principal est charg\u00e9 de r\u00e9pondre aux questions d\u2019affaires sophistiqu\u00e9es \u00e0 l\u2019aide de sch\u00e9mas de donn\u00e9es complexes. Il/Elle va promouvoir, evangelizer et b\u00e2tir des mod\u00e8les de donn\u00e9es novateurs qui soutiennent notre succ\u00e8s. Le candidat id\u00e9al est passionn\u00e9 par la production de solutions d\u2019analyse nouvelles, cr\u00e9atives et avant-gardistes.\n\nRESPONSABILIT\u00c9S\n\nTraduire des r\u00e9sultats analytiques complexes en initiatives d\u2019affaires actionnables\nD\u00e9velopper une compr\u00e9hension approfondie des affaires, des donn\u00e9es et des sch\u00e9mas de l\u2019entreprise\nExtraire les donn\u00e9es de plusieures sources pour d\u00e9couvrir des opportunit\u00e9s ou d\u00e9tecter des probl\u00e8mes\nD\u00e9velopper des mod\u00e8les d\u2019apprentissage, effectuer des analyses statistiques et fournir des examens de donn\u00e9es et l\u2019optimisation des donn\u00e9es aux \u00e9quipes et aux directeurs internes\nTravailler \u00e9troitement avec les intervenants strat\u00e9giques afin d\u2019offrir une orientation bas\u00e9e sur les preuves\nContribuer \u00e0 l\u2019exploration des donn\u00e9es, l\u2019architecture, les normes de mod\u00e8les et les m\u00e9thodologies d\u2019analyse des donn\u00e9es\nConcevoir et mettre en oeuvre des visualisations accessibles \u00e0 impact \u00e9lev\u00e9 qui communiquent clairement les r\u00e9sultats de conservation, \u00e9claircissent les sch\u00e9mas, favorisent la responsabilisation, g\u00e9n\u00e8rent des observations actionnables et facilitent la prise de d\u00e9cisions\nTravailler de fa\u00e7on it\u00e9rative en collaboration avec diff\u00e9rentes \u00e9quipes pour raffiner les concepts et prototypes originaux qui peuvent \u00eatre pr\u00e9sent\u00e9s aux parties prenantes pour leur r\u00e9troaction\nD\u00e9velopper et continuellement am\u00e9liorer les processus, les outils et les techniques\nRester \u00e0 l\u2019aff\u00fbt des technologies et outils \u00e9mergents\nEXIGENCES\n\nMa\u00eetrise ou Doctorat en Statistiques, Math\u00e9matiques, M\u00e9thodes quantitatives, ou un domaine connexe\nUn minimum de 5 ann\u00e9es d\u2019exp\u00e9rience en analyse / science des donn\u00e9es visant \u00e0 faire un impact sur les affaires\nSolide compr\u00e9hension des techniques de mod\u00e9lisation avanc\u00e9es telles que l\u2019apprentissage machine, les techniques non param\u00e9triques et les r\u00e9seaux neutres\nExcellentes comp\u00e9tences de programmation avec SQL, Python et logiciels statistiques (ex. R, SAS)\nExp\u00e9rience avec les technologies de manipulation des donn\u00e9es et connaissance des langages de programmation\nVaste exp\u00e9rience en r\u00e9solution de probl\u00e8mes analytiques avec approches quantitatives\nExp\u00e9rience avec Spark ou langages similaires, un atout\nExp\u00e9rience e-commerce, un atout\nExp\u00e9rience avec les mod\u00e8les \u00e9conom\u00e9triques, un atout\nCompr\u00e9hension de l\u2019analytique Web, un atout\nCOMP\u00c9TENCES\n\nSolides aptitudes analytiques et soucieux du d\u00e9tail\nCapacit\u00e9 \u00e0 synth\u00e9tiser, simplifier et pr\u00e9senter de l\u2019information complexe aux parties prenantes techniques et d\u2019affaires \u00e0 tous les niveaux de l\u2019entreprise\nCapacit\u00e9 \u00e0 concevoir et pr\u00e9senter des ensembles de donn\u00e9es complexes dans une vari\u00e9t\u00e9 de formats visuellement attrayants\nHabilet\u00e9 \u00e0 r\u00e9ussir dans un environnement orient\u00e9 sur la performance et au rythme rapide\nEsprit d\u2019\u00e9quipe et fortes comp\u00e9tences relationnelles" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d495a7e3b7c8531d&fccid=4271edc9c2f82254&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "Sun Life Financial", + "salary": NaN, + "desc": "At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nWe are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations.\n\nRole Summary:\n\nWorking within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations.\n\nMain Responsibilities:\nLead development of new batch/low-latency analytical solutions that leverages both traditional and emerging technologies\nDesign, develop and implement highly scalable data capture and transformation processes\nCreate effective ETLs/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption\nAct as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design\nExpand and grow data existing platform capabilities to solve new data problems and challenges\nEnsure all automated processes preserve data integrity by managing the alignment of data availability and integration processes\nSupport quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources\nIdentify opportunities for new data acquisition and new uses for existing data resources\nResearch and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices\nPerform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk\nDefine data retention policy, establish data governance best practice, and create automated anomaly detection services\nDocument and update business continuity and disaster recovery procedures\nEngage in ongoing collaboration with data architects, modellers and other members to achieve common goals\nProvide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members\nProduce and maintain support documentation for ongoing operations\nAct as Tier-2/3 support to troubleshoot and resolve technical issues with production data models and services\n\nPreferred skills:\nUniversity degree in Computer Science, Software Engineering, or equivalent\nExperience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services\nSolid understanding of data warehousing principles, architecture and its implementation in complex environments\nHands-on experience with development of ELT/ETL processes in traditional and distributed environments\nExperience as designer of complex Dimensional data models for analytics services\nExperience with development for Microsoft SQL Server Analysis Services or equivalent technologies\nExperience with various testing methodologies and user acceptance testing\nSolid skills in SQL, Python, C++, Java and other languages used in data manipulation\nExperience with Hadoop and Big Data technology\nExperience with processing large datasets from multiple sources\nAbility to operate effectively and independently in a dynamic, fluid environment\nStrong verbal and written communications skills with experience in relating complex concepts to non-technical users\nDemonstrated ability to exchange ideas and convey complex information clearly and concisely\nProven ability to lead and drive projects and assignments to completion\n\nAssets:\nExperience with optimization and tuning of large data extracts for Tableau\nFamiliarity with Agile development practices\nUnderstanding of ITIL processes Incident/Change/Release management methodologies\nKnowledge of Insurance or Financial Services industry\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n25/10/2018" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=e960c35f1f558172&fccid=eae706965df860ed&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "Comprehend", + "salary": NaN, + "desc": "Comprehend Systems has built a SaaS platform that improves and accelerates clinical trials to help bring new, safer treatments to market sooner, and that really willchange the world.\n\nAs a member of our team, you will have substantial impact on the future of our platform, and as we grow so will you. We invest in our people and ensure that they stay challenged while doing meaningful work that they love.\n\nWe value\n\nOwnershipand responsibility. No dropped balls.\nDiversity,open communicationsand respectfor each other.\nPrideand highstandardfor our deliverables.\nContinuous learningand improvement of team and self.\nWhat your role and responsibilities will be\n\nCollaborate with Integration team to build ETL processes to ingest data into BI stores.\nWork with the internal teams in understanding the client requirements and convert them into technical solutions.\nBe a team player in performing development work during the production life cycle.\nExperience with building stream and batch data processing systems.\nGather and process complex raw data at scale (including writing scripts, calling APIs, write SQL queries, etc.).\nDesign and develop data processing solutions that support high performing and scalable analytic solutions.\nWork closely with Data science to integrate amazing analytics solutions.\nWhat you'll need to succeed\n\n3+ years in a data engineering role.\nAdvanced knowledge of SQL and SQL queries performance tuning.\nGood experience with RDBMS (Potgres, MS SQL Server, Oracle, DB2 ... etc)\nGood Experience with NOSQL databases (HBase, Mongo DB \u2026 etc)\nExperience with Impala, Hive & Presto is an asset.\nGood knowledge of the Spark/Hadoop ecosystem.\nGood knowledge of Scala/Java is an asset\nGood knowledge of Python and Shell scripting.\nFamiliarity with micro-services and lambda architecture is an asset." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=65864bf079c0271e&fccid=8143fb91fcd11c50&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Regulatory Data Analyst - Reg Content MRC", + "company": "Sphera Solutions Inc", + "salary": NaN, + "desc": "Sphera, the former Operational Excellence and Risk Management business of IHS Inc. (\u201cCompany\u201d) is a leading global provider of enterprise software and services that enable companies to manage and optimize their environmental, health, safety and sustainability (\u201cEHS&S\u201d) processes. Amongst a wide variety of use cases, the software allows customers to standardize and automate processes such as incident reporting, to monitor emissions and ensure regulatory compliance and to track chemical inventory throughout a manufacturing cycle. The company was recently spun off by IHS and acquired by Genstar Capital, essentially positioning it as a $100MM start up.\n\nSummary:\nOur goal is to be the industry leader for content applicable to Safety Data Sheets (SDS) and other Environmental Safety and Health (EHS) regulatory needs. We must provide our customers with a solution that significantly reduces their effort to prepare and maintain SDS and label documents. Colleagues are expected to conduct business in a manner that emphasizes and directly supports this goal.\n\nThe individual will participate in and/or lead the analysis of regulations and work with interdisciplinary teams to develop implementation strategies for inclusion of pertinent information into Sphera products. The responsibilities include but are not limited to addressing regulations and standards such as REACH, country-specific GHS implementations, global transportation of hazardous materials, and food and drug regulations. We also obtain, validate, and apply scientific data such as physical properties of chemicals.\n\nSpecific Job Duties:\nPerform assigned data maintenance projects for a repository of over 230,000 regulated substances. Be fully accountable for the individual update assignments in terms of quality and schedule\nProactively monitor legislation maintained by Sphera by reviewing regulatory standards and interpretations, registers, gazettes, newsletters, etc. as related to Regulatory Data Content\nIdentify applicable new and updated/revised legislation and obtain official source documents\nAnalyze regulations for inclusion in Regulatory Content database.\nDevelop and maintain technical documentation (in pre-defined templates) that clearly describes the analysis and interpretation of the Regulatory Data Lists\nDevelop and maintain effective relationships with regulatory agency contacts and consultants specializing in specific regulations\nLiaise with Rules Development, R&D, QA, Product Management and other teams to identify and implement continuous improvement initiatives for content quality and work process efficiency enhancements\nRespond to customer (internal and external) inquiries on regulatory topics and regulatory clarifications in a timely and professional manner\nPrepare short explanatory articles on regulations for internal Sphera distribution or for publication in trade journals\n\u2022\n\nRequired Education:\nUniversity degree in Chemistry, Toxicology, Ecology or related fields\nAdvanced degree or professional certification is considered an asset\nExperience:\nA minimum of 3 years of experience analyzing / creating regulatory or technical documentation, preferably in the domains of product stewardship and/or environmental, safety, and health\nMulti-lingual skills are considered an asset\nOther skills:\nDemonstrated working knowledge of global regulations associated with SDS preparation and regulatory reporting requirements\nKnowledge of REACH, GHS or Sphera Intelligent Authoring or Compliance Engine is considered an asset\nExperience analyzing EHS-related regulations and preparing technical documentation\nStrong organizational and planning skills\nDemonstrated problem solving skills\nAbility to work in a multi-disciplined team environment, while functioning as an individual contributor\nBasic understanding of relational database structures & internet technology\nProficiency in Microsoft Office; knowledge of Microsoft Access is a strong asset\nExcellent communication in English and French (verbal and written) and strong interpersonal skills\nPhysical Requirements: No special requirements. Work in an office environment or home office.\n\nTravel: Minimal / infrequent.\n\nAt Sphera, we are working together to help our customers keep their people safe, their products sustainable and their operations productive. The best people don't want a job, they want to change the world and themselves. The best want to challenge the status quo. The best want to grow themselves and their careers. Come check out what Sphera has to offer and how that matches up with your career goals.\n\nSphera is an equal opportunity employer. We evaluate qualified applicants without regard to race, color, age, gender identity, sexual orientation, marital status, parental status, religion, sex, national origin, disability, veteran status and other legally protected characteristics." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=60804a563a6da45b&fccid=144a39be55e8440b&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Analytics CooP - January 2019", + "company": "Ciena", + "salary": NaN, + "desc": "Ciena may well be the most important technology company you\u2019ve never heard of. The innovations that wow us (driverless cars), and those we now take for granted (the ability to mobile-stream your favorite show on the subway) are the products of ingenuity from some brilliant and forward-thinking companies. But those companies rely on Ciena, another vanguard of innovation, to create and advance the underlying networks that bring their breakthroughs to our doorsteps. VR, AI, IOT, 5G \u2026 literally none of it would be possible without the mind-boggling technology that makes the internet itself work. For more than 25 years, Ciena has been the global leader in networking strategy, and our technology has been part of the critical infrastructure running within the most advanced companies in the world.\n\n\n\n\n\nParmi toutes les soci\u00e9t\u00e9s de technologie les plus en vue dont vous pourriez avoir entendu parler, Ciena pourrait bien \u00eatre la plus importante. Si nous devons les grandes inventions qui nous \u00e9merveillent (les voitures autonomes, par exemple) ou que nous prenons pour acquis (pouvoir \u00e9couter son \u00e9mission pr\u00e9f\u00e9r\u00e9e sur son t\u00e9l\u00e9phone dans le m\u00e9tro) \u00e0 l\u2019ing\u00e9niosit\u00e9 de soci\u00e9t\u00e9s brillantes et avant-gardistes, celles-ci se tournent vers Ciena pour cr\u00e9er et faire \u00e9voluer les r\u00e9seaux de communication sous-jacents permettant \u00e0 leurs d\u00e9couvertes de se rendre jusqu\u2019\u00e0 nous. VR, AI, IOT, 5G\u2026 rien de tout cela ne serait possible sans l\u2019extraordinaire technologie de Ciena ayant permis l\u2019av\u00e8nement et l\u2019\u00e9volutivit\u00e9 d\u2019Internet. Menant le pas en mati\u00e8re de strat\u00e9gies de r\u00e9seaux de communication \u00e0 l\u2019\u00e9chelle mondiale depuis plus de 25 ans, notre technologie fait partie int\u00e9grante des infrastructures de t\u00e9l\u00e9communications d\u2019une majorit\u00e9 de soci\u00e9t\u00e9s parmi les plus en vue du monde entier.\n\nResponsabilit\u00e9s :\n\nApporter un soutien aux ing\u00e9nieurs principaux pour le codage d\u2019algorithmes d\u2019analyse ainsi que participer \u00e0 l\u2019\u00e9laboration d\u2019algorithmes d\u2019apprentissage automatique (ML) et d\u2019intelligence artificielle (IA);\nSoutenir les simulations de r\u00e9seaux en laboratoire servant \u00e0 valider les algorithmes pr\u00e9cit\u00e9s;\nContribuer aux tests de la codification pr\u00e9c\u00e9dent son d\u00e9ploiement avec les donn\u00e9es r\u00e9elles de r\u00e9seaux existants.\n\nActivit\u00e9s g\u00e9n\u00e9rales :\n\nAider l\u2019ing\u00e9nieur(e) principal(e) en analyse de donn\u00e9es \u00e0 coder et tester des algorithmes.\n\nTravail de collaboration :\n\nCollaboration au jour le jour avec l'ing\u00e9nieur principal des donn\u00e9es sous forme de r\u00e9unions ou de courriels\n\nZones d'impact :\n\nSans objet\n\nExp\u00e9rience requise :\nSolide exp\u00e9rience en programmation, python, R\nConnaissances de base en programmation Linux et shell\nFamiliarisation avec les services Web (API REST, SOAP)\nDe l\u2019exp\u00e9rience en science des donn\u00e9es et en apprentissage automatique est consid\u00e9r\u00e9e un atout\nDe l\u2019exp\u00e9rience en mod\u00e9lisation et en structures de donn\u00e9es ainsi qu\u2019en construction d\u2019algorithmes est consid\u00e9r\u00e9e un atout\nResponsibilities:\n\n\nHelp Senior Engineers code analytics algorithm and work on Machine Learning (ML) and Artificial Intelligence (AI) algorithms\nSupport lab or simulation network to validate such algorithms\nHelp test the code once ready for deployment using real network data\n\nGeneral Activities:\n\n\nHelp senior data analysis engineer on coding and testing of algorithm.\n\nCollaboration with stakeholders:\n\n\ncollaboration will be daily with Senior Data engineer via meetings and email\n\n\nExperience:\n\n\nStrong coding background, python, R,\nBasic knowledge in Linux & shell programming\nBasic understanding of Web Services (REST APIs, SOAP)\nExperience in Data Sciences & Machine Learning is a plus\nData Modeling, Data Structures, and Algorithms is a plus\n\n\nRewarding experience. Meaningful outcomes.\nMaking a difference in people's lives through design and implementation of leading network technologies. That's what motivates us.\n\nA distinct way to work\nFree thinking, free discussion, and collaboration are the norm. Expect more satisfying outcomes - both personal and professional.\n\nCiena values the diversity of our workforce and respects its employees as individuals, regardless of race, nationality, religion, sexual orientation, gender or age.\nCiena is also committed to developing inclusive, barrier-free selection processes and work environments. If contacted in relation to a job opportunity, you should advise Ciena in a timely fashion of the specific needs / accommodation measures which must be taken to enable you to be assessed in a fair and equitable manner. Information received relating to any specific needs / accommodation measures will be addressed confidentially.\n\nWhat you can expect from us\nYou will receive notification of your successful application\nSuccessful applicants will be contacted by Talent Acquisition for an initial discussion\nIf suitable you will be considered for the short list and our formal interview process" + }, + { + "link": "https://www.indeed.ca/company/Aerial.ai/jobs/Data-Engineer-2b7101696d323696?fccid=0523afab2eba546d&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "Aerial.ai", + "salary": NaN, + "desc": "Job Summary\nHelp us put WiFi to work.\nAerial provides a unique cloud-based solution that leverages existing wireless infrastructure and machine learning to give context, meaning and value to motion. Aerial\u2019s passive and contextual solutions do not require users to interact with them, they recognize users and background. We aim at becoming the wireless standard for smart motion detection through continuous innovation, passion, simplicity and inventiveness for the smart home, home care, security, healthcare and targeted media applications. Aerial\u2019s headquarters is based in Canada; we also operate from two regional offices in the USA and in Europe.\nWhat are we looking for?\nWe are looking to add an awesome Data Engineer to our Engineering Team here in Montreal. With your experience in Machine Learning processing systems, you will play a pivotal role in sharing ideas, challenges and risks amongst the R&D, engineering and product management teams for topics related to deploying our machine learning system\nWhat you'll do:\nBridge the Aerial machine learning system from research to production in a cloud infrastructure\nAssist the R&D team with software engineering\nProvide direction on machine learning implementation\nWork closely with the R&D, engineering and product management teams\nDevelop clean, maintainable code in a continuous integration and deployment environment\nEnd-to-end hands-on ownership of machine learning systems\nActively provide constructive feedback to teammates through code review\nWhat you bring to the table:\nMinimum of 3 years of professional experience building and maintaining data pipelines\nProfessional experience of machine learning frameworks and libraries (TensorFlow, Keras, PyTorch, scikit-learn, etc.)\nSolid knowledge of machine learning algorithms, their use cases and their specific strengths and weaknesses\nAdvanced skills in Python, including testing and benchmarking\nIn-depth knowledge of usual software design patterns\nProfessional experience with and solid knowledge of SQL and NoSQL databases\nExperience using source version control systems (Git, SVN, Mercurial, etc.)\nExcellent communications skills. You will be the pivot member for driving consensus, and sharing key ideas, challenges and risks between the different teams\nBachelor or master's degree in Computer Science, Software Engineering or similar\nIn an ideal world you would also bring the following skills and experiences to our team:\nExperience with MATLAB/Octave, Weka\nFamiliar with Digital Signal Processing and real-time processing workflows\nExperience with distributed data processing (Spark, MapReduce)\nExperience in other programming languages (Java, Scala, R, etc.)\nExperience with notebooks (Jupyter, Databricks, Collab, RMarkdown, etc.)\nProfessional experience of Agile development\nWhat's in it for you?\nYou will have the opportunity to join at an early phase and be an important member of our growing team. You will work in a fast pace and stimulating environment and will participate in our employee stock option plan. Not to mention you will have the opportunity to help us develop a new and exciting technology that has the ability to change people's lives all over the world!\nWhat can I expect when I submit my application?\nWe will review your application and either schedule a conversation with you or let you know that we\u2019re passing on your candidacy within 5 business days.\nWhat does the interview process involve?\nThe first step is a conversation where the focus will be on the human side of things. If you exhibit a high potential to be successful in our environment, a short video interview will allow you to demonstrate your suitability for the role. After we review your response, you may be asked to talk shop with some of our engineers and leaders. Assuming you\u2019re one of our finalists, we\u2019ll be sure to give you a tour of the office and introduce you to some of your future teammates. Throughout the process, we want to make sure that we\u2019re the right fit for each other \u2013 both technically and culturally \u2013 so please interview us at every step.\nWhat if I have more questions before I apply?\nNo worries at all! If you have additional questions prior to submitting your application, please feel free to reach out to Patrice Belmonte via LinkedIn. She accepts all connection requests on LinkedIn and does her best to reply to all messages within 24 hours.\nJob Type: Full-time\nExperience:\nData pipeline building & maintenance: 3 years (Preferred)\nPython: 2 years (Preferred)\nMachine learning frameworks & libraries: 2 years (Preferred)\nEducation:\nBachelor's Degree (Required)\nLocation:\nMontr\u00e9al, QC (Preferred)" + }, + { + "link": "https://www.indeed.ca/company/Soci%C3%A9t%C3%A9-de-recherche-sur-le-cancer/jobs/Database-Analyst-da9f72a2fb8a9a94?fccid=311364dea8d55a1f&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Database Analyst", + "company": "Societe de recherche sur le cancer", + "salary": "$56,000 - $60,000 a year", + "desc": "$56,000 - $60,000 a year\nPermanent\n*Please note that only candidates who include a resume and presentation letter will be considered.\nJob Description\nThe Cancer Research Society is a national, not-for-profit organization whose mission is to exclusively fund research on all types of cancer. Our dynamic, dedicated and friendly team of 30 employees is looking for a Data Analyst to help them optimize their fundraising.\nAs a strategic thinker possessing good research, analysis and synthesis skills, you will be responsible for the management, maintenance of quality and the optimal and appropriate use of the Donor Data Base (BDD) and other tools we use. Enjoying collaboration and providing advice to others, you will develop tools and trainings that will enable your colleagues to achieve the organization\u2019s strategic objectives. You will provide guidance and keep the various stakeholders abreast of the best and latest technologies available on the market in order to align the needs and strategy of the organization.\nYou will also\nRecommend methods and procedures for collecting, organizing and classifying information;\nIncrease the IT performance of the database (quality, integrity and consistency);\nDocument the processes;\nMonitor and continuously analyze campaign results;\nUpdate the donor segmentation model;\nHelp identify donors with potential to migrate to a higher level of giving;\nCompile, format and save data and statistics;\nProduce relevant reports;\nCheck, validate and clean up information;\nSet time, budget and qualitative and quantitative performance targets for projects, and document them;\nIdentify potential problems with input, storage or retrieval of data or information, and recommend solutions to resolve them;\nMaintain state-of-the-art knowledge and skills in donor data management;\nProvide support in the absence of the webmaster;\nEnsure that the tools remain relevant by keeping abreast of best practices and the evolution of web technologies, assessing their relevance in our changing environment and making recommendations for improvement;\nPerform all these tasks while taking into account all the financial, technical and human constraints of the organization.\nKnowledge\nCollege or university degree in a field of study related to databases, or data/comparative analysis, or the equivalent experience;\nExcellent knowledge of databases;\nBlackbaud software such as Raiser's Edge, Financial Edge, Luminate Online (an asset)\nPyramid of donations;\nNon-profit organizations (an asset);\nBilingualism essential both spoken and in writing;\nKnowledge of Microsoft Office Suite;\nKnowledge of web tools, social media, SEO, Web analytics;\nKnowledge of Web programming languages (HTML, CSS, etc.) and the use of a CMS (an asset).\nSkills and Abilities\nStrategic Thinking\nTeamwork / Collaboration\nSpirit of analysis, research, criticism and synthesis\nAbility to work under pressure\nAdvise, suggest, influence\nDiscretion / Confidentiality\nAvailability / Flexibility\nInitiative\nAccuracy\nSpeed of execution / Meeting deadlines\nRigor\nExperience\nFive (5) years demonstrated experience in database management.\nExperience with non-profit organizations (An asset)\nDemonstrated and proven experience in database maintenance and querying\nExcel skills, SQL queries and websites for non-profits\nSalary: $ 56,000.00 to $ 60,000.00 / year\n**Note that only successful candidates will be contacted.\nJob Types: Full-time, Permanent\nExperience:\nconcrete demonstrated Database (BDD) management: 5 years (Required)\nconcrete demonstrated Database (BDD) maintenance: 5 years (Required)\nconcrete demonstrated Database (BDD) analysis: 5 years (Required)\nEducation:\nBachelor's Degree (Required)\nLocation:\nMontr\u00e9al, QC (Preferred)\nLicence:\nCollege or university degree related to databases (Required)\nWeb Tools, Social Media, SEO, Web (Required)\nLanguage:\nfluent oral and written English (Required)\nfluent oral and written French (Required)" + }, + { + "link": "https://www.indeed.ca/company/Veritaaq/jobs/Bilingual-Data-Analyst-6b71d09d6774bf01?fccid=d711e85163f98421&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Bilingual Data Analyst - Major Telco Client", + "company": "Veritaaq", + "salary": "$35 - $45 an hour", + "desc": "$35 - $45 an hour\nContract\nThis is a contract position for one of our major Telco Client in Montreal as a data analyst. To be considered for this position you must be bilingual in English and French.\nAdvanced Excel Skills\nData manipulation skills \u2013 macro/automation/database\nBA type listening skills\nKnowledge of Server, Network, Security, Telephony, and storage technologies and the interconnectivity between various services such as web, application, and database\nAbility to create process and procedural documentation\nLead the data integrity and information analysis activities to gather and consolidate customer data for migration activities\nAnalyze, document and validate business requirements from business users and function specification requirements using interviews, document analysis, and task and workflow analysis. Refines requirements using critical evaluation techniques.\nDocument process flows for current / proposed processed, workflows, and data flows.\nCommunicates with project managers, subject matter experts, and end users\nPerforms analysis for projects with some impact on and risk to customer service or revenue generation.\nTypically works on multiple, unrelated projects simultaneously.\nActs as liaison between business and system areas.\nEnsures projects align with the business and technical requirements at the strategic level.\nDemonstrated people skills and ability to influence all levels of management including cross functional teams\nJob Type: Contract\nSalary: $35.00 to $45.00 /hour\nExperience:\nServer, Network, Security: 1 year (Preferred)\nAdvanced Excel: 3 years (Preferred)\nmacro/automation/database manipulation: 3 years (Preferred)\nprocedural document creation: 1 year (Preferred)\nLanguage:\nFrench (Preferred)\nEnglish (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=953a4c4c066b64ea&fccid=edeb6f12480f2704&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Quality Analyst", + "company": "Arobas Personnel inc.", + "salary": NaN, + "desc": "Arobas Personnel is looking for a data quality analyst for a full-time position for one of its clients in Montreal.\nPrimary Objective The Data Quality Analyst reports to the Director of Analytics and Reporting (Reach and Response), and will work closely with Senior Data Analysts and client Account Managers to research and analyse client program data, perform quality checks on special reports and handle data projects. This includes providing insights into the causes of data issues, point out anomalies, create dashboards and create control reports. This role is responsible to ensure quality of data and processes.\nKey Responsibilities\nWork with the the Director of Analytics on new / existing projects\nInterpret and analyse results\nIdentify, analyse and interpret patterns in complex data\nLocate and define areas of process improvements Skills and Qualifications\nDegree in Computer Science, Computing, Information Technology or equivalent\n3-5 years pertinent experience working as data analyst\nStrong understanding of SQL; T-SQL, MYSQL and MSSQL database\nVery strong understanding of Microsoft Excel; Experience with complex formulas and macros.\nExperience working with SSRS reports, complex stored procedures\nExcellent problem solving skills for technical and business issues\nExcellent English communication skills\nGood critical thinking and has attention to details." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ad1a2fd7ef990fe4&fccid=711925311d316d82&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Big Data Engineer", + "company": "DrugDev", + "salary": NaN, + "desc": "Job Description\nIQVIA is developing our next-generation Global Data Lake and Analytics platform to support analytics and insights against hundreds of Terabytes and Petabytes of health care data, and doing it in near real-time.\nWe are currently seeking engineers with experience in building and taking to production low latency, Massive Parallel Processing (MPP) data and analytic systems, ideally on Hadoop and Spark.\nOur office is based in Kirkland, QC H9H 5M3\nRequired Experience (in order of importance):\nHadoop, Hive, Impala, HBase and related technologies\nSpark or Java\nMPP, shared nothing database systems, NoSQL systems\nObject Oriented and Functional Programming Experience\nModern DevOps experience\nLinux\nData Warehousing design and concepts\nRDBMS Experience\nStats/ML/Analytics packages\nMinimum Education, Experience, & Specialized Knowledge Required:\nComputer Science Degree/Student\n3+ years strong native SQL skills\n3+ years strong experience in database and data warehousing/data lake concepts and techniques. Understand relational and dimensional modeling, star/snowflake schema design, BI, Data Warehouse operating environments and related technologies, ETL, MDM, and data governance practices.\n2+ years\u2019 experience working in Linux\n2+ years\u2019 experience with Hadoop, Hive, Impala, HBase, and related technologies\n1+ years strong experience with low latency (near real time) systems and working with Tb data sets, loading and processing billions of records per day\n1+ years\u2019 experience with Spark, Scala, Python, Java, and/or R\n1+ years\u2019 experience with MPP, shared nothing database systems, and NoSQL systems\nAbility to work in a fast-paced, team-oriented environment\nAbility to complete the full lifecycle of software development and deliver in an Agile/Scrum environment, leveraging Continuous Integration/Continuous Development\nStrong interpersonal skills, including a positive, solution-oriented attitude\nMust be passionate, flexible and innovative in utilizing the tools, their experience, and any other resources, to effectively deliver to very challenging and always changing business requirements with continuous success\nMust be able to interface with various solution/business areas to understand the requirements and support development\nHealthcare and/or reference data experience is a plus\nResponsibilities:\nData Engineer on the Data Lake/Hadoop application. Work on building data pipelines to load and manipulate data onto the Data Lake. Optimize data architecture for consumption, utilization and analytics with data on Hadoop, including for data science, machine learning and statistical use cases\nHelp lead the charge on a data lake store strategy, ensuring rapid delivery while taking responsibility for applying standards, principles, theories, and concepts\nResponsible for design and delivery of data models, which power BI initiatives, dashboards, syndicated reporting, and ad-hoc data exploratory canvases for IQVIA solutions\nWork with data architects on the logical data models and physical database designs optimized for performance, availability and reliability\nTuning and optimization of backend and frontend data operations\nServe as a query tuning and optimization technical expert, providing feedback to team\nDesign and develop ETL and master data management processes\nScripting and automation to support development, QA and production database environments and deployments to production\nDefine and help enforce data governance and security policy\nMentors development team members\nProactively helps to resolve difficult technical issues\nProvide technical knowledge to teams during project discovery and architecture phases\nKeep management informed of work activities and schedules\nAssess new initiatives to determine the work effort and estimate the necessary time-to-completion\nDocument new development, procedures or test plans as needed\nParticipate in data builds and deployment efforts. Help mature our Continuous Integration and Continuous Deployment methodologies\nParticipate in projects through various phases\nPerforms other related duties as assigned\nPartner with the business units to develop effective solutions that solve business challenges\n#LI-BW1\n#GLD\n\nJob ID: R1027443" + }, + { + "link": "https://www.indeed.ca/company/G2-PLACEMENTS-TI/jobs/Principal-Data-Scientist-IT-3101d7622ffa20d7?fccid=a1a3325489f36dcf&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Principal Data Scientist | IT", + "company": "G2 PLACEMENTS TI", + "salary": NaN, + "desc": "Permanent\nPrincipal Data Scientist\nWe have multiple opportunities for Principal Data Scientists at various levels to work with challenging and exciting analytics problems and make a positive impact to the business, while engaging with a global team of technology experts and engineers. This will involve gaining substantial experience working with our data systems to develop state-of-the-art data science solutions for our business.\nReporting to the Manager Data Analytics you will support the PACE data analytics team to design and continually improve services that solve business problems and provide insights that enable improved decision making. You will utilise your strong hands-on coding skills in R, Python and/ or Scala (...)\nYou will ideally have a Master\u2019s or PhD in Statistics, Mathematics, Computer Science, Electrical\nEngineering or another quantitative field, combined with several years of experience in data science projects, preferably using agile methodologies.\nYou should also have experience with some or all of the below:\nImplementation of data science projects, including familiarity with machine learning libraries and frameworks\nProven analytical skills\nAn ability to translate data into meaningful questions and insights\nExcellent written and verbal communication skills\nA drive to learn and master new technologies and techniques\nExperience using the following software/tools\nExperience querying databases and using statistical computer languages and packages:\nPython (Sci-kit Learn, numpy, pandas, Tensorflow, Keras), R, Matlab, SQL\nExperience creating and using advanced machine learning algorithms and statistics: regression, classification, simulation, scenario analysis, modeling, clustering, decision tree, neural networks, NLP, etc.\nKnowledge and experience in statistical and data mining techniques: GLM/Regression,\nRandom Forest, Boosting, Network Analysis, etc.\nExperience visualizing/presenting data for stakeholders using: Matplotlib, ggplot,\nSeaborn, Bokeh, Plotly, D3, Tableau , etc.\nExperience using web services: S3, Redshift, etc.\nExperience with distributed data/ computing tools: Map/Reduce, Hadoop, Hive, Spark\n(desirable)\nSoftware engineering experience (desirable)\nCloud experience (e.g. AWS and/or Azure) (desirable)\nJob Types: Full-time, Permanent\nExperience:\nSoftware engineering experience: 1 year (Preferred)\nPython: 3 years (Required)\nR: 3 years (Required)\nCloud experience (e.g. AWS and/or Azure): 1 year (Preferred)\nData Scientist: 5 years (Required)\nSQL: 3 years (Required)\nvisualizing/presenting data for stakeholders using: 3 years (Required)\nMatlab: 3 years (Required)\nCreating, Using Advanced Machine Learning Algorithms & stat: 3 years (Required)\nLanguage:\nfrench (Preferred)\nenglish (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=0f01860a34f2825a&fccid=6b7a1dfe07e7f037&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Big Data Engineer", + "company": "IQVIA", + "salary": NaN, + "desc": "IQVIA is developing our next-generation Global Data Lake and Analytics platform to support analytics and insights against hundreds of Terabytes and Petabytes of health care data, and doing it in near real-time.\nWe are currently seeking engineers with experience in building and taking to production low latency, Massive Parallel Processing (MPP) data and analytic systems, ideally on Hadoop and Spark.\nOur office is based in Kirkland, QC H9H 5M3\nRequired Experience (in order of importance):\nHadoop, Hive, Impala, HBase and related technologies\nSpark or Java\nMPP, shared nothing database systems, NoSQL systems\nObject Oriented and Functional Programming Experience\nModern DevOps experience\nLinux\nData Warehousing design and concepts\nRDBMS Experience\nStats/ML/Analytics packages\nMinimum Education, Experience, & Specialized Knowledge Required:\nComputer Science Degree/Student\n3+ years strong native SQL skills\n3+ years strong experience in database and data warehousing/data lake concepts and techniques. Understand relational and dimensional modeling, star/snowflake schema design, BI, Data Warehouse operating environments and related technologies, ETL, MDM, and data governance practices.\n2+ years\u2019 experience working in Linux\n2+ years\u2019 experience with Hadoop, Hive, Impala, HBase, and related technologies\n1+ years strong experience with low latency (near real time) systems and working with Tb data sets, loading and processing billions of records per day\n1+ years\u2019 experience with Spark, Scala, Python, Java, and/or R\n1+ years\u2019 experience with MPP, shared nothing database systems, and NoSQL systems\nAbility to work in a fast-paced, team-oriented environment\nAbility to complete the full lifecycle of software development and deliver in an Agile/Scrum environment, leveraging Continuous Integration/Continuous Development\nStrong interpersonal skills, including a positive, solution-oriented attitude\nMust be passionate, flexible and innovative in utilizing the tools, their experience, and any other resources, to effectively deliver to very challenging and always changing business requirements with continuous success\nMust be able to interface with various solution/business areas to understand the requirements and support development\nHealthcare and/or reference data experience is a plus\nResponsibilities:\nData Engineer on the Data Lake/Hadoop application. Work on building data pipelines to load and manipulate data onto the Data Lake. Optimize data architecture for consumption, utilization and analytics with data on Hadoop, including for data science, machine learning and statistical use cases\nHelp lead the charge on a data lake store strategy, ensuring rapid delivery while taking responsibility for applying standards, principles, theories, and concepts\nResponsible for design and delivery of data models, which power BI initiatives, dashboards, syndicated reporting, and ad-hoc data exploratory canvases for IQVIA solutions\nWork with data architects on the logical data models and physical database designs optimized for performance, availability and reliability\nTuning and optimization of backend and frontend data operations\nServe as a query tuning and optimization technical expert, providing feedback to team\nDesign and develop ETL and master data management processes\nScripting and automation to support development, QA and production database environments and deployments to production\nDefine and help enforce data governance and security policy\nMentors development team members\nProactively helps to resolve difficult technical issues\nProvide technical knowledge to teams during project discovery and architecture phases\nKeep management informed of work activities and schedules\nAssess new initiatives to determine the work effort and estimate the necessary time-to-completion\nDocument new development, procedures or test plans as needed\nParticipate in data builds and deployment efforts. Help mature our Continuous Integration and Continuous Deployment methodologies\nParticipate in projects through various phases\nPerforms other related duties as assigned\nPartner with the business units to develop effective solutions that solve business challenges\n#LI-BW1\n#GLD" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c2b86552f632df7f&fccid=c06cb0606092c512&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer / Developer (DB2 Linux / Sybase)", + "company": "Trigyn", + "salary": NaN, + "desc": "Temporary, Contract\nOur direct financial services client has an opening for Data Engineer / Developer in Montreal, Quebec.\n\nMajor Role & Responsibilities:\nDatabase Infrastructure Engineering for stability, scalability and capacity planning.\nApplication DBA functions: plan & execute database schema changes, bottleneck analysis, outage prevention/resolution, server/database performance improvements, database maintenance, database recovery, etc.\nDatabase development (stored procedures, ETL, tools) and queries/stored procedures review and optimization.\nEnforce database security, standards & guidelines.\n\nSkills Requirement:\n3-5 years of experience in DB2 Linux or Sybase.\nDB2 Linux version 10.5 and above (SQL, Temp tables, plan explains, MQTs, MDCs, referential integrity constraints, etc.) or Sybase 15.7 and above.\nKnowledge of other databases is a plus.\nThe candidate must be familiar with some scripting language such as: Python or Perl.\nThe candidate must have strong knowledge base of relational database performance and tuning such as: proper use of indices, database statistics/reorgs, de-normalization concepts, memory management, database configurations, etc.\nModeling tool knowledge such as: Power Designer or Erwin is preferable.\nVersioning tools such as perforce and git is a plus, but not required.\nKnowledge of financial instruments would be a great benefit, but not required.\n\nPersonal skills: Integrity & ownership, good team player, ability to work under time and resource dependencies and constraints, ability to find simple and effective solutions, high degree of motivation to expand technical and business knowledge.\n\nEducation Level: Bachelor's Degree\n\nNO THIRD PARTY CANDIDATES PERMITTED.\n\nPLEASE RESPOND ONLY IF YOU ARE CURRENTLY ELIGIBLE TO WORK IN CANADA.\n\nFor Immediate Response, Please send your Resume to RecruiterLS@Trigyn.com\n\nTRIGYN TECHNOLOGIES, INC. is an EQUAL OPPORTUNITY EMPLOYER and has been in business for 30 years. TRIGYN is an ISO 9001:2015, ISO 27001:2013 (ISMS) and CMMI Level 5 certified company." + }, + { + "link": "https://www.indeed.ca/company/L-B-&-Associates/jobs/Data-Engineer-Spark-Scala-191cb2989f2e5337?fccid=288f6b56aa604bd3&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer Spark Scala", + "company": "L B & Associates", + "salary": NaN, + "desc": "Data Architect (Scala/Java)\nMontreal, Canada\nWill pay relocation from Anywhere in the US\nFull-time\nJob Description\nAs part of the Datalake team, the Data Architect (Java) designs, develops and implements new or existing complex and scalable applications, tools to fulfill business partners objectives. The Datalake team aims to centralize all companies raw data in near Real-time or Batch, and make that data available for various uses including Data warehousing, analysis by Data Scientists and Data Exploration.\nHis role is to ensure the testing and maintenance of the applications, actively participate in the requirements, architecture and design specifications. He also determines relevance and potential value of new technologies to support business operations and strategy to create best practices and knowledge sharing.\nResponsibilities:\nThe main and routine tasks of this position are to:\nAnalyze the data sources and perform data exploration;\nDevelop and maintain real-time and batch data ingestion pipeline.\nShares acquired skills with team members through formal and informal channels;\nProposes ideas of improvement of the applications, procedures and\ntechnologies used;\nDesign, code and test technical solutions while seeking optimal performance and\nstructuring that answer best clients\u2019 needs;\nSupport the good working of developed applications in all environments through\ninteraction with Ops teams and/or set up of continuous integration and\ndeployment tools;\nAdheres to the standards and best practices in department and company;\nUnderstands technical and functional design requirements, proposes alternative options\nto improve applications or reduce effort or reduce technical debt;\nIdentifies and troubleshoots process errors and recommends solutions;\nIncreases applications operating efficiency on a regular basis;\nEstablishes responsible deadlines and personal work plans and manages time\neffectively;\nExecute assigned tasks and communicate status to Scrum Master showing progress\nagainst milestones, status, issues, risks and dependencies;\nCreates technical documentation, is quality driven in term of deliverables;\nEffectively communicates relevant project/team related information to superiors;\nInforms team members about the decisions that can have an impact upon their\nprojects;\nActively contributes to corporate knowledge base;\nCarry out all other related tasks.\nQualifications\nTraining:\nBachelor\u2019s degree in Computer Science or any other related field.\nRelevant Experience:\nMinimum 7 years experience in Developer and/or Architecture within a professional IT environment.\nKnowledge:\nExcellent knowledge and experience of programming Scala / Java within a Linux\nenvironment;\nExcellent knowledge on source control tools and continuous integration such as Git\nand Bamboo;\nKnowledge on Big data technologies (Spark / Spark Streaming, HDFS, Kafka, Hive,\nAirflow, MR, etc.);\nUnderstanding of web services & APIs (REST, SOAP).\nBilingualism is an asset;\nSkills\nStrong analytical skills;\nExcellent communication and organization skills;\nResponsible and accountable for his/her actions;\nProblem solving and questioning skills;\nPersevering, autonomous, takes initiative;\nCapacity to multitask and perform on strict deadlines;\nQuality, services and result oriented;\nEasily adaptable to changes and proposals;\nGood team player, able to accept constructive criticism and give feedback, facilitates effective team interaction;\nCreative & innovative.\nJob Type: Full-time\nJob Type: Full-time\nExperience:\ncoding experience Spark: 3 years (Preferred)\nHadoop: 1 year (Required)\nCoding experience in Scala: 3 years (Required)\nanalyze data sources: 3 years (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=b551b38d20b8462a&fccid=6e5e960c6c880862&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "MDM / Data Analyst (Master Data Management) w/QA & Testing", + "company": "Zeva Technology", + "salary": "$50 - $60 an hour", + "desc": "$50 - $60 an hour\nPart-time\nWe are looking for candidates for the following direct client position. If you are interested, please forward your updated resume and rate requirement. If you are not interested but know someone who might be, please feel free to forward this email.\nJob Title: MDM Data Analyst\nLocation: Montreal, QC Canada\nDuration: 8+ months contract\nSkill Requirements\nQA & Testing\nMDM Experience would be an asset\nAWS Stack Experience\nQA test Planning and Execution\nData Analysis\nQualifying Questions\nDoes the resource have 5+ years of Data Management experience\nCloud Experience with specifically AWS?\nBackground in data warehouse design (e.g. dimensional modeling) and data mining\nDescription Of Services\nAs a MDM data analyst, the resource will be responsible for, but not limited to, the following accountabilities:\nMinimum of 5 years of experience in Data Management and analysis\nMust have experience on the AWS platform\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nDevelop and implement databases, data collection systems, data analytics and other strategies that optimize statistical efficiency and quality\nAcquire data from primary or secondary data sources and maintain databases/data systems\nIdentify, analyze, and interpret trends or patterns in complex data sets\nFilter and \u201cclean\u201d data by reviewing computer reports, printouts, and performance indicators to locate and correct code problems\nWork with management to prioritize business and information needs\nLocate and define new process improvement opportunities\nDeliverables\nAs a Data Analyst, the resource will be responsible for, but not limited to, the following accountabilities:\nInterpret data, analyze results using statistical techniques and provide ongoing reports\nDevelop and implement databases, data collection systems, data analytics and other strategies that optimize statistical efficiency and quality\nAcquire data from primary or secondary data sources and maintain databases/data systems\nIdentify, analyze, and interpret trends or patterns in complex data sets\nFilter and \u201cclean\u201d data by reviewing computer reports, printouts, and performance indicators to locate and correct code problems\nWork with management to prioritize business and information needs\nLocate and define new process improvement opportunities\nAssisting in defining data quality metrics for periodic release.\nSupporting data quality issue analysis and remediation for \u201cstrategic\u201d data.\nRegards,\nGavin\n972-860-9925\nprovided by Dice QA Test, MDM, AWS" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=6e75f1bb1509b2b3&fccid=237908de095b6446&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Developer - Technology Group", + "company": "Ubisoft", + "salary": NaN, + "desc": "Job Description\n\nUbisoft Montreal is looking for you, Data Developers!\nAt Ubisoft Montreal, a preeminent developer of video games located in Montreal\u2019s dynamic Mile-End neighbourhood since 1997, we offer a work environment unique in the industry for allowing you to build and cultivate games that are part of critically acclaimed, iconic AAA franchises of international repute.\nWhen you join Ubi Montreal, you enter a community of passionate, extraordinary developers connected by their need to innovate, to be creative and to work with the latest technology. You\u2019ll discover a world where employees enjoy constant career advancement, a supportive learning environment, and competitive compensation packages.\nOn being a data developer at Ubisoft\n\nUbisoft's (TG) Technology Group's mission is to invest in partnerships and interactions with productions to improve the productivity and efficiency of video game development processes. This results in the development of technological solutions of a wide range (web tools, libraries, backend services, desktop apps, etc.) but also by sharing various expertise such as automated testing, continuous delivery, user experience, telemetry, audio, animation, physics, etc.\nAs a data developer, you will work hand in hand with data scientists to deliver AI solutions to make processes and systems smarter through the building of data pipelines that meet predictive model data requirements.You will also be accountable for ensuring availability and integrity of needed data sets.\n\nthe Daily life of a data developer at Ubisoft\n\nLead the design, implementation and maintenance of data transportation process required by the data scientist;\nPerform a set of data transformation to feed a predictive model;\nLead data architecture efforts in support of reliable data pipelines of both structured and unstructured data;\nDesign scalable data model required to build the predictive model;\nDevelop transition between data pipeline and data model;\nIntegrate trained predictive model into various applications, systems or workflows;\nIntegrate various technology together to build solutions;\nMonitor and track data quality (reliability, consistency, integrity) and data flow dynamics;\nMonitor performance and be accountable to make necessary infrastructure adjustments;\nTrain models through distributed computing;\nWork on a wide range of projects involving the implementation of new and existing systems, solutions and processes;\nCarry out all other related tasks.\n\nQualifications\nWhat it takes to make it\n\nBachelor's degree in Computer Science, Engineering, or any related field\nA minimum of 5 years industry experience working with data, coding, scripting and design\nA minimum of 5 years experience developing and administering large data systems\nA minimum of 3 years experience in data modeling and administration of NoSQL and SQL databases\nAbility to design processes following data flow design and architecture\nAbility to extract, transform and load data from and to systems\nAbility to configure, use and develop on systems that manage data\nAbility to develop large structured software using software engineers methods\nEmploy a variety of languages and tools (e.g. scripting languages Python, SQL, Bash) to integrate systems together\nCreative thinker with excellent problem solving abilities\nTeam player with solid interpersonal skills\nBusiness value oriented\nUnderstanding of machine learning\nDesire to independently research work-around solutions to complex problems\nAgile methodology knowledge\n\nAdditional Information\n\nWe are an equal-opportunity employer and value diversity at our company. We do not discriminate on the basis of race, ethnicity, religion, gender, sexual orientation, age or disability status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8141bc631a589325&fccid=afc24ec0a7c48ef4&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Big Data Developer", + "company": "Kronos Incorporated", + "salary": NaN, + "desc": "Kronos is seeking a Big Data Engineer to work jointly with our Advanced Research Group and Production Engineering to implement cutting-edge Data Science, AI, and Analytics solutions for workforce management using state of the art Big Data technologies. This position will sit in our Montreal, QC office (3535 Queen Mary)\n\nResponsibilities:\n\nDesign and implement Big Data software applications to support diverse Machine Learning and Analytics features in workforce management products\nScale multi-tenant solutions enabling production use cases involving hundreds of millions of records and larger datasets\nRapidly prototype data science and AI applications for internal and customer evaluations\nInterface with product teams and analyze the tests/data resulting from Big Data activities\nCommunicate insights and findings to internal and external stakeholders\nQualifications\nBS Computer Science, Computer Engineering, or equivalent; MS highly desired\nStrong software engineering and object-oriented development skills\n2+ years' experience in a role developing Big Data software applications, such as a data engineer, software developer or applied data scientist, though exceptional junior candidates will also be considered\nProfessional experience with relational databases and NoSQL database technologies\nHands-on experience applying Big Data technologies, including Spark and Hadoop distributed-computing platforms, to real-world problems\nAbility to rapidly develop in various programming languages, such as Java, Scala, or Python\nPractical ability to visualize data, communicate meaningful business insights, and utilize them effectively\n\nPreferred Qualifications:\nExperience or knowledge of machine learning or other AI subfields\nHands on experience designing and implementing software on flexible public cloud platforms\nStatistical or quantitative background for data analysis a plus\nCorporate overview\nYou\u2019re empowered when you\u2019re a Kronite.\n\nWant to be part of an elite group of highly skilled professionals? We think our employees are a special group of talented, energetic, and innovative people. And for that reason, we refer to ourselves as Kronites. Kronites care about more than just work. We recognize the need to maintain a healthy work-life balance \u2013 to live inspired. In fact, it\u2019s expected! You\u2019ll soon learn that we take work and fun seriously. No matter what position you hold at Kronos, you\u2019re a Kronite. And we want you to feel like you have the power to make a difference in your life and the lives of others, at work and beyond. Want to learn more about our culture? Follow us on Twitter @work4kronos. #MyWorkInspired\n\nKronos is a global provider of workforce management and human capital management cloud solutions. Kronos\u2019 industry-specific workforce applications are purpose built for businesses, healthcare providers, educational institutions and government agencies of all sizes. Tens of thousands of organizations \u2013 including half of the Fortune 1000\u00ae - and more than 40 million people in over 100 countries use Kronos every day.\nEEO Statement\nKronos is proud to be an equal opportunity employer and is committed to maintaining a diverse and inclusive work environment. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, physical or mental disability, age, or veteran status or any other basis protected by federal, state, or local law." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AnvNz4Za0rua_1kbpWr6zQfHkozpsvf0dmR4SuLanQW3roou42yRCgAGet45vB_UkWo1ih9E2KjaZbbNckmZMvDqDFL3G8pmv_sbYGEE-Q2urNkaOji2ehMYoGFNuByCR-LYssHgHEbCYgmK2gzsqs_mIzfhhIpPQZ3f7POSuD8tIn3Knzi3G5EMI8EtCJ4k9NUV42A_xA64rGZlA8iS_BuCdghLrRSlDteVfPOFdf2BV-S_y5Lz5hyp-IDlMZaZO9YapTno0JZn5XWIF3oWFLQZkFMymO_Bb_9TQCUahDnCE3hAxOLMVBhiD0f5JwTzDcuipjx8VZSKuPXL-oJJd0rmouI930RtCCMJG6pOFjPL8OvIjhoIqAEPcsV1r3tNgrSM_WRNwp2XhLcxZ-xBetkPsRjvnDOTefvoC_3X7hwNS9UI5bQJU16HgcTtNouvSYjB8Emx18-2kY7auMI3Gni4ZkSyZgUMHhT9toTg-CW9HU5h6QVcUyY24yq4xRdPuCYwXjTKQQJQ==&vjs=3&p=5&sk=&fvj=1", + "location": "Montr\u00e9al,QC", + "title": "Business Systems Analyst", + "company": "Intellistaff", + "salary": NaN, + "desc": "Our client is seeking an experienced Bilingual (English and French - you don't necessarily have to be 100% fluent in both languages but you can function professionally in both languages) Business Systems Analyst to work on their client's site on Nun's Island in Verdun. We have placed several individuals with this organization and they very much enjoy working here.\nYour skills and experience include the typical BA/BSA activities including gathering requirements, creating BRD and SRS documents, working with the user community and writing user stories. You are perhaps somewhat more technical than the average BA in that you have some experience developing prototypes and POCs. In addition, you have experience with process and data modeling using tools such as Visio.\nYou bring at least 8 years of progressive BA/BSA experience to the table, with at least 4-5 years of this working on full life cycle software development projects. The client will also consider you if you started your career as a developer or DBA and more recently evolved into BA or Data Analyst roles. You have experience with both Waterfall and Iterative (ie: Agile, Scrum, etc.) approaches. Finally, it would be a strong asset if you have some experience writing and validating test cases, as well as having some experience with functional testing and UAT.\nIf this sounds like you and you want to work with a company that truly supports their employees, drop me a line. Please note that this is a confidential search and I can't divulge the identity the client or their exact location via email, but I can fully disclose their identity once we have a quick phone conversation. I would need about 5-10 minutes of your time.\nThanks!\n**** PLEASE NOTE - This is a full time position\nJob Type: Full-time\nExperience:\nprogressive BA/BSA: 8 years (Preferred)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3-VTfPeS9HXQPgQlwF_a6eF__HZGqFH3XvdS1UKUaVxZWrFbikHCG_S8uH9s9FqtMnqFqNVTLhJqDrOOPLSz_sE_C2cFNTNn74q64tDfH47IcJii3htXurqCQAFfwdIEi4tgjYK-WfXotHZxZ2-zkKvDH6uS_s91T_TcSEHoUj2ANG-DvW7r6q18QF4laep8lB3tG9fUWjXjvqK_TwKpsvh7z3PoW3fUiaYYwmLsfxfvUC9EAAzOMlwTUOF0HA-ac5E6067CYyltsC9spSYf8TYmJ6NTrVPu61EBsTOQ4lHS56pUh_qBeaJCV0omB9fefHziCodQuADr6dAFoOMGr6q-OpLyG_oStIEA6cl_tmYxp_bmaxmXqkZAhYkby2iRBwSV8_ppxlRLfr7Makn4_uNDfLAG-5gVqbsFBF1VnHeobPb3LdrgKMDzRH5vJW5qghmCGgIQU5UpQV61kVApuzDIy0bwtkbidwRy25P0-kCAhOycTKyeJhDbCSsPtxm5qetf-CIT6KtAUVi_MWRtyLvelFMxUH_WOGdIp8pii4XBkJvEJB9O8GZZtJNDobBIpjx-4UwPHP_S8VN2ldI-vVag0EiMDkjUPaD_Z3rVxjbWotIVEn-m4pNiVGWM5jz1m9iVXJWnpeybvP2KdR4n3OssASCkx2bawCyAEshcDNvxZ4sGncg6d-WdYMDlI5tNL2TFHRS6uBcSYTP4A6V1iHGrPTT6ojmjC1eFAOHS7NCZPgERYW_5Ec2lamaujFW-qOrYEpFt9yKClo6HXpvP0pN-cp0_GX82mwp8wxgZGeRA==&vjs=3&p=6&sk=&fvj=0", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Jogogo", + "salary": NaN, + "desc": "Our mission is to help businesses understand exactly who the customers visiting their physical spaces are and what these customers do inside and outside of their stores.\nOur team provides a highly scalable data collection and processing system, tracks relevant metadata and statistics, and provides hands-on assistance with data integration projects. Jogogo\u2019s dataset is at a growing scale and is based on location services such as Wi-Fi & BLE.\nIn this highly strategic role you will be reporting directly to both the Product Head and Analytics Engine Lead.\n\nLet\u2019s talk about you:\nYou have experience extracting and preparing data from different database sources (SQL, noSQL, CSV..)\nYou have experience with developing and testing regression, classification and probabilistic models using modern frameworks and algorithms\nYou have a knack for data visualization and an ability to translate complex data models into visual representations that appeal to business stakeholders\nYou have experience with modern data analysis tools in Python, R ,etc.\nYou can help turn research findings into pipeline code\nYou can design and analyze A/B tests to iteratively optimize product\nYou can communicate findings - emphasizing clarity, completeness, and actionability\n\nQualifications:\nUndergraduate or graduate degree in a highly quantitative/technical field (e.g. Physics, Computer Science, Statistics, Mathematics, etc.)\n1-2 years of experience and steadily increasing responsibility in an analytics function ideally in a consumer-facing business (graduate education may be considered in lieu of experience)\n\nCompany Description\nAt a time where Retail is subject to radical shifts, Jogogo\u2019s mission focuses on contributing to the Industry\u2019s ongoing digital transformation. We strive to provide Retailers with tools to bridge the gap between the physical and digital domains, applying the principles of analytics traditionally reserved to online commerce to brick-and-mortar Retail. Our objective is to provide Retailers with access to better business intelligence, to assist them in their evolution toward a seamless journey between their eCommerce and their traditional in-store customer experiences.\nJogogo brings Retailers a unified mobile commerce solution allowing them to measure, identify and communicate with their customers in real-time, digitizing the retail space and opening up a world of possibilities in terms of curating the customer\u2019s cross-channel retail journey and bringing the personalization of the online world to brick-and-mortar Retail." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmW0uackYElX5z2Aw_CShhxyiX8pLfXa4qIReJ9Ox7bCuRbtP-2_CJjnZU-P5MudFSiQQFNiXcYPgH9nhPZussykRjjORplUSKwpK2t8F8dxhZXBhmGD0gHMPMwKPqCfKylSxngeTNpO02lPAe1v6uNz9kdjvtKe9X4MDHRfEU-wUY7rY2utG3spKmUWAMH-1G04cKGCq9qlzDYnhfnO1AmvOihm8vxJhwF_RSi_dVgu4RkJzcHDIw1D8E6pNvS2-X7ikdLjrBSj9MM65sJeWauuQeX11gN7iGZksEeVjZhNtIJSq3OH6z-e_knwmzEbKtkq8khYMIU5TcUQMXSLNtDBcPQbSDIQFrMgxpmr7PI4xoB9QiB0FRxGXNefTaGOh1R7h1Kw3mprYl7oN3ecXZINJKISuosw726d4hmZM3VGw8rG3l2jZZtm4hVxYSdwvRIGbJK7XthGrQ==&vjs=3&p=1&sk=&fvj=1", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "SPORTLOGiQ", + "salary": NaN, + "desc": "Data Analyst\nSPORTLOGiQ is a computer vision technology company who is the leading provider of advanced analytics data for professional sports teams and broadcast media. Our player tracking and activity recognition algorithms generate detailed game statistics using standard, single-camera game footage.\nResponsibilities:\nParticipate in creating new advanced sports metrics\nDevelop automation scripts for reports and metrics visualization\nGather and analyze data for internal and external customers\nRequirements:\n2-3 years of experience as Data/Business/BI Analyst\nBA in relevant field\nExperience with python, SQL, R\nAbility to prioritize tasks\nAbility to communicate analytic results in a technical and non-technical manner\nExperience as PHP programmer an asset\nKnowledge and passion for sports analytics\nWhat we offer:\nExtremely competitive salary/bonus program\nCentralized and accessible location in trendy Mile-End\nComprehensive benefits program\nFlexible work schedule\nA cooperative and fun work environment\nFreedom to work on your own projects\nJob Type: Full-time\nLocation:\nMontr\u00e9al, QC (Required)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bDlKLDPngTr06lU2YfRyF8Zx_JQNYV-F50oihPReKCVJmsJTqZlF_ktUoZ-HFD4-GZ1Siqq4H-HTy5rdZE6_k0C6fHhFtfn09mCL_1F3nwh--NKU2LKo0l7IJefV0q1fIPF1cA6QldA_-oWRn31ij-Lj3ulDPwrbIeelz38Lr8r8xGCJs-K9qBi9tKs_ayb78YmNrdMDK8FWVGAZsgw3ntEUgILSgMJ9k5QKEcNLRYZA_oIjQdXw2D1jIdZxM65ShWi3KMnFMsgJm-XOPlfRbXOWV4smO302WQWrk2jr7EV_nZXY82n7CHCVuDmxem5uMpYnSLMVfmFArK47iZfuPsWMWpHPux3199l2GtCSwBeHZGI_PyQPRXZd-udMfu9YUdAM_Khq7_OWATW9HcwCDMYRn1T1Q8_2jfwbith7dbB58F1Rcp5MMLG7XbnL2r9GCPWEVFJKQ6n1PkHE3cmrY0McgN2OZpGCxQ==&vjs=3&p=2&sk=&fvj=0", + "location": "Montr\u00e9al,QC", + "title": "Data Engineer", + "company": "Sun Life Financial", + "salary": NaN, + "desc": "At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nWe are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations.\n\nRole Summary:\n\nWorking within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations.\n\nMain Responsibilities:\nLead development of new batch/low-latency analytical solutions that leverages both traditional and emerging technologies\nDesign, develop and implement highly scalable data capture and transformation processes\nCreate effective ETLs/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption\nAct as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design\nExpand and grow data existing platform capabilities to solve new data problems and challenges\nEnsure all automated processes preserve data integrity by managing the alignment of data availability and integration processes\nSupport quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources\nIdentify opportunities for new data acquisition and new uses for existing data resources\nResearch and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices\nPerform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk\nDefine data retention policy, establish data governance best practice, and create automated anomaly detection services\nDocument and update business continuity and disaster recovery procedures\nEngage in ongoing collaboration with data architects, modellers and other members to achieve common goals\nProvide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members\nProduce and maintain support documentation for ongoing operations\nAct as Tier-2/3 support to troubleshoot and resolve technical issues with production data models and services\n\nPreferred skills:\nUniversity degree in Computer Science, Software Engineering, or equivalent\nExperience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services\nSolid understanding of data warehousing principles, architecture and its implementation in complex environments\nHands-on experience with development of ELT/ETL processes in traditional and distributed environments\nExperience as designer of complex Dimensional data models for analytics services\nExperience with development for Microsoft SQL Server Analysis Services or equivalent technologies\nExperience with various testing methodologies and user acceptance testing\nSolid skills in SQL, Python, C++, Java and other languages used in data manipulation\nExperience with Hadoop and Big Data technology\nExperience with processing large datasets from multiple sources\nAbility to operate effectively and independently in a dynamic, fluid environment\nStrong verbal and written communications skills with experience in relating complex concepts to non-technical users\nDemonstrated ability to exchange ideas and convey complex information clearly and concisely\nProven ability to lead and drive projects and assignments to completion\n\nAssets:\nExperience with optimization and tuning of large data extracts for Tableau\nFamiliarity with Agile development practices\nUnderstanding of ITIL processes Incident/Change/Release management methodologies\nKnowledge of Insurance or Financial Services industry\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n25/10/2018" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3-VTfPeS9HXQPgQlwF_a6eF__HZGqFH3XvdS1UKUaVxZWrFbikHCG_S8uH9s9FqtMnqFqNVTLhJqDrOOPLSz_s1c3Mk4rzOZ5CdQyyN7f0KNtWI86c6ok5nttHIg8EAXafi1oauo-jBezkstMkWSvODxPXNt2GmnB4T9vAiUxBtTRVJb8NNpyRXaXv5RVN-KYnCkX3bRgInInt1JDpK0dBfJ_n3hbqfgmW2qKT-_1S43dJiPFUolA7bklsy2VTWjwGaU2b6aJsU53excz1ddPICDHFjUO661dtlN3xpvOacQHhNbwAnojM7npx-LWDWECQ4K20vz_2RrIB7DInSjcdP5VgujDYzdEsOyA4PBafaTby_hodn3_YtujYcCdAa8Dg8rjGSQayaAZ2di6vUE1M4AEhxU4ZNR-ILZzUTxODe8mpwIDTK_eeAe1oGhXYYFe56FVdwLGcvI31KLWveHIO3w-ptht-AD6cv6RGpe-Wz0880wKgu0x6heD8_8oT9z28RD9BljPg_P3YUmJtFDq_EsF3xyoJX4uXs80UK2LGGNKsjfYz3RP01_n4hPYTN3U6aagqiekQKxPyOMWDcNUiQvEnKsyE8W_bn1PIh1w5fBGRHCg5YiQNqZ6_1cJKT-V4t7z36ZyobxqGfre4cLl_Bq3suNRQUlsYRtObrX81ERr5vsQBVK3_KhzTGFAfNY9Cqat20jxYnfFZywxZTxgKCHcdTsUzLJKjNF_pjRxoUJ-7gsA8rxb-GoSZBgj3o_UjxfYrUa56Mzmc_-Q49jdbWRCU6q28ZTSESHtRmI_QPQ==&vjs=3&p=3&sk=&fvj=0", + "location": "Montr\u00e9al,QC", + "title": "Data Analyst", + "company": "Jogogo", + "salary": NaN, + "desc": "Our mission is to help businesses understand exactly who the customers visiting their physical spaces are and what these customers do inside and outside of their stores.\nOur team provides a highly scalable data collection and processing system, tracks relevant metadata and statistics, and provides hands-on assistance with data integration projects. Jogogo\u2019s dataset is at a growing scale and is based on location services such as Wi-Fi & BLE.\nIn this highly strategic role you will be reporting directly to both the Product Head and Analytics Engine Lead.\n\nLet\u2019s talk about you:\nYou have experience extracting and preparing data from different database sources (SQL, noSQL, CSV..)\nYou have experience with developing and testing regression, classification and probabilistic models using modern frameworks and algorithms\nYou have a knack for data visualization and an ability to translate complex data models into visual representations that appeal to business stakeholders\nYou have experience with modern data analysis tools in Python, R ,etc.\nYou can help turn research findings into pipeline code\nYou can design and analyze A/B tests to iteratively optimize product\nYou can communicate findings - emphasizing clarity, completeness, and actionability\n\nQualifications:\nUndergraduate or graduate degree in a highly quantitative/technical field (e.g. Physics, Computer Science, Statistics, Mathematics, etc.)\n1-2 years of experience and steadily increasing responsibility in an analytics function ideally in a consumer-facing business (graduate education may be considered in lieu of experience)\n\nCompany Description\nAt a time where Retail is subject to radical shifts, Jogogo\u2019s mission focuses on contributing to the Industry\u2019s ongoing digital transformation. We strive to provide Retailers with tools to bridge the gap between the physical and digital domains, applying the principles of analytics traditionally reserved to online commerce to brick-and-mortar Retail. Our objective is to provide Retailers with access to better business intelligence, to assist them in their evolution toward a seamless journey between their eCommerce and their traditional in-store customer experiences.\nJogogo brings Retailers a unified mobile commerce solution allowing them to measure, identify and communicate with their customers in real-time, digitizing the retail space and opening up a world of possibilities in terms of curating the customer\u2019s cross-channel retail journey and bringing the personalization of the online world to brick-and-mortar Retail." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AnvNz4Za0rua_1kbpWr6zQfHkozpsvf0dmR4SuLanQW3roou42yRCgAGet45vB_UkWo1ih9E2KjaZbbNckmZMvDqDFL3G8pmv_sbYGEE-Q2urNkaOji2ehMYoGFNuByCR-LYssHgHEbCYgmK2gzsqs_mIzfhhIpPTMZZz3RnQ7n8cYh5r4cx_6XvDCWmE6tTCjbPXf3qZzrA2XB198VYhipD-mLisDRWT3vv0Tg6PgBr_BRPL-GXiE0jn0AKCSY9GMRqHK5MfysS_FMmetc_7pJh5Gym8ebuhcOxvcFmYavPFCxyxTToFeGsgJVFT3cxoOEgo_mjX595GBWgIeLSIBDOq_3tzNBUBHSJ6pWjYUXi5M_EMxGz6Cvw1KC9KPop-G7IAp3h-E3x03HTG9bbLMDWU6y7U_Vh4n2lkTr78KiNk8bsMSxXu2yxOublE5gQwTOfLKyXPOj2v-S8dHA6yYlhdprInGMkSx7dcWtdN6y-HGUCbC_BwupNf1EIwFrW-OCM-P6VNRQQ==&vjs=3&p=4&sk=&fvj=1", + "location": "Montr\u00e9al,QC", + "title": "Business Systems Analyst", + "company": "Intellistaff", + "salary": NaN, + "desc": "Our client is seeking an experienced Bilingual (English and French - you don't necessarily have to be 100% fluent in both languages but you can function professionally in both languages) Business Systems Analyst to work on their client's site on Nun's Island in Verdun. We have placed several individuals with this organization and they very much enjoy working here.\nYour skills and experience include the typical BA/BSA activities including gathering requirements, creating BRD and SRS documents, working with the user community and writing user stories. You are perhaps somewhat more technical than the average BA in that you have some experience developing prototypes and POCs. In addition, you have experience with process and data modeling using tools such as Visio.\nYou bring at least 8 years of progressive BA/BSA experience to the table, with at least 4-5 years of this working on full life cycle software development projects. The client will also consider you if you started your career as a developer or DBA and more recently evolved into BA or Data Analyst roles. You have experience with both Waterfall and Iterative (ie: Agile, Scrum, etc.) approaches. Finally, it would be a strong asset if you have some experience writing and validating test cases, as well as having some experience with functional testing and UAT.\nIf this sounds like you and you want to work with a company that truly supports their employees, drop me a line. Please note that this is a confidential search and I can't divulge the identity the client or their exact location via email, but I can fully disclose their identity once we have a quick phone conversation. I would need about 5-10 minutes of your time.\nThanks!\n**** PLEASE NOTE - This is a full time position\nJob Type: Full-time\nExperience:\nprogressive BA/BSA: 8 years (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d654ad26f297b278&fccid=b839f9af280b111f&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Analyste de l'exp\u00e9rience client / CX Analyst", + "company": "CAE Inc.", + "salary": NaN, + "desc": "CAE is a global leader in training for the civil aviation, defence and security, and healthcare markets. Backed by a 70-year record of industry firsts, we continue to help define global training standards with our innovative virtual-to-live training solutions to make flying safer, maintain defence force readiness and enhance patient safety. We have the broadest global presence in the industry, with 8,000 employees, 160 sites and training locations in over 35 countries. Each year, we train more than 120,000 civil and defence crewmembers and thousands of healthcare professionals worldwide. www.cae.com\n\n\n\n\nAnalyste de l'exp\u00e9rience client / CX Analyst\n\nPosition Type:\n\nRegular\n\nRole and Responsibilities\n(English message to follow)\n\n\u00cates-vous naturellement port\u00e9(e) \u00e0 favoriser la collaboration, aimez-vous r\u00e9soudre des probl\u00e8mes, et \u00eates-vous toujours pr\u00eat(e) \u00e0 relever des d\u00e9fis?\n\nVoici quelques raisons pour lesquelles les membres de notre personnel aiment travailler au sein de notre entreprise :\nTravail significatif qui favorise le perfectionnement professionnel.\nPossibilit\u00e9 d\u2019entrer dans l\u2019industrie technologique et de s\u2019y \u00e9panouir.\nEnvironnement de travail ax\u00e9 sur la collaboration.\n\u00c9quipe de haut niveau.\n\nCe que nous avons \u00e0 offrir :\nR\u00e9gime d\u2019assurance collective souple\nR\u00e9gime de retraite \u00e0 prestations d\u00e9termin\u00e9es\nR\u00e9gime d\u2019achat d\u2019actions du personnel\nR\u00e9gime enregistr\u00e9 d\u2019\u00e9pargne-retraite collectif\nProgramme pour le bien\u2011\u00eatre physique\nProgramme d\u2019aide aux employ\u00e9s\nPrestations de maternit\u00e9 compl\u00e9mentaires\nHoraire de travail variable\nVendredis Californie \u00bb tout au long de l\u2019ann\u00e9e\n\nVotre mission :\n\nVous jouerez un r\u00f4le important pour permettre aux \u00e9quipes Agile de prendre des d\u00e9cisions fond\u00e9es sur des donn\u00e9es en cr\u00e9ant une infrastructure de mesure, en analysant des donn\u00e9es tir\u00e9es de l\u2019exp\u00e9rience, et en contribuant activement aux discussions portant sur la valeur des fonctionnalit\u00e9s figurant dans les donn\u00e9es sur les produits.\nLe candidat id\u00e9al saura reconna\u00eetre la grande valeur des donn\u00e9es et le r\u00f4le important qu\u2019elles occupent dans notre strat\u00e9gie commerciale. Il poss\u00e8dera une excellente capacit\u00e9 d\u2019analyse, une expertise \u00e9prouv\u00e9e en acquisition de valeur au sein d\u2019un environnement dynamique, un grand sens des affaires, une souplesse et un fort d\u00e9sir de contribuer \u00e0 l\u2019exp\u00e9rience client globale.\n\nN ous sommes \u00e0 la recherche d\u2019une personne capable de r\u00e9aliser les t\u00e2ches suivantes :\nD\u00e9velopper des solutions d\u2019exp\u00e9rience client (tableaux de bord, indicateurs de rendement cl\u00e9s, carte de pointage),\nCommuniquer et travailler en collaboration avec les membres de l\u2019\u00e9quipe et d\u2019autres \u00e9quipes afin d\u2019accomplir son travail avec succ\u00e8s.\nPoss\u00e9der de l\u2019exp\u00e9rience de nettoyage et d\u2019analyse de grands ensembles de donn\u00e9es avec les technologies de donn\u00e9es ad\u00e9quates (p.ex., Python, SAS, R).\nPoss\u00e9der de l\u2019exp\u00e9rience de d\u00e9veloppement de solutions d\u2019exp\u00e9rience client (tableaux de bord, indicateurs de rendement cl\u00e9s, carte de pointage).\nVoici les caract\u00e9ristiques de notre candidat(e) id\u00e9al(e) :\nTrois ans d\u2019exp\u00e9rience \u00e0 titre d\u2019analyste des syst\u00e8mes de gestion ou de donn\u00e9es.\nDipl\u00f4me universitaire en informatique, en syst\u00e8mes d\u2019information de gestion ou exp\u00e9rience de travail \u00e9quivalente.\nAptitude \u00e0 cr\u00e9er des requ\u00eates SQL, \u00e0 utiliser Jira, PowerBI, Confluence et Sharepoint.\nAvoir acquis une solide exp\u00e9rience en prise de d\u00e9cisions fond\u00e9es sur des donn\u00e9es analytiques et op\u00e9rationnelles, en analyse de donn\u00e9es, et en statistiques.\nExcellent sens de l\u2019analyse incluant une capacit\u00e9 \u00e0 d\u00e9couvrir des tendances dans les donn\u00e9es et de comprendre d\u2019\u00e9tonnantes relations de donn\u00e9es.\nNiveau \u00e9lev\u00e9 d\u2019exactitude, souci du d\u00e9tail et capacit\u00e9 \u00e0 apprendre de nouveaux outils et technologies rapidement.\nAptitude manifeste \u00e0 intervenir sur des id\u00e9es et des possibilit\u00e9s avant qu\u2019on ne vous le demande ou d\u2019y \u00eatre contraint par des \u00e9v\u00e9nements.\nAptitude \u00e0 exercer une souplesse et \u00e0 fonctionner de fa\u00e7on ind\u00e9pendante dans un environnement agile.\nAptitude \u00e0 formuler des probl\u00e8mes et des concepts complexes pour un public de gens d\u2019affaires.\nGrand sens de l\u2019organisation et capacit\u00e9 \u00e0 travailler sous pression.\nAttitude positive envers l\u2019acceptation de d\u00e9fis et de mandats additionnels.\nExp\u00e9rience de conceptualisation et de mise en \u0153uvre d\u2019entrep\u00f4ts de donn\u00e9es avec un accent sur la pr\u00e9paration de donn\u00e9es.\nExcellentes aptitudes pour la communication verbale et \u00e9crite, en fran\u00e7ais et en anglais\n\n\nJoignez-vous \u00e0 une organisation qui fait une diff\u00e9rence chaque jour!\n________________________________________________________________________________________________________________________________________________________________________________________________________________________\n\nAre you a natural collaborator and problem solver always up for a challenge?\n\nHere are the reasons why folks love working here!\nMeaningful work that drives professional development\nAbility to enter and grow within the technology industry\nWorking in a collaborative environment\nBeing part of a high performance team\n\nWhat we have to offer:\nFlexible Group Insurance Plan\nDefined Benefits Retirement Plan\nEmployee Stock Purchase Plan\nGroup Registered Retirement Savings Plan (RRSP)\nPhysical Wellness Plan\nEmployee Assistance Plan\nSupplementary Maternity Plan\nFlextime\nCalifornia Fridays all year\n\nYour mission:\n\nYou will be instrumental to enable Agile teams to make data-driven decisions through the creation of measurement infrastructure, analysis of experience data, and actively contributing to team discussions on the value of features in the product backlog.\nThe ideal candidate will recognize that data is a valuable asset and plays an important role in our business strategy. They will possess superior analytical skills, proven expertise in bringing value in fast paced environment, strong business acumen, flexibility and a strong desire to contribute to the overall customer experience.\n\nWe are looking for people who:\nDevelop customer experience solutions (dashboards, KPI, scorecard)\nCommunicate and coordinate with team members and other teams to successfully execute work\nHave experience cleaning and analyzing large data sets with appropriate data technologies (e.g., Python, SAS, R)\nHave experience in developing customer experience solutions (dashboards, KPI, scorecard)\n\nAs our ideal candidate you will also have:\n3 years\u2019 experience as a business and/or data analyst\nBachelor's degree in Computer Science, Management Information Systems or equivalent experience\nProficiency creating SQL queries, Use of Jira, PowerBI, Confluence, SharePoint\nStrong experience in analytical business decision-making, data analytics, and statistics\nStrong analytical skills with the ability to discover patterns in data and figure out puzzling data relationships\nHigh level of accuracy, attention to detail and ability to learn new technologies and tools quickly\nDemonstrated strength in taking action on ideas and opportunities before being asked or forced to by events\nAbility to exercise flexibility and operate independently in an agile environment\nAbility to articulate complex problems and concepts to a business audience\nStrong organizational skills and able to work under pressure\nPositive attitude towards accepting additional challenges and assignments\nExperience in data warehouse design and implementation with an emphasis on data preparation\nExcellent French & English written and verbal communication skills.\n\n\nJoin an organization making an impact every single day.\n\n\n\nCAE thanks all applicants for their interest. However, only those whose background and experience match the requirements of the role will be contacted.\n\n\nEqual Employment Opportunity\nCAE is firmly committed to ensuring a positive and professional working environment in which all people are treated with dignity and respect. We aim to provide a fair and consistent method for filling job openings in support of equality of opportunity and cultural diversity within the company.\n\nThe masculine gender is used throughout this job description solely to make the text easier to read and therefore applies to both men and women." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=ba0aed0319b23ec0&fccid=c28ad2a14932bfd9&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Data Migration", + "company": "Eagle Professional Resources Inc", + "salary": NaN, + "desc": "Contract\nEagle is currently seeking a Data Engineer. This is a twelve (12) month, contract position scheduled to start in September.\nSkills and Qualifications\nThe qualified candidate must have:\nExperience with Spark Programming using Azure Databricks;\nExperience with Python, Java and SQL;\nExperience in Data Migration;\nKnowledge of Azure Cloud and Data Platform Technologies;\nBilingualism (an asset); and,\nExperience with SCALA (an asset).\nDon\u2019t miss out on this opportunity, apply online today!\nEagle is an equal opportunity employer and will provide accommodations during the recruitment process upon request. We thank all applicants for their interest; however, only candidates under consideration will be contacted. Please note that your application does not signify the beginning of employment with Eagle and that employment with Eagle will only commence when placed on an assignment as a temporary employee of Eagle." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=36547dc019ed7869&fccid=6e5e960c6c880862&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "MDM Data Engineer (Master Data Management)", + "company": "Zeva Technology", + "salary": "$70 - $80 an hour", + "desc": "$70 - $80 an hour\nPart-time\nWe are looking for candidates for the following direct client position. If you are interested, please forward your updated resume and rate requirement. If you are not interested but know someone who might be, please feel free to forward this email.\nJob Title: Lead Data Engineer\nLocation: Montreal, QC Canada\nDuration: 8+ months contract\nSkill Requirements\n- Development Tools - MDM Experience would be an asset\nQualifying Questions\nDoes the resource have 5+ years of Data Management experience\nCloud Experience with specifically AWS?\nBackground in data warehouse design (e.g. dimensional modeling) and data mining\nDescription Of Services\nLead Data Engineer\nExperience of working in cloud & open source environment is a must.\nData architecture experience in a medium-large enterprise environment\nKnowledge of performance considerations for different database designs in different environments\nBackground in data warehouse design (e.g. dimensional modeling) and data mining\nIn-depth understanding of database management systems, online analytical processing (OLAP) and ETL (Extract, transform, load) framework\nFamiliarity with BI technologies (e.g. Microsoft Power BI, Oracle BI)\nKnowledge of SQL queries, SQL Server Reporting Services (SSRS) and SQL Server Integration Services (SSIS)\nExperience in structured methodologies for the design, development and implementation of applications\nExperience in the use of data modelling methods and tools, including a working knowledge of metadata structures, repository functions, and data dictionaries.\nExperience in monitoring and enforcing data modelling/normalization standards\nExperience with various aspects of information management at the enterprise level (data governance, data quality, master data management, information life cycle, etc.)\nDeliverables\nAs a Lead data engineer, the resource will be responsible for, but not limited to, the following accountabilities:\nCreating databases optimized for performance, implementing schema changes, and maintaining data architecture standards across all of the business\u2019s databases, as per IATA's requirements\nDesign and develop scalable ETL packages from the business source systems and the development of ETL routines in order to populate databases from sources and also to create aggregates\nResponsible for performing thorough testing and validation in order to support the accuracy of data transformations and data verification\nRegards,\nSunny\n972-886-5843\nprovided by Dice data warehouse, ETL & MDM" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c74f48c43d90b6e0&fccid=0b01c8a6523e5786&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Product Manager", + "company": "The Game Group", + "salary": NaN, + "desc": ":\nLooking for an exceptional Product Manager, who will be responsible for outlining the monetization strategy of the games they are assigned to in order to maximize revenues through all distribution channels at a worldwide level.\nFrom the beginning of your adventure with us, you will be tasked with:\nWorking closely with the production team to define the monetization strategy.\nWorking with the design and production teams in different phases of the lifecycle of the game to help define the features that have an impact on monetization.\nIdentifying and defining trackers, metrics and dashboards to measure performance.\nDetermining promotional plans related to game content, player progress and in-game events.\nWorking with the data analyst to evaluate current strategies and propose new ways to optimize/maximize game revenue.\nPresent progress updates to all stakeholders involved.\nAnalyzing competitors and benchmarking.\nExperience and qualifications:\nBachelor\u2019s degree in Marketing, Economics or a related field (master\u2019s degree an asset).\n5+ years\u2019 experience in video games, business intelligence or e-commerce.\n2+ years\u2019 experience managing free-to-play online and/or mobile-game products with a focus on monetization.\nTrue passion for the mobile free-to-play market, has played most relevant grossing games and is an advanced player on at least 1 of them.\nProven experience optimizing metrics and revenue on a live product or a service.\nGood understanding of statistics, strong analytical and data modeling (Excel) skills.\nBasic knowledge of programming languages is an asset (SQL, Python, etc.).\nCan do a mobile-game tear down on the spot, focusing on industry best practices.\nCapable of making decisions in a complex environment.\nProven ability to turn customer needs into features and prioritize them in a product roadmap.\nAble to communicate and support complex ideas clearly and concisely.\nAble to plan, organize and complete multiple projects simultaneously, under pressure and within tight deadlines.\nPassionate about joining a dynamic and international structure to discover the fast-growing world of online games.\nAnd above all, motivation and a passion for your work!\n\nTo obtain more details or explore this job; please submit a copy of your resume by e-mailing: resumes@gamegrouprecruit.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3e46c5704bd3eeb6&fccid=39d1c8076d23beb5&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Analyste BigData / Big Data Analyst - 260740", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nAnalyste BigData\nDans le cadre de ses ententes avec ses diff\u00e9rents clients, Procom est actuellement \u00e0 la recherche d'un Analyste BigData pour une entreprise dans le domaine de l\u2019assurance. Notre client est situ\u00e9 \u00e0 Montr\u00e9al.\nDescription des t\u00e2ches et responsabilit\u00e9s \u2013 Analyste BigData\nD\u00e9velopper des solutions novatrices pour la reconnaissance de tendances en utilisant du machine learning et des statistiques avanc\u00e9es.\nTransformer des bases de donn\u00e9es complexes en conclusions et recommandations pertinentes.\nRester \u00e0 jour sur les nouvelles approches / tendances et les utiliser dans des solutions de desing.\nAider \u00e0 maintenir nos outils et plateformes de Data Mining.\nFaire des recommandations actionnables bas\u00e9es sur les conclusions.\nCommuniquer les r\u00e9sultats et la performance des mod\u00e8les \u00e0 la Direction.\nTravailler avec les autres d\u00e9partements pour favoriser l\u2019adoption des principes analytiques dans l\u2019organisation.\nValider la qualit\u00e9 de l\u2019approche analytique et des outputs du projet des autres membres de l\u2019\u00e9quipe.\nExigences du poste \u2013 Analyste BigData\nDoctorat ou ma\u00eetrise dans une discipline pertinente (ex. math\u00e9matiques, sciences, ing\u00e9nierie, recherche op\u00e9rationnelle, statistique, IA, informatique).\n3 ans d'exp\u00e9rience sur une plateforme Hadoop en nettoyage de donn\u00e9es et leur analyse.\nCompr\u00e9hension de la complexit\u00e9 algorithmique et mise \u00e0 l'\u00e9chelle des temps d'ex\u00e9cution et l'utilisation de la m\u00e9moire avec grands ensembles de donn\u00e9es.\nExp\u00e9rience de travail avec les grands ensembles de donn\u00e9es ou familiarit\u00e9 avec des outils tels que Hortonworks.\nExp\u00e9rience de production multi-plateforme avec des cadres de Data Mining commerciaux et open-source suivants:\nPlateforme Hadoop: HPD, Ambari, Hive, Hbase, Yarn, Zeppelin.\nOpen-source frameworks: R, Python, Spark, Scala, TensorFlow ou \u00e9quivalent.\nCompr\u00e9hension de niveau expert sur la th\u00e9orie sous-jacente de \u00ab Machine Learning \u00bb.\nCompr\u00e9hension de niveau expert du cycle de vie de la mod\u00e9lisation pr\u00e9dictive.\nMa\u00eetrise des techniques analytiques appliqu\u00e9es (clustering, decision trees, neural networks, SVM (support vector machines), collaborative filtering, k-nearest neighbors, association rules) et autres techniques d'apprentissage machine.\nAptitude \u00e0 se concentrer sur les probl\u00e8mes vaguement d\u00e9finis qui requi\u00e8rent une application d'approches cr\u00e9atives.\nForte comp\u00e9tence de communication, la gestion du temps et organisation du travail.\nAtout:\nExp\u00e9rience en d\u00e9veloppement Java serait un atout.\nConnaissance des approches de la science des donn\u00e9es dans la compr\u00e9hension des consommateurs serait un atout.\nConnaissances sur l\u2019industrie de l\u2019assurance g\u00e9n\u00e9rale et exp\u00e9rience pertinente dans ces domaines seraient un atout.\nTravail d\u2019\u00e9quipe coop\u00e9ratif.\nType de poste\nContractuel 6 mois avec de fortes possibilit\u00e9s de renouvellement\nDate de d\u00e9but\nImm\u00e9diatement\nNum\u00e9ro de r\u00e9f\u00e9rence\nBH 260740\n____________ENGLISH VERSION___________\nBig Data Analyst\nOn behalf of your client Procom is searching for a Big Data Analyst for one of our client in the insurance sector. Our client is located in Montreal.\nJob Details - Big Data Analyst\nTransformation of complex data sets into meaningful conclusions and recommendation.\nDevelop novel and innovative solutions for pattern recognition using machine learning and statistical approaches.\nStay current on new approaches or opportunities, and bring them to the solutions you design.\nHelp maintain the expanding set of Data Mining tools and frameworks, including all prerequisite components and the add-ons.\nMake actionable recommendations based on insights.\nCommunicate the Model Results and Performance to Management.\nWork with other departments to drive adoption of analytical principles in the organization.\nQuality assurance on the analytical approach and project output for other members of the team.\nMandatory Skills \u2013 Big Data Analyst\nPHD or Master degree in a relevant subject (ie. Mathematics, Science, Engineering, Operational Research, Statistics , AI, Computer Science).\n3 years of experience on a Hadoop platform for data wrangling and data analysis.\nUnderstanding of algorithmic complexity and scaling of run time and memory usage with larger datasets.\nExperience tackling large data sets or familiarity with tools such as Hortonworks suite of tools.\nCross-platform production experience with the following commercial and open-source Data Mining frameworks:\nHadoop platform: HPD, Ambari, Hive, Hbase, Yarn, Zeppelin.\nOpen-source frameworks: R, Python, Spark, Scala, TensorFlow or equivalent.\nExpert-level understanding of the underlying Machine Learning theory.\nExpert-level understanding of the Predictive Modeling Lifecycle.\nFluency in applied analytical techniques including regression analysis, clustering, decision trees, neural networks, SVM (support vector machines), collaborative filtering, k-nearest neighbors, association rules and other Machine Learning techniques.\nAbility to concentrate on loosely defined problems which require application of creative approaches.\nStrong communication, time-management, organization, and prioritization skills.\nAsset:\nExperience in Java development is a plus.\nUnderstanding of Data science approaches in consumer research domains a plus\nRelevant P&C Insurance Industry Knowledge and Hands on Experience in these fields would be an asset.\nCooperative team player.\nAssignment Length\n6 months Contract \u2013 Renewable\nStart date\nImmediately\n\nReference number\nBH 260740" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=31d7b6ba1194d6a1&fccid=0d771a787e6e10bd&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Analyste de donn\u00e9es en g\u00e9omatique", + "company": "Fujitsu", + "salary": NaN, + "desc": "Filiale canadienne de Fujitsu - 3e fournisseur mondial en technologies de l'information et des communications (TIC) -, Fujitsu Canada allie l'expertise de ses 2400 employ\u00e9s et le pouvoir des TIC pour contribuer au succ\u00e8s des organisations et accro\u00eetre leur comp\u00e9titivit\u00e9. Son engagement? Centrer ses interventions sur les besoins du client afin de trouver la solution qui r\u00e9pondra \u00e0 ses attentes. Ce qui la distingue? Sa fa\u00e7on d'utiliser ses capacit\u00e9s mondiales au b\u00e9n\u00e9fice du march\u00e9 local. Le mot d'ordre? Innover.\n\nTravailler chez Fujitsu Canada, c'est faire partie d'une \u00e9quipe regroupant des professionnels de talent issus de domaines d'expertise vari\u00e9s. Mieux encore : c'est se joindre au r\u00e9seau que composent les plus 170 000 experts de Fujitsu, r\u00e9partis aux quatre coins du globe. Mais avant tout, c'est choisir une carri\u00e8re stimulante et enrichissante taill\u00e9e \u00e0 la mesure de vos ambitions. Pr\u00eat \u00e0 fa\u00e7onner l'avenir avec nous?\n\nNous sommes pr\u00e9sentement \u00e0 la recherche de candidats qualifi\u00e9s afin de joindre notre \u00e9quipe \u00e0 Montr\u00e9al \u00e0 titre d'analyste de donn\u00e9es en g\u00e9omatique.\n\nR\u00e9sum\u00e9\n\nLe titulaire du poste est charg\u00e9 de superviser la qualit\u00e9 des donn\u00e9es GIS produites par l\u2019analyste de donn\u00e9es de r\u00e9f\u00e9rence en ing\u00e9nierie, incluant les donn\u00e9es de r\u00e9f\u00e9rence du syst\u00e8me PTC. Le titulaire du poste r\u00e9vise toutes les saisies de donn\u00e9es SIG effectu\u00e9es par les diff\u00e9rentes unit\u00e9 d\u2019affaires et les vendeurs externes administrant les donn\u00e9es spatiales dans le mod\u00e8le de donn\u00e9es SIG de l\u2019entreprise. Il est \u00e9galement responsable de la qualit\u00e9 des donn\u00e9es et de l\u2019int\u00e9grit\u00e9 de toutes les publications g\u00e9n\u00e9r\u00e9es depuis Rail network Data Management Railroad Business Logics (RNDM GIS Topology). Le groupe offre \u00e9galement un service de maintenance de saisie de donn\u00e9es spatiales aux groupes d\u2019entreprises non famili\u00e8res avec les syst\u00e8mes d\u2019information g\u00e9ographique (SIG). Le titulaire du poste s\u2019assure du respect de toutes les normes de capture de donn\u00e9es. L\u2019\u00e9quipe de gestion de la qualit\u00e9 des donn\u00e9es GIS est charg\u00e9e de signaler tous les probl\u00e8mes et erreurs soulev\u00e9s par le syst\u00e8me de contr\u00f4le de la qualit\u00e9 des donn\u00e9es SIG. Cela comprend la transmission des documents et des communications aux parties concern\u00e9es.\n\nResponsabilit\u00e9s\n\n1. Tests de gestion des donn\u00e9es spatiales 50 %\n\nCoordonner les tests de r\u00e8gles de gestion en SIG en collaboration avec les diff\u00e9rents chefs d\u2019\u00e9quipes et les \u00e9quipes satellites.\n\nEffectuer des tests unitaires. Si n\u00e9cessaire, effectuer des tests fonctionnels et d\u2019int\u00e9gration, et pr\u00e9parer des sc\u00e9narios de test et des donn\u00e9es de test.\n\n2. D\u00e9ploiement de la gestion des donn\u00e9es spatiales 30 %\n\nCoordonner le d\u00e9ploiement du SIG dans la production de mises \u00e0 jour pour les donn\u00e9es de r\u00e9f\u00e9rence afin de g\u00e9n\u00e9rer des produits op\u00e9rationnels essentiels : PTC Sdiv File, TO Trip Optimizer Update, Test Car GIS Backbone Overlay, RTBI GIS Data Enrichments Services, etc.\n\n3. Meilleures pratiques et proc\u00e9dures de contr\u00f4le pour la gestion des donn\u00e9es spatiales 10 %\n\nCultiver, d\u00e9cimer et faire appliquer les mesures fonctionnelles, les proc\u00e9dures et les meilleures pratiques en termes de qualit\u00e9.\n\nAssurer l\u2019exactitude de tous les rapports spatiaux transmis aux diff\u00e9rentes unit\u00e9s d\u2019affaires.\n\n4. Tests des rapports spatiaux 10 %\n\nAssurer le rendement et la durabilit\u00e9 de tous les rapports spatiaux transmis aux diff\u00e9rentes unit\u00e9s d\u2019affaires.\n\nAppliquer les normes en TI du CN appropri\u00e9es et veiller \u00e0 leur conformit\u00e9 (qualit\u00e9 du code, s\u00e9curit\u00e9, architecture, m\u00e9thodologie de livraison, SOX, etc.).\n\n***************************************************************************************\n\nThis role is responsible to oversee GIS data quality produced by the Engineering Master Data Analyst including PTC System Master Data. This role review any GIS data entry produced by the different business units & external Vendors managing spatial data in the enterprise GIS data model. This role is responsible for the data quality and integrity of all the publication produced from the Rail network Data Management Railroad Business Logics (RNDM GIS Topology). The group is also providing spatial data entry maintenance services on the behalf of non GIS savvy business groups. This role is ensuring all data capture standard procedure are followed adequately. GIS Data Quality management is responsible for communicating any issues or defects identified by the GIS data quality monitoring system. This includes appropriate documentation and communication to appropriate parties.\n\nMajor Responsibilities:\n1. Spatial Data Management Testing 50%\n\nCoordinate GIS business rules test activities with the various leads and satellite teams.\n\nConduct unit testing. If required, also conduct functional and integration testing, including preparation of test cases/scenarios and test data.\n\n2. Spatial Data Management Live Deployment 30%\n\nCoordinate GIS deployment in Production of any Master Data Update in order to produce Key Operational Output: PTC Sdiv File, TO Trip Optimizer Update, Test Car GIS Backbone Overlay, RTBI GIS Data Enrichments Services, etc.\n\n3. Spatial Data Management Best Practice & Monitoring 10%\n\nCultivate, decimate, and enforce functional policies, procedures, and quality best practice.\n\nEnsure the accuracy of al the spatial reports deployed to the different business units.\n\n4. Spatial Reports Testing 10%\n\nEnsure the performance and sustainability of al the spatial reports deployed to the different business units.\n\nApply, and ensure compliance with, all appropriate CN IT standards (e.g. Code quality, Security, Architecture, Project Delivery Methodology, SOX, etc.)\n\nQualifications\n\n\u00c9tudes, certifications et exp\u00e9rience\n\nDipl\u00f4me de niveau coll\u00e9gial en syst\u00e8me d\u2019information g\u00e9ographique (SIG) ou dans une discipline pertinente\nCertification en normes de capture de donn\u00e9es\nToute exp\u00e9rience dans l\u2019utilisation d\u2019Autodesk AutoCAD Map 3D est consid\u00e9r\u00e9e un atout\nEmploi\n\nConsultation\n\nEmplacement principal\n\nCanada-PQ-Montr\u00e9al" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d27b078ea7b40656&fccid=7e0d9a513baca44d&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Chef(fe) de produit - Product manager", + "company": "Gameloft", + "salary": NaN, + "desc": "Job Description\n\nNous sommes actuellement \u00e0 la recherche d'un(e) chef(fe) de produit qui sera responsable de d\u00e9finir la strat\u00e9gie de mon\u00e9tisation des jeux qui lui seront assign\u00e9s pour en maximiser les revenus sur l\u2019ensemble des canaux de distribution mondiaux.\nD\u00e8s le d\u00e9but de votre aventure avec nous, vous serez appel\u00e9(e) \u00e0 :\nTravailler en \u00e9troite collaboration avec l\u2019\u00e9quipe de production pour d\u00e9finir la strat\u00e9gie de mon\u00e9tisation ;\nTravailler avec les \u00e9quipes de design et de production sur les diff\u00e9rentes phases du cycle de vie du jeu pour aider \u00e0 d\u00e9finir les fonctionnalit\u00e9s qui auront un impact sur la mon\u00e9tisation ;\nIdentifier et d\u00e9finir les pisteurs, les mesures et les tableaux de bord pour mesurer les performances ;\nD\u00e9terminer les plans promotionnels li\u00e9s au contenu du jeu, \u00e0 la progression des joueurs et aux \u00e9v\u00e9nements en jeu ;\nTravailler avec l\u2019analyste de donn\u00e9es pour \u00e9valuer les strat\u00e9gies actuelles et proposer de nouvelles fa\u00e7ons d\u2019optimiser/maximiser les revenus de jeu ;\nPr\u00e9senter des mises \u00e0 jour de progression \u00e0 toutes les parties prenantes impliqu\u00e9es ;\nAnalyser la concurrence et effectuer des \u00e9valuations.\n****\nWe are currently looking for a Product Manager, who will be responsible for outlining the monetization strategy of the games they are assigned to in order to maximize revenues through all distribution channels at a worldwide level.\nFrom the beginning of your adventure with us, you will be tasked with:\nWorking closely with the production team to define the monetization strategy\nWorking with the design and production teams in different phases of the lifecycle of the game to help define the features that have an impact on monetization\nIdentifying and defining trackers, metrics and dashboards to measure performance\nDetermining promotional plans related to game content, player progress and in-game events\nWorking with the data analyst to evaluate current strategies and propose new ways to optimize/maximize game revenue\nPresent progress updates to all stakeholders involved\nAnalyzing competitors and benchmarking\n\nQualifications\n\nExp\u00e9rience et comp\u00e9tences recherch\u00e9es :\nBaccalaur\u00e9at en marketing, en \u00e9conomie ou un domaine connexe (une ma\u00eetrise est un atout) ;\n5 ann\u00e9es d\u2019exp\u00e9rience ou plus dans le domaine des jeux vid\u00e9o, de l\u2019informatique d\u00e9cisionnelle ou du commerce \u00e9lectronique ;\n2 ann\u00e9es d\u2019exp\u00e9rience ou plus en gestion de jeux free-to-play en ligne et/ou mobile et centr\u00e9e sur la mon\u00e9tisation ;\nExp\u00e9rience reconnue dans l\u2019optimisation des mesures et de revenus sur un produit ou un service actif ;\nUne v\u00e9ritable passion pour le march\u00e9 free-to-play mobile. Le candidat a jou\u00e9 \u00e0 la plupart des jeux ayant g\u00e9n\u00e9r\u00e9 des revenus importants et il est un joueur exp\u00e9riment\u00e9 sur au moins l'un d\u2019entre eux ;\nBonne connaissance, des statistiques, excellentes comp\u00e9tences en mod\u00e9lisation analytique et de donn\u00e9es (Excel) ;\nConnaissance de base des langages de programmation, un atout (SQL, Python, etc.) ;\nPeut faire l\u2019analyse d\u2019un jeu mobile sur commande en se concentrant sur les meilleures pratiques de l'industrie ;\nCapacit\u00e9 \u00e0 prendre des d\u00e9cisions dans un environnement complexe ;\nCapacit\u00e9 reconnue \u00e0 transformer les besoins des clients en \u00e9l\u00e9ments de jeu et \u00e0 les prioriser dans la strat\u00e9gie du produit ;\nApte \u00e0 communiquer et soutenir des id\u00e9es complexes de fa\u00e7on claire et pr\u00e9cise ;\nApte \u00e0 planifier, organiser et terminer plusieurs projets simultan\u00e9ment sous pression et dans des d\u00e9lais tr\u00e8s serr\u00e9s ;\nPassionn\u00e9 \u00e0 l\u2019id\u00e9e de rejoindre une structure dynamique et internationale pour d\u00e9couvrir le monde en pleine croissance du jeu en ligne.\nEt par-dessus tout, de la motivation et une passion pour son m\u00e9tier.\n****\nExperience and qualifications:\nBachelor\u2019s degree in Marketing, Economics or a related field (master\u2019s degree an asset)\n5+ years\u2019 experience in video games, business intelligence or e-commerce\n2+ years\u2019 experience managing free-to-play online and/or mobile-game products with a focus on monetization\nTrue passion for the mobile free-to-play market, has played most relevant grossing games and is an advanced player on at least 1 of them\nProven experience optimizing metrics and revenue on a live product or a service\nGood understanding of statistics, strong analytical and data modeling (Excel) skills\nBasic knowledge of programming languages is an asset (SQL, Python, etc.)\nCan do a mobile-game teardown on the spot, focusing on industry best practices\nCapable of making decisions in a complex environment\nProven ability to turn customer needs into features and prioritize them in a product roadmap\nAble to communicate and support complex ideas clearly and concisely\nAble to plan, organize and complete multiple projects simultaneously, under pressure and within tight deadlines\nPassionate about joining a dynamic and international structure to discover the fast-growing world of online games\nAnd above all, motivation and a passion for your work!\n\nAdditional Information\n\nVoici pourquoi entrer dans l\u2019univers Gameloft :\nParce que vous voulez vivre une exp\u00e9rience exceptionnelle, au sein d'une entreprise en constante \u00e9volution !\nParce que vous voulez travailler avec des coll\u00e8gues talentueux et pionniers dans l\u2019industrie !\nParce que l\u2019id\u00e9e d\u2019ouvrir vos horizons \u00e0 une culture internationale et au partage de connaissances avec des coll\u00e8gues \u00e0 l\u2019autre bout du monde vous enchante !\nOu tout simplement parce que vous recherchez un endroit o\u00f9 il y fait bon travailler !\nNous offrons :\nAvantages sociaux dignes d\u2019une grande entreprise\nVacances et cong\u00e9s mobiles\nRemboursement d\u2019une partie du co\u00fbt de la carte OPUS\nLocal \u00e0 v\u00e9los de 80 places\nCollations offertes quotidiennement\nEspaces de jeux\nTerrasse sur le toit\nNous souhaitons vous conna\u00eetre!\nSoumettez votre candidature d\u00e8s maintenant.\n****\nWhy Join the World of Gameloft?\nBecause you want to be part of an exceptional experience within a company that is constantly growing!\nBecause you want to work with talented people who are industry pioneers!\nBecause you want to join a global company and meet great people around the world from all walks of life.\nOr, just because you\u2019re looking for a great place to work!\nWhat We Offer\nBenefits befitting a company of our size\nVacation and personal days off\nPublic transportation allowances (partial reimbursement of OPUS card)\nA storage room for 80 bikes\nDaily snacks\nA game room\nA rooftop terrace\nWe want to get to know you!\nSubmit your application now." + }, + { + "link": "https://www.indeed.ca/company/G2-PLACEMENTS-TI/jobs/Scientifique-De-Donn%C3%A9e-Principal-3f79f7b29101ca1f?fccid=a1a3325489f36dcf&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "SCIENTIFIQUE DE DONN\u00c9ES PRINCIPAL", + "company": "G2 PLACEMENTS TI", + "salary": "$100,000 - $140,000 a year", + "desc": "$100,000 - $140,000 a year\nPermanent\nScientifique principal des donn\u00e9es (PRINCIPAL DATA SCIENTIST)\nNous recherchons en direct pour notre client, leader international, un Scientifique Principal des donn\u00e9essur Montr\u00e9al (Qu\u00e9bec, Canada) pour un poste permanent.\nVous r\u00e9glerez des probl\u00e8mes analytiques complexes en collaboration avec une \u00e9quipe mondiale d\u2019experts et d\u2019ing\u00e9nieurs en technologie.\nVous devrez acqu\u00e9rir une exp\u00e9rience consid\u00e9rable \u00e0 travailler avec nos syst\u00e8mes de donn\u00e9es afin d\u2019\u00e9laborer des solutions de science des donn\u00e9es \u00e0 la fine pointe ...\nVos principales t\u00e2ches :\nSoutien \u00e0 l\u2019\u00e9quipe d\u2019analyse : concevoir et am\u00e9liorer de fa\u00e7on continue des services qui r\u00e8glent les probl\u00e8mes op\u00e9rationnels et guident une prise de d\u00e9cisions am\u00e9lior\u00e9e\nVous utiliserez vos grandes comp\u00e9tences pratiques en codage, dans R, Python ou Scala, pour :\n- Effectuer une analyse exploratoire des ensembles de donn\u00e9es afin d\u2019\u00e9laborer et de parfaire des hypoth\u00e8ses pr\u00e9liminaires;\n- Effectuer une analyse approfondie des donn\u00e9es pour extraire et nettoyer les donn\u00e9es de nos syst\u00e8mes source;\n- Utiliser les statistiques et les m\u00e9thodes d\u2019initiation \u00e0 l\u2019apprentissage automatique pour d\u00e9terminer les principales caract\u00e9ristiques des donn\u00e9es;\n- Concevoir des pipelines de donn\u00e9es, \u00e0 partir des syst\u00e8mes source, pour des mod\u00e8les de pr\u00e9diction;\n- \u00c9laborer des interfaces permettant aux utilisateurs fonctionnels de visualiser l\u2019information;\n- Offrir une expertise sur les concepts statistiques, math\u00e9matiques et d\u2019apprentissage automatique, en plus de chercher, de concevoir, de mettre en \u0153uvre et de valider des algorithmes d\u2019avant-garde et des mod\u00e8les statistiques de pr\u00e9diction dans le but d\u2019extraire de l\u2019information aupr\u00e8s de diverses sources de donn\u00e9es.\nConditions\nId\u00e9alement, vous poss\u00e9derez une Maitrise ou un PhD en statistique, en science informatique, en g\u00e9nie \u00e9lectrique ou dans un domaine connexe, combin\u00e9 \u00e0 plusieurs ann\u00e9es d\u2019exp\u00e9rience acquise dans le cadre de projets de sciences des donn\u00e9es, pr\u00e9f\u00e9rablement men\u00e9s \u00e0 l\u2019aide de m\u00e9thodologies flexibles.\nVous devriez \u00e9galement avoir de l\u2019exp\u00e9rience en lien avec l\u2019un ou la totalit\u00e9 des \u00e9l\u00e9ments ci-dessous :\n- Mise en \u0153uvre de projets de science des donn\u00e9es, notamment familiarit\u00e9 avec les biblioth\u00e8ques et les cadres d\u2019apprentissage automatique (p. ex. Scikit Learn, H2O, TensorFlow);\n- Aptitudes analytiques d\u00e9montr\u00e9es;\n- Capacit\u00e9 de traduire les donn\u00e9es en questions et commentaires significatifs;\n- Exp\u00e9rience en g\u00e9nie logiciel (souhaitable);\n- Exp\u00e9rience avec Cloud (p. ex. AWS ou Azure) (souhaitable);\n- Id\u00e9alement bilingue, fran\u00e7ais et anglais ;\n- Exp\u00e9rience avec les architectures massivement parall\u00e8les, notamment l\u2019utilisation de Hadoop ou\nde Spark (souhaitable).\n- Exp\u00e9rience en utilisant les logiciels / syst\u00e8mes suivants :\n* Exp\u00e9rience avec les bases de donn\u00e9es utilisant les langages informatiques: Python (Sci-kit Learn, numpy, pandas, Tensorflow, Keras), R, Matlab, SQL\n* Exp\u00e9rience dans la cr\u00e9ation et l'utilisation d'algorithmes et de statistiques avanc\u00e9s: r\u00e9gression, classification, simulation, analyse de sc\u00e9narios, mod\u00e9lisation, regroupement, arbre de d\u00e9cision, PNL, etc.\n* Connaissance et exp\u00e9rience des techniques de statistiques et d'exploration de donn\u00e9es: GLM / R\u00e9gression, Boosting, Analyse de r\u00e9seau, etc.\n* Exp\u00e9rience de visualisation / pr\u00e9sentation de donn\u00e9es pour les parties prenantes en utilisant: Matplotlib, ggplot, Seaborn, Bokeh, Plotly, D3, Tableau, etc.\n* Exp\u00e9rience d'utilisation de services Web: S3, Redshift, etc.\n* Exp\u00e9rience avec les outils de donn\u00e9es / informatiques distribu\u00e9s: Map / Reduce, Hadoop, Hive, Spark (souhaitable)\nType d'emploi : Temps Plein, Permanent\nSalaire : 100 000,00$ \u00e0 140 000,00$ /ann\u00e9e\nExp\u00e9rience:\nGLM / R\u00e9gression, Boosting, Analyse de r\u00e9seau, etc.: 1 an (Souhait\u00e9e)\nprojets de sciences de donn\u00e9es: 5 ans (Requise)\nCr\u00e9ation et l'utilisation d'algorithmes et de stat avanc\u00e9s: 1 an (Souhait\u00e9e)\nMap / Reduce, Hadoop, Hive, Spark: 1 an (Souhait\u00e9e)\nScikit Learn, H2O, TensorFlow ou \u00e9quivalent: 3 ans (Souhait\u00e9e)\nMatlab: 1 an (Souhait\u00e9e)\ng\u00e9nie logiciel: 3 ans (Souhait\u00e9e)\ntraduction des donn\u00e9es: 3 ans (Souhait\u00e9e)\nR: 1 an (Souhait\u00e9e)\nthon (Sci-kit Learn, numpy, pandas, Tensorflow, Keras): 1 an (Souhait\u00e9e)\nMatplotlib, ggplot, Seaborn, Bokeh, Plotly, D3, Tableau, etc: 1 an (Souhait\u00e9e)\nSql: 1 an (Souhait\u00e9e)\nservices Web: S3, Redshift, etc.: 1 an (Souhait\u00e9e)\nCloud (p. ex. AWS ou Azure): 3 ans (Souhait\u00e9e)\nFormation:\nMa\u00eetrise (Souhait\u00e9e)\nLieu:\nVille-Marie, Montr\u00e9al (Souhait\u00e9e)\nLangue:\nfran\u00e7ais (Souhait\u00e9e)\nanglais (Requise)" + }, + { + "link": "https://www.indeed.ca/rc/clk?cmp=ELITESOFT-GROUP&ti=Consultant+Msbi+Senior+Perm+Jusqu%E2%80%99%C3%A0+CAD&jk=f35c7173acebd095&fccid=9a63d9db66747ec7&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Consultant MSBI Senior (H/F) \u2013 Montr\u00e9al \u2013 Perm \u2013 Jusqu\u2019\u00e0 100k CAD", + "company": "Elitesoft", + "salary": "$60,000 - $100,000 a year", + "desc": "$60,000 - $100,000 a year\nCasual, Permanent\nMIEUX VAUT TROP QUE PAS ASSEZ ?\nSI VOUS FAITE PARTIE DE LA CATEGORIE QUI ADORE VOIR FILER SES JOURNEES A VITESSE GRAND V CAR DU BOULOT, Il Y EN A EN VEUX-TU EN VOILA, PLEASE FOLLOW (intermission ? Quoi, quel est ce mot ? connais pas)\nContexte du recrutement\nAujourd\u2019hui mon client, ESN sp\u00e9cialis\u00e9e BI, se voit dans l\u2019obligation de refuser des mandats de missions MSBI car l\u2019\u00e9quipe est d\u00e9j\u00e0 staff\u00e9e \u00e0 100%. On a donc vraiment besoin de vous, vos comp\u00e9tences et votre sourire, ce n\u2019est pas une blague et je ne suis pas l\u00e0 pour faire de l\u2019annonce \u00ab vivier \u00bb.\nLes objectifs\nD\u00e9velopper la Practice MSBI en recrutant des nouvelles personnes d\u2019ici fin 2018, pouvoir d\u00e9livrer c\u00f4t\u00e9 client bien s\u00fbr mais aussi faire fleurir le p\u00f4le et vous amener \u00e0 un certain niveau d\u2019expertise sur la techno.\nL\u2019\u00e9quipe\n27 personnes sur l\u2019agence de Montr\u00e9al\nOn aimerait recruter 10 nouvelles p\u00e9pites (toutes technos BI confondues) d\u2019ici fin 2018\nVos missions\nG\u00e9rer la mise en place technique de syst\u00e8me d\u00e9cisionnelle Microsoft BI chez les clients notamment tout ce qui va avoir trait \u00e0 :\nDe la conception/mod\u00e9lisation DWH & DataMart\nDe la conception/mod\u00e9lisation de cubes multidimensionnel et tabulaires\nPour la partie reporting : SSRS et Power BI sont bien s\u00fbr vos amis\nTMA\nGestion de projet\nPour les plus aguerri(e)s : mission d\u2019expertise et d\u2019audit (ponctuelles)\nAu-del\u00e0 de cela, aider au d\u00e9veloppement et \u00e0 l\u2019animation de la Practice MSBI\nQu\u2019est-ce que VOUS pouvez nous apporter ?\nMon client se positionne sur de l\u2019expertise technique donc sur une premi\u00e8re lecture, nous serons toujours ouverts \u00e0 discussion si vous ma\u00eetriser au moins deux des trois briques de la suite MSBI (SSIS, SSAS, SSRS)\nSi en bonus vous avez des connaissances et/ou exp\u00e9riences sur Azure, MDS ou Power BI \u00e7a vous laisse encore plus de chances pour l\u2019op\u00e9ration s\u00e9duction.\nQu\u2019est-ce que cette opportunit\u00e9 peut M\u2019apporter ?\nEvolution verticale possible et rapide : Manager avant 30 ans ? c\u2019est tout \u00e0 fait possible !\nEnvie de vous expatrier \u00e0 moyen termes ? Possibilit\u00e9 d\u2019\u00e9voluer sur les bureaux de New-York, Paris, Asie, Emirats.\nFaible turn-over et bonne ambiance : je vous confirme car pour avoir discut\u00e9 par le pass\u00e9 avec des candidats de chez eux, ils sont tr\u00e8s difficiles \u00e0 s\u00e9duire\nPratico-pratique\nMutuelle, TR, Remboursement transport, t\u00e9l\u00e9phone & forfait pro, Prime de cooptation, Prime Apport d\u2019affaire, S\u00e9minaire annuel\nCanada USA US Montr\u00e9al Qu\u00e9bec Azure Machine Learning Azure HD insights MSBI Microsoft BI Business Intelligence SSIS SSRS SSAS Power BI Cubes OLAP Multidimensionnel Tabulaire Etoiles Flocons Datawarehouse Datamart Reporting ETL Flux Packagings D\u00e9cisionnel Data Big Data Data Scientist Data Analyst SQL SGBDR Base de donn\u00e9es SQL Server MDX PL/SQL MySQL Agile MDS International US, Canada, Asie, Emirats.\nType d'emploi : Permanent\nSalaire : 60 000,00$ \u00e0 100 000,00$ /ann\u00e9e\nExp\u00e9rience:\nMSBI: 3 ans (Souhait\u00e9e)" + }, + { + "link": "https://www.indeed.ca/company/Sky-Systems-Inc/jobs/Database-Administrator-Developer-b3320d0fe906b72a?fccid=be1a1a91a56fe304&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "DBA Developer", + "company": "Sky Systems Inc", + "salary": NaN, + "desc": "Contract\nPosition Description\nThis position is for a data engineer role in the transactional data team. Among many other databases, our team manages the firm critical Institutional Trade Capture databases and is responsible for the OTC Derivatives Trades Internal Reporting.\nWe are a team of highly technical individuals who manage a large number of databases that include Big Data volumes.\nWe deliver multiple projects for multiple business areas in parallel.\nThe business owners and subject matter experts are globally distributed, making strong communication skills important to the position.\nThe candidate will be expected to work closely with our IT partners in analyzing and delivering on business requirements.\nDevelopment will utilize an agile methodology, which is based on scrum (time boxing, daily scrum meetings, retrospectives, etc), and XP (continuous integration, refactoring, unit testing, etc) best practices.\nCandidates must therefore be able to work collaboratively, demonstrate good ownership and be able to work well in teams.\nWork will include designing, enhancing and developing databases across different database environments.\nThe job will involve considering all aspects of the project life cycle and includes proof-of-concept evaluations, coding, designing, testing, implementing, deploying, and continued support of project releases as well as on-call Level 2 support.\nCollaboration with the Firm\u2019s engineering teams is expected.\nJob Responsibilities\nDatabase Infrastructure Engineering for stability, scalability and capacity planning.\nApplication DBA functions: plan & execute database schema changes, bottleneck analysis, outage prevention/resolution, server/database performance improvements, database maintenance, database recovery, etc.\nDatabase development (stored procedures, ETL, tools) and queries/stored procedures review and optimization.\nEnforce database security, standards & guidelines.\nRole Requirements\nBachelor\u2019s Degree Required.\nDB2 Linux version 10.5 and above (SQL, Temp tables, plan explains, MQTs, MDCs, referential integrity constraints, etc) or Sybase 15.7 and above.\nKnowledge of other databases is a plus.\nThe candidate must be familiar with some scripting language such as: Python or Perl.\nThe candidate must have strong knowledge base of relational database performance and tuning such as: proper use of indices, database statistics/reorgs, de-normalization concepts, memory management, database configurations, etc.\nModeling tool knowledge such as: Power Designer or Erwin is preferable.\nVersioning tools such as perforce and git is a plus, but not required.\nKnowledge of financial instruments would be a great benefit, but not required.\nPersonal skills: Integrity & ownership, good team player, ability to work under time and resource dependencies and constraints, ability to find simple and effective solutions, high degree of motivation to expand technical and business knowledge.\n*** WE DO NOT SPONSOR ANY RELOCATION***\nJob Type: Contract\nExperience:\nDatabase Development: 4 years (Preferred)\nDB2 Linux: 4 years (Preferred)\nPython: 4 years (Preferred)\nSybase 15.7: 4 years (Preferred)\nEducation:\nBachelor's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=32f18cdc0188106c&fccid=39d1c8076d23beb5&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Analyste de donn\u00e9es - 261597", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nAnalyste de donn\u00e9es\nDans le cadre de ses ententes avec ses diff\u00e9rents clients, Procom est actuellement \u00e0 la recherche d'un Analyste de donn\u00e9es pour une entreprise dans le domaine bancaire. Notre client est situ\u00e9 \u00e0 Montr\u00e9al.\nDescription des t\u00e2ches et responsabilit\u00e9s \u2013 Analyste de donn\u00e9es\n\u00catre responsable du d\u00e9veloppement, de l'adoption et de l'\u00e9volution constante d'une capacit\u00e9 de reporting et mener \u00e0 bien des projets ad hoc selon les besoins;\nConcevoir divers tableaux de bord en mettant l'accent sur les domaines fonctionnels suivants: comprendre les objectifs et fournir des informations et des commentaires pouvant \u00e9clairer et orienter la conception et le d\u00e9veloppement de produits, l'engagement des clients, la gestion des comptes, la prise de d\u00e9cision, etc.;\nDiriger la mise en \u0153uvre des initiatives \u00e0 l'appui de la strat\u00e9gie globale des activit\u00e9s;\nEffectuer une analyse pour am\u00e9liorer le BI afin d'informer l'\u00e9quipe de direction;\nCr\u00e9er des packages de rapports de BI et des tableaux de bord complexes et complets en utilisant une infrastructure de donn\u00e9es, des datamarts localis\u00e9s et des sources de donn\u00e9es externes;\nValider la qualit\u00e9 et l'int\u00e9grit\u00e9 des donn\u00e9es incluses dans les packages de rapports et les tableaux de bord;\nD\u00e9velopper des commentaires / id\u00e9es significatifs et perspicaces sur les packages de reporting nouveaux et existants;\nTravailler avec des partenaires commerciaux pour comprendre les objectifs commerciaux, d\u00e9velopper des rapports \u00e0 valeur ajout\u00e9e et fournir des extraits de donn\u00e9es ad hoc;\nAdopter, mettre en \u0153uvre et faire \u00e9voluer efficacement les normes d'automatisation des rapports.\nExigences du poste \u2013 Analyste de donn\u00e9es\nAu moins 4 ans d\u2019exp\u00e9rience en Analyse BI;\nExp\u00e9rience en programmation SQL;\nMa\u00eetrise avanc\u00e9e d\u2019Excel et VBA;\nBilinguisme.\nAtouts :\nSAS\nProgrammation R\nProgrammation Python\nType de poste\nContractuel 12 mois avec de fortes possibilit\u00e9s de renouvellement\nDate de d\u00e9but\nImm\u00e9diatement\nNum\u00e9ro de r\u00e9f\u00e9rence\nBH 261597\n\n____________ENGLISH VERSION___________\nData Analyst\nOn behalf of your client Procom is searching for a Data Analyst for one of our client in the bank sector. Our client is located in Montreal.\nJob Details - Data Analyst\nAccountable for the development, adoption and ongoing evolution of a best-in-class reporting and/or BI capability and may deliver on ad-hoc projects as assigned;\nDdashboards and scorecards for businesses, with focus on the following functional areas: to understand objectives and deliver insights and commentary that can inform and shape product design and development, customer engagement, account management and business decision making, etc.;\nLead the implementation of initiatives in support of overall business/function strategy;\nConduct analysis to provide enhanced BI to inform management leadership team;\nCreate complex and comprehensive BI reporting packages and dashboards utilizing data infrastructure, localized datamarts and external data sources;\nValidate the quality and integrity of the data included in the Reporting Packages and Dashboards;\nDevelop meaningful and insightful commentary/insights on new and existing reporting packages;\nWork with business partners to understand business objectives and develop value-added reporting and provide ad-hoc data extracts;\nAdopt, implement and effectively evolve report automation standards.\n\n\nMandatory Skills \u2013 Data Analyst\nBI analytics (4yrs);\nSQL programming;\nExcel and VBA proficiency;\nBilingual (Proficient in English / Conversational French).\nNice to have :\nSAS;\nR programming;\nPython programming;\nAssignment Length\n12 months Contract \u2013 Renewable\nStart date\nImmediately\n\nReference number\nBH 261597" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c275461a61689d5a&fccid=7e0d9a513baca44d&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Chef de produit (s\u00e9nior) - Senior Product Manager", + "company": "Gameloft", + "salary": NaN, + "desc": "Job Description\n\nNous sommes actuellement \u00e0 la recherche d'un(e) chef(fe) de produit s\u00e9nior qui sera responsable de d\u00e9finir la strat\u00e9gie de mon\u00e9tisation des jeux qui lui seront assign\u00e9s pour en maximiser les revenus sur l\u2019ensemble des canaux de distribution mondiaux.\nD\u00e8s le d\u00e9but de votre aventure avec nous, vous serez appel\u00e9(e) \u00e0 :\nTravailler en \u00e9troite collaboration avec l\u2019\u00e9quipe de production pour d\u00e9finir la strat\u00e9gie de mon\u00e9tisation ;\nTravailler avec les \u00e9quipes de design et de production sur les diff\u00e9rentes phases du cycle de vie du jeu pour aider \u00e0 d\u00e9finir les fonctionnalit\u00e9s qui auront un impact sur la mon\u00e9tisation ;\nIdentifier et d\u00e9finir les pisteurs, les mesures et les tableaux de bord pour mesurer les performances ;\nD\u00e9terminer les plans promotionnels li\u00e9s au contenu du jeu, \u00e0 la progression des joueurs et aux \u00e9v\u00e9nements en jeu ;\nTravailler avec l\u2019analyste de donn\u00e9es pour \u00e9valuer les strat\u00e9gies actuelles et proposer de nouvelles fa\u00e7ons d\u2019optimiser/maximiser les revenus de jeu ;\nPr\u00e9senter des mises \u00e0 jour de progression \u00e0 toutes les parties prenantes impliqu\u00e9es ;\nAnalyser la concurrence et effectuer des \u00e9valuations ;\nAssurer le mentorat des membres plus junior de l'\u00e9quipe ;\nDiriger une \u00e9quipe d'op\u00e9rations en direct (LiveOps) pour le projet (analystes de donn\u00e9es, concepteurs de l'\u00e9conomie du jeu, coordinateurs LiveOps) et la strat\u00e9gie LiveOps ;\nEncourager et superviser le d\u00e9veloppement de nouveaux processus et outils pour les besoins op\u00e9rationnels du studio de Montr\u00e9al.\n****\nWe are currently looking for a SR Product Manager, who will be responsible for outlining the monetization strategy of the games they are assigned to in order to maximize revenues through all distribution channels at a worldwide level.\nFrom the beginning of your adventure with us, you will be tasked with:\nWorking closely with the production team to define the monetization strategy\nWorking with the design and production team in different phases of the lifecycle of the game to help define the features that have an impact on monetization\nIdentifying and defining trackers, metrics and dashboards to measure performance\nDetermining promotional plans related to game content, player progress and in-game events\nWorking with the data analyst to evaluate current strategies and propose new ways to optimize/maximize game revenue\nPresent progress updates to all stakeholders involved\nAnalyzing competitors and benchmarking\nMentor junior members of the team\nLead a live ops team for the project (Data analysts, Game economy designers, live ops coordinators) and live ops strategy\nDrive development of new processes and tools for the Montreal studio's operational needs\n\nQualifications\n\nExp\u00e9rience et comp\u00e9tences recherch\u00e9es :\nBaccalaur\u00e9at en marketing, en \u00e9conomie ou un domaine connexe (une ma\u00eetrise est un atout) ;\n+8 ann\u00e9es d\u2019exp\u00e9rience ou plus dans le domaine des jeux vid\u00e9o, de l\u2019informatique d\u00e9cisionnelle ou du commerce \u00e9lectronique ;\n+5 ann\u00e9es d\u2019exp\u00e9rience ou plus en gestion de jeux free-to-play en ligne et/ou mobile et centr\u00e9e sur la mon\u00e9tisation ;\nExp\u00e9rience reconnue dans l\u2019optimisation des mesures et de revenus sur un produit ou un service actif ;\nUne v\u00e9ritable passion pour le march\u00e9 free-to-play mobile. Le candidat a jou\u00e9 \u00e0 la plupart des jeux ayant g\u00e9n\u00e9r\u00e9 des revenus importants et il est un joueur exp\u00e9riment\u00e9 sur au moins l'un d\u2019entre eux ;\nBonne connaissance, des statistiques, excellentes comp\u00e9tences en mod\u00e9lisation analytique et de donn\u00e9es (Excel) ;\nConnaissance de base des langages de programmation, un atout (SQL, Python, etc.) ;\nPeut faire l\u2019analyse d\u2019un jeu mobile sur commande en se concentrant sur les meilleures pratiques de l'industrie ;\nCapacit\u00e9 \u00e0 prendre des d\u00e9cisions dans un environnement complexe ;\nCapacit\u00e9 reconnue \u00e0 transformer les besoins des clients en \u00e9l\u00e9ments de jeu et \u00e0 les prioriser dans la strat\u00e9gie du produit ;\nApte \u00e0 communiquer et soutenir des id\u00e9es complexes de fa\u00e7on claire et pr\u00e9cise ;\nApte \u00e0 planifier, organiser et terminer plusieurs projets simultan\u00e9ment sous pression et dans des d\u00e9lais tr\u00e8s serr\u00e9s ;\nPassionn\u00e9 \u00e0 l\u2019id\u00e9e de rejoindre une structure dynamique et internationale pour d\u00e9couvrir le monde en pleine croissance du jeu en ligne.\nEt par-dessus tout, de la motivation et une passion pour son m\u00e9tier.\n****\nExperience and qualifications:\nBachelor\u2019s degree in Marketing, Economics or a related field (master\u2019s degree an asset)\n8+ years\u2019 experience in video games, business intelligence or e-commerce\n5+ years\u2019 experience managing free-to-play online and/or mobile-game products with a focus on monetization\nTrue passion for the mobile free-to-play market, has played most relevant grossing games and is an advanced player on at least 1 of them\nProven experience optimizing metrics and revenue on a live product or a service\nGood understanding of statistics, strong analytical and data modeling (Excel) skills\nBasic knowledge of programming languages is an asset (SQL, Python, etc.)\nCan do a mobile-game teardown on the spot, focusing on industry best practices\nCapable of making decisions in a complex environment\nProven ability to turn customer needs into features and prioritize them in a product roadmap\nAble to communicate and support complex ideas clearly and concisely\nAble to plan, organize and complete multiple projects simultaneously, under pressure and within tight deadlines\nPassionate about joining a dynamic and international structure to discover the fast-growing world of online games\nAnd above all, motivation and a passion for your work!\n\nAdditional Information\n\nPourquoi joindre l\u2019univers de Gameloft ?\nParce que vous d\u00e9sirez participer au d\u00e9veloppement d\u2019un secteur dynamique, stimulant et captivant!\nParce que vous voulez vivre une exp\u00e9rience exceptionnelle, au sein d'une entreprise en constante \u00e9volution!\nParce que vous voulez travailler avec des \u00e9quipes compos\u00e9es de gens motiv\u00e9s et passionn\u00e9s par leur m\u00e9tier!\nParce que vous voulez travailler avec des coll\u00e8gues talentueux et pionniers dans l\u2019industrie!\nParce que l\u2019id\u00e9e d\u2019ouvrir vos horizons \u00e0 une culture internationale et au partage de connaissances avec des coll\u00e8gues \u00e0 l\u2019autre bout du monde vous enchante!\nParce que vous cherchez \u00e0 travailler avec des partenaires et des clients de renom tels qu'Apple, Google, Nintendo, Disney, Marvel et bien d'autres!\nParce que vous cherchez \u00e0 repousser les limites de la technologie ! R\u00e9ussir \u00e0 concevoir un jeu de qualit\u00e9 console sur un t\u00e9l\u00e9phone portable!\nParce que vous recherchez des conditions de travail et des avantages comp\u00e9titifs, le tout dans un espace de travail moderne et convivial!\nOu tout simplement parce que vous recherchez un endroit o\u00f9 il y fait bon travailler!\nSi l\u2019une ou plusieurs de ces raisons vous interpellent, n\u2019h\u00e9sitez pas \u00e0 postuler d\u00e8s maintenant!\n****\nWhy Join the World of Gameloft?\nBecause you want to take part in the rise of a dynamic, stimulating, and captivating sector!\nBecause you want to be part of an exceptional experience, within a company that is constantly growing!\nBecause you want to work within a team made up of people motivated by, and passionate about, their field!\nBecause you want to work with talented people who are industry pioneers!\nBecause you love the idea of expanding your horizons within a cosmopolitan corporate culture and sharing your know-how with colleagues at the other end of the Earth!\nBecause you want to work with renowned partners and clients such as Apple, Google, Nintendo, Disney, Marvel, and many others!\nBecause you want to push technology to its limits \u2013 to succeed at creating console-quality games for mobile phones!\nBecause you\u2019re in search of great working conditions and benefits, all within a modern, friendly space!\nOr just because you\u2019re looking for a great place to work!\nIf one or more of these reasons speak to you, don\u2019t hesitate to apply now!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a2ec9a0ded4837f8&fccid=d711e85163f98421&vjs=3", + "location": "Montr\u00e9al,QC", + "title": "Software Developer - Cloud Enabled Services", + "company": "Veritaaq", + "salary": NaN, + "desc": "Contract\nAnalyste de donn\u00e9es de simulation pour entra\u00eenement objectif\n\n\n(English will follow)\n\nEn tant que membre d'une \u00e9quipe dynamique de d\u00e9veloppeurs de logiciels travaillant sur l'une des nombreuses initiatives de R&D de notre client, vous participerez \u00e0 la conception, au d\u00e9veloppement et au support des composants de notre infrastructure Cloud.\nVous devrez travailler en \u00e9troite collaboration avec divers groupes de pilotes et d\u2019expert d\u2019entrainements dans le cadre des initiatives cloud de notre client.\nParticiper au d\u00e9veloppement de crit\u00e8res et r\u00e8gles d\u2019\u00e9valuation de qualit\u00e9 de man\u0153uvres ou de missions en raffinant en session de simulation les crit\u00e8res de ces r\u00e8gles, impl\u00e9mentant les r\u00e8gles et la param\u00e9trisation de ces derni\u00e8res dans un moteur d\u2019analyse\nParticiper aux tests et validation internes de la solution en cr\u00e9ant des machines d\u2019essais virtuels\nParticiper au d\u00e9ploiement de la solution ainsi qu\u2019au support apr\u00e8s-vente (analyse de d\u00e9ficience)\nSupporter nos clients interne et externe\nTravailler dans un environnement agile\n\n\nQualifications:\nCapacit\u00e9 \u00e0 s\u2019adapter au processus organisationnel\nD\u00e9montre une forte appartenance et une flexibilit\u00e9 face aux t\u00e2ches et projets assign\u00e9s\nD\u00e9montre une forte habilet\u00e9 \u00e0 travailler et prendre des d\u00e9cisions de fa\u00e7on autonome\nCapacit\u00e9 \u00e0 s\u2019adapter rapidement aux changements technologiques et d'\u00e9voluer dans un environnement de recherche et d\u00e9veloppement\nApproche ax\u00e9e sur les r\u00e9sultats, solides comp\u00e9tences en planification et en organisation\nCapacit\u00e9 \u00e0 diagnostiquer les probl\u00e8mes\nDoit avoir de l'Initiative, du dynamisme, et de l'esprit d\u2019\u00e9quipe\nExp\u00e9rience minimum de 3-5 ans en d\u00e9veloppement logiciel ou exp\u00e9rience connexe\nExp\u00e9rience minimum de 3-5 ans en simulation de syst\u00e8mes avions\nConnaissance des langages de programmation C, C#, C++ un atout\nConnaissance des outils de d\u00e9veloppement Microsoft pour la plate-forme Windows (Visual Studio 2012 et plus).\nConnaissance des syst\u00e8mes avions et diff\u00e9rentes man\u0153uvres de pilotage utilis\u00e9 en entrainement pour un avion et/ou h\u00e9licopt\u00e8re\nConnaissance de Jira\nExcellentes aptitudes \u00e0 la communication oral et \u00e9crite\nBilinguisme (Fran\u00e7ais et Anglais)\nDisposition \u00e0 se d\u00e9placer chez les clients pour le support\nPoss\u00e8de un Baccalaur\u00e9at en G\u00e9nie Logiciel ou dans un domaine d'expertise similaire (Informatique, \u00c9lectricit\u00e9, etc)\n\n\nVeuillez faire parvenir votre CV \u00e0 shaneb@experis-veritaaq.ca\n\n********************************************\n\n\nObjective training simulation data analyst\n\nAs a member of a dynamic software developers team working on one of our clients's many R&D initiatives, you will participate in design, development and support of Cloud Enabled Services infrastructure components\nYou will have to work closely with various groups of pilots and training experts in the context of our client''s Cloud Enabled Services initiatives\nYou will support criteria and rules development aiming at assessing pilot manoeuvering qualities or mission completeness by tuning the rules in simulated sessions, implement rules and associated parametrization into a cloud based software engine\nParticipate in the internal Testing/validating of the solution by creating testing virtual machines\nParticipate in the deployment of the solution as well as the post-delivery support (analyzing customer issues)\nYou will provide support to internal and external customers\nYou will be part of a team working in a \u201cAgile\u201d methodologies context\n\n\nQualifications:\nAbility to work using organizational processes\nDemonstrate flexibility and strong project and assigned tasks ownership\nDemonstrate an ability to work and make decisions unsupervised\nAbility to adapt quickly to changes in technology and to operate in an R&D environment\nResult-oriented, strong planning and organizational skill\nAbility to troubleshoot problems\nMust be self-motivated, dynamic and a team player\nMinimum of 3-5 years\u2019 of relevant experience in software development\nMinimum of 3-5 years\u2019 of relevant experience in aircraft system modulization\nKnowledge of C, C#, C++ programming languages an asset\nKnowledge of Microsoft development tools for Windows platform (Visual Studio 2012 and higher)\nKnowledge of aircraft systems and the different airplane/helicopter pilot manoeuvers used during training\nKnowledge of Jira\nExcellent verbal and written communication skills\nBilingualism (French and English)\nAvailability to travel occasionally to various locations for on-site support\nBachelor\u2019s degree in Electrical, Software or Computer Engineering or in a similar area of expertise\n\nPlease send your CV to shaneb@experis-veritaaq.ca\nWe thank you for your application, however, only those candidates selected for an interview will be contacted.\nNous vous remercions d\u2019avoir pos\u00e9 votre candidature et d\u00e9sirons pr\u00e9ciser que nous ne communiquerons qu\u2019avec les candidats s\u00e9lectionn\u00e9s pour une entrevue.\nAbout Experis-Veritaaq\nExperis-Veritaaq is a leading IT consulting firm helping organizations achieve their business goals by leveraging information technology. With more than 30 years of experience, Experis-Veritaaq has a proven track record of building trusted relationships while providing the highest level of IT consulting.\nHeadquartered in Ottawa, Ontario, with offices in Toronto, Vancouver, Montreal, and Calgary, our team includes more than 750 highly specialized consultants. Experis-Veritaaq works with top clients in the telecommunications, financial, and oil and gas sectors and also serves all levels of government.\nTo learn more about us, visit our website at www.experis-veritaaq.ca.\n\u00c0 propos de Experis-Veritaaq\nExperis-Veritaaq est un important cabinet-conseil en technologies de l'information, v\u00e9ritable levier qui aide les organisations \u00e0 atteindre leurs objectifs commerciaux. Fort d'une exp\u00e9rience de plus de 30 ans, Experis-Veritaaq a fait ses preuves en tissant des liens solides et en fournissant des conseils de grande qualit\u00e9 dans le domaine des technologies de l'information.\nExperis-Veritaaq a son si\u00e8ge social \u00e0 Ottawa, en Ontario, et des bureaux \u00e0 Toronto, Vancouver, Montr\u00e9al et Calgary. Son \u00e9quipe compte plus de 750 experts. Experis-Veritaaq sert de gros clients en t\u00e9l\u00e9communications, finance et secteurs gazier et p\u00e9trolier, mais \u00e9galement plusieurs \u00e9chelons de gouvernement.\nPour en savoir plus, consultez notre site Web www.experis-veritaaq.ca." + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0C6nKFHSiMBxFBp_E9a0ZdPCM_qsZkYnNiPA1S70PNI9YvP2Tm5CUfOHvXmGt72fY3efShd9VmAf7mA5v5jL41oa37a_VR2m0Ca0CYEzAVeeh4SPlCHxPNlt9kIZj_Uep5Nma9DObXAQJqqVqg2YxWrYCgm-gNIzprjP9oKqPr4UvA2VKDO_xaq6IqVPbvP5FZBbKuClKZbnqGD0y7pY0Xxz98SFEPU56dvu-TSL7ZOvexVSUZTv8U-V4rk6C46bnxl5JihYyrnkNkmn8xABVREVP2y7tedie7FYpGzobWtoE4-g-RphxPw0RdirPcEaIR2COAgXDYphWtVAW13XHZVc8EkhqI9UF0g9SxiKAbnnrh-sxrGhuj-PvlaBOXe0NaSboJ-Qqif6sA2hJ6Q-vBPFbWSvmIE9NkWgeCwg1VaJQHNXT-gciV6UWQPfqay5J1ygszt2WGh97WKdZ3sgYTEM0Y7TEeZY83ZCMyOQev0n-WtyLiIZLCBAedslbw_9f8QL2RGO7DyByeUl2DYFEIz0sz_ddKqtFO2LEWxhDxhs-cZMsXEnXQs&vjs=3&p=5&sk=&fvj=0", + "location": "Montr\u00e9al,QC", + "title": "Data engineer / Ing\u00e9nieur de donn\u00e9es", + "company": "IVADO Labs", + "salary": NaN, + "desc": "Job Description\n\nThe Data Engineer is responsible for the data lifecycle, from collection to retention. Data completeness and accuracy is a constant preoccupation for the Data Engineer, and as such he/she oversees the design data warehouse, as well as the ingestion and integration of data. The ideal candidate has solid knowledge of data, database design, programming, data collection, data warehousing, and data cleansing. The data Engineer will work hand in hand with the Data Scientists and the product delivery team.\nResponsibilities\nManipulate and prepare data, including supporting the feature engineering exercise, for consumption by machine learning and optimization models.\nArchitect and implement highly scalable data management systems that ingest and integrate large volumes of data from different sources\nDesign, build, and productize complex data pipelines, including ETL/ELT jobs, to process disparate, dirty data sources and form a high integrity, high quality, clean data asset\nMonitor and track data quality and data flow dynamics\nImprove data foundational procedures, guidelines, and standards\nIntegrate new data management technologies and software engineering tools into existing structures\nCreate custom software components and analytics applications\nCollaborate with other Engineers, Data Scientists and stakeholders, taking learning and leadership opportunities as they arise\nEnsure client\u2019s needs are addressed\n\nL\u2019Ing\u00e9nieur de donn\u00e9es est responsable du cycle de vie des donn\u00e9es, de la collection \u00e0 la r\u00e9tention. L\u2019int\u00e9gralit\u00e9 et la pr\u00e9cision des donn\u00e9es est une pr\u00e9occupation constante pour l\u2019Ing\u00e9nieur de donn\u00e9es, et de ce fait il/elle supervise l'entrep\u00f4t de donn\u00e9es design, ainsi que l\u2019ingestion et l\u2019int\u00e9gration des donn\u00e9es. Le candidat id\u00e9al poss\u00e8de de solides connaissances en mati\u00e8re de donn\u00e9es, de la conception des bases de donn\u00e9es, de programmation, de la collecte de donn\u00e9es, de l\u2019entreposage de donn\u00e9es et du nettoyage de donn\u00e9es. L\u2019Ing\u00e9nieur de donn\u00e9es collabore main dans la main avec le Scientifique de donn\u00e9es et l\u2019\u00e9quipe de livraison de produits.\n\nRESPONSABILIT\u00c9S\n\nConcevoir, construire, installer et maintenir des syst\u00e8mes de gestion des donn\u00e9es \u00e9volutifs qui ing\u00e8rent et int\u00e8grent un gros volume de donn\u00e9es sensibles et temporelles provenant de diff\u00e9rentes sources\nConcevoir, b\u00e2tir et mesurer des t\u00e2ches ETC/ELT complexes afin de traiter des sources de donn\u00e9es disparates ou douteuses et former des donn\u00e9es exactes, int\u00e8gres et de haute qualit\u00e9\nSurveiller la qualit\u00e9 et le flux des donn\u00e9es\nAm\u00e9liorer les proc\u00e9dures, directives et normes fondamentales de donn\u00e9es\nInt\u00e9grer aux structures existantes de nouvelles technologies de gestion des donn\u00e9es et des outils logiciels d\u2019ing\u00e9nierie\nCr\u00e9er des composants de logiciel personnalis\u00e9s et des applications d\u2019analyse\nCollaborer avec d\u2019autres Ing\u00e9nieurs, Scientifiques des donn\u00e9es et parties prenantes, saisissant les opportunit\u00e9s d\u2019apprentissage et de leadership lorsqu\u2019elles se pr\u00e9sentent\nS\u2019assure que les besoins et attentes du client sont rencontr\u00e9es.\n\nQualifications\n\nRequirements\nBachelor's degree in Computer Science, Engineering, or related field\nMaster\u2019s degree an asset\nA minimum of 3 years industry experience working with data, coding and scripting (Python/Java/Scala/SQL/JS/Bash), design and testing\nA minimum of 3 years experience developing large data systems\nA minimum of 3 years experience in data modeling of NoSQL and SQL databases\nA minimum of 3 years experience with at least one the following: Hadoop ecosystem, Spark, Cassandra, DynamoDB, Redis, or other large-scale data management platform (preferably cloud)\nExperience with AWS/GCP/Azure suite such as: BigQuery, BigTable, Cosmo DB, S3, Redshift, EMR, Glue/Athena, an asset\nExperience with Kafka, Kinesis, Flume, HDFS, Hive, an asset\nExperience with usage and deployment of machine learning tools such as scikit-learn, MLlib, TensorFlow, an asset\nSolid knowledge of CS fundamentals in algorithms and data structures\nWillingness to participate in all levels of project work when necessary\nExcellent English written and verbal communication skills, French an asset Skills\nAbility to handle complex long-term focused projects involving multiple disciplines and lines of business\nAbility to work independently and with management on highly visible, divisional and cross-divisional complex projects\nCreative thinker with excellent problem solving abilities\nAbility to thrive in a fast-paced, performance-driven environment\nTeam player with solid interpersonal skills\nCustomer oriented focus\n\nEXIGENCES\n\nBaccalaur\u00e9at en Informatique, Ing\u00e9nierie, ou un domaine connexe\nMa\u00eetrise un atout\nUn minimum de 3 ann\u00e9es d\u2019exp\u00e9rience dans un r\u00f4le traitant les donn\u00e9es, le codage, le scriptage (Python/SQL/CQL/AWS/JS/Bash), le design et les essais\n\u2022 Un minimum de 3 ann\u00e9es d\u2019exp\u00e9rience en d\u00e9veloppement et administration de syst\u00e8mes de donn\u00e9es importants \u2022 Un minimum de 3 ann\u00e9es d\u2019exp\u00e9rience en mod\u00e9lisation des donn\u00e9es et administration de bases de donn\u00e9es NoSQL et SQL\nUn minimum de 3 ann\u00e9es d\u2019exp\u00e9rience avec au moins deux des fonctions suivantes : Hadoop ecosystem, Spark\nExp\u00e9rience avec la suite AWS (S3, Redshift, EMR, Glue/Athena) un atout\nExp\u00e9rience avec la suite GCP (GCS, BigQuery) un atout\nExp\u00e9rience avec Kafka, Kinesis, Flume, HDFS, Hive,un atout\nExp\u00e9rience avec l\u2019utilisation et le d\u00e9ploiement des outils d\u2019apprentissage machine tels que scikit-learn, MLlib, TensorFlow, un atout\nSolide connaissance des essentiels informatiques en termes d\u2019algorithmes et de structures de donn\u00e9es\nVolont\u00e9 de participer \u00e0 tous les niveaux des projets au besoin\nMa\u00eetrise de l\u2019anglais tant \u00e0 l\u2019oral qu'\u00e0 l\u2019\u00e9crit, fran\u00e7ais un atout\n\nCOMP\u00c9TENCES\n\nCapacit\u00e9 de g\u00e9rer des projets complexes \u00e0 long terme impliquant de multiples disciplines et lignes d\u2019affaires\nCapacit\u00e9 \u00e0 travailler de fa\u00e7on ind\u00e9pendante et avec la direction sur des projets transverses complexes et \u00e0 grande visibilit\u00e9\nEsprit cr\u00e9atif et excellentes aptitudes \u00e0 r\u00e9soudre des probl\u00e8mes\nHabilet\u00e9 \u00e0 travailler dans un environnement orient\u00e9 sur la performance et au rythme rapide\nEsprit d\u2019\u00e9quipe et fortes comp\u00e9tences relationnelles\nOrient\u00e9 client\n\n\nAdditional Information\n\nnull" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmXMZa8woolaJGrd-8Gzwec7xvNP0SvOLMmMCvsM5206kpwiZOLYC5MDEoMLZuOdeojoWmROO4I72ZjyLLeVtzl0E5umqRQ5WeVDkoIcogy3p4tHfWJZgJZqml_JX6Nde-smJJniZAt_8iHCTL-NTZXGbIe8-JfJTmvmmU0OGBcBJYjPVZMliCfaFFkP7vL4VxCiYgTw4X8ahhwB9h7X5bo5LrrPp01bA1nHzsdkHrmWML05E4dcf51Pji-FbtlAs6NJTKKIH4JN_GmNDc1eUdcPyax3nSsmnGQUKE84CiHTuFWnxZzCh9mArkPJAGp1ue07x46bb3afnkFzhk6Y5mFKgeYmmZ9sLtPUd4jP0hgvcub7FkImhejy8ZCr3TQ15tnupwgjgqwqXjcLWQYPxRoTakTeoMhXzZ8L6QCbVyVqL3fqwSK7-jsZB-NCgd7_wGg=&vjs=3&p=6&sk=&fvj=1", + "location": "Montr\u00e9al,QC", + "title": "Data Scientist", + "company": "SPORTLOGiQ", + "salary": NaN, + "desc": "SPORTLOGiQ is the leading provider of advanced analytics data for professional sports teams and broadcast media. As a Data Scientist, you will be a part of our highly talented research team, building our next generation advanced sport analytics platform. To be successful in this role, you must be a fast learner and have the ability to thrive in a dynamic environment; combining conceptual and applied research, entrepreneurship, systems building and collaborative work. You will work together with similarly-minded individuals on a unique development team where your skills and expertise will be put to the test! This is a once-in-a-lifetime opportunity to help shape the future of sport analysis, coaching and media storytelling.\nResponsibilities:\nOur ideal candidate would have strong experience in developing novel statistical modeling techniques and applying them to solve real-world problems. The selected candidate will be part of the sport analytics research team, and will be in charge of the development of novel descriptive and predictive models for sport games data.\nRequired Skills:\nGraduate degree (PhD preferred) with research experience in applied statistical modeling\nSolid skills in C/C++, Python, R, or Julia\nAbility to develop novel metrics and models on large, complex data\nDeep understanding of statistical theory and modeling\nStrong working knowledge of data science best practices\nDesired Skills & Experience:\nResearch experience and publications in relevant fields in top-tier conferences and journals\nUp-to-date knowledge and understanding of recent advances in statistics and machine learning, particularly sports analytics and spatio-temporal modeling\nResearch experience in time series analysis, spatial modeling, and methods for big data\nPractical experience with Stan, INLA, Keras, or related frameworks\nWhat We Offer:\nCompetitive salary\nFlexible work schedule\nBonus structure and employees stock options\nComprehensive benefits program\nA cooperative and fun work environment\nFreedom to work on your own projects\nJob Type: Full-time\nEducation:\nDoctoral Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DekRdUkI2P0Vx7QKQSGKmgwjXZYYsACC-ks-GIUm7I3m50AGNKSrTyczxWAjEcC8Hl_1zTPmov7kczfcoNDzFlSuTIQUhC52Ay9TIV9reE1-1iWe6F7cYipK9YR_LoFKUPzfFLUfAE2Mh-kuLL_97_QcYNDemPCzanXDNVa_jXZetUr1pdnh4F2HjsiBAkgh7PBxXuOLdU64GqovqOuLo0tlZd0fxQ9QRPfqRuVQKCDH8zdDJQEh6ac2sTjbDPAhGiCPZRar9ge2pC4UVkKX5i7Dnpb-YTPc85pTtTCeYjYvrUmAZWpSh2azZ5upcOOzk2fEX3iM0hPUfMHkQ9LqfvZO-r7Jj4142CJ1V1mwVDEJ9ry5i1yCMBuQZ8fao4tihsatAaIVYsLlggqsULLkdc8t0ZYbDk7Z19MOCF4EWgrk8d73zsVw9PCCAwN2pyqI1g33e4ro0hhQ==&vjs=3&p=1&sk=&fvj=0", + "location": "Ottawa,ON", + "title": "Data Analyst - SAS EG/EM Developer", + "company": "Emerion", + "salary": NaN, + "desc": "EMERION (Cofomo Group) has a contract opportunity for a Data Analyst - SAS EG/EM Developer.\n\nWork Location: Ottawa East\n\nContract length: 3 months with high probability of extension\n\nClearance Requirement: Enhanced Reliability\n\nTo qualify, you must meet the following requirements:\nDevelop analytics-based solutions that produce quantitative and qualitative business insights.\nWork with partners as necessary to integrate systems and data quickly and effectively, regardless of technical challenges or business environments.\nMust be proficient in SAS EG/EM\nIf you are interested, please apply by sending a copy of your resume quoting Job # 3496 to talent@emerion.ca" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BsKQI0TTiZKtRv_VHghD1HBRMRtHYRjmEe5OwbA0REBEnOTPkgo6xmW9LNwNtLFg1gG6tn4eenGeX53GtYpXBc0YDcruZlkESuxQ5xMRrfQKh1UGCToCaTLBc8ni4eBL3Jqi9Zkam2yxkw3kH1quXanMHySbKJ_Z0lguLpn9oRvH4M880NlQNLwbcmHMHdvQA9AVLW42Y19FLPLwW37Ave0Xmc-Oq-w4kyzrbcrwMoyq1jiIu7CvicZkOKMYjrR_1STAXqnz96OfQGm29hJbmibOXGjEITLMcWMmoNhE_9ftnaxGXXW2hicCa5ArXdb-k3pknyOX-BpvrIVI5V8lG9nw7ulU1Jm5ts4MEdJjbIB2KqtkZ89UfLDZpVmIaesG7eTuGWtVYlMMtZ_5WN9a6X5H3BliJmJZMBecPFMnjYHGQo5APV4wmPn9avOVZFBU-iwA4NTg0VDnIQNi2HAXrZQdK-mTzx1veYAQmyvq8CI5we76Me8MJ3X-NyA8JHBeceuE0luYs7HlNaCgm8BBgE6y6ZhcSgGyeyNpQ39XU1q5FnBbyix55V0YRhQbdvraQXHOe3KRPDGEVWAcWqv9TGMPgPZhmzv23sQY4q-NIFxHjr4rh0U1K00MMmCXQnu5QSZ3C9hCEsXq1gwxwvKl8cX79G0uvAfU1qg5EV6iHGIZcgRIIzdooWAy57BGNpx9PFCYhKhC-rp20dv7TS1Xmf&vjs=3&p=2&sk=&fvj=0", + "location": "Ottawa,ON", + "title": "Big Data / Hadoop Specialist", + "company": "Modis Canada", + "salary": NaN, + "desc": "Temporary, Contract\nBig Data / Hadoop Jobs, Ottawa, ON\n\nModis has ongoing requirements for various Big Data / Hadoop roles within the Ottawa area.\n\nSome positions include:\nSoftware Developer\nBig Data Engineer\nData Analyst\nData Solution Architect\nDatabase Administrator\nThe successful candidate must have experience working in a Big Data environment, particularly with Hadoop.\n\nA federal government clearance would be considered as an asset.\n\nInterested candidates are invited to submit an online application.\n\nModis would like to thank all candidates for submitting to this job opportunity, however, only those with the above qualifications clearly identified in their resumes will be contacted for further instruction and submission to the client.\n\nWe\u2019re at the center of exceptional IT connections. Every day, Modis connects premier IT professionals to great opportunities at leading companies. Put our connections to work for you!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=141ac4dc66dc73df&fccid=f85ce63d426297ea&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst", + "company": "The Ottawa Hospital", + "salary": "$34.45 an hour", + "desc": "$34.45 an hour\nTemporary position until approximately March 31, 2021.\n\n\n\nRotation/Shifts\n\n\n\nDays, 8 hour shifts.\n\n\nBasic Requirements\n\n\n\nBachelor Degree in health-related discipline, computer science, statistics or a recognized equivalent;\nOne (1) to two (2) years practical and related experience;\nProficiency in MSOffice applications, specifically Excel, Word and MS Access;\nKnowledge of various database software applications, computer programming languages, data mining and information management systems;\nExperience with healthcare data collection, statistical analysis and graphical presentation:\nExcellent/demonstrated verbal and written communication and interpersonal skills are required;\nSound organizational and management skills;\nThe ability to exercise judgment, tact, diplomacy and strict confidentiality is mandatory;\nStrong critical thinking, problem solving and attentiveness to detail required;\nAnalytical skills; ability to multi task;\nDemonstrated ability to communicate effectively with a variety of groups;\nThe ability to generalize and conceptualize ideas and information and to utilize and adapt technical/administrative process on the basis of a broad understanding of principles, practices and procedures;\nThe ability to prioritize work;\nAbility to maintain a high level of concentration;\nAbility to meet deadlines;\nAbility to function productively under varying levels of stress;\nAbility to work well independently and as part of a multidisciplinary team.\n\n\n\nPreferred Qualifications\n\n\n\nMaster's degree;\nExperience in Blood and Marrow Transplantation or related field;\nProficiency in English and French \u2013 oral expression (advanced level) and comprehension (advanced level).\n\n\n\nHow to Apply\n\n\n\nIf you are passionate about what you do, motivated by improving the health of the community, excited by leading-edge medical technology, and as committed to excellence, quality and patient safety as we are, we would like to hear from you. Please submit an on-line application for the position you are interested in. We thank all those who apply but only those selected for further consideration will be contacted.\nThe Ottawa Hospital is an equal opportunity employer. Upon request, accommodations due to a disability are available throughout the selection process." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=f3ed7734c2992f98&fccid=cc98ca8f47b153b5&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst", + "company": "Royal College of Physicians and Surgeons of Canada", + "salary": NaN, + "desc": "As a national, non-profit organization, the Royal College speaks for more than 50,000 medical and surgical specialists and\nresident affiliates. The mission of the Royal College is to serve patients, diverse populations and our Fellows by setting the\nstandards in specialty medical education and lifelong learning, and by advancing professional practice and health care. Located\nin Ottawa, the Royal College offers a stimulating and professional work environment.\n\nData Analyst\n\nAre you passionate about numbers, facts and databases? Does the idea of collecting, analyzing and synthesizing\ndata and insights, putting the information into an engaging story/dashboard/report and sharing those findings to a\ntargeted audience interest you? If yes, we have an exciting opportunity for you!\n\nPosition Profile\nReporting to the Manager, Maintenance of Certification (MOC) Program you will be responsible for performing\nquantitative research activities such as collecting, analyzing and reporting data. You will also collaborate with MOC\nteam to write reports, edit and proofread documents, and maintain correspondence that contributes to the success\nof overall Continuing Professional Development (CPD) data reporting.\n\nYou will be instrumental in contributing to the quality and accuracy of MOC/CPD data sources (program data) in\ncollaboration with the System Analyst, with an emphasis on the \u2018single source of truth\u2019 database. You will update\ndata based on operational activities; conduct quality assurance procedures; coordinate the creation and\nmaintenance of the team\u2019s Standard Operating Procedures material; alert MOC/CPD leadership to, and provide\nrecommendations for addressing, data quality issues.\n\nKey elements for success: \uf0b7\nUndergraduate degree in statistics, mathematics or equivalent education/experience \uf0b7\nThree to five years of related experience \uf0b7\nAdvanced database skills and strong analytical skills, with conceptual knowledge of statistical methodology\ncoupled with expertise in the MSOffice \uf0b7\nExcellent organizational and time management skills to coordinate multiple priorities and meet deadlines while\nmaintaining attention to detail \uf0b7\nExcellent written communications skills including writing original content that requires analysis, research and\ncritical thinking into subject matters; producing final products that will be considered to assist in further decision-\nmaking, or consumed as a knowledge piece \uf0b7\nAbility to make oral presentations and present findings in an effective manner \uf0b7\nAbility to exercise a high level of discretion and judgement when dealing with confidential data/issues/situations\n\nrd\nTo apply, please forward your r\u00e9sum\u00e9, covering letter and salary expectations by October 23 , 2018 to\ncareers@royalcollege.ca. To ensure the hiring committee reviews your application, quote posting JD652, last name,\nfirst name in the email subject line.\n\nInterviews for the selected candidates: first weeks of November 2018.\n\nWe sincerely thank all applicants for their interest; however, will only contact those under consideration." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=6db6b59503687d95&fccid=a460d67ac68cef9c&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst", + "company": "Vestrum Health", + "salary": NaN, + "desc": "Our Client Services & Analytics team is growing! We\u2019re hiring a Data Analyst to support an expanding line of business. The Client Services & Analytics team is a centre of excellence made up of multi-disciplinary IT & analytics professionals responsible for delivering services to both our Healthcare Professional and Pharma / Medical Devices clients. The main purpose of this position is to provide a range of custom and standard analytical services, transforming clinical data into real-world insights. This role works within an agile and highly collaborative environment in order to provide fast, flexible and highly responsive service to meet the dynamic needs of our clients. This position will be the face of Vestrum Health in various capacities, and as such will promote Vestrum Health\u2019s culture of high quality and timely execution.\n\nWe are an entrepreneurial, fast-paced and fun team working to develop new services and enhance our existing ones. To achieve this goal, we are looking for talented and passionate individuals who want to solve challenging problems through data and be able to communicate a large amount of complex information in an easy to understand, yet simple to comprehend manner.\n\nYou will be working with various stakeholders to understand their data and analytical requirements. You will also rely on a creative mind and be able to think outside of the box. The ability to communicate and present to various levels within the business and to external partners is of utmost importance.\n\nSuccessful candidates will be comfortable working in a driven, entrepreneurial, and highly collaborative work environment.\n\nWe hope you are passionate about\u2026\n\nTechnology \u2013 strong knowledge of databases and intermediate to advanced SQL expertise\nProblem solving \u2013 loves data, data analysis, testing & learning and has a high degree of analytical curiosity\nHaving fun while being the best \u2013 we work hard but play harder\n\nDUTIES & RESPONSIBILITIES:\nExplore data and develop SQL queries to efficiently retrieve information from data sources to support various reporting needs;\nConduct code and data design reviews within the team;\nDesign, develop, support and generate BI dashboards, visualizations, and/or advanced analytics reports, as well as improve the delivery of existing reports using SQL queries and database tools such as Excel;\nDeliver monthly/quarterly internal data reports, as required;\nTake responsibility and ownership with minimal supervision of assigned projects, and ensure timely completion of all stages within the project lifecycle which ranges from proposal creation to final QA;\nEngage with key stakeholders via client meetings to ensure that client reporting needs are fulfilled;\nCo-ordinate with team members ranging from high-level management to technical staff to ensure a seamless experience for our clients;\nRespond to team member and client requests in a timely and professional manner;\nPerform data exploration and data mining;\nDevelop and update user requirements for existing and new reports;\n\nREQUIRED QUALIFICATIONS TO BE SUCCESSFUL IN THIS ROLE:\nEducation and Technical Skills\n\nGraduate degree / diploma program (e.g. Computer Science, Business, Accounting, Science, Mathematics, Statistics, etc.) or relevant work experience;\nKnowledge of MS SQL, query optimization and syntax knowledge;\nExperience developing reports using Excel;\nExceptional analytical skills and proven capability to drive insights and interpret trends or patterns from complex data sets and analytics;\nStrong knowledge of MS Office and BI Tools: Excel mastery, including VBA, PivotTables, and array functions \u2013 or other similar tools used for discovering data patterns and correlations;\nCandidates will be asked to complete a compulsory Excel test\n\nPersonal Skills\n\nDemonstrated ability to quickly adapt, maintain focus and a high degree of accuracy while working with complex data in an environment of ever-changing deadlines, priorities and requirements;\nAbility to act independently and with initiative required to resolve problems and deliver results;\nExcellent presentation, written, and verbal communication skills;\nHighly motivated, organized and customer focused team player;\nAbility to establish and maintain effective working relationships with internal and external stakeholders;\nFlexible and capable of working in a dynamic and fast paced environment;\nAbility to influence without authority;\nBonus Points for\u2026\n\nKnowledge or experience of Reporting, Integration or Analysis services (SSRS, SSIS, SSAS), using statistical packages for analyzing datasets (R language), internet-based technologies, reporting tools or SharePoint;\nAny testing or QA experience of SQL code;\nOther analytical programing language (R, MDX, DAX, etc.);\nExperience with database or data management;\nKnowledge or experience in Healthcare analytics or statistics;\nExperience in the clinical trial, medical device, pharma or healthcare industry, specifically in ophthalmology or retina;\nAbility to \u201cthink outside the box\u201d.\nAt Vestrum, we seek great people to continually strengthen our culture. We believe great people model our values, are authentic, build trust and make connections.\n\nIf that sounds like you, and you are open-minded, responsive to change and up to the challenges provided in a fast-paced environment, apply today.\n\nTo apply, please send your resume and cover letter to hr@vestrumhealth.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=17c5ab017a08a345&fccid=748203bc565257ec&vjs=3", + "location": "Ottawa,ON", + "title": "Marketing Data Analyst", + "company": "Lee Valley Tools", + "salary": NaN, + "desc": "Permanent\nThe Marketing Data Analyst serves as the steward and central resource for customer data and\nanalysis for all sources of consumer data. Establishes data practices, policies and capabilities\nto collect, use and share data in support of business and marketing objectives.\nKey Responsibilities:\n\u2022 As the data subject matter expert, delivers customer and purchase insights that will help\ndrive decision making\nConducts analysis and research to drive business value and marketing insights\nInnovates to challenge the status quo and create new analytical techniques\nDevelops standardized tools to deliver process efficiency and quality\nAids in new data acquisition and explorations\nCollaborates with other internal departments on cross-functional projects\nProvides ROI analysis on all marketing campaigns and sales activities\nRetrieves, manipulates and analyzes information to answer business questions\nGathers and cleans the right data from a database or data warehouse\nOrganizes and presents the data in the appropriate format (using charts, graphs and\ntabular reports) to help answer business questions\nKnowledge and Skills:\n\u2022 University degree, with minimum 3+ years of experience in marketing research, analysis\nor related field\nStrong analytical and critical thinking skills\nExceptional written, oral and presentation communication abilities\nExpertise with Excel, PowerPoint and SPSS/SAS\nAnalytical and operational reporting skills (advanced Excel)\nA strong work ethic" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=687e86e72ce3e1a4&fccid=d5a5824be27ba831&vjs=3", + "location": "Ottawa,ON", + "title": "Lead Data Scientist", + "company": "Shopify", + "salary": NaN, + "desc": "About the role\n\nAt Shopify, we recognize that after our people, our most important asset is our data. With over 10+ years of aggregate ecommerce data, we are driven by the potential insights that our data can provide. Our 600,000+ merchants process over $72 billion in gross merchant volume through our platform, and depend on us to deliver insights that enable them to grow their business.\nWe are looking for a Lead Data Scientist to own the data strategy and integration around an important product line at Shopify. Working closely with the product team, you and your team will help to drive optimization in this area through the development of machine learning models that are scaled across our 600,000+ merchants. Your team will also provide valuable insights to the product team in order to help them build and improve new features.\n\nYou\u2019ll Need To Have:\nTechnical leadership and/or management experience (you'll enjoy doing both). You can jump into the code to the level that your subordinates admire and respect, but are also interested in developing people and capacity for your team.\nStrong background in machine learning including experience implementing models at scale\nExtensive experience using Python (including scikit-learn) or similar languages\nExtensive experience analyzing data using SQL\nIt'd be great if you have:\nPrevious experience using Spark\nExperience with statistical methods like regression, GLMs or experiment design and analysis\nExposure to Tableau, QlikView, Mode, Matplotlib, or similar data visualization tools\nIf you\u2019re interested in helping Shopify shape the future of commerce, click the \u201cApply now\u201d button to submit your application. Please address your cover letter to Solmaz.\nExperience comes in many forms, many skills are transferable, and passion goes a long way. If your experience is this close to what we\u2019re looking for, consider applying. We know that diversity of thought makes for the best problem-solving and creative thinking, which is why we're dedicated to adding new perspectives to the team and encourage everyone to apply." + }, + { + "link": "https://www.indeed.ca/company/PeopleInsight-Workforce-Analytics/jobs/Business-Data-Analyst-ed2ec6c2b9efdf82?fccid=55f2342981fd943f&vjs=3", + "location": "Ottawa,ON", + "title": "Business/Data Analyst", + "company": "PeopleInsight Workforce Analytics", + "salary": NaN, + "desc": "Love data?\nAt PeopleInsight Workforce Analytics, we love data too - the people-kind.\nWe're growing our team and are currently looking for a new, motivated Business/Data Analyst to join us.\nAs a Business/Data Analyst, you\u2019ll be a key member of our team \u2013 working directly with our awesome customers to deliver relevant and beautiful analytics in a fast-paced environment.\nYou will be part of an exciting start-up team, focused on amazing customer experiences.\nPrior experience working hands-on with BI tools is required. To be successful in this role, you should be detailed-oriented and love working with data. You should be comfortable communicating business results and technical requirements. An ability to manage multiple deliverables is a must.\nResponsibilities:\nAddress customer analytics requirements\nApply consultative skills to support the collection of business questions and transition them into actionable analytics\nProduce creative and informative visualizations of customer data\nCollaborate with the team to plan, design, build, test, and launch solutions to the market\nCommunicate with business leadership and present findings in the form of actionable recommendations\nRequirements:\n1-2 years hands-on experience with a BI tool such as Tableau or Cognos\nExperience in managing multiple projects while delivering on-time high quality results\nExcellent written and verbal communication skills\nStrong problem-solving skills\nDetail-oriented\nLoves working with data, customers and colleagues\nBusiness, Statistics or related degree required\nThis unique opportunity to join a fast growing top tech startup offers competitive salary, incentives, health and dental package, and many opportunities for growth.\nSo if you think you're a fit, have something special to offer and absolutely need to do your part in helping us chart the way, we\u2019re all ears.\nJob Type: Full-time\nExperience:\nAnalytics: 1 year (Required)\nLocation:\nOttawa, ON (Required)" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=cfc5a28055f276b7&fccid=ab00d9679f8b9fbd&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst - SAS EG/EM Developer", + "company": "Emerion", + "salary": NaN, + "desc": "EMERION (Cofomo Group) has a contract opportunity for a Data Analyst - SAS EG/EM Developer.\n\nWork Location: Ottawa East\n\nContract length: 3 months with high probability of extension\n\nClearance Requirement: Enhanced Reliability\n\nTo qualify, you must meet the following requirements:\nDevelop analytics-based solutions that produce quantitative and qualitative business insights.\nWork with partners as necessary to integrate systems and data quickly and effectively, regardless of technical challenges or business environments.\nMust be proficient in SAS EG/EM\nIf you are interested, please apply by sending a copy of your resume quoting Job # 3496 to talent@emerion.ca" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=dacf926ff12d3266&fccid=49ad47b3debb43f4&vjs=3", + "location": "Ottawa,ON", + "title": "Data Engineer", + "company": "Qlik", + "salary": NaN, + "desc": "What makes us Qlik\n\nQlik helps enterprises around the world move faster, work smarter, and lead the way forward with an end-to-end solution for getting value out of data. Our platform is the only one on the market that allows for open-ended, curiosity-driven exploration, giving everyone \u2013 at any skill level \u2013 the ability to make real discoveries that lead to real outcomes and transformative changes. We are a Values-Driven organization, operating over 100 countries with 45,000 customers around the world. If you think we are interesting, please read on \u2013 we may be looking for you!\nWhat we do\n\nLead with Data! This is one of our guiding principles here at Qlik.\n\nAt Qlik, we encourage our customers to use data to drive action; but more importantly, action in the right direction. Leveraging our past experience, and world class tools, we help many companies drive success by making analytics part of their journey, not the end result.\n\nAs part of the R&D organization, the Data Engineering (DE) team is tasked with arming our many cross functional teams with the tools necessary to make product decisions based on solid empirical data; not theoretical knowledge or gut feel.\nUsing our own product, to help our own teams make better decisions!\nData Engineering is a great place to learn as well. We operate at virtually all levels of the stack, we design tools and frameworks and work closely with our internal users, constantly trying to master new patterns, technologies and Qlik features in order to make our data as useful as it can be.\nCome join our team and expand your own analytics skills while helping those around you be better equipped to make better decisions.\n\nWho we need\n\nWe need passionate software engineers who are excited about data and stories that data can tell. We are looking for people who can work with abstraction and provide answers to many different parts of the organization. We run the infrastructure as well as the code on top of it, which means we want people that are excited to step up or down a level to solve the right problem. We want to work with people who have lots to offer but are just as excited about learning as part of a collaborative and effective team.\n\n\nYou\u2019ll need to have\n\nExtensive software development experience. You are proficient with things like software design patterns, code review, a variety of languages and paradigms, TDD, DevOps, etc.\nInfrastructure experience. You\u2019ll need to be familiar with administering server clusters, incident response, analyzing performance at all levels of the stack, and capacity planning.\nTeam work experience. You\u2019ll need to be someone who enjoys working together with other engineers, discussing solutions to problems, and supporting others in their goals.\nThe ability to challenge yourself and others. We like to plan ahead, but we\u2019re constantly adjusting our plans based on new inputs. You\u2019ll need to be able to get up to speed quickly, recognize where we can do things better, and influence change; challenge the status quo; never satisfied, always improving.\nExcellent communication skills. You\u2019ll need the ability to interact with confidence with other Product Managers, Development Managers, Engineers, and Executives. Demonstrate clarity and technical depth in communicating the progress and challenges of the data engineering team.\n\nIt would be great if you have\n\nQlik Sense experience.\nBusiness Intelligence experience: defining metrics, conforming different data definitions, data modelling skills.\nExperience with Big Data and infrastructure technologies including: Kafka, AWS, Streamsets, Docker, Spark.\nGo Lang, Python, Javascript, and Java experience.\nRemote team/distributed work environment experience.\n\nOur way of giving back\n\nTo our communities, to the world, and to you is a core part of the culture at Qlik. We encourage our employees to participate in our numerous Corporate Responsibility Program initiatives.\nLocation\n\nThe role is located in Ottawa, Canada.\nQlik is an Equal Opportunity Employer and does not discriminate on the basis of any protected category or characteristic. We value the diversity of our workforce. If you need assistance due to disability, please contact humanresources@qlik.com\nQlik is not accepting unsolicited assistance from search firms for this employment opportunity. Please, no phone calls or emails. All resumes submitted by search firms to any employee at Qlik via-email, the Internet or in any form and/or method without a valid written search agreement in place for this position will be deemed the sole property of Qlik. No fee will be paid in the event the candidate is hired by Qlik as a result of the referral or through other means.\nLI-SN" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=2a2da8cb01f350a2&fccid=94052e10e1796ed3&vjs=3", + "location": "Ottawa,ON", + "title": "Salesforce Data Analyst", + "company": "Acumen Solutions", + "salary": NaN, + "desc": "Acumen Solutions drives excellence - not only in our performance, but also in the results we deliver for our clients. We are a global cloud consultancy that combines the insight of our strategists, the vision of our innovators, and the ingenuity of our engineers to achieve this extraordinary impact. The Fortune 500 trust us to build solutions focused on growing revenue and profits by amplifying competitive advantage and strengthening customer relationships. Our groundbreaking solutions in the public sector streamline operations and improve productivity. We apply this same focus on excellence to our unparalleled social responsibility program, generating sustainable impact across our local communities. Engage with us at www.acumensolutions.com or on Twitter @AcumenSolutions.\n\nWe are looking to grow our team and currently have entry to manager level opportunities for a Salesforce Data Analyst in Ottawa, Canada.\n\nSpecific Duties\nSpecialize in collecting, organizing, and analyzing data from various systems\nDevelop an in-depth understanding of the interrelationships of data and multiple data domains\nCreate thorough documentation artifacts and maintain same for duration of project\nIdentify and document data migration paths and processes\nMaintain industry/technical knowledge base and facilitate/maintain industry relationships\nDemonstrate commitment to providing customer-focused quality service\nSupport assigned systems through transition period\nPerform other duties as deemed relevant based upon experience to fulfill customer needs\nDevelop and perform standard queries to ensure data quality, identify data inconsistencies, missing data and resolve as needed\nStandardize data naming, data definitions and modeling\nPerform data extraction, storage, manipulation, processing, and analysis\nCollect, profile, collate, and map appropriate data for usage in new or existing solutions as well as for ongoing data analysis activities\nInterpret Customers functional and information needs and turn them into functional or data requirements, process models, etc.\nDesired Skills and Experience\nBachelor\u2019s Degree or equivalent in Computer Science, Information Systems, Engineering, Business, Mathematics, or other related scientific or technical discipline with two (2) or more years of experience related to this position\nMust be willing to travel up to 50%\n1-5 years of demonstrated experience in data analysis, data manipulation, and decision support\nKnowledge and application of relational database concepts\nExperience or exposure to Extract/Transform/Load (ETL) and/or Business Intelligence\nStrong SQL skills\nSkilled at completing technical design via iterative mockups\nHigh proficiency in MS Office Suite (esp. Word and Excel)\nOpenness to learning new skills and software as necessary\nDemonstrated ability to manage simultaneous work flows while maintaining quality output and meeting deadlines\nDemonstrated ability to learn new and exciting technologies with little assistance\nPreferred Experience\nExperience with ETL tools and procedures (any tool)\nPrior experience working in the Cloud\nStrong verbal and written communication skills with demonstrated ability to communicate at different levels of the organization\nAbility to perform ad-hoc analysis and maintain clear and comprehensive documentation of decision-making, data preparation, and processes\nRelevant IT certifications\nCritical Skills\nHigh aptitude in analytical and logical thinking\nDemonstrated experience with data models and data mapping\nExperience with Unified Modeling Language (UML), including Entity-Relationship Diagrams (ERD), Sequence Diagrams, and Data Flow Diagrams (DFD)\nUnderstanding of XML, SQL, Data Modeling Language (DML), and Data Definition Language (DDL)\nStrong communication skills, both written and spoken\nDemonstrated ability to produce highly detailed, comprehensive documentation artifacts\nClient-focused attitude\nHigh-level knowledge of enterprise IT organizational, business, and technical environments\nAbility to analyze processes and recommend improvements as needed\nBenefits\nAcumen Solutions offers the opportunity for growth and advancement, as well as a competitive base salary, annual performance based incentives, medical, dental, and vision benefits, Paid Time Off, and more." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=20dc69c646389b03&fccid=b47ebb2dfcbc3f5b&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst, Technology Consulting", + "company": "MNP", + "salary": NaN, + "desc": "DIFFERENT BY DESIGN\nAt MNP we pride ourselves on being different \u2013 it\u2019s our entrepreneurial drive that sets us apart. It\u2019s the same drive that\u2019s helped us become Canada\u2019s fastest growing national firm. We foster collaboration, value your ideas, promote based on talent, live balanced lifestyles and make time for FUN. We are one firm, one team, collaborating to support you wherever you want to take your career.\n\nJoin the momentum. We are seeking a Data Analyst for our growing Technology Consulting team. Driving business excellence, MNP is a leading national accounting, tax and business consulting firm in Canada. Our Consulting team works with organizations in the public, private and not-for-profit sectors to provide innovative strategies tailored to maximize efficiencies, enhance performance and increase profitability. Specifically, our recognized Technology Consulting team works with clients to translate technology issues and opportunities into meaningful results that meet organizational needs.\n\nRESPONSIBILITIES AND QUALIFICATIONS\nPerformance Expectations\nDesign and implement Data Integration solutions for ETL/ELT and/or ESB processing\nDesign and implement reporting dashboards using popular enterprise level reporting tools like: Tableau, Power BI and Qlik\nDesign and implement Business Intelligence solutions that can include reports, dashboards and OLAP designs/cubes\nModel and design Enterprise Data Warehouses\nWork with Metadata tools\nWork closely with Data Quality teams\nSupport Business Analytics teams\nFacilitate data discovery or data mapping sessions\nAnalyze/profile data and possibly perform Data Mining activities\nWrite complex T-SQL queries and stored procedure\nGather business and technical requirements for data-related projects\nContribute to the development of new ideas and approaches to improve work processes while effectively using MNP internal programs and systems\nPromote regular attendance, balanced lifestyle and high standard of team wellness\nAttend internal MNP courses to further develop knowledge around performance improvement\nCredentials\nKnowledge of Data Warehousing best practices and design\nExperience in Business Analytics that can include predictive/prescriptive models\nExperience in Python and Machine Learning\nExperience in Master Data Management (MDM) would be an asset\nExperience in establishing Data Governance policies would be an asset\nExperience in Data Architecture would be an asset\nCertifications in Data Management or vendor-related tools would be an asset\nExperience as a Database Administrator would be an asset\nExperience in data migration projects would be an asset\nExperience in Big Data such as Data Lakes and Hadoop would be an asset\n\nCore Competencies and Personal Characteristics\nIntegrity \u2013 professional whose honesty, integrity, confidentiality and high ethical standards contributes to effective leadership and optimal business relationships\nEnergy \u2013 displays enthusiasm, optimism, drive and passion while maintaining a high level of productivity and a balanced lifestyle\nDiversity \u2013 understands the importance of different backgrounds, perspectives and experiences and is respectful of individual differences\nCommunication \u2013 effectively expresses ideas and conveys information in business writing, conversations and interactions with others\nClient Service Excellence \u2013 understands the importance of quality client service by being courteous, responding to client requests in a timely manner and monitoring satisfaction\nTeamwork & Relationship Development \u2013 works collaboratively with team members in order to achieve a common goal and develops, maintains and strengthens relationships with others, both inside and outside the Firm\nAccountability \u2013 takes responsibility for one\u2019s own performance by setting clear goals and tracking progress against those goals; is highly organized and uses personal judgement and decision making\nFlexibility \u2013 effectively manages multiple assignments, adapts to changing priorities and is able to work independently or as part of a team\nEntrepreneurial \u2013 looks for and seizes profitable business opportunities and is willing to take calculated risks in order to achieve business goals\nAccuracy \u2013 pays close attention to detail and ensures work and information are complete and thorough\nWillingness to Learn \u2013 enthusiastic and eager to meet challenges and assimilate new concepts\nMYREWARDS@MNP\nMNP encourages a balanced lifestyle and offers benefits that suit the way our team members work and play! In addition to a competitive salary, our MyRewards@MNP package includes paid personal days, wellness program initiatives, health and dental benefits, a group pension plan with matching contribution, firm sponsored social events and professional development assistance.\n\nMNP proudly serves and responds to the needs of our clients in the public, private and not-for-profit sectors. Through partner-led engagements, we provide a collaborative, cost-effective approach to doing business, with innovative strategies to help organizations succeed across the country and around the world." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a5a6dec0c5a6ac2d&fccid=6d9b8e75dfffb17e&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst", + "company": "Bell", + "salary": NaN, + "desc": "Req Id: 213498\n\nBell is a truly Canadian company with a 138 year track record of success. We are defined by the passion of our team members and their belief in our company\u2019s vast potential.\nTo ensure we continue to be recognized as Canada\u2019s leading communications company, we\u2019re committed to finding and developing the next generation of leaders. This means creating best-in-class career and development opportunities for our employees.\nIf you\u2019re passionate, driven and find yourself seeking interesting work, new challenges and continuous learning opportunities, then we want you to join our team.\nThe Finance Team includes corporate and operational finance, internal teams support, the controllers group, internal audit and risk advisory services, taxation, treasury, corporate strategy and mergers and acquisitions.\n\nThis team is responsible for the management, optimization, and extraction of various in-house data systems used to analyze payments to other carriers, automate business processes, and to supply data and analysis to multiple business units to enable data-driven business decisions.\n\nAs part of this team, you will have opportunities to build your analytics skills and drive important business decisions. We are looking for individuals who are highly logical, passionate, and can communicate effectively to all levels within the organization.\n\nReporting directly to the Senior Manager, Data Architect, Finance, the successful candidate will be part of a small team with the following responsibilities:\n\nResponsibilities:\nAssist design and delivery of automated and maintainable data solutions having measureable results (cost savings, revenue recognized, and/or productivity improvements)\nBuild and assist building customized software, scripts, and SQL database solutions (in both Microsoft and Oracle SQL) to improve and optimize Finance processes\nEngage with appropriate stakeholders to document existing processes and new project requirements\nEnsure customized software, scripts, and other systems incorporate appropriate security safeguards\nExplore new sources of information to uncover new revenue recognition and cost reduction opportunities\nIdentify opportunity areas in the business where custom in-house solutions can deliver significant financial and operational benefits\nMaintain and expand personal knowledge of data analysis and IT systems management, including best practices, through self-study, including in-house Skillsoft online courses\nPerform other duties as required\nProduce and maintain disaster recover plans, business continuity plans, and risk management plans for in-house processes\nProvide follow-up, assistance, and quality assurance to teams inside and outside of Finance as needed\nRapid response and resolution to all issues; meet critical deadlines (occasionally outside of normal business hours)\nReview programs and systems as needed to perform risk assessments, vulnerability analysis, and to recommend and/or implement compensating controls\nTranslate BCE's strategic imperatives into data-centric questions in order to quantify, evaluate, and propose solutions\nWork with internal clients (Finance, Wholesale, Network, Regulatory, etc.) to enable data-driven business decisions and to ensure that solutions provided align with the business requirements, business objectives, project plans, and BCE's Strategic Imperatives\n\nRequired Qualifications/Competencies:\nAbility to thrive independently and in a small team\nComprehensive knowledge of software engineering principles\nDemonstrated proficiency in leading business process improvements delivering significant value to an organization\nExcellent written English communication skills\nExceptional ability to collect, analyze, and interpret both qualitative and quantitative data\nExperienced in Windows systems administration, Oracle DB administration, and MS SQL DB administration\nProven ability to manage multiple projects with competing priorities\nProven experience in analyzing existing code/scripts and creating documentation, process maps, system flow diagrams\nSelf-starter, self-motivated, adaptable in a matrix environment\nStrong analytical, problem solving, critical thinking, and time management skills \u2013 able to dig deeply into business issues, conceptualize technical solutions, and develop logical, repeatable, maintainable, and effective long-term solutions\nUniversity Degree in Computer or Software Engineering\nVery high proficiency with Microsoft SQL, Oracle SQL, and Microsoft Excel\nValid P.Eng license or have completed all P.Eng licensing requirements aside from the supervised experience requirement\n\nAssets:\nCertifications in business analytics\nCertifications in Microsoft and Oracle database administration\nCertified Information Security Manager\nCertified Information Systems Security Professional\nCompTIA A+\nMicrosoft Data, App Builder, or Business Applications certifications\nProject Management Professional\nPrior telecom information systems experience\n\nBilingualism is an asset (English and French)\n\nAdditional Information:\nPosition Type: Management\nJob Location: Canada : Ontario : Mississauga || Canada : Ontario : Ottawa || Canada : Ontario : Toronto\nApplication Deadline: 10/19/2018\nPlease apply directly online to be considered for this role. Applications through email will not be accepted.\n\nBell is committed to fostering an inclusive, equitable, and accessible environment where all employees and customers feel valued, respected, and supported. We are dedicated to building a workforce that reflects the diversity of the communities in which we live and serve, and where every team member has the opportunity to reach their full potential.\n\nCreated: Canada, ON, Ottawa" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=a7b06b29174afbea&fccid=fa38008a85240e26&vjs=3", + "location": "Ottawa,ON", + "title": "Data Analyst - Government", + "company": "Altis Professional", + "salary": NaN, + "desc": "Our client has a 2-3 month contract for an experienced Data Analyst.\n\nRoles and Responsibilities\n\nsenior analyst sought at an EC- 5 or 6 equivalent level to complete content analysis based on a series of roundtables are being held as well as input from an online survey.\nquantitative and qualitative tabulations\n\n\nQualifications and Experience\nat least 5 years of experience working in data analysis and research.\nEnhanced security clearance.\nExperience in both quantitative and qualitative research methodologies is required\nHighly organized, focused, motivated individual who works well independently\nStrong written and verbal communication skills\nExperience in both quantitative and qualitative research methodologies is required\nExperience in undertaking research and communicating findings\nStrong knowledge of statistics and survey design, development and analysis\n\n\n\n\nEducation and Certifications\n\nMinimum education required: College Diploma\n\nPreferred field of study: Finance\n\nPlease send your resume." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=bdf3db1ca435460d&fccid=1f664b308b4fe32b&vjs=3", + "location": "Ottawa,ON", + "title": "Data Engineer (8723789)", + "company": "emergiTEL Inc.", + "salary": NaN, + "desc": "Develop analytics based solutions that produce quantitative and qualitative business insights. Work with partners as necessary to integrate systems and data quickly and effectively, regardless of technical challenges or business environments. Must be proficient in SAS EG/EM\nWork Location: Client site\nCandidate must have Canada Federal Security Clearance" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3f4e69886f420d0e&fccid=171992a32a9112ca&vjs=3", + "location": "Ottawa,ON", + "title": "Data Scientist", + "company": "Oproma", + "salary": NaN, + "desc": "The data scientist is reporting to the CTO / CDO. As the catalyst for the realization of the company\u2019s business plan, the Database analysts designs, develops and administers data management solutions using database management software as well as develops and implements data administration policy, standards and models.\n\nResponsibilities\nResearch and document data requirements, data collection and administration policy, data access rules and security\nDevelop and implement data administration policy, standards and models\nConduct research and provide advice to other information systems professionals regarding the collection, availability, security and suitability of data\nWrite scripts related to stored procedures and triggers\nMay lead and co-ordinate teams of data administrators in the development and implementation of data policies, standards and models.\nSecurity requirements\nCandidates must have no criminal record and must be able to obtain a SECRET security clearance.\n\nDesirable qualities\n\nAcademic training:\nUniversity degree in management information technology OR any other training deemed relevant OR equivalent professional experience;\n\nWork experience and knowledge:\nExcellent understanding of machine learning techniques and algorithms, such as : k-NN, Naive Bayes, SVM, Decision Forests, etc.\nExperience with common data science toolkits, such as R, Weka, NumPy, MatLab, etc. (excellence in at least one of these is highly desirable).\nExperience with data visualisation tools, such as D3.js, GGplot, etc.\nProficiency in using query languages such as SQL, Hive, LuceneQL, Pig\nExperience with NoSQL databases, such as MongoDB, Cassandra, HBase\nGood applied statistics skills, such as distributions, statistical testing, regression, etc.\nGood scripting and programming skills. Experience with Java and Groovy are highly desirable.\nBilingual oral and written: English and French.\n\nTalent required:\nData-oriented personality\nAnalytical skills\nRigor\nProblems solving\nTeam work & great communication skills\nSense of the environment\nProject management skills\nCustomer orientation\nSubmit your resume\nApply For This Job\nIf you are interested in this position, we would be pleased to hear from you by e-mail at staffing@oproma.com. Be sure to mention in the email subject which position you are applying for and don\u2019t forget to attach your resume.\n\nSubject: Job opening \u2013 Data Scientist\n\nOnly the selected candidates will be contacted." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=46cca54dceeaeb30&fccid=6520e43a58f70f07&vjs=3", + "location": "Ottawa,ON", + "title": "Data Scientist", + "company": "SMITH", + "salary": NaN, + "desc": "At SMITH, we develop world-class experiential commerce solutions to help brands architect the most relevant, frictionless commerce experiences possible. We work at a high tempo, we collaborate, we\u2019re passionate about our work with clients, and we deliver.\nThe market demand for our services has fueled our growth. We're currently seeking a talented Data Scientist that thrives in a fast-paced environment to join our team.\nWho you are\nHave analytical curiosity, strong data-oriented skills and a statistical programming background.\nPossess successful track record of designing and developing AI/ML algorithms for digital marketing and eCommerce.\nUp-to-date with latest technology trends, have strong desire to constantly learn and ready to put on the hacker's hat at any time to convert an idea into a demonstration.\nHighly detail-oriented with exceptional organizational and follow-through skills.\nSelf-started and able to execute without a lot of direction or oversight.\nExceptional communication skills, with an ability to make advanced analytics concepts accessible and understandable to non-technical business users.\nValue collaboration, urgency and have a passion for driving impact.\nWhat you\u2019ll do\nSolve some of the most challenging and impactful problems in digital marketing and eCommerce using artificial intelligence, machine learning, natural language processing and big data.\nDrive innovation into Analytics solutions and focus on humanizing enterprise software to achieve a better customer experience and to enable data-driven business decisions.\nWork on high priority initiatives using advanced analytics, predictive modeling and a variety of data sources to produce actionable business insights.\nIdeate, conceptualize, design, develop and maintain AI/ML algorithms that provide consumer insights that drive revenue growth.\nBuild production grade models on large-scale datasets to optimize digital marketing and eCommerce business results. Utilize advanced statistical modeling, machine learning, and data mining techniques.\nProvide guidance to a customer and project team with respect to technical feasibility, complexity, and level of effort required to deliver a solution.\nPartner with client team to track and report on digital marketing and eCommerce programs\u2019 performance.\nWork closely with other team members to further develop metrics, KPIs, and insights that provide business performance improvements.\nAssist in the development and delivery of pre and post sales POCs, presentations and proposals for client engagements.\nTravel periodically in support of sales and delivery as needed.\nWhat we look for\nAt least 2 years of experience working on predictive analytics and data mining projects.\n2 years of hands-on experience using complex machine learning methods and algorithms such neural net, deep learning and collaborative filtering.\nAt least 2 years of experience working with one or more data mining tools such as R, Python, Scala and SAS.\nHands-on experience working with Big Data technologies such as Spark, Cassandra, and/or Hadoop.\nHands-on experience writing complex SQL queries and working with relational databases such as Oracle, DB2 and SQL Server.\nHands-on experience constructing and manipulating JSON and XML documents and working with NoSQL databases such as MongoDB and CouchDB.\nGood understanding of microservices architecture and hands-on experience working with REST APIs.\nSelf-directed and demonstrable problem-solving skills.\nKnowledge of modern software development techniques and methodologies.\nKnowledge and practice of secure software development processes.\nAbility to handle multiple priorities and deadlines.\nBachelor degree in mathematics, business, statistics, economics, computer science or information systems (or equivalent combination of skill and experience).\nWhat grabs our attention\n4 years of experience working on predictive analytics and data mining projects.\n4 years of hands-on experience using Machine Learning, Cognitive, and AI APIs.\n4 years of experience with both relational and NoSQL technologies.\n2 years of experience using real-time data transformation and integration services such as Spark-Streaming and/or Kafka Streams.\nKnowledge of the Python data ecosystem using pandas and NumPy Experience building and deploying ML pipelines.\nKnowledge of e-commerce and digital marketing platforms such as SAP Hybris, SAP Marketing Cloud and Sitecore.\nFamiliarity with content management platforms such as Adobe Experience Manager and Sitecore.\nExpertise with Agile development methodology and Continuous delivery best practices.\nMasters or PhD degree in mathematics, statistics, computer science or information systems.\nSMITH | The Architects of Future Commerce\nThe next big thing isn\u2019t what you\u2019ll buy, it\u2019s how you\u2019ll buy it. SMITH is a values-driven digital transformation agency with one mission: to make buying and selling awesome. For more than 20 years, SMITH has worked in partnership with the world's most respected B2B and B2C brands to deliver better business outcomes with design thinking and technology enablement that puts their customers at the center. Key partnerships with technology platforms including SAP Hybris, Adobe, Episerver, and Sitecore support the delivery of best-of-breed digital content and commerce experiences, while SMITH Labs builds tomorrow's experiences with the Elements of Future Commerce, including AR, VR, AI, Conversation, and Emotion-sensing interfaces. Offices in Gatineau, Seattle, Dayton, and Spokane service clients including Air Canada Vacations, AT&T, PCNA, Honeywell, Microsoft, and more. Learn more at SMITH.co" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=46b6f447a0b62985&fccid=7bcd2a9899d0c29f&vjs=3", + "location": "Ottawa,ON", + "title": "Senior Data & Access Architect", + "company": "SDTC", + "salary": NaN, + "desc": "Senior Data and Access Architect\nSustainable Development Technology Canada (SDTC) is embarking on upgrading its digital infrastructure platforms that support its day-to-day operations from a closed solution to an open and flexible solution that can meet the changing needs of the organization and the environment in which SDTC operates. The Senior Data and Access Architect will play a vital role in this transformation, developing, implementing, optimizing and maintaining the digital platforms that will be foundational to supporting SDTC continued growth and performance.\nThis role has the combined responsibilities of a data engineer and a data access architect. As a data engineer, this person is responsible for developing, maintaining, and improving all SDTC data storage, ingestion, and analysis systems. As a data access architect, this person is supporting the tools and designing and developing the interfaces by which data is ingested and consumed.\nOn a day-to-day basis, this individual will manage and update relational databases, develop specifications for, implement, and improve an externally-facing, web-based data capture platform, and transform and ingest internal datasets. To achieve some of these tasks, the individual may engage consultants and external contractors. The ideal candidate will be enthusiastic and highly-motivated about working with functional teams to improve data management and capture processes - identifying, advocating for, and implementing opportunities for updating data-related activities that make daily SDTC operations smoother and employee\u2019s lives simpler. Because this position involves developing, implementing, and installing new systems, this position also calls for a level of technical evangelism which includes advocacy for and training on systems to support the adoption of state-of-the-art data capture and analysis tools and practices.\nRequirements\nBachelors in Computer Science or a related field\nMinimum of 5 to 8 years working in related role\nAdvanced working knowledge of SQL-based database design and administration\nExperience building and optimizing data pipelines, architectures, and data sets\nDemonstrated fluency with developing and deploying web-based database front-ends\nStrong analytic skills related to cleaning, structuring, and transforming structured and unstructured data sets\nStrong project management and organization skills\nDemonstrated strong problem solving and analytical skills\nAbility to be flexible and adapt to change quickly\nExperience supporting and working with cross-functional teams in a dynamic environment\nExperience with some of the following tools:\nRelational databases including Postgres and MySQL\nNoSQL databases including MongoDB\nAWS cloud services: EC2, RDS, and Redshift\nWeb development languages and platforms: PHP, Javascript, Node.js\nSDTC is a highly entrepreneurial foundation, created by the federal government. Our mission? To be a catalyst and convenor for the cleantech ecosystem in Canada. We do this by funding projects that are pre-commercial and have the potential to demonstrate significant and quantifiable environmental and economic benefits in one or more of the following areas: climate change, clean air, clean water and clean soil.\nSustainable Development Technology Canada is a small team of high energy, dedicated, private sector oriented individuals who are hands-on and innovative. Come and help us make a difference to the Canadian innovation and sustainability agenda.\nSustainable Development Technology Canada is an equal opportunity employer, welcomes diversity in the workplace and encourages applications from all qualified candidates.\nApplication Deadline: October 26, 2018\n________________________________________________________________________________________\nArchitecte principal ou principale des donn\u00e9es et de l\u2019acc\u00e8s\nTechnologies du d\u00e9veloppement durable Canada (TDDC) entreprend la mise \u00e0 jour des plateformes d\u2019infrastructure num\u00e9rique qui soutiennent son fonctionnement quotidien. Elle veut passer d\u2019une solution ferm\u00e9e \u00e0 une solution ouverte et flexible qui r\u00e9pondra mieux aux besoins changeants de l\u2019organisation et au contexte dans lequel elle travaille. L\u2019architecte principal ou principale des donn\u00e9es et de l\u2019acc\u00e8s aura un r\u00f4le essentiel \u00e0 jouer dans cette transformation pour laquelle il ou elle devra d\u00e9velopper, impl\u00e9menter, optimiser et entretenir les plateformes num\u00e9riques si fondamentales \u00e0 la croissance et au rendement futurs de TDDC.\nCe poste combine les responsabilit\u00e9s d\u2019un ing\u00e9nieur ou d\u2019une ing\u00e9nieure des donn\u00e9es et d\u2019un ou d\u2019une architecte de l\u2019acc\u00e8s aux donn\u00e9es. Comme ing\u00e9nieur ou ing\u00e9nieure des donn\u00e9es, le ou la titulaire du poste devra d\u00e9velopper, mettre \u00e0 jour et am\u00e9liorer les syst\u00e8mes de stockage, de saisie et d\u2019analyse des donn\u00e9es de TDDC. Comme architecte de l\u2019acc\u00e8s aux donn\u00e9es, il ou elle prendra en charge les outils et concevra et d\u00e9veloppera les interfaces de saisie et d\u2019utilisation des donn\u00e9es.\nDe fa\u00e7on quotidienne, le ou la titulaire du poste g\u00e9rera et mettra \u00e0 jour les bases de donn\u00e9es relationnelles, d\u00e9finira les caract\u00e9ristiques techniques de la plateforme frontale Web de saisie des donn\u00e9es et en assurera l\u2019impl\u00e9mentation et l\u2019am\u00e9lioration, en plus de transformer et de saisir les ensembles de donn\u00e9es internes. Pour r\u00e9aliser certaines de ces taches, le ou la titulaire pourra avoir \u00e0 engager des consultants ou des entrepreneurs. Le candidat id\u00e9al ou la candidate id\u00e9ale doit \u00eatre enthousiaste et trouver stimulant de travailler avec des \u00e9quipes fonctionnelles pour am\u00e9liorer la gestion et la saisie des donn\u00e9es. Cela signifie qu\u2019il ou elle devra trouver des moyens de moderniser les processus associ\u00e9s aux donn\u00e9es, de faire valoir ses id\u00e9es dans ce domaine et de les mettre en \u0153uvre pour rationaliser le fonctionnement quotidien de TDDC et simplifier le travail du personnel. Comme ce poste exige le d\u00e9veloppement, l\u2019impl\u00e9mentation et l\u2019installation de nouveaux syst\u00e8mes, il n\u00e9cessite aussi la capacit\u00e9 de pr\u00e9senter et de faire adopter les solutions techniques et d\u2019assurer la formation sur les syst\u00e8mes de mani\u00e8re \u00e0 faciliter l\u2019adoption des nouveaux outils et pratiques de saisie et d\u2019analyse de donn\u00e9es.\nExigences\nBaccalaur\u00e9at en science informatique ou un domaine connexe\nMinimum de cinq \u00e0 huit ans d\u2019exp\u00e9rience dans un poste aux responsabilit\u00e9s connexes\nConnaissance pratique avanc\u00e9e de la conception et de l\u2019administration de bases de donn\u00e9es SQL\nExp\u00e9rience de la construction et de l\u2019optimisation des donn\u00e9es en pipelines, d\u2019architectures et d\u2019ensembles de donn\u00e9es\nBonne connaissance d\u00e9montr\u00e9e du d\u00e9veloppement et du d\u00e9ploiement d\u2019applications frontales de bases de donn\u00e9es sur le Web\nSolide capacit\u00e9 d\u2019analyse lors du nettoyage, de la structuration et de la transformation d\u2019ensembles de donn\u00e9es structur\u00e9s et non structur\u00e9s\nSolide sens de l\u2019organisation et tr\u00e8s bonne capacit\u00e9 de g\u00e9rer les projets\nExp\u00e9rience du soutien et du travail avec des \u00e9quipes interfonctionnelles dans un milieu dynamique\nExp\u00e9rience de certains des outils ci-dessous :\nBases de donn\u00e9es relationnelles, dont Postgres et MySQL\nBases de donn\u00e9es NoSQL dont MongoDB\nServices nuagiques AWS : EC2, RDS et Redshift\nLangages et plateformes de d\u00e9veloppement Web : PHP, Javascript, Node.js\nTDDC est une organisation fortement ax\u00e9e sur l\u2019entrepreneuriat. Elle a \u00e9t\u00e9 cr\u00e9\u00e9e par le gouvernement f\u00e9d\u00e9ral. Sa mission? Servir de catalyseur et de coordonnateur pour l\u2019\u00e9cosyst\u00e8me des technologies propres au Canada. Pour ce faire, elle finance des projets qui se trouvent au stade pr\u00e9commercial et qui ont le potentiel de d\u00e9montrer des avantages environnementaux et \u00e9conomiques significatifs et quantifiables dans un ou plusieurs des domaines suivants : changement climatique, air pur, eau propre et sols propres.\nTechnologies du d\u00e9veloppement durable Canada est une petite \u00e9quipe de personnes tr\u00e8s dynamiques, d\u00e9vou\u00e9es et centr\u00e9es sur le secteur priv\u00e9 qui sont enthousiastes et novatrices. Rejoignez-nous et aidez-nous \u00e0 jouer un r\u00f4le d\u00e9cisif dans le programme canadien d\u2019innovation et de durabilit\u00e9.\nTechnologies du d\u00e9veloppement durable Canada est un employeur qui souscrit au principe de l\u2019\u00e9galit\u00e9 d\u2019acc\u00e8s \u00e0 l\u2019emploi, est favorable \u00e0 la diversit\u00e9 en milieu de travail et encourage toutes les candidates et tous les candidats qualifi\u00e9s \u00e0 postuler.\nDate limite de d\u00e9p\u00f4t des candidatures : le 26 octobre 2018" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=20f919d0e22651e8&fccid=8263389b819d48ea&vjs=3", + "location": "Ottawa,ON", + "title": "Big Data / Hadoop Specialist", + "company": "Modis Canada", + "salary": NaN, + "desc": "Temporary, Contract\nBig Data / Hadoop Jobs, Ottawa, ON\n\nModis has ongoing requirements for various Big Data / Hadoop roles within the Ottawa area.\n\nSome positions include:\nSoftware Developer\nBig Data Engineer\nData Analyst\nData Solution Architect\nDatabase Administrator\nThe successful candidate must have experience working in a Big Data environment, particularly with Hadoop.\n\nA federal government clearance would be considered as an asset.\n\nInterested candidates are invited to submit an online application.\n\nModis would like to thank all candidates for submitting to this job opportunity, however, only those with the above qualifications clearly identified in their resumes will be contacted for further instruction and submission to the client.\n\nWe\u2019re at the center of exceptional IT connections. Every day, Modis connects premier IT professionals to great opportunities at leading companies. Put our connections to work for you!" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=53dff2cc9e0614e3&fccid=6520e43a58f70f07&vjs=3", + "location": "Ottawa,ON", + "title": "Data Engineer", + "company": "SMITH", + "salary": NaN, + "desc": "At SMITH, we develop world-class experiential commerce solutions to help brands architect the most relevant, frictionless commerce experiences possible. We work at a high tempo, we collaborate, we\u2019re passionate about our work with clients, and we deliver.\n\nThe market demand for our services has fueled our growth. We're currently seeking a talented Data Engineer that thrives in a fast-paced environment to join our team.\n\nWho you are\n\nPassionate for turning disparate streams of data into organized and actionable analytics services and insights\nSomeone with programming acumen, competency in manipulating large volumes of data, and solid knowledge of broad range of technologies for data processing and modeling\nUp-to-date with the latest technology trends and have strong desire to constantly learn\nLove solving complex problems and have expertise in world-class data pipelines, from batch job to real time implementations\nHave demonstrated the ability to navigate between big-picture and implementation of details\nHighly detailed-oriented with exceptional organizational and follow-through skills\nSelf-directed and comfortable supporting the data needs of multiple teams and projects\nExceptional communication skills, with an ability to make advanced analytics concepts accessible and understandable for non-technical business users\nValue collaboration, urgency and have a passion for driving impact\nWhat you\u2019ll do\n\nCreate analytical data infrastructure by gathering, processing, analyzing and structuring large volumes of data from many structured and unstructured data sources, at scale.\nDesign, develop and implement highly scalable, repeatable and secure data pipelines and transformation processes.\nDesign and build transformation models and data flows for batch, real-time and complex event driven processes using open technologies.\nDevelop data ingest processes across a variety of third-party APIs, applications and file stores.\nEnsure that appropriate controls are in place and all in motion and at rest data is secured at all times.\nDevelop data catalogs and data validation scripts to ensure data accuracy and clarity and correctness of key business metrics.\nIdentify and correct data quality issues, performing root cause analysis on internal and external data to answer specific business questions and identify opportunities for improvement.\nImplement monitoring and alerting systems to help detect performance and scalability issues.\nEmploy proper data governance to ensure data security and integrity.\nResearch and make recommendations for new data management technologies and software engineering practices.\nCollaborate on decisions around the use of new tools and practices.\nProvide guidance to a customer and project team with respect to data requirements, data gaps and level of effort required to deliver a solution.\nAssist in the development and delivery of pre and post sales POCs and proposals for client engagements.\nProduce and maintain support documentation and data dictionaries.\nTravel periodically in support of sales and delivery as needed.\n\nWhat we look for\n\nAt least 2 years of experience working on data transformation, curation and integration for batch and near real-time in Cloud and on-prem environments.\nAt least 2 years of hands-on experience working with Big Data technologies such as Spark, Cassandra, Hadoop and/or Hive. Working knowledge of message queuing, stream processing, and highly scalable \u2018big data\u2019 data stores.\n2 years of experience using one of more data transformation and integration technologies such as Python, Scala, Spark, Spark-Streaming, Kafka Streams and traditional ETL/ELT tools such as DataStage and/or Informatica.\n2 years of hands on experience working with SQL and Non SQL databases such as Oracle, DB2, SQL Server, Postgres, MongoDB and/or CouchDB.\nGood understanding of microservices architecture and hands-on experience working with REST APIs.\nAt least 1 year of experience working on predictive analytics and data mining projects.\nSelf-directed and demonstrable problem-solving skills.\nKnowledge of modern software development techniques and methodologies.\nKnowledge and practice of secure software development processes.\nExcellent written and verbal communication skills. Ability to communicate effectively with a broad range of constituents.\nAbility to handle multiple priorities and deadlines.\nBachelor\u2019s degree in mathematics, informatics, statistics, computer science or information systems (or equivalent combination of skill and experience).\n\nWhat grabs our attention\n\n4 years of experience working on Cloud data transformations and integration for batch, real-time and event-driven systems.\n4 years of hands-on experience working with Big Data technologies such as Spark, Cassandra, Hadoop and/or Hive.\n4 years of experience using one of more data transformation and integration technologies such as Python, Scala, Spark, Spark-Streaming, Kafka Streams and traditional ETL/ELT tools such as DataStage and/or Informatica.\n4 years of hands on experience working with SQL and Non SQL databases such as Oracle, DB2, SQL Server, Postgres, MangoDB and CouchDB.\n2 years of experience working on predictive analytics and data mining projects for digital marketing and e-commerce.\nFamiliarity with Azure Cloud technologies such as Data Bricks and Data Factory.\nExpertise with Agile development methodology and Continuous delivery best practices.\nKnowledge of e-commerce and digital marketing platforms such as SAP Hybris, SAP Marketing Cloud and Sitecore.\nExperience with business intelligence tools such as Power BI, Tableau and Qlikview.\nMasters or PhD degree in mathematics, business, statistics, economics or computer science.\n\nSMITH | The Architects of Future Commerce\n\nThe next big thing isn\u2019t what you\u2019ll buy, it\u2019s how you\u2019ll buy it. SMITH is a values-driven digital transformation agency with one mission: to make buying and selling awesome. For more than 20 years, SMITH has worked in partnership with the world's most respected B2B and B2C brands to deliver better business outcomes with design thinking and technology enablement that puts their customers at the center. Key partnerships with technology platforms including SAP Hybris, Adobe, Episerver, and Sitecore support the delivery of best-of-breed digital content and commerce experiences, while SMITH Labs builds tomorrow's experiences with the Elements of Future Commerce, including AR, VR, AI, Conversation, and Emotion-sensing interfaces. Offices in Gatineau, Seattle, Dayton, and Spokane service clients including Air Canada Vacations, AT&T, PCNA, Honeywell, Microsoft, and more. Learn more at SMITH.co" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DXUD7c2BU_iAIKiQ1FKTe1sPAQxsomjDKEzGgLousdlW5wRaHkbrGk422hJaeJR5e3Nt_uACi59Ibld4AKU45hCfxi2gxJ_zbiPx8E7_ktBinpfDL_BKFQiHkWE1Q-j5uinzfGlfwZNuNNYZIsyRMogR9WaRKQdJvqsoubM2QLwVENOgZLzo7UQ2Nu2_jwDQ65CIzX7R2Mxtd9E95-wS_yLCLlfLc8PREIiCF0JtcNafleOBCQYiGdYaFzmsqobdrBDornHRnXz02LRM1Lw4gMM0rZKrpXpA0C_d1R0Ut63tv8FOPW8FH13yYS3d6g0duyFvP289ycVnKfUR_mzcerhRyrHb3j5wdsYKU_AaM_BFTok2mdzBIcYD7e8C_wyHbiGH9Zmr5_RJoN5dgHo4USd2Dm4u40QOOIn-KiRVDgCKbaJcXS-UcPVN2fu9KiF05SKbhvKBvy7fvBe6_X-MzmutDm2Vpbe2goSO0clSGQWLeOmnGdSaZk&vjs=3&p=1&sk=&fvj=1", + "location": "Calgary,AB", + "title": "Database Engineer", + "company": "BBG Management Corporation", + "salary": NaN, + "desc": "BBG Management Corporation is looking for a Data Engineer for a company producing wireless safety equipment in Calgary, Alberta. You will be responsible for the evolution of our client's data architecture as well as DB, ETL and Report support.\nUltimately, you should be able to ensure that the database systems run effectively and securely on a daily basis.\nRequirements:\nAt least 5 years of experience as Data Engineer or Senior Database Developer\nIntermediate to senior experience with MySQL and Kettle\nStrong understanding of SQL including star schemes\nExperience with business intelligence tools for e.g. PowerBI, Tableau, or Jaspersoft\nBasic understanding of the Linux operating system\nDemonstrated experience in scalable database development in a SaaS environment dealing with real-time streaming data\nUnderstanding of Agile Methodology, JIRA, Git is an asset\nExperience with AWS and other cloud platforms is preferred\nExcellent analytical and organization skills\nAn ability to understand front-end users requirements and a problem-solving attitude\nExcellent verbal and written communication skills\nBachelor's degree in Computer Science or in a similar field\nLegally entitled to work in Canada\nIf you have the required experience and are interested apply now!\nJob Type: Full-time\nExperience:\nBusiness Intelligence tools(PowerBI, Tableau, or Jaspersoft): 3 years (Preferred)\nSQL including star schemes: 3 years (Required)\nDatabase Engineer or Senior Database Developer: 5 years (Required)\nLocation:\nCalgary (Preferred)" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7nt_W1_ybLH0QPeRuJeKiE8HopE_qVwRB8Z81lHnG9uUtgMfVDEQL9BJh0AdeX9392IxKqxqfwQsEk05Tf1x9ZHHUhO1m21nG3VYUE0Qo0uZoI8BCF9tU-FrQtdOnEfCTIxCwbP-NBeupn4umYQdPVsBRrL8O8jbf5Gi2j1Ba7oGOtcnNmpOGc42qrHAyDnHvbJN7LRIOLTzF-YShtqTn_y4rBLNC1WaJUkIM5I6XiXUJTo4HQsjVNNBQU9WoWWTGblh5lNsNX1BziJt-n2gkjFFcNLhj8IbUXeJwtnXc6q5G_xM7BdRpA6Qn8WSpVj87ms6kBh7g3FHySXH7jUw_1KHJD7ao1bd38ZkPyizmMsgsTF7hJc79dGIalQ_4BvDL0nL2QHee7HnS96hqa4YT-iG8ZKZTnq_OxAg9jM423Cdp4mDnMJi-JfWU9dyhXLDZoTOQgnAY8L9Yjph2gIJRW2pxyWppYipiJdczIxqfbKUdGs0gBmsg6G08A5b59smKGGHrxkPi3BBqM_P-H-FMqaOlmMYjqvfgs_17R6P_JeasudSwJ9oYuTv24D7h_6U90scEpVHVh_5LE=&vjs=3&p=2&sk=&fvj=0", + "location": "Calgary,AB", + "title": "Data Analyst - 260890", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nData Analyst\n\n\nOn behalf of our client Procom is seeking a Data Analyst with strong experience with Vendor Master and Material Master Data Management.\nData Analyst Job Details\nReporting to the Manager SCM Master Data the incumbent in this position will provide support to the Procurement Strategy and Governance Team as a key resource to implement the processes practices and business rules for Procurement Master Data including vendor, materials and services masters as well as the category taxonomy.\nThe Master Data Analyst will be responsible for proper governance over procurement master data utilized in their business area.\nThe position will manage according to the operating model for master data and may interact with other groups such as Operations Finance ITM Plant Maintenance and Engineering.\nThe incumbent may also provide central support and guidance to the regional business area and/ or other Master Data Analyst/Technicians.\nAccurate consistent, robust and timely data for use by the company in making supply chain decisions.\nCORE RESPONSIBILITIES:\nImplement, refine and sustain Processes and Procedures (work instructions) to properly and efficiently govern procurement master data\nEnsure compliance to Practices and Processes\nExecute Operational (Non-Project) and Project Data Requests as required for defined scope of Master Data\nExecute peer/quality reviews to ensure data requests are processed accurately and in accordance with Data Standards\nLiaise with business in geographically dispersed locations to define operational or project data requirements that support the business, and are consistent with enterprise data governance and quality\nCoach and support users on master data practices, processes and procedures\nPerform root cause analysis for data errors/incidents, and drive corrective actions to prevent reoccurrence\nProvide functional support and drive continuous improvement of key forms/templates in support of Master Data Management Processes\nReport on metrics related to Master Data operational performance, and drive actions for improvement\nData Analyst Must Have Skills\n5 years of experience in a SAP Master Data Role\n5 years of Master Data Management, Vendor Master and Material Master Data\nFamiliarity with supply chain processes, procedures and techniques\nSAP experience\nPrevious experience with complex business problems\nBachelor\u2019s degree in Computer Science, Mathematics, Engineering, Business Intelligence or related field of study\n5 years vendor management\nData Analyst Nice To Have Skills\nExcellent judgment, problem-solving and communication skills\n5 yearss supply chain\nExcellent interpersonal and communication skills\n5 yesr Process Analysis/Improvement\n5 years Project Management\nERP Certification (SAP, Oracle, JD Edwards)\nSAP Experience Supply Chain\nBusiness acumen in the financial, supply chain, logistics and global sourcing areas\nExperience in the oil and gas industry\nService Delivery Management\nStrong analytical, interpretive, organizational and problem-solving skills;\nSelf-starter with a pro-active approach to problem identification and resolution\nExcellent organizational skills within a multi-task environment\nData Analyst Assignment Length\n12 months\nData Analyst Start Date\nOct 8, 2018" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=51be855441995fec&fccid=0261b4753802fd26&vjs=3", + "location": "Calgary,AB", + "title": "Intermediate Data Analyst", + "company": "Shaw Communications", + "salary": NaN, + "desc": "Every day, our passionate employees connect our customers to the world and everything in it \u2013 it\u2019s why we exist at Shaw, and it\u2019s why we strive to be the place where the best people choose to work. Our people reflect the richness of our communities, and our culture is inclusive of each individual\u2019s diverse background and perspective, which makes us a stronger team.\n\nAt Shaw we believe a diverse workforce fosters diversity of thought and perspective, and more diversity means more solutions. We invite all qualified individuals to apply.\n\nCareer Opportunity: Intermediate Data Analyst\n\nShaw Communications Inc., the leading Entertainment and Communications Company, has an exciting opportunity for an Intermediate Data Analyst in our Calgary office, reporting to the Manager, Business Intelligence - Delivery. The successful candidate will be responsible for designing and developing automated data and reporting solutions that process, summarize and bring order to raw data, transforming it into actionable information on which our business partners can make decisions.\n\nAccountabilities/ Responsibilities:\n\nDesign and deliver automated report solutions that summarize and transform data from various data sources into understandable, actionable information.\nDevelop and improve data mart structures and BI report development/delivery processes to improve efficiency, usability, consistency, reliability and relevance of reports.\nCollect and converge requirements from end users; translate requirements into technical solutions.\nCollaborate with business partners to identify opportunities to apply BI insights to various areas of the organization.\nSupport and troubleshoot technical problems within the BI Environment.\nUnderstand and remain current on Shaw product offerings, promotions, and associated order entry / order management procedures.\n\nRequired Skills, Experience and Qualifications:\n\n7+ years creating automated reports, using advanced techniques with various systems and tools, and with emphasis on efficient, high quality code and identification/mitigation of data integrity problems.\n7+ years and a solid understanding of SQL, and other DB constructs including stored procedures, functions, views and execution plans. Advanced knowledge of code optimization, including development/coding best practices.\n5+ years, a solid understanding, and demonstrated ability to apply Data Warehouse and Data Modeling methodologies into practice. With a focus on the ability to understand the underlying data sources and translating that knowledge into mapping documents and requirements for ETL developers.\nExperience acting as a mentor to peers, providing guidance on technical solutions, critical thinking, and storytelling via data - relating the data (\u2018What\u2019 and \u2018When\u2019) to the \u2018Why\u2019 and \u2018How\u2019 parts of our business.\nHands on experience developing reports and architecture layer objects in MicroStrategy.\nDemonstrated business acumen. Ability to obtain essential information about a situation, focus on the key objectives, recognize the relevant options available, select an appropriate course of action and set in motion a plan to \u201cget the job done\u201d.\nHave a track record of delivering outputs that set the bar for quality, delivering complete solutions which are thoughtful, forward thinking (considering future impacts) and follows all internal processes perfectly.\nAbility to communicate with technical teams as well as business users.\nDemonstrated ability to build strong, cooperative intradepartmental and interdepartmental relationships.\nConsistently able to work under pressure, multi-task and meet challenging deadlines, all while focusing on quality.\nTeam player with strong, proactive, communication skills.\nA positive \u201ccan do\u201d attitude that will enable you to deal with challenging situations with integrity, empathy and sincerity.\n\nWorking Hours:\nThe working hours are standard business hours, with flexibility\nThis position includes participating in on-call rotation for weekend coverage. Compensation is provided for on-call and callout time.\nWork is scheduled for periodic events such as finance month-end that may occur on weekends or holidays.\nEvening and weekend work may be required to meet deadlines or respond to incidents.\n\nIf you value a workplace that promotes accountability, exemplifies loyalty, never compromises integrity and has a strong social conscience then start your career with us by applying now.\n\nThis position requires the successful completion of a criminal and credit background check.\n\nWe thank all interested applicants; however, only qualified candidates will be contacted.\n\nBusiness Unit: Corporate\n\nShaw Communications, through its third party vendor, collects and stores information applicable to the candidate profile you create when you submit the information asked for below. The use and disclosure of the collected information is for the sole purpose of job search and placement activities for Shaw Communications. The information is subject to Personal Information Protection and Electronic Documents Act. The information will be retained and when disposed of, it is done so in a secure manner. Your profile will become inactive and moved to the archive if you do not access your profile for a period of 1 year." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7154c0439512c75f&fccid=89918cc9490b4093&vjs=3", + "location": "Calgary,AB", + "title": "Lead Data Analyst", + "company": "Alberta Health Services", + "salary": NaN, + "desc": "The Lead Analyst applies comprehensive knowledge of the health system and operational areas to novel and advanced analysis designed to move data and information to actual decisions for care providers and program leaders. The role will use its experience working in AHS in an operational, clinical or support role to understand the perspective of front line teams, and can connect the use of data and measurement with improving ability to deliver quality, efficient care through the use of virtual technology. The Lead Analyst will advance the Analytics agenda of moving from responding to identified needs towards anticipating and integrating analytics into Virtual Health program planning and delivery. The Lead Analyst will champion measurement for quantitative and qualitative data on patient outcomes, provider outcomes and system efficiency across the Virtual Health programs and clinical programs supported by Virtual Health. The role will build collegial relationships with AHS Analytics, Health Systems Evaluation, and Financial Analytics and help to establish a framework for how to approach measurement in Virtual Health projects. The role will collaborate and coordinate with analysts embedded directly within operational and clinical departments when available and appropriate. The Lead Analyst will support, advise, and interact regularly with zone quality council members, site leaders, program leaders and managers to help support identifying improvement opportunities, establish analytic and reporting requirements, and to communicate results. The Lead Analyst works directly with multiple established and new data sources within AHS. They develop and implement creative, advanced analytic approaches to address complex questions, often where no precedent has been set. They are skilled in organizing and presenting complex information to stakeholders with analytic experience.\nClassification: Consultant\nUnion: Exempt\nDepartment: (CORP) IT Clinical Telehealth\nPrimary Location: Southport Tower\nEmployee Class: Regular Full Time\nFTE: 1.00\nPosting End Date: 24-OCT-2018\nDate Available: 05-NOV-2018\nHours per Shift: 7.75\nLength of Shift in weeks: 2\nShifts per cycle: 10\nShift Pattern: Days\nDays Off: Saturday/Sunday\nMinimum Salary: $34.52\nMaximum Salary: $59.20\nVehicle Requirement: N/A\nRequired Qualifications:\nMaster\u2019s degree with a strong quantitative focus (e.g., health economics, mathematics, statistics, operations engineering, health sciences, epidemiology, quality assurance, etc.) and five (5) years of applicable experience or a Bachelor\u2019s degree and eight (8) years of applicable experience. Minimum seven years\u2019 experience in a healthcare environment in a support, operational or clinical capacity. Minimum seven years\u2019 experience working with spreadsheets, databases and tools for querying, integrating, analyzing, interpreting, reporting and disseminating data. Must have Oracle SQL or other comparable database query and report writing experience. Knowledge and ability to produce a variety of descriptive, inferential and predictive statistics. Proficiency in English, with exceptional verbal and written communication skills to produce reports and communicate with clients from across the organization. Ability to understand clinical issues, and to communicate effectively with a broad variety of people at different levels within the organization. Demonstrated ability to work with others effectively in teams. Natural aptitude for educating and motivating, and influencing. Comprehensive understanding of health systems.\n\nAdditional Required Qualifications:\nWorking knowledge of Microsoft Office suite (Excel, Word, PowerPoint, Visio and Access) and the ability to become proficient with new software packages. Must abide by the highest standards of confidentiality and have a sound understanding of the principles within Alberta\u2019s Freedom of Information and Protection of Privacy Act, as well as the Health Information Act.\n\nPreferred Qualifications:\nExperience with Quality Improvement/Outcomes Improvement methods and clear understanding of the connection and interdependency between successful quality improvement and measurement. Experience in screening, cleaning, linking, creating, modifying and analyzing datasets in a statistical or database-management software package. Advanced skills in T-SQL, PS/SQL. Operations Research experience in modelling and queuing theory. Proficiency in Tableau or other visualization tools." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=0983e7d5a2a7e649&fccid=f4c6ba597fc7aa75&vjs=3", + "location": "Calgary,AB", + "title": "Data Scientist/Algorithm Developer (Pipeline Inspection) Calgary, Alberta", + "company": "Baker Hughes", + "salary": NaN, + "desc": "Baker Hughes Incorporated has an opening for a Research and Development Scientist to join our Pipeline Inspections Technology team based out of our Calgary, Alberta location. As a leader in the oilfield services industry, Baker Hughes offers opportunities for qualified people who want to grow in our high performance organization. Our leading technologies and our ability to apply them safely and effectively create value for our customers and our shareholders.\n\nEssential Responsibilities:\nDevelopment of detection and classification algorithms for data collected our inline pipeline inspection tools\nCollection, preparation, processing and analysis of data sources\nDevelopment of algorithmic methods in the areas of Signal Processing, Machine Learning and Computer Vision\nInterdisciplinary teamwork with, for example, the integration of algorithms into our software applications\nQualifications/Requirements:\nGraduate degree in Engineering, Physics, Math, computer Science or equivalent\n2-10 years of experience in a R&D environment or related fields\nGood understand and practical application of at least one type of machine learning\nProblem solving skills in the area of Machine Learning, Parameter Extraction and Classification\nWell-founded knowledge in areas like image processing and visualization\nDemonstrable skills in the area of Applied Statistics and Data Mining\nStrong knowledge of at least one programming language (eg Python, C / C ++ or Java)\nExperience working scientific programming language Matlab/R\nDesired Characteristics:\nAbility to work in small teams and independently with minimal direction\nPipeline inspection experience is preferred\nEffective communication skills verbally along with technical writing and documentation experience\nLocations:\n\nCalgary, Alberta\n\nBaker Hughes, a GE company is an Equal Opportunity Employer. Employment decisions are made without regard to race, color, religion, national or ethnic origin, sex, sexual orientation, gender identity or expression, age, disability, protected veteran status or other characteristics protected by law. Learn more\n\n\n\nJob: Engineering/Technology\nPrimary Location: North America-Canada-Alberta-CALGARY" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5143a47a59fa3c0a&fccid=b649d3ab17f765ea&vjs=3", + "location": "Calgary,AB", + "title": "Data Analyst", + "company": "Inn from the Cold", + "salary": NaN, + "desc": "Data Analyst\nYou have a passion for making a difference, you crave the opportunity to impact your community and you would describe yourself as someone who seeks a career with purpose. You have a strong internal drive that pushes you to seek challenging work in a collaborative, professional and reputable environment that does meaningful work in Calgary.\nAt Inn from the Cold, our mission is to offer shelter, sanctuary, and healing to assist homeless children and their families achieve independence. We need passionate, high-performing and solution-oriented team members to achieve our mission and have an exciting and challenging opportunity for the right candidate.\nPosition Summary:\nUnder the supervision of the Manager, Strategy & Analytics, the Data Analyst will work to maintain and improve a comprehensive organizational data management and evaluation system that ensures the timely, high quality, and streamlined collection and analysis of organizational data. This position will improve the efficiency and effectiveness of Inn from the Cold\u2019s programs and services by conducting, interpreting, and presenting research and analysis findings. This position will maintain internal data systems, provide user training, and implement policies and procedures to ensure data integrity. This position requires a talented individual with a background in monitoring and evaluation, impact measurement, and data analysis/management to lead the organization\u2019s impact measurement and reporting systems, helping to translate data into impactful and compelling stories.\nPrimary Duties and Responsibilities:\nThe Data Analyst will perform a wide range of duties which may include:\nAnalysis\nProvide specialized data analysis using data from a variety of sophisticated software and analytical tools.\nEnsure the timely and accurate collection of data, data entry, and data analysis on a daily basis.\nAssist in the collection of qualitative and quantitative data using prescribed data collection tools.\nAssist in conducting statistical analysis to ensure programs meet their expected outputs and outcomes; help identify key insights and opportunities to achieve program and fundraising objectives.\nMine historical data to discover trends and patterns and support the development of processes to validate existing assumptions and methods.\nDevelop relationships with departments to ensure data management solutions align with departmental strategies; involve users in the design and development of data collection tools and promote the implementation and use of effective tools.\nCollaborate on the design and development of sophisticated data visualizations, maps, charts, graphics, and interactive tools to make datasets intelligible.\nSummarize and interpret analytical information, communicate with management and various stakeholders regarding findings and analysis; understand patterns and explain complex issues and results to decision-makers and leadership.\nDesign and generate a reporting framework for the Board of Directors, senior management, and other stakeholders, and manage results dissemination; draft and contribute to reports and prepare and deliver presentations.\nTraining and Database Management\nMaintain staff access and security; supervise system maintenance and upgrades.\nEnsure the continued functionality, quality, and accuracy of the all IFTC database systems; proactively identify and resolve problems; streamline and clean datasets so that they are ready for analysis and reporting.\nReview the quality of existing data sources, the methods of collecting them, and the degree to which they will provide good data; develop approaches to address identified gaps.\nDevelop and update training materials and policies and procedures to improve data collection and maintain consistency across client service and fundraising programs.\nPlan and lead regular training workshops to build the capacity of IFTC staff in the gathering of data ensuring that staff are reporting accurately, using agreed templates, and meeting deadlines; ensure performance indicators and output, outcome, and impact data are prepared and collected properly by all teams.\nTrain, coach, and guide staff on database use and data collection procedures; ongoing technical support to staff utilizing data management systems.\nThis position description reflects the general duties of the position, but it is not intended to be a detailed description of all duties that may be inherent in the position.\nQualifications:\nBachelor\u2019s degree in Economics, Computer Science, Mathematics, Statistics, Data Science, or other discipline with a focus on data analysis, and a minimum 2 years of related experience.\nExperience working within the non-profit sector and with vulnerable populations.\nMembership with the Canadian Evaluation Society and/or CE designation an asset.\nKnowledge of FOIP is strongly preferred.\nExceptional computer skills; proficiency in Microsoft Office suite of products, including Excel; experience with HMIS and/or Statistical Package for Social Science (SPSS) as asset.\nExperience in data management and the creation and manipulation of databases; entrepreneurial spirit and eagerness to ask un-asked questions and imagine new ways of using data.\nExceptional analytical skills; ability to synthesize, analyze, and interpret data related to family homeless programs and services and effectively communicate both raw data and the results of analysis.\nPassion for effective data visualization and proficiency with data visualization tools.\nExperience with program evaluation is an asset.\nExcellent interpersonal skills and ability to work in a team environment.\nDemonstrated ability to prioritize work, and independently manage multiple, diverse, and competing priorities while meeting deadlines.\nStrong project management and problem-solving skills and demonstrated ability to work in a demanding environment.\nAbility to maintain confidentiality and work with sensitive information.\n\nPlease send resume to Marj Kyle at: joininn@innfromthecold.org.\nOnly those selected will be contacted. No phone calls please.\nIn the subject line of your email, indicate the role you applying for\nThe closing date of this position is October 19, 2018\nValues:\nEmbrace Compassion: we fulfill a duty of care, not only to our guests, but to our colleagues and our community\nExhibit Courage: we uphold the convictions of the organization and support our community, especially when faced with adversity\nWork Inclusively: we foster a culture where all stakeholders feel they have an opportunity to turn their potential into performance\nDemonstrate Respect: we believe the way we treat each other in achieving our objectives is just as important as what we achieve\nAct with Accountability: we demonstrate a commitment to our word, accept responsibility for our mistakes, and take action to address them\nEncourage Innovation: we take informed risks and champion new ideas" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=27bb68bd9f01278a&fccid=b5f5a475a9aae6da&vjs=3", + "location": "Calgary,AB", + "title": "Data Scientist - Calgary, AB", + "company": "RS Energy Group", + "salary": NaN, + "desc": "Location: Calgary, AB\nType: Full Time\nStart Date: Immediately\n\nData Scientist\n\nRS Energy Group is a data-driven organization specializing in the delivery of advanced analytics, research and data science to the most advanced investors and producers in the world. We work in an innovative, fast-paced and dynamic environment, with interdisciplinary teams focused on leveraging cutting-edge technology, data and machine learning to uncover unique investment ideas and provide solutions for producers. Headquartered in Calgary, we have offices in Houston, New York, Los Angeles and Philadelphia.\nThis Data Scientist position based in our Calgary, AB office includes the opportunity to work closely with domain Subject Matter Experts in applied statistics and data science techniques, creativing solutions to some of the most interesting challenges faced in the analysis of oil and gas assets today.\nResponsibilities:\nBuild statistical and mathematical solutions to approach business problems in the oil & gas industry.\nBuild prototypes and productize advanced predictive modeling and machine learning tools.\nWork together with Data Engineers and Software Developers to evaluate the technical trade-offs of tools to build simple, yet robust, data science pipelines.\nQualifications:\nExcellent understanding of machine learning techniques and algorithms are required such as regression, decision trees, ensemble methods, dimensionality reduction, clustering, regularization and cross-validation.\nSolid programming skills and experience designing prototypes using Python (NumPy, pandas).\nExperience in multivariate analysis and modeling solutions.\nExperience in implementing optimization methods or deep learning.\nDemonstrated ability to conduct independent research utilizing large data sets.\nAdditional Qualifications (not required):\nQuantitative background with advanced degrees (Master +) in Statistics, Computer Science, Informatics, Data Science, Mathematics or Actuarial Science or equivalent experience.\nExperience building large scale data science pipelines.\nFamiliarity with details of implementing algorithms on multi-core CPUs, clusters (MPI), GPUs, heterogeneous clusters, distributed frameworks (e.g. Spark, Hadoop).\nStrong written and verbal communication skills required with an ability to simply explain complex information.\n\n\nRS Energy Group offers a competitive salary, a generous benefits package, and an unbeatable work environment. This is a great time to join our organization!\nRS Energy Group is an equal opportunity employer. By embracing diversity, we gain strength through our people.\nTo learn more, please visit our website at www.rseg.com" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7260a36336162405&fccid=3a2c8b6a483f049b&vjs=3", + "location": "Calgary,AB", + "title": "Data Engineer", + "company": "SkipTheDishes", + "salary": NaN, + "desc": "Think you have what it takes to join an elite team of software developers, engineers, and data scientists? If you want to make your mark on a national brand\u2019s industry-leading technology, Skip\u2019s Engineering Team is the place for you. They drive the innovation of Skip\u2019s platform by improving the reliability, performance, and scalability of the network. GPS tracking, real-time order processing, scheduling, and balancing are just a few of the pieces the Engineering Team integrates into Skip\u2019s world-class service.\n\nAs a member of our Data team, you will be responsible for design and implementation of infrastructure components and software for systems that power Skip\u2019s Business Intelligence and Machine Learning applications. Your experience with cloud infrastructure and big data provides you with the background to quickly implement changes. Your experience in data management and SQL allows you to contribute to the expanding expertise of the team and keep data components current as product feature change.\n\nHow we work:\nWe take ownership of our work, and work closely with our team\nWe move quickly, take risks, and know how to manage the risks\nRegularly refactoring to improve our existing systems \u2014 technical debt isn\u2019t an excuse\nUnit tests and code reviews are at our core \u2014 confidence in our pull request is the result\nWe constantly push our app\u2019s technology, design, and architecture forward to meet new challenges\nWe face challenges no one can predict \u2014 we meet them head on as a team\nWhen we have an idea that serves a need, we run with it\nOur teams are kept tight and efficient\nWhat you'll be doing:\nImplementing a scalable system for managing data flows at SkipTheDishes\nCreating data pipeline components and semantic models to accommodate changes in source systems and new business requirements\nActing as a technical resource and contributing to overall solution design\nSupporting production data systems in a fast-paced business environment\nTrace through core system source code to identify how and when data are created and used in order to ensure accurate interpretation by non-technical data users\nWhat will help you succeed:\nComputer science or software engineering degree\nExperience working with both large and real-time data\nMastery of SQL development and performance tuning\nExperience working with tools, languages and protocols such as Kinesis, PySpark, Redshift, and/or columnar databases\nFamiliarity with Tableau, or other BI tools and/or data infrastructure\nWhat it\u2019s like to work at Skip:\n\nAt Skip, you have the opportunity to work with industry-leading technology in a dynamic, entrepreneurial environment. You can take part in building a major Canadian tech company that is growing every day \u2014 and you can grow with it. We will work with you to find your limits, and then help you surpass them. The more you contribute, the further you\u2019ll go. Since establishing our Winnipeg headquarters in 2012, Skip has grown from less than 20 staff to a national brand with more than 1800 employees and processing millions of orders each month." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=84c457fa49ac0309&fccid=c5c99ec01e2125aa&vjs=3", + "location": "Calgary,AB", + "title": "Data Scientist/Algorithm Developer (Pipeline Inspection) Calgary, Alberta", + "company": "General Electric", + "salary": NaN, + "desc": "Role Summary:\nAbout Us:\n\nBaker Hughes, a GE company (NYSE:BHGE) is the world\u2019s first and only fullstream provider of integrated oilfield products, services and digital solutions. Drawing on a storied heritage of invention, BHGE harnesses the passion and experience of its people to enhance productivity across the oil and gas value chain.\n\n\nBHGE helps its customers acquire, transport and refine hydrocarbons more efficiently, productively and safely, with a smaller environmental footprint and at lower cost per barrel. Backed by the digital industrial strength of GE, the company deploys minds, machines and the cloud to break down silos and reduce waste and risk, applying breakthroughs from other industries to advance its own.\n\n\nWith operations in over 120 countries, the company\u2019s global scale, local know-how and commitment to service infuse over a century of experience with the spirit of a startup \u2013 inventing smarter ways to bring energy to the world.\n\n\nFollow Baker Hughes, a GE company on Twitter @BHGECo, or visit us at BHGE.com.\n\nRole Summary:\n\nBaker Hughes Incorporated has an opening for a Research and Development Scientist to join our Pipeline Inspections Technology team based out of our Calgary, Alberta location. As a leader in the oilfield services industry, Baker Hughes offers opportunities for qualified people who want to grow in our high performance organization. Our leading technologies and our ability to apply them safely and effectively create value for our customers and our shareholders.\n\nEssential Responsibilities:\nDevelopment of detection and classification algorithms for data collected our inline pipeline inspection tools\nCollection, preparation, processing and analysis of data sources\nDevelopment of algorithmic methods in the areas of Signal Processing, Machine Learning and Computer Vision\nInterdisciplinary teamwork with, for example, the integration of algorithms into our software applications\nQualifications/Requirements:\nGraduate degree in Engineering, Physics, Math, computer Science or equivalent\n2-10 years of experience in a R&D environment or related fields\nGood understand and practical application of at least one type of machine learning\nProblem solving skills in the area of Machine Learning, Parameter Extraction and Classification\nWell-founded knowledge in areas like image processing and visualization\nDemonstrable skills in the area of Applied Statistics and Data Mining\nStrong knowledge of at least one programming language (eg Python, C / C ++ or Java)\nExperience working scientific programming language Matlab/R\nDesired Characteristics:\nAbility to work in small teams and independently with minimal direction\nPipeline inspection experience is preferred\nEffective communication skills verbally along with technical writing and documentation experience\nLocations:\n\nCalgary, Alberta\nBaker Hughes, a GE company is an Equal Opportunity Employer. Employment decisions are made without regard to race, color, religion, national or ethnic origin, sex, sexual orientation, gender identity or expression, age, disability, protected veteran status or other characteristics protected by law. Learn more\n\n\n\n\n\nLocations: Canada; Alberta; CALGARY" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=636428ec81c29ce0&fccid=2f7563a9ec0a07ec&vjs=3", + "location": "Calgary,AB", + "title": "Co-op Student, IT Data Services (Data Scientist)", + "company": "Nutrien", + "salary": NaN, + "desc": "Co-op Student, IT Data Services (Data Scientist) - Calgary, AB or Saskatoon, SK\n\nWhy work at Nutrien? Great question!\nSafety is a core value at Nutrien. Keeping every employee safe, healthy and secure is our top priority. Nothing is more important than seeing our people go home safe at the end of every single day.\nWhile working here you will have the opportunity to grow your career while helping us feed the future. We pride ourselves in hiring from a variety of backgrounds and truly believe that it is our differences that make us stronger so we hope you will join us.\nIn addition to exciting and challenging opportunities, Nutrien offers competitive salaries, great benefits and performance based incentives.\nOutside of the skills and necessary qualifications, you will be committed to sustaining our safe and positive work environment while welcoming working side by side others in a diverse culture. Culture at Nutrien is the core of everything we do and all employees are respectful of diverse opinions and views.\nLocated at our office in Saskatoon or Calgary, Nutrien has an exciting Co-op Student opportunity within IT Data Services. Providing invaluable work experience in a growing company, this position term will begin in early January 2019 or May 2019, for a period of 8-12 months.\n\nThe successful candidate will report to the Senior Manager Data Services, IT Data Services.\n\nKey Tasks:\nApply emerging and advanced data analysis techniques in a real-world setting\nIdentify advance analytic model opportunities\nShowcase advanced analytic models using R and Python\nsupport senior team members to research additional innovative BI opportunities\nAssist with high potential value data identification\nSkills:\nAn aptitude and curiosity towards the application of technologies towards better decision making. Strong communication skills, willingness to learn, self-starter, creative\nStrong Microsoft Excel skills\nStatistical modeling, numerical methods and analysis, data mining, knowledge discovery, human computer interaction, interface design, adaptive systems. Some programming/database experience is an asset.\nExperience with R and Python\nTechnologies may include: SAP BW, HANA, WebFOCUS, Business Objects, Cognos, Tableau, Oracle, MS SQL Server, MS Power BI, AWS\nEssential Qualifications:\nProgress towards advanced degree in Computer Science, Math, Statistics, Engineering, or other technical advanced degree\nParticipation in a structured Co-op program within your College/University\nMinimum GPA of 2.75 is preferred\nNutrien is committed to creating an inclusive workplace. We encourage applications from all well qualified candidates who reflect the diversity of the regions where we operate. This includes recognizing the voluntary identification of status such as gender, sexual orientation, visible minority, Indigenous status, persons with disabilities, and veterans, where applicable.\nIf this sounds like a good match, apply now. This job will remain posted until filled. You may be required to undergo a background check and substance test in accordance with Nutrien policies.\nWhile we appreciate all applications we receive, we advise that only candidates under consideration will be contacted." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5595f94865e8c912&fccid=f152b1b75ac56a08&vjs=3", + "location": "Calgary,AB", + "title": "Master Data Analyst", + "company": "InSync", + "salary": NaN, + "desc": "Contract\nInSync Systems is a recruitment agency that works with small to large corporate clients to connect them with the best people in the Industry.\n\nOur large O&G client is currently looking for a Master Data Analyst with strong experience with Vendor Master and Material Master Data Management for a 1-year contract opportunity in Calgary.\n\nThe Master Data Analyst will be responsible for proper governance over procurement master data utilized in the business area. The position will manage according to the operating model for master data and may interact with other groups such as Operations Finance and Engineering. The resource may also provide central support and guidance to the regional business area and/ or other Master Data Analyst/Technicians. Accurate consistent, robust and timely data for use by the company in making supply chain decisions. This role will require you to interact with a broad range of employees and contractors both at a worker level as well as at the supervisory and management levels.\n\nResponsibilities:\n\u2022 Implement, refine and sustain Processes and Procedures (work instructions) to properly and efficiently govern procurement master data\n\u2022 Ensure compliance to Practices and Processes\n\u2022 Execute Operational (Non-Project) and Project Data Requests as required for defined scope of Master Data\n\u2022 Execute peer/quality reviews to ensure data requests are processed accurately and in accordance with Data Standards\n\u2022 Liaise with business in geographically dispersed locations to define operational or project data requirements that support the business, and are consistent with enterprise data governance and quality\n\u2022 Coach and support users on master data practices, processes and procedures\n\u2022 Perform root cause analysis for data errors/incidents, and drive corrective actions to prevent reoccurrence\n\u2022 Provide functional support and drive continuous improvement of key forms/templates in support of Master Data Management Processes\n\u2022 Report on metrics related to Master Data operational performance, and drive actions for improvement\n\nRequired Skills:\n\u2022 Bachelor\u2019s degree in Computer Science, Mathematics, Engineering, Business Intelligence or related field of study\n\u2022 5 Years of experience in a SAP Master Data Role\n\u2022 Must have significant Business Analysis Experience in similar role\n\u2022 Master Data Management, Vendor Master and Material Master Data\n\u2022 Previous experience with complex business problems\n\nDesired Skills:\n\u2022 ERP Certification (SAP, Oracle, JD Edwards)\n\u2022 SAP Experience Supply Chain\n\u2022 Business acumen in the financial, supply chain, logistics and global sourcing areas\n\u2022 Experience in the oil and gas industry\n\u2022 Process Analysis/Improvement\n\u2022 Project Management\n\u2022 Service Delivery Management\n\u2022 Strong analytical, interpretive, organizational and problem-solving skills\n\u2022 Self-starter with a pro-active approach to problem identification and resolution\n\u2022 Excellent interpersonal and communication skills" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=7b3c757fa365bef1&fccid=39d1c8076d23beb5&vjs=3", + "location": "Calgary,AB", + "title": "Data Analyst - 260890", + "company": "Procom", + "salary": NaN, + "desc": "Contract\nData Analyst\n\n\nOn behalf of our client Procom is seeking a Data Analyst with strong experience with Vendor Master and Material Master Data Management.\nData Analyst Job Details\nReporting to the Manager SCM Master Data the incumbent in this position will provide support to the Procurement Strategy and Governance Team as a key resource to implement the processes practices and business rules for Procurement Master Data including vendor, materials and services masters as well as the category taxonomy.\nThe Master Data Analyst will be responsible for proper governance over procurement master data utilized in their business area.\nThe position will manage according to the operating model for master data and may interact with other groups such as Operations Finance ITM Plant Maintenance and Engineering.\nThe incumbent may also provide central support and guidance to the regional business area and/ or other Master Data Analyst/Technicians.\nAccurate consistent, robust and timely data for use by the company in making supply chain decisions.\nCORE RESPONSIBILITIES:\nImplement, refine and sustain Processes and Procedures (work instructions) to properly and efficiently govern procurement master data\nEnsure compliance to Practices and Processes\nExecute Operational (Non-Project) and Project Data Requests as required for defined scope of Master Data\nExecute peer/quality reviews to ensure data requests are processed accurately and in accordance with Data Standards\nLiaise with business in geographically dispersed locations to define operational or project data requirements that support the business, and are consistent with enterprise data governance and quality\nCoach and support users on master data practices, processes and procedures\nPerform root cause analysis for data errors/incidents, and drive corrective actions to prevent reoccurrence\nProvide functional support and drive continuous improvement of key forms/templates in support of Master Data Management Processes\nReport on metrics related to Master Data operational performance, and drive actions for improvement\nData Analyst Must Have Skills\n5 years of experience in a SAP Master Data Role\n5 years of Master Data Management, Vendor Master and Material Master Data\nFamiliarity with supply chain processes, procedures and techniques\nSAP experience\nPrevious experience with complex business problems\nBachelor\u2019s degree in Computer Science, Mathematics, Engineering, Business Intelligence or related field of study\n5 years vendor management\nData Analyst Nice To Have Skills\nExcellent judgment, problem-solving and communication skills\n5 yearss supply chain\nExcellent interpersonal and communication skills\n5 yesr Process Analysis/Improvement\n5 years Project Management\nERP Certification (SAP, Oracle, JD Edwards)\nSAP Experience Supply Chain\nBusiness acumen in the financial, supply chain, logistics and global sourcing areas\nExperience in the oil and gas industry\nService Delivery Management\nStrong analytical, interpretive, organizational and problem-solving skills;\nSelf-starter with a pro-active approach to problem identification and resolution\nExcellent organizational skills within a multi-task environment\nData Analyst Assignment Length\n12 months\nData Analyst Start Date\nOct 8, 2018" + }, + { + "link": "https://www.indeed.ca/company/Vivametrica/jobs/Marketing-Manager-a2a9a005f6089a0f?fccid=2186d14e8a7d68dd&vjs=3", + "location": "Calgary,AB", + "title": "Marketing Manager", + "company": "Vivametrica Ltd", + "salary": NaN, + "desc": "Title: Marketing Manager\nVivametrica is a passionate and motivated company, led by an MD and PhD Data Scientist, whose mission is to use world leading mobile and wearable technology to help people live healthier, happier lives.Our data analytics & solutions enable individuals to accurately understand, predict and manage their health risks and overall wellness.\nWe are growing and are seeking an enthusiastic, curious and high performing Marketing Manager to join us!This role will be focused on translating our product vision into marketing and sales enablement materials, supporting our sales processes and building strong relationships across the organization to deliver high quality Client Service.\nThe Marketing Manager will be responsible for the following key areas:\nTranslating product value proposition and features into a variety of marketing & sales enablement materials\nDeveloping and executing lead generation campaigns across social, web/mobile platforms, email & trade shows\nHelping to drive Sales growth through optimization of existing Sales processes & tools\nCreating customer communication strategy to drive engagement & loyalty\nRequired Capabilities\nSelf-starter, ownership mindset and strong attention to detail\nStrong collaboration and project management skills\nA passion for understanding customer needs and creating messages that resonate\nDemonstrated history of working in a fast-paced environment while delivering multiple projects on schedule\nPreferred Qualifications\n2-4 years of B2B marketing and/or sales enablement experience\nExperience in the wellness or insurance industry an asset\nBA and/or MBA preferred\nDesign experience an asset\nPlease state salary expectations in cover letter.\nJob Type: Full-time\nExperience:\nMarketing: 2 years (Preferred)\nEducation:\nBachelor's Degree (Preferred)" + }, + { + "link": "https://www.indeed.ca/company/Highland-Primary-Care-Network/jobs/Panel-Manager-ebe9bf3a0bd3f206?fccid=9a7d8e8e965ce1ef&vjs=3", + "location": "Calgary,AB", + "title": "Panel Manager", + "company": "Calgary Rural Primary Care Network", + "salary": NaN, + "desc": "Permanent\nRole Summary:\nUnder the direction of the Manager, Quality Improvement and Calgary Rural Primary Care Network (CRPCN) physicians, the Panel Manager is responsible for building capacity for CRPCN member clinics to engage in panel identification, maintenance and management initiatives.\nThe Panel Manager\u2019s role is to work with a multidisciplinary care team to positively impact the health of clinic patients, including those not actively seeking care, through evidence-based preventative health promotion strategies. To achieve this, the Panel Manager helps to design and implement strategies into existing clinic processes by working collaboratively with physicians, clinic staff, and CRPCN health professionals to help achieve both clinic and CRPCN goals and priorities, in alignment with the Business Plan and Evaluation Strategy.\nThe successful incumbent will be based in Strathmore, serving 3 CRPCN member physician clinics.\nKey Responsibilities:\nAs a clinic team member, the Panel Manager will:\nEnable EMR optimization\nLeverage EMR for patient care\nSupport CRPCN evaluation activities\nImprove screening processes and efficiencies in clinic\nMaximize utilization of the EMR and\nEnhance the day to day function of the clinic\nCollaborate with the CRPCN Patient Data Analyst and CRPCN Health Care Professionals\nEducational Requirements:\nHigh school diploma required\nFormal post-secondary education, particularly in health information technology, an asset\nClinical experience in a community and/or primary care network setting is an asset\nExperience and Skills Required:\nPrevious EMR experience considered an asset.\nCore Competencies:\nExperience with health information technology and data entry\nExcellent computer skills\nExcellent interpersonal skills\nExcellent written and communication skills\nAbility to function as part of a team and to request and accept direction as required\nAbility to be accountable with minimal supervision\nAbility to problem solve\nWorking Conditions:\nClinical office environment\nValid driver\u2019s license and access to a reliable vehicle\nReporting Structure:\nDirect \u2013 Manager, Quality Improvement; Indirect \u2013 Executive Director\nAbout the Calgary Rural Primary Care Network (CRPCN):\nThe Calgary Rural PCN works together with communities, family doctors and other health team members to do whatever we can help you be as healthy as possible. We are working together to change the delivery of health care in our communities from reactive to preventative by providing services to patients that fit their needs through supports we have in our member clinics, such as nurses, dietitians and other health care professionals. We collaborate to provide the tools and education to empower patients to work on their everyday health needs.\nApply:\nPlease note that only candidates who are selected for an interview will be contacted. We thank all other candidates for their interest.\nJob Types: Full-time, Permanent" + }, + { + "link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0CkZrmoNIfNnv5K6heJNTgcHXgr0H7cYcF0-Q8gfPuoOa1trGKbafX9er2bq1HyxK6texCFGADeX6Xf7xCjR7sMIN9GCW4n2J_FxOB-1Ays93q9kKz1GVX46b2JDcmhxZMWNqzFoCKgIA3JPUIoKOR9Z396nWNPuqzKCYeIdky7ANt-69ImXUweCM5ngVchLXR6IJ8xc2bAcue62Q1X77cZLlcKamSuTH3p8sGvj0Wf5_nb6eT9XcBHqqk6Vo_uraGni73u7XXBoGlbF7Pb-qaL1YViNJd0qRgMt3gDNr-Z06deaXmnMcVdGhExQUsGUBCfrEl8lEbateMSXvdWsuPOCqMscGtCNX8Z9bziN69kJnAtveIJstDvMc9j6gCBu04BGBmCXalWMxvcxnZXu20OsURBDu7gnfW5S5L31QF5yPKaUagTvBpcC82FgHGUikKQr0u7XKHJ4j5_w0d8RCABKse77xA8Gbwz-BDT9yHi0P3cuOXIt9aKf8hBgGYS7C-G7nvWr0ZzVVyoNXX2qb2MoSbF6M8UMByVv27g6jWKdg==&vjs=3&p=1&sk=&fvj=0", + "location": "Edmonton,AB", + "title": "Data Analyst (3 Month Contract)", + "company": "Robert Half Technology", + "salary": NaN, + "desc": "Temporary\nRobert Half Technology is seeking a DATA ANALYST for a 3 month contract (Possibility of extension) with our Downtown Edmonton client. Your responsibilities will include:\n\nPerforming data analysis and validation\nPerforming queries using SAS and SQL to pull data from multiple sources\nMonitoring and identifying data anomalies\nUse of Excel for advanced formulas and data manipulation\nIf interested, please apply to this advert or directly to sergio.ajero@rht.com\n\n5+ years of demonstrated experience with data analysis\nDemonstrated experience with SQL for data analysis\nAdvanced skill with Excel\nPreference for experience in financial and/or banking industries\nExperience using SAS an asset" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=d6c83d29c96a3cba&fccid=3f9409d417250edb&vjs=3", + "location": "Edmonton,AB", + "title": "Data Analyst", + "company": "T.D. Williamson, Inc.", + "salary": NaN, + "desc": "Overview\nAccurately interpret, evaluate, and convey inspection vehicle data to facilitate on-going safe operation of pipelines.\nResponsibilities\nPerforms initial run checks to ensure inspection data meet clients\u2019 minimum specifications within contractual requirements, \uf02d\nIdentifies all instances of metal loss for the inspected pipeline length, \uf02d\nDetermines all pipeline features, fittings and locations in order to provide a comprehensive customer report, \uf02d\nCollates and documents all quality checked inspection data in order to produce a comprehensive overview of the pipeline integrity per client-specified standards; \uf02d\nCompletes assigned online training modules and participates in classroom/workshop sessions to gain experience in Pipeline Inspection Technology Level II and Level II QC material, \uf02d\nAcquires knowledge and skills necessary to obtain the industry standard Data Analyst Level II, in compliance with industry standard, \uf02d\nAs a Level II DA, works toward Senior Data Analyst once requirements set forth in TDW procedure D1306 Qualified QC Analyst are met, \uf02d\nCoordinates with the software development team in areas of fault finding and possible methods of process improvement, \uf02d\nUpdates job tracking methods and monitors own work to ensure timely project milestone completion, \uf02d\nAttends scheduled meetings and trainings to ensure adherence to current TDW initiatives and processes,\nMaintains applicable knowledge of TDW standards and industry practices for use in the absence of client-defined values.\nQualifications\nHigh School Diploma required; Bachelor\u2019s Degree preferred, \uf02d\nCertification level corresponding to a minimum of Data Analyst Level I in compliance with industry standard, \uf02d\nDemonstrated ability to be detail oriented, \uf02d\nGood basic mathematics skills, \uf02d\nGood verbal and written communication skills in English, and/or other local language, if required, \uf02d\nProficient personal computer skills and intermediate knowledge of Microsoft Word and Excel. \uf02d\nAbility to learn new internal software programs." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c36acbae1c17e08b&fccid=09ac3ce4d9d271d1&vjs=3", + "location": "Edmonton,AB", + "title": "Data Analyst", + "company": "University of Alberta", + "salary": NaN, + "desc": "This competition is restricted to current UofA employees; internal candidates will be applying.\n\nThis position has an end date of 1 year from the date of hire, with the possibility of extension based on availability of funding, and offers a comprehensive benefits package which can be viewed at: Faculty & Staff Benefits.\nThe Department of Pediatrics within the University of Alberta is one of Canada\u2019s leading academic pediatric institutions in medical education and pediatric research. We also work in conjunction with the Stollery Children\u2019s Hospital to provide leading edge clinical care. We are dedicated to the advancement of child health through the delivery of exemplary education, research, and patient care. Further information on the Department of Pediatrics can be found at www.pediatrics.ualberta.ca.\nThe Biostatistics Consulting Group (BCG) provides biostatistical support and advice to researchers, clinicians, and trainees aiming to conduct high quality health-related research projects. The BCG ensures appropriate research methodology and data analyses to support high quality research. The Data Analyst will work under the supervision of the Director, Dr. Rhonda J Rosychuk PhD, and will be responsible a variety of clinical and epidemiological research projects by providing statistical consultation and service.\n\nDuties\nAssists with data collection, data management, and statistical analysis aspects of projects under the supervision of the Director and Biostatistician\nAssists the Director or Biostatistician at BCG in the identification of statistical services and solutions required for a research project\nProvides support to the Director and Biostatistician in preparing a statistical analysis plan that is appropriate for the research project\nPerforms basic statistical analysis tasks including basic and multivariable analyses as required for the study and analysis plan developed by the Director and Biostatistician\nPerforms literature searches on statistical techniques and computer code as directed\nDevelops computer code for data cleaning and basic statistical analyses; ensures that code developed is accurate and error-free through validating results\nReviews code created by team members to ensure quality and share programming strategies\nAssists the Director or Biostatistician at BCG in the calculation of sample size for new studies\nPrepares data for scientific presentations, research manuscripts, and reports as directed by the Director and Biostatistician\nPrepares documentation on project activities and analyses; summarizes data cleaning issues, data manipulations made, statistical techniques used, software/code prepared, and results obtained in written memos\nEnsures the statistical results produced are of high quality and error-free\nQualifications\nMinimum of a BSc in Statistics, Biostatistics, or a related field; MSc preferred\nMinimum 1 year related experience in statistical consulting for the health sciences\nAStat or PStat accreditation is considered an asset\nProficiency with statistical software (SPSS, Splus/R, SAS), reference management software, and MS Office applications (Word, Excel, PowerPoint, Outlook)\nExcellent communication (verbal and written), interpersonal, organizational, problem solving, and time management skills\nAbility to work in a team environment as well as independently with minimal supervision" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=c06088307d8c2ce8&fccid=38c6cd539770f252&vjs=3", + "location": "Edmonton,AB", + "title": "Data Scientist", + "company": "Granify", + "salary": NaN, + "desc": "Granify is a rapidly evolving technology company at the intersection of e-commerce, machine intelligence and psychology. We are building an industry-leading AI-based personalization and optimization platform for online retailers wanting to create a better online shopping experience for their customers.\n\nDo you want your work to have tremendous impact? Do you thrive in exploring vast amounts of data and extracting actionable knowledge out of it? Join us and you will enjoy a bustling startup vibe where everyone has fun, cooperates and sees the impact of their work. We will support you in your growth and provide learning opportunities and mentorship. You will work with an experienced, intelligent, and driven team that is highly cooperative\n\nThis position is full-time in Edmonton, AB, Canada. We welcome local applicants, as well as any Canadian citizens, permanent residents, or eligible international applicants willing to relocate.\nWhat You'll Work On\n\nAs a key member of our Data Science team, you will work with vast amounts of behavior and transaction data, and design and implement algorithms which predict e-commerce shopper actions and needs. This includes - but goes well beyond - recommendations. We have access to and act on millions of shopper sessions per day. This is an amazing opportunity to design algorithms which will be responsible for helping and influencing real shoppers across the world in real-time!\n\nTech Stack : We are using AWS cloud and the ML stack includes TensorFlow, Python, Spark, Tableau, and Hadoop. We have dedicated Data Engineers and Software Developers who provide support and tools needed for research and help with implementation of research outcomes.\n\nAs a Machine Learning Specialist with Granify you\u2019ll:\nDevelop new and improve existing ML models that guide our interactions with shoppers\n\nDesign and create AI based tools to interact with shoppers\n\nAnalyze, interpret and use machine learning and data mining algorithms on the enormous amount of behavioral and transactional data\n\nRecommend new experiments supported by your findings and research\n\nDissect online stores\u2019 shoppers data to identify opportunities to increase conversion, order value, lifetime value, and customer delight\n\nWrite code to implement your experiments\n\nWork closely with our designers, developers, creative prototypers and account managers to bring your new experiments to life\n\nSolve a wide variety of complex problems as they arise that will often require significant analysis of our data, research and deep thinking\n\nLead brainstorming sessions with your teammates to determine opportunities for improvement and experiments\n\nYou Are...\n\nSelf-motivated, hard-working and passionate about building things\n\nExcited by finding elegant solutions to complex problems\n\nAdept at brainstorming and creative thinking\n\nEager to ship often & iterate quickly\n\nComfortable jumping into an existing code base\n\nEnergetic, personable, with strong communication skills\n\nFundamentals:\nMSc or PhD in Computer Science, Statistics, Math, or related\n\nProficient in at least one programming language\n\nDemonstrated ability to apply statistical or data mining techniques to solve real problems\n\nAbility to organize, interpret, and analyze large amounts of data\n\nAdvanced skills and experience in machine learning and data mining\n\nKnowledge of various ML and statistical tools and libraries (e.g. TensorFlow, sciPy, R, and similar)\n\nBonus Points:\nExperienced with Deep Learning\n\nExperienced with recommendations systems\n\nExperienced using shopper data\n\nKnowledge of distributed computing frameworks such as Spark\n\nExperience in online advertising/marketing analytics, behavioral targeting or web analytics\n\nHands-on experience with Tableau\n\nWorking at Granify\n\nWith offices in downtown Austin and downtown Edmonton, we\u2019re working to create a collaborative environment where you can do and be your best. Together we\u2019ll be tackling incredible challenges, driving customer value and innovating online retail solutions in 2018 and beyond.\n\nGranify is an equal opportunity employer and values diversity. You\u2019ll find limitless opportunities for growth, development, and career progression - the only thing holding you back is you.\n\nDid you know? Granify is backed by early investors in Facebook, Uber, Twitter, Airbnb, Paypal, Pinterest, Palantir and Yelp. Wouldn\u2019t it have been great to get in at one of those companies as they were taking off..." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=479921bd7512e424&fccid=b909eaba32633189&vjs=3", + "location": "Edmonton,AB", + "title": "Data Engineer", + "company": "Dotdash", + "salary": NaN, + "desc": "About Your Role:\n\nAs a Data Engineer on the Commerce Team, you will integrate data from a variety of sources and surface it in our reporting platform so that users can make data-driven decisions and derive insights. You will also provide data analysis, reports and dashboards to your team and Dotdash as a whole. As a Data Engineer, you will facilitate the free and open use of data across the organization and encourage data culture through weekly meetings, outreach and technical consulting.\n\nAbout Your Contributions:\nAnalyze raw data to answer ad hoc questions\nMap business rules onto our raw data to enrich customer reporting.\nBuild reports and dashboards to drive insights\nWork collaboratively to solve data challenges for your team\nBuild and maintain data integrations\nFind ways to use new and exciting technology to solve data challenges\nAbout You:\nProficient writing SQL queries to analyze data\nExperience with a BI reporting platform (Looker, QuickSight, Tableau)\nStrong analytical and problem solving skills\nExperience building data integrations with Python, Spark or Java\nComfortable with the Linux CLI\nLooker and LookML experience a plus\nAbout Us:\nFor more than 20 years, Dotdash brands have been helping people find answers, solve problems, and get inspired. We are one of the top-20 largest content publishers on the Internet according to comScore, a leading Internet measurement company, and reach more than 30% of the U.S. population every month. Our brands collectively have won more than 20 industry awards in the last year alone and, most recently, Dotdash was named Publisher of the Year by Digiday, a leading industry publication. Our brands include Verywell, The Spruce, The Balance, Investopedia, Lifewire, TripSavvy and ThoughtCo.\nDotdash embraces inclusivity and values our diverse community. We are committed to building a team based on qualifications, merit and business need. We are proud to be an equal opportunity employer and do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=8d9702ebbe2d32f9&fccid=89918cc9490b4093&vjs=3", + "location": "Edmonton,AB", + "title": "Coop Work Experience Student - Project Assistant / Data Analyst", + "company": "Alberta Health Services", + "salary": NaN, + "desc": "Temporary\nUnder the direction and supervision of the CPSM Project Leads, within the Business Operations & Systems Support area, the prospective duties are as follows: Analysis of contracting, purchasing, and supply chain data, including transaction costing and their downstream financial impact. Compile and analyze primary and secondary data from AHS\u2019 inventories and supply chain areas. Process mapping and providing assistance in evaluating processes to identify opportunities to improve and streamline CPSM\u2019s processes and procedures. Documentation for all work completed, compiling and reporting on findings and presenting results to initiative stakeholders. Development of operations reports, key performance indicators (KPIs), data models and other analytical tools. Other duties as assigned. ***Please Note: This is an 8-month coop student position***\nClassification: Coop Work Experience Student\nUnion: Students\nDepartment: (CORP) SUSTAIN & BUS STRATEGY\nPrimary Location: Seventh Street Plaza\nTemporary Employee Class: Temp F/T Benefits\nFTE: 1.00\nPosting End Date: 29-OCT-2018\nDate Available: 02-JAN-2019\nTemporary End Date: 30-AUG-2019\nHours per Shift: 7.75\nLength of Shift in weeks: 2\nShifts per cycle: 10\nShift Pattern: Days\nDays Off: Saturday/Sunday\nMinimum Salary: $16.00\nMaximum Salary: $21.00\nVehicle Requirement: N/A\nRequired Qualifications:\nApplicants MUST be enrolled in post-secondary cooperative education program and a copy of your current University/College transcript should be attached with your application. The following is required: Excellent critical thinking and the ability to apply knowledge to complex business scenarios. Demonstrated written and verbal communication skills. Professional demeanor and ability to relate effectively to various levels of the organization. Intermediate (to advanced) computer skills, including experience with the Microsoft Suite of applications. Ability to meet deadlines and effectively manage time. Copy of current University transcript included with application. Other Preferred Qualification: A supply chain management-focused major or minor would be preferred but it is not mandatory.\nAdditional Required Qualifications:\nAs required.\nPreferred Qualifications:\nThe following is not required but would be beneficial: Completed courses or work experience in the healthcare sector and/or knowledge of healthcare supply chain management. Understanding of Oracle, SAP or other procurement information systems. Understanding of MS Project or Project Management Tracking Software. Prior experience or courses on supply chain management and analytics; financial modeling and managerial costing; project management." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=3497e9d5a8d77bb2&fccid=89918cc9490b4093&vjs=3", + "location": "Edmonton,AB", + "title": "Coop Work Experience Student - System Analyst / Data Analyst", + "company": "Alberta Health Services", + "salary": NaN, + "desc": "Under the direction and supervision of the Business System Support Manager, within the Business Operations & Systems Support area, the prospective duties are as follows: Primarily assist in implementing enhancements to the Contract Lifecycle Management (CLM) application, including data migration. Work closely with colleagues, developers, testers and a variety of end users to ensure technical compatibility and user satisfaction. Conduct system testing and end-to-end testing of designed solutions and drawing up, supervising and documenting testing schedules. Aid in trouble shooting by identifying the cause and document the solutions as they arise. Provide corresponding training material such as Frequently Asked Questions, eLearning material, etc. Perform data analysis. Other duties as assigned.\nClassification: Coop Work Experience Student\nUnion: Students\nDepartment: (CORP) SUSTAIN & BUS STRATEGY\nPrimary Location: Seventh Street Plaza\nFTE: 1.00\nPosting End Date: 31-OCT-2018\nDate Available: 02-JAN-2019\nTemporary End Date: 30-APR-2019\nHours per Shift: 7.75\nLength of Shift in weeks: 2\nShifts per cycle: 10\nShift Pattern: Days\nDays Off: Saturday/Sunday\nMinimum Salary: $16.00\nMaximum Salary: $21.00\nVehicle Requirement: N/A\nRequired Qualifications:\nApplicants must be enrolled in post-secondary cooperative education program & copy of your current University/College transcript should be attached with your application. In your cover letter, please elaborate on your experience with VBA (Visual Basic for Applications) & SQL (Structured Query Language) if not explicitly detailed in your resume. The following are mandatory: Proven experience with programming & query languages such as VBA (Visual Basic for Applications), SQL (Structured Query Language), & relational databases. Demonstrated advanced knowledge of MS Access & MS SQL Server. Experience with advanced features of Excel such as using complex formulas & pivot tables for data analysis on large data sets. Familiarity in building reports & data visualizations. Ability to work in a team environment & support collaboration on team initiatives. The candidate needs to be detailed, analytical & have problem solving & investigative skills. Willingness to learn & adapt easily to change in the workplace. Ability to meet deadlines & effectively manage time. Professional demeanor & ability to relate effectively to various levels of the organization. Demonstrated written & verbal communication skills.\nAdditional Required Qualifications:\nThe following is not required but would be beneficial: Completed courses or work experience in the healthcare sector and/or knowledge of healthcare supply chain management. Thorough understanding of Microsoft Office Suite applications such as Outlook, PowerPoint, Project. Familiarity with eLearning tools such as Adobe Captivate.\nPreferred Qualifications:\nA Computer Science-focused major or minor would be preferred but it is not mandatory." + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=5f2106672a67fc56&fccid=8295f0911ec08bde&vjs=3", + "location": "Edmonton,AB", + "title": "Data Analyst (3 Month Contract)", + "company": "Robert Half Technology", + "salary": NaN, + "desc": "Temporary\nRobert Half Technology is seeking a DATA ANALYST for a 3 month contract (Possibility of extension) with our Downtown Edmonton client. Your responsibilities will include:\n\nPerforming data analysis and validation\nPerforming queries using SAS and SQL to pull data from multiple sources\nMonitoring and identifying data anomalies\nUse of Excel for advanced formulas and data manipulation\nIf interested, please apply to this advert or directly to sergio.ajero@rht.com\n\n5+ years of demonstrated experience with data analysis\nDemonstrated experience with SQL for data analysis\nAdvanced skill with Excel\nPreference for experience in financial and/or banking industries\nExperience using SAS an asset" + }, + { + "link": "https://www.indeed.ca/rc/clk?jk=69e0021e62ddd012&fccid=38c6cd539770f252&vjs=3", + "location": "Edmonton,AB", + "title": "Senior Software Developer - Data Team", + "company": "Granify", + "salary": NaN, + "desc": "Granify is a rapidly evolving technology company at the intersection of e-commerce, machine intelligence and psychology. Our reach is growing exponentially; in the last year we processed more terabytes of data than in the previous five years combined!\n\nWe are building an industry-leading personalization and optimization platform for online retailers wanting to create a better online shopping experience for their customers.\n\nWe\u2019re searching for a Senior Software Developer to join our data team.\n\nLove data? Massive amounts of data? At Granify you can build pipelines that reliably move it all, while finding ways to allow products to access it in a reliable, timely, and scalable fashion. Love tackling the inherent challenges of a fast-paced, evolving tech industry? You'll get a chance to design, build, and improve how we collect, move, and use the massive amounts of data that come into our product, helping take us to the next levels of optimization and transparency .\n\nThis position is full-time in Edmonton, AB, Canada. We welcome local applicants, as well as any Canadian citizens, permanent residents, or eligible international applicants willing to relocate.\nWhat You'll Work On\n\nWe capture and use a wide variety of behavioural data for hundreds of millions of online shoppers. As a data engineer, you will be involved in making sure we have the best ways to capture and use this data, working closely with our data science, product, and business analysis teams. This knowledge will be used to build machine learning models and feed into our shopper facing products in real time.\n\nWe are working on the AWS cloud and our data stack includes technologies like Rack, Redshift, Redis, Spark, and Hadoop (AWS-EMR). We are looking into further adding new components to it as we plan to speed up our analytics and ML training as well as ingest new data types and enable real-time access to it.\n\nAs a Senior Data Engineer at Granify you'll:\nTake a role in shaping the architecture and infrastructure decisions and operations that drive our applications as we scale up to a terabytes of data per day and beyond\n\nWork with the software engineers to come up with the best way to collect, process, and store the terabytes of behavioral web data we absorb\n\nBuild and manage batch and streaming data pipelines that efficiently move data around our ecosystem\n\nWork with machine learning experts to enable reliable and fast access to data to train machine learning models\n\nBuild tools to extract data from various sources to enrich the data that we collect\n\nWork with the business analysis team to figure out the data we need in our data warehouse to perform the analysis and create internal and customer facing reports\n\nParticipate in code reviews, sharing knowledge, feedback, and ideas - teaching and learning, it\u2019s a two-way street that leads down the road to improvement\n\nYou Are...\n\nPassionate about finding elegant solutions to complex technical problems\n\nAn advocate for automation and data quality assurance\n\nCommitted to mastery and craftsmanship in your work\n\nCurious, constantly looking for better ways to build things and willing to learn about emerging technologies\n\nPositive and personable - we're all tackling these challenges together!\n\nAble to communicate with clarity and brevity\n\nFundamentals:\nExperience with distributed and scalable solutions in the data ecosystem (such as Hadoop, Kafka, Cassandra)\n\nUnderstanding of a breadth current data storage technologies (such as Cassandra, Postgres, Redshift, Redis) and best data management practices\n\nStrong SQL experience and experience with ETL methodologies\n\nStrong scripting and programing skills (such as Python, Java, Bash, Ruby, etc.)\n\nWilling and interested to learn and work with new tools and programming languages\n\nSource control (Git) and familiarity with unix command line\n\nAccustomed to working with a dev team in an Agile environment\n\nBonus Points:\nHands-on experience with various AWS services\n\nKnowledge of modern data processing frameworks (such as Spark, Flink, MapReduce)\n\nPractical experience with building and managing scalable data ingestion systems operating at the scale of hundreds of GBs+ per day\n\nAn interest in machine learning\n\nWorking at Granify\n\nYou\u2019ll work closely with an incredible group of the smartest, most interesting, genuinely good people around. You\u2019ll work hard, learn quickly, and have plenty of excitement. You\u2019ll also get a first hand view into the rapidly evolving, exciting intersection of e-commerce, machine intelligence and psychology.\n\nWith our continued growth as a company, you\u2019ll find limitless opportunities for growth, development, and career progression.\n\nDid you know? Granify is backed by early investors in Facebook, Uber, Twitter, Airbnb, Paypal, Pinterest, Palantir and Yelp. Wouldn\u2019t it have been great to get in at one of those companies as they were taking off..." + } +] \ No newline at end of file diff --git a/backend/data/indeed_jobs_links.json b/backend/data/indeed_jobs_links.json new file mode 100644 index 000000000..12fddb85a --- /dev/null +++ b/backend/data/indeed_jobs_links.json @@ -0,0 +1,1470 @@ +[ + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Cgq76qs9x1riGBjmQsnfnucrUKOVfT5Pe-A0xEygSLhBTTeW6-TU02X5l9SLOdv8zo9N9VeuS1eEwiZmeY9lZQfyzXsKFgrZOV6f55uUG78bZcE84WVt9GJaJDwx-bJ-3vFUbi3QlF31-sfo7tYPp5SbzSd2Su-FZHwif7NOb748CbV79vrdvpkTeK-H3oBVEOMV10_aO8nOST9ry84j9ha8OYZNn154KylEP2TCKhiTeTGDd7_UUmj0qFVoe6gZtfd8EkyoOlxEkai8vynfhy98fsuDTyiIp19MeMgI8tf88q4p1RrY_cwWHA9zUFIw6SdKbxVptl5mHj5_Xfin7whHbsfjdTX7NoaubnMUlVFZt2sVV5IcQxJUms03rpG36dKIuu7ZglGW-skCFf0l-QmlxTLd2TbUIK11SBLS0T_Ii8qaHa333Bwz1ddz9Knfq07Ms_hL3Sa6jkFv7NUpwdpevYL-wSGYlZ7p3v_Hn6Oth1LyZbVNhnBmUNhwcmHfeihqPnsDMb2POz0PL9o24uNdBJTbv80ungoRm45yvZzYosYcBj8gEzlFMp3bgr2a7sqW3iz4q5ooj5cG1Pd9avUgh6O76w_OTusDodQNz1HPOe_tMjOK-s7E2DQPgcdCyYbL4Z4dbvRbh4bOims5p-iz73Lpe5N2--_f6C4vcBkhXtqKM6qpc-&vjs=3&p=1&sk=&fvj=0" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BHCnlRI-Pt-50D52l4B9_F9JgCN9-Ilsx4somBkaRx6j4tvsXC5BoY6_XjGqepqV137EUOOj-2w2BdI64lL0mpW8kmxICums6JRT1FEOgyUuNYJDVMv4p2Esoig2mR0-yIfJ_i8wejluNuJxPYkv5C0I73Log3Xg8BVRWZyHCgKoog20oBwEkm68wqdce9uPaxjgjioWQ3sz1prxGxv_kTStWMfzr10V36RjcHQtYnx45y2Sbj_PWzTVpXKkGdfSx86z16d_Qd4orH1mb4UoBIt_KdE6vk5NBr_pBUoxfTzsdM0WEexGd-nz4ODQE_OtqLm4hWxscCAx_O80wzKPMwrWhDNwtftXoEXS-JmfrDVwd1sdz78Xeic1-waOot8Ms5F-NXyUFivSwKHN-WoXZ4fEqY0iHPlzC9BZzIX2qtKMybqNm4co7sQy2s9sM_gblqoPpjMpJZPayxUTt2dPIk83B9dEYpkKWImYyCOJBzTBxBvdm3h798&vjs=3&p=2&sk=&fvj=1" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Cgq76qs9x1riGBjmQsnfnucrUKOVfT5Pe-A0xEygSLhBTTeW6-TU02X5l9SLOdv8w2Re459KlVD7kAiL_tqMsq1ShAOqYXRpqHnYppsKF8tIRSibkGzgJhv-J3S6_28qjPSB7pCrd9O-HzOtIJqdDeGaFowGJeFyatTuXImZJKkvSQObWfnShVBQhDpsgSq4EKX_md62qf95g-K6wchqYAxeCd_qlPOWbP-NSciGK4k7l0sk5wV7oL_YEeNUfsJncOKLJZ91M4Lfzs7gjCjmFkWp3TmMlekIs4MDdWz_sSKfc1cE9ePgM8O-EHenoNc97-FMpij1UDc_0XcgZO2gYEIboVnGf06oEpN64ukMAvJCHcIFekdGBaAp-2oDYECAYnq0pOT_WlZn3Ry7nJqSegK0J2QgZviH_37xMpHhudrZ9S7WZ7iooTjRn1pAKhRy2kPwmB7fY0TCMe0HIhbusMQR9CuVYj2y1GNFFmJznWDfZGalq2RIZBC1D4-wUtwhndWQciH4OQYivCuhqb8LRG-MGoMwt4a67IuZUIsXO2dia2_xQhiKbLxFCfHOeFh87DLvDvwu0ynOzxgeOniXt9S-rUSJr4RsaA8rjUWl7vN2punN4l_0FiDTpcq14niaN0h_9hhqPyZQWytNX5ggcdC0Yd-r1Yu6lVyA_tY2lCODUUyM0bYwaC5DTmiuZXJD0=&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Cgq76qs9x1riGBjmQsnfnucrUKOVfT5Pe-A0xEygSLhBTTeW6-TU02X5l9SLOdv8zwBxIzhhlbZpkKTnDOTigvCt_-vBe2RGtXpgUsvYqM4jEqgFPbpLmn0GD_A5yHbLwDspDJPG-W40_rTQeYoshLHJYC4UuheU_2sKWV-WL19qodlEMsTB1z9Zs1HEKhT1elaEajWuf07Enw4TR1kgxEIa9sqqbH0KapIqJEfzHcO7Yzz9vbPrQ5cAHzjvuVy2Y4OAghWKnAmu7p5H5yyQNKRntgGDmGwVPfj-FO9eTmqGLGAzJuMytrL98jM8d4W980FbTNAiyFxIwyHdQ04tsVfu9mO5-saltOaH8yedcg9AWR2ABeL16LIoRJEqmx4wxmYN1Sm6BpW0ZPZpd5A5k8ImNO6rgFA8HoXL0b7ZXe18I5dSiZ6HsFw43eC9c1nu9DlrBAGCsu_1tTHAanRLOkPUNfVD2F7isjLTcy9RVLTFXSaN3xAamZ0s93wVDeV3sOj0JzhTT5XjAN7sYhODG5RUq69S1Y9r3Fgd3pAI6pE5-2f_pl85wEiTTYqqx3NAGVDxfwo4swoZGnT-6l74dygdHlxXsUEHQpJ8IWvBNN5L1_d-9W1J040OWX5UazA4J5-0rJaHcLrkbwErkNVlnw6n3ZwidUJzhRpkLsJztdB3ONsupn-XmaFV8TdUdiX74=&vjs=3&p=4&sk=&fvj=0" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=64292a26b2566147&fccid=15bf0d913760cb97&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=f8d357bd69198dc3&fccid=a2adf92b385a0e59&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=4be5b57b97af7350&fccid=fe2d21eef233e94a&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=4bffb05010e75572&fccid=e04af1524072f597&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=bdb6d2d21223c4ef&fccid=0e89af315fb1f60f&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=0b3632cd4bc797f4&fccid=bcfb39af889db96e&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=fa3469d27b419859&fccid=8050ea68bc1f1986&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/Form-Athletica/jobs/Data-Scientist-5dad326c206d8b53?fccid=3c003f78ca8283ac&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/REBCA/jobs/Senior-Data-Engineer-3c8bffbec9bfede9?fccid=f5906d665e18e186&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=1517e0b3bbf5f9d8&fccid=97b60a8911a47812&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=aeaed95159b8f2ca&fccid=f31ab15e49b41186&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=310c88e30cec3af9&fccid=5012f98464fbca70&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=2b943a97c4257feb&fccid=10b5c722d846df43&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=768d11c7af0fab9d&fccid=c26d104f25f1364f&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=4b27a81685e26637&fccid=3babf6ec6b04c340&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=8bd976ac2611971c&fccid=57654f228eb0dab6&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=f8014320a19d6bc5&fccid=7b7909227bb8e2af&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?cmp=BC-Centre-for-Excellence-in-HIV%2FAIDS&ti=Data+Analyst&jk=01e6338cbbf358b4&fccid=975a6cc122de694c&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=a8a6de0753239320&fccid=3dbbfe2513485c9d&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=78dfbdda046c1491&fccid=e3cac5d9004ebbd4&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=a08bd1b161ec2969&fccid=617d7f961cfcf54a&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=b29f95c6615b277f&fccid=f66f721a44de3765&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=bbf2f2582afa054d&fccid=5fb7bb595ce3e3cf&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=654b0f84f03f3689&fccid=de702c22a3b62c95&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=1cb11071375b0262&fccid=3dbbfe2513485c9d&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=39ec45c76602ede9&fccid=c26d104f25f1364f&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/VMC-(Keywords-Studios)/jobs/Data-Engineer-6cc8e6ed3b3f0375?fccid=703901107d985753&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/Cumul8/jobs/Data-Science-Software-Engineer-9d921dde7c044f07?fccid=36c763ebdf78a8b1&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/Ecoation-Innovative-Solution/jobs/Data-Engineer-d0aae881d92c4271?fccid=1775d6ec6cfce0bd&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=236221bbffe731c5&fccid=89ea848be3fa4cf9&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/intellectfaces/jobs/Data-Engineer-Big-Data-Developer-26fadf56428127b4?fccid=b2c86945db726617&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=bba520d206c7bee3&fccid=9e215d88a6b33622&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=79199063508bc204&fccid=b0fba60337a02c72&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=e4d37b521d4e4f91&fccid=641199101caf07fe&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=e1adddc995aadee5&fccid=a70da4ce69476a23&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=bfccd941ed7c5b81&fccid=c6d2a28efe7e3280&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=8f4100525e26cd57&fccid=1074c377135e4e8f&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=ee3f564164d2074c&fccid=e671f6b2e57dc9e3&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=757ce5f6977f2a97&fccid=be4f0a335d8eebed&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=4d8e3515c624d7a3&fccid=1468513ebc10d6b8&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=1b6f98fb67b0e587&fccid=1468513ebc10d6b8&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=cf67382b7734dea5&fccid=ca6562c8f6a697ad&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=b197c98dc560a552&fccid=1dcb6e55736b1e71&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=07a223499ee23046&fccid=e98b37c86f8eec83&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=fd6529b54d58e5e4&fccid=a80fee72384b4211&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=c8ed81a6941693dd&fccid=0bc2afe8689f3cc6&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=bf2ee5acddee17d0&fccid=c467efa14d7654d8&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=d91c36e0181dfebd&fccid=97cd3e8cf73f8391&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/company/PNI-Digital-Media/jobs/Tableau-Specialist-e9f95a0a48565554?fccid=7f5120e40ea6d382&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/rc/clk?jk=0bf5a67d2d677439&fccid=c6d2a28efe7e3280&vjs=3" + }, + { + "location": "Vancouver,BC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0D4_ZmNj5BvjIrs43CESlSX_bt8n2dh_vtkkxnGcsd4Y-0fH9lqkD2lj6pMRrVuS4jR-QYAPzhOnFW9tdZvLxsyfQg6svm-vl5cpEGGBjAJYtbYfB5f25HEsBGKAIMmDRFBeB0F6Y84c6CMrxG2GYxtBzBnZtMqsO9zQJQrEZ14XJHcvyNUWchq6ndjMRb7q3NeP3-37BpYZyuAJCnfIAv1qgu7Ob6_aV7epqWmpg91arwnDKbC34ilKg-2c3E3oIKAuOYI56Hqf3YRRFn2xUtrJUe4EiVQrY3OS2hbkMNEM-01INv5R4VX82f6i-aAhA-pqTGYx6J11L177jDBj2BlNSPlz5vgJR2ZJ1oy1R4V_tXVP_mf5zhZ4tPfBdxqQclhXKjYRk0hW7brOKZ7iCC3HfYUWKEXR5Dgm6G_edrrL9NFi4u_JnjGtm46H0BgGUbi1V1-lWN_7X1tIdTiwns-_p-yq24SMP4=&vjs=3&p=5&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrIC7ba-c9WBCFccyPj-p-NVsbRmEJW59M_8u4WRwgk-ycwwrtTu2I9Dde4d5HvHJTKL6YEpVAaMLAPurcD6Mu6DGOPaaxQza-Cac7qhtuA-I8kr0K7yUn5viSVTJPMhhM793Dh2sTfuKcajkfG3MglsouV1sYsynI7AchwJziP1YsmkTSFBioQJZQEsp0bHDveP-Ipd-JHJGKBeUyfmC7dps8ZfakToHI5GIoQtJWycvgrd5YQuwdt1P5QwH0_ikJ8JtFJuCAvY4UAM6aei7rHuPgsXuX1mmuUdUSkuB7rXQQEuyzsgX0wu6dxTEYcOHr6FD-rqh_JTEkSyae744yoEuIOVXFKlbnkfuDaaNUVuoimiXCLDi0H-U_h1PXqJ7QyrBHVzGzt8ogpJXM5nUYU0BCBK2kJuGYY42P41HJ2rbOKD6p98aezhaRpkzOllJmj6JrjV6XEq-6g9U_UTfp1wY58qFqRZmMQyULeLeGTv9fuv1kLhGUULZJPERkwwqw8PmG1FiWLCoPLW1_GlYXAIFEN4pETg85YPDx-lwtw5tZQ==&vjs=3&p=1&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aqmv_5JD5v6gg1ICRL12VY6BolF0XAUkQtat1DEGOKAXfQ1dVUDIPnIZ_mCCh7xlyQW7DAuc1kdzDGEwToHb14mp3uMqX0pcouZuLjYghzjGEEZCxVwhcSYtd9FBhxZEFmSBw17mleeeHpUQJadVhpVkLEJ69jQ1F4IBvMjPekE3zHkIVo1PiUbN93MwjyieGnHvgbTSiDRRIaKbFODxQROSMgEFLqoslUSzqpIc7PE58RkSxX5RH85kBv7EISOGEGKIQvHOK_j5u2fCnWXJoBSfsQGFyeNme1FYxqWTIFA5cNtFq1lNRKQxb_8QOlUkiNjm9dxteMzW4MHFmYxSZ-DThFsZ71uXbY2M-XxopqHDCz56TkkNc_89vquKC5EWrwKfXyYhuFWF1j7LbhVQn1wfGlxVSbcR601L1EBjAucsLELAddKrBI9SKBGC3-VsnYjb2ntUzdDzUBuJqUJA5TqfnQ2u4CpnRw7hTfM_fC0kNTWTv4iShhEMQxX-sUAWckOu2ftsEv68CrqP4AXK2K3V2f_KVklDX2BqwGnLV6ybsfWhFDmAYKPjA9YbRlREONND4JBCja9at5edJLvnG2pvjtDKJTKTOw-aVi3GpUFhrlE3BMRQ5RNHfB5GJKlFvhT3y4-GkBYRbqV8YvFE5PsdyjykVhtoheCNh7Mz_oAF1IW-2BW-goW6WJrCSv_ERT2b25d-ScP4Ib2_Q8RCTCcy6p1lY_uPvsZuScUp9h6Msd9QB8aq3O1uUW62_LYQjzcBG2--4ee0fNFsfdCOJlehxci14GFe0CRhYzmtMZX6O3G_S_Ht1cT4ZPtXKkPWLaLdBkhwPBZRNDIyQpuormr4gTsCO6GpOGUN1ch-ClCT6NFpqERUczjK8AZ7HFkKfn04nY_t87WDvL7yG6qbS0zqbUqmE8bbLJEiZ2YNVoJLPO_uwvqLrK-cDLcmryR8z-Q2pvQQrau3Gf2gzpwB5ugqLPG7xYgckJ3VeLZ-5ovHL1UwOsbuWM1lDSngF-_n_s8ugBIUlh2JwTops2CZI5XGJEyXA9fWYhbqo0es6MrF02a_vf8RH61hI3pApivcIIszRf7uGip1jlMHEaeoG-qRRIXzFZXVLDydMl49iwIJ9Zg3Fxj2ATjo3oQy5ZBzG5BwyhtzU6Ta2Y1bkDPXqNDNl5a0iRdAE=&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0COoolTsXB8vgD26pocS49sLoaRpdRFIYc1SABfeznfFYR-XK6zswQWSrSk6g1UsfQfIIOgKoc648tBK-hga4XarSWFtLwR-TndC6Llr2JgmofY29KDz572hZ_xQm-FdjHHqZEHuiumvL6UxICwmAUndhqLgFjPVm7lv176Kw7zK3LeeHqPfSWbwLur7WrWtep0pjNdj4MKuhmnlyIj16aOgr2cBYy0F5hPXkp7fnkodRA1D9qZETXL_jmvdXQGBMsgK4X6MsTGY4BsEEHquAxx4Jq1YWHoiLRnhz_0NQFE05xD_uUDDmg6x_o8kZEQIes6ljZPmkqEBMM9IVggNZxkQDjRUXUQmVuGKBWS2hViB9T0thUfp22efkeWfjDhrctL7ojmlKSPBP6cjwWhbswhPO9fd5P46bEhySbzryhCaexAwvz4njFJSHk8b2T1pcITGI4-F5uoIXGARH_vP4sgjxSaVabeDlRr2umunYAXdVhV9Nsvvrm4oEh3sGDw8hfDOc6ualyxGLH3cBjnl0Q3Mk7pI2kvVjflhkngeGh7kPVC4KuCjJIVBpubkVV3aSismCIqJTvsWxs3VIlJSYFfQRhJr6zNAyrhH4ZohlcdNQ==&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DQxVEylBQjPVYY5XxMAb524uBSITfcXySAY7ZWw2YouHUPke5JzG_7JAG5hSB-rchCrY21FBcUAKH6I8K7N-Qyp8rGoEWycCcEhoxvtLZTu-cpADOW0YsNIDjaCX9TRI9-pIrDOXgdXe0IAkS5O2YG7ciSCoUbeTiUN7euT_u3Eifq0obbIi-1CbPmmH0G-EUcUe9qByA_WZj8QqynpnGmTKE1KpVSB6EhuEsXqXm8VGqGC4-FC66NXVxxCYVye_HbUAMHFGRiXGE6KPvODEiEVufhMaJyH99jxH3roke94wTlu_fDzqHAQOcmBaR--gKOhU3pvuh9BvPFfnSjyrijWtliQ-H8-FZ26KQ9SNMeWZsK-QxEdkSipNPSWLE_bj_zLhNXTx4n0PIVwmhAbMmY0RtbCMr6_niEP8u74EA12sz6RXoJ_G-g7hUogpr7o48qU9EL0AB7lmHGViJi3XP3g3uzEq5pwA5BGstegz21SqlHQ4jqfpmlC1juAk6iIwiqVRsS1HFW0Q==&vjs=3&p=4&sk=&fvj=1" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=326af33ac14114e6&fccid=fe2d21eef233e94a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a908b6f5bd48b32c&fccid=fe2d21eef233e94a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/M.W.N.-Technologies-Inc./jobs/Junior-Data-Analyst-510623ec50ee5c24?fccid=7a3418ec8a1d1652&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=af817b51696bdc8e&fccid=a1664bcdc67a00ff&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=10c92ab7ce750c71&fccid=960d8f54f5a1520f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Audacious-Futures/jobs/Data-Scientist-4f6d0e1c36537248?fccid=0489f5c1c6fea47b&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=61a965e3d31df357&fccid=2f877230f320740e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=ba22ef47275d1ee9&fccid=d7114f1cac8d0711&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=5b59fa9292ff08bb&fccid=883aa815594ccefd&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e22404d0acf974af&fccid=27a9bbc740b2dc87&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Max-Advanced-Brakes/jobs/Data-Analyst-46c4af52db7ed144?fccid=cdbafab8c901add8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=69a5021a2d88c5ae&fccid=883aa815594ccefd&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=cf6f555042b496c3&fccid=33f52aae8805f26b&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=d2b25e71f06108fb&fccid=ac7e12f154c0db00&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c5245f447d02e155&fccid=3a429036b3725efa&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Crescendo-Technology-Ltd./jobs/Post-b6eb4580f40dc35f?fccid=096d74b4b0669f4c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c583d70f2e9b7d66&fccid=9efd73339764940c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=18d631cf9ffc58b8&fccid=34c1e38211e06251&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=6922aeca0acf7abb&fccid=e8f16623c3fdf968&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=bc5cc56c3a5e9d32&fccid=e5595c68b69ef77d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=ba014f9d03e9d3d5&fccid=354f4c12e3c6bd5a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=537ed7cd91034e41&fccid=822bc5d9a49270ea&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=74373c0e5a5dacd6&fccid=362a2d4f1e6a5c08&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=32edf83a485ebe9d&fccid=a3cae3fbb4535645&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=9424c3ae921b6f4d&fccid=bfdac90a7574b77c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=604c1e5812a42d2f&fccid=785af18d53962443&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Systelos-Inc./jobs/Data-Engineer-f00b246f6ba0ee20?fccid=1008778392adf798&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=5febe1f5e2c2fda4&fccid=d4448c192a012f32&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=2ced834dff4095a6&fccid=bfdac90a7574b77c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Nudestix/jobs/Financial-Data-Analyst-2b173187a627876f?fccid=1019a747b633f81c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=4ec9bbd8b4bad862&fccid=960d8f54f5a1520f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c66a52de10aa684b&fccid=537b899e30af3338&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=9c977136e5f64e8a&fccid=be3dbfb6ca2ac450&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a265a8c5c67a4709&fccid=4512634d9e7338a8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=732f51d794141f18&fccid=f31ab15e49b41186&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e97d458f052cb90f&fccid=7e465a3d521b3ac3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a10780f20e8a5bd5&fccid=2525ee368b671cd8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=9748a90825d6fcef&fccid=5522dd7fc3f67c79&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e51c7dcbfc407030&fccid=0f0b3a309345bfdb&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=95f37ceabfcfc15e&fccid=bc30630cfcc120d4&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=54e9c52e8115020b&fccid=98ca38a3c49800f3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c7ff1a2eed10a11c&fccid=711925311d316d82&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=cb284d3e7bc01582&fccid=de71a49b535e21cb&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=b0e65099a7ad8860&fccid=72a4800744ef15c2&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/ADEM-Company-Inc/jobs/System-Data-Analyst-c7d3f6b65e13f473?fccid=78f6eaf3a0a0678e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Via-Advanced-Technologies/jobs/Data-Scientist-21dc830502502ab8?fccid=6af8d52708b997e3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=65b1c48bf5068286&fccid=70687d47d3cdf42e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/International-Financial-Group/jobs/Data-Analyst-07794e2b39274e08?fccid=8c52bdc6019139a0&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1d4e4fecbc783ac0&fccid=94052e10e1796ed3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=347570c97522a075&fccid=354f4c12e3c6bd5a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0CkZrmoNIfNnv5K6heJNTgcHXgr0H7cYcF0-Q8gfPuoOa1trGKbafX9ANYoPeq38xEUxLgqrLxTICm0AQndM6uPcL7PBpgdTZgMMuTdZ8WyOj970M7l-Ouw4RZXFvaWqLBxA-9CmaKizphHNKul6VgKik7STef963aL3wg64Y5I1Keg0EELkmeTcE4Ur316MNOQRPoo4pP1LfXL4GbdSvDAXCwGjQo4IPGS21lcAq9Z9-SRehYTlNyq-CF173wj7m_xOlJ56Qy2yll3kAnei2O6XIzwBTREz0URkWxO0WJaJ5kxLDP9b8wzFsV0CB7OwPPgRYtRWjRza1pbLIdZjxzfkawaG-GsJUfDzYaRE45eO-xKUTKHF9EYBa_jm18pC2PsZ5sWtLIR5fgfgjqsq41OS3O5u_Puw37_64BSl03KN5L8-iIiDeZZxS-9t7_fMUTudfsVcnThDi9-0oiNbCmMF_oZ7RdKfRwsHY2I4Wx4G4wLqbGbBdM2IQdLoXj397i4T-T-ipIRMlkqsulry47dCvnWTbhr07YHeZyf6Cls3f2Vn-kcbIIy&vjs=3&p=5&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR1tZWrQnvDMm93yC_r3XPpMNzNyvjpyIQr6Px0ZLYWPZI_XodfOL4nTVJvb9kxpna-Kim_eccrrbibcYIPnzupatqUH2WnvurYNmwJyydDp-7JgjRjzWXwY1ZpmK3H909oXq3H8EJNRbBLht7V9ewMDd_A5PBJVr25S3HVrOlmNNZ3pk-HVYjKbBjaP7yyh_msVZEUAy4EeIZWSGVNMtfcxf6sESPBWu_dlKy0jw2joCn8Hr3arzoUumblN2exWRPEpe0OR7xbOpWpQKzPqr8QVDLTBR-ymO9Ogy5vhfc4xgVslp2uC-Z7rDCk_81I_FRuGqeUQ-ldrT9AllywqAwt0umLF2_UI4zMO0BSDuSNlR7YEhK1b9Ct90ptAnau0_aQvc-mZMt1jk0GM3Mnw6VDq4PJrsUp8HisaVghwsahVBFH2x1p5n6fGHfM8ggVu1-_RgiPhKM7KYUcrGoGYVQmijm2hdHGUjg7ngXGUR8DDfbqDxOXi05fP4-xNwpvqQArdMSb3BiEIU7L9c07LKVCLd9hMPJfBYM1tn6O4n4qQV7Cevmi5-cj1wczJJGQzieqHzfcg61F3iH6k5Vv2OPEc6rpNc4K3zFopFHYwpeRwJxtw3vDQUkC0nVXchOpDOzPHUGqMM9yunJD7m9L_WatdYn21YLO2shX4aPLW-Jf4N3_lTrfHScB85uLRoxPUVogxz61WRvCjAI7iKEzCschybrKEr_X1RqlICZAOCu-xBF99-oPD6tpodKCEcL3a5ysw8pUQoJU80OexFB0uOYzFAtM_F3hYOau9rtB7nvv5mA==&vjs=3&p=6&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DhEKUvdCKx0uHayhhGdArhclzBPbbmRYgRAr6kXNDNtV7ILrpNIPr_-IzG-6mTRSltgwCeYQBPkE9aMAX5bfIIQ0_yHJStxGc_yzD-hOKGF62GqXNtZVxRld6ycO3tYxfGgKxKMakLyA9h8a5gQAgnXeLcKZhEcP0ZLQd6RZGgLKImIDgiYY70TSiowx2vVm3TlJpRXnCPoy6gJXUAXLPEcrv0GbJn4UEycuFphwI22x3U2d8IjCsDGNR51Jvc1c6oSmn7FYRVAnRNwevr1m4rjXRr-8AsrymxXt9Erfo4CypxVddbNGAVOFzPiw93w4Cuou4Pbk924c0VBgFYmXoQ9OOa2x99CVUgnWTuOQb_SI1jFwbzFid0y0WQJzOGfkyBuowbHu8PT0nZMirCHMXkEYA_5HGzYemVUghaGb4h68VPmlnOJ6m1_1HwUu1YwUkZXhNWl34Rd4nTWmObsLWNSpjQiGKboCxVThZ5fdCXc5Vt1Hy0PNrPHrDcnCSw6YgtG-PV8CahYHh5nmU1gkhompR7zcArlhN-RaxQpccyvSwo9Iv27Mkvu8DlZUFJS80k-Z6YqQs-lQ==&vjs=3&p=7&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DhEKUvdCKx0uHayhhGdArhclzBPbbmRYgRAr6kXNDNtV7ILrpNIPr_-IzG-6mTRSltgwCeYQBPkE9aMAX5bfIIQ0_yHJStxGc_yzD-hOKGF62GqXNtZVxRld6ycO3tYxfGgKxKMakLyA9h8a5gQAgnSfm7kCw3IDEzY65Ydgjc7eUh5is2QUWNKV4n_L8qG0t-R9FPq7w-yvIx4eU__85eID0a7cPdOzI0SpLSLzvMYZ7584k9kQ74YCGT3eCv_16sTDSCCbgwEczZelshgrbJf4JRhdd-oIl5biT-dS4JHlbxMHVrDTWktUrma9ke65Ypn3yIURCmpNNHIZfsGhPT91-InMEk2SypBZOiMR25lwEHzdEI-1Jwh94W6DNT-n_bS6hSLBGs9zDBf0hrZgOFKxGYjekxF4rOAH8vm-ru4BcQuNaNV2vHYo_Z7Hs4lt_s4ttskbzafR-dOH0nW8mbPlNKYyA5TMTJRL_jNndcUTCitF2WhPuH47JlWaNNeKxr-5CBJgzu0OUdtxFRJKgXWVmsZzVeQtIHx1sTXh8F0O7o-ZJx-8BytWHvlR1Tzo8JYqxlijAnpA==&vjs=3&p=1&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0CkZrmoNIfNnv5K6heJNTgcHXgr0H7cYcF0-Q8gfPuoOa1trGKbafX9ANYoPeq38xEUxLgqrLxTICm0AQndM6uPcL7PBpgdTZgMMuTdZ8WyOj970M7l-Ouw4RZXFvaWqLBxA-9CmaKizphHNKul6VgKYKFxE6sVPefVYaXMPEf3VbuayzSpnVavgLR34B-NOZUR9NFnLxlqbA1NyQZa569jmx1F5oD3PnfYleLXuGOzWAOgmW3fFK5iJsX8X7PP9ddtX3sKRRS551sqbAJ2EvbpRALvU1pAa08yYiTmH_X9PEqgzpz8Ao03UICoD4nzj4Q6eczw0vbOeyOzOROBh_kl9yLu8nCyO73t4omiYu7I8IQ_bPYs9_bD3zFE30QJRPFaaUTO9OcJHosxyBH5VD2UJrT8dT7Mw8MYUJL7l2pRxp2YEjOxAUC1Xr9ZmDjF9_OKyb1C7D-H1JSzA44nIV3Akx_Cc2E8oFRwf9S8m0HZV7bLd8TSV_zd39UHoYiYnXBePKmXTY25G1jWAv4jdstbrtR1K-POMQ3zwirxKurm40-398M4mrja&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BsKQI0TTiZKtRv_VHghD1HBRMRtHYRjmEe5OwbA0REBEnOTPkgo6xmW9LNwNtLFg2h7KFWDqxe5fz2ixRSHEAcBLEpHez4iKjvTRg7NV44zqLNsjYuM-DeFTV3sCE5ZUfZgqRCY6-h4c6JdM_mXZP-s2AJM9mN7R43o-DvOZIAGxM_I4NOpPhTdjnfgeWWjIsoohfJcu48Z-gmru7WDObb451nN9PBKuOdcFSTHpoax2XMXx-46nU7yN2fsKcnap9hj1HMFnhFChlZ5eBaBLzKlsx6ZT74DSybnm4m4JpJffYzQf3IqHwzIVa2ccC_teG7n7QsGld5UOjkiRpFCYZ7GfsNLB3kaBtMkW3xdaZ_tDzuFYgCHZkYBCgyWrh0Ue6KuSxEGRC9mMFwfy5XYrJwPMYzhKZR33zoVXOV5FQbTQXRIur9Knaj6Pf3zIebh4qfDtvF_kMclPbSHjIMfSkBIPtZep11RzJ66JSmtsd3PZXGMuVwIa1ddZexRgZtrt-ta2XXUAsA6ZE36WVnmYr_4PrtdrBGDO5i2L8FXdm4DScOSC9M_5pg4lrPO-cR1L77Ba-3z67zUgie2glEMjHuNTCKGRxzukwzl8QkTlnxS6kYQ_Gm8cajfvXO4fKpftq5yQpMRtsQeazS2iA7yuME0rLLysK7Y2aNEZl0MtlAqJV3YxGgS0GR6J0l9cy5qcZJ-YWktQjG5o82RC3Mw14LneKdUhdU938=&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR1tZWrQnvDMm93yC_r3XPpMNzNyvjpyIQr6Px0ZLYWPZI_XodfOL4nTVJvb9kxpna-Kim_eccrrbibcYIPnzupaQBEWoxLuMLOgTyzb5Kxpe6XqaHdpzGT5FFlWzZT4vvhNjwoEwFfir8R3V_AmFbp1i5We3t8m-v_LAbw9Wc6zm8B3bJQBGDW1iAzFFSL3Is1eMT8oyITU8oS0I2G0XRp2OmseFmf1VTtY3Sbagxe63U4OyHdMuusiBBix3M2D0wNCXwP5PAq_OeQ4XID-_4WjTUyJKQ_q0z96HAih-bI0yeErao0ulgi6x7_IWqyLDOfd6WfpA9wyZsebUnuHfXuKYdrSx9iFcysDZnQ4Egv7SJWnVmjYyyLmkwiAdT5mq_Xiz1mOUJ4PAVVTQ2ikhebBhPmpeZ7imPRTqsR8AKlb_UldLV9X702X8bIdXAqDG5yoN-8tNGfuKzlImC-ytFo8CIwd3cM4mmEVaTRp5wSR09zL6obq7VT3OKiazn1bgA5rL8Xbktr-lUws31OI8U8WUSEcw2L63qSISKalarFp-Nn_uxGozC6KZZJTBwyQhwYJkF_LoitK2VY-ANLBW8tn9vXT80A_GqvWFJk6rvdajqN7ApPjOG3txF_w9aEPbYSF1RuXpOs-Dr5fMRffsxJygldEPtRJr8eBG5v5VkOwzv2_l1zjG8NWrmYVUAOZmcaUJnaTjLzMKTLbOZWhS541DcBNj6KekjsSvOK6_d8kw50AWXhEDwRB4CD-VTCScL9ET1ETLYq09qCgylRqXf7g5DziDiRf0NBVod2m58JBeg==&vjs=3&p=4&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Ward-IT-Talent/jobs/Data-Analyst-Mapper-337d7af480baf33f?fccid=fe3006c2b79bc7b1&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=7642eaf5032efe3e&fccid=5fec8a638fc3e20a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=93992ae08794f3d4&fccid=ce79f55dda0c08e8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/StackPros-Inc./jobs/Data-Engineer-5e7d9f46fdb5bdc6?fccid=efee8d7cab418992&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=698ba220ce35e565&fccid=6c9bf1e422ec0e9c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=bc21127b5efb61d9&fccid=cdd0a46c7b16957c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=cf925844f9f0f4fe&fccid=a4e4e2eaf26690c9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=afcb7490ee24becd&fccid=d7114f1cac8d0711&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=11874d6493f38d79&fccid=1e05bb7cae466f1a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=d4b84adbd7605aef&fccid=99df7d642e3911a5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Teamrecruiter/jobs/Data-Scientist-c6645305a2e8d9fe?fccid=2d923f19a2788811&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=b6e7922f1d95e7ea&fccid=537b899e30af3338&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=85d459a0e88b8f0c&fccid=48037e053e8b7e1b&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=2146001e0333f895&fccid=6e2c894eda7b0b76&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=ad5bb1d6746bd7bd&fccid=a6920e0a635e5c4e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Flex-People-Solutions/jobs/Business-Data-Analyst-a711da1a17645c9c?fccid=2fcffa9151b7a545&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=2f22175e8bffba60&fccid=8afeee1403e0e04d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=9968234e61062ee6&fccid=d7114f1cac8d0711&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/TEKSTAFF/jobs/Data-Analyst-4d2a1c4bce72b890?fccid=1c40f61ade49c5ef&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1610fa7180c84957&fccid=c09c1d910cb12b34&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1d3b1dd42e1b55a6&fccid=abe1c937a44f3ad8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=7ca363052c192080&fccid=6d9b8e75dfffb17e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/CCUE-Finance/jobs/Data-Analyst-Internship-e1bad3026c744608?fccid=c27106cbf541a0dc&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=da7738cffddff9bc&fccid=843063962baaa318&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Eckler-Ltd./jobs/Senior-Longevity-Data-Analyst-1ff7d8842fa319a6?fccid=c25eb26446cae2f4&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=16df4cfab3941b73&fccid=8c52bdc6019139a0&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/DGC-Executive-Search/jobs/Data-Scientist-d3fb8cae5516ffb4?fccid=1215e5e6a7cacdab&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=ddcef56d42d2ea08&fccid=be3dbfb6ca2ac450&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/IFG-International-Financial-Group/jobs/Junior-Data-Analyst-2c50d51a454fee5f?fccid=a340e203981e9a89&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=dccbde7ccf7ebe35&fccid=a6920e0a635e5c4e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3c21742c08a1b353&fccid=1a8b006c89f2d7c7&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c11e2ec2238a544c&fccid=b920aab5fd60595d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e3d384637a5196b3&fccid=b920aab5fd60595d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/TekStaff-IT-Solutions/jobs/Data-Analyst-2d5280c687781e72?fccid=35a6e34d9a964df9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=73f0fddbfe9e257c&fccid=d7114f1cac8d0711&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e029fde135c346b0&fccid=82179ab8760b598c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3a0e3634dc460b9b&fccid=1b217912a3042c02&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=613956da2f899069&fccid=105ecfd0283f415f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=daf31683de95443b&fccid=a6920e0a635e5c4e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=ed4a26817138a774&fccid=654a2ae7c01ddc34&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=7c393ddbd38281c9&fccid=8263389b819d48ea&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3cb4debf160a00b0&fccid=1b217912a3042c02&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=86ed45ed374c10cc&fccid=2bef55e014d470c4&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=4d30b7a9b890b0e6&fccid=6828a940e147b710&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=78fb6366d9da6aa4&fccid=723d41711313d1db&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=439ac33f647b9cb1&fccid=724d06bff9da027f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=8d68b7d88379c13d&fccid=30aad3b8f220291e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=73d701c70eeefd1a&fccid=e6bd96dbabc108fb&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e80371bdd4d51ffd&fccid=a1664bcdc67a00ff&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=760058c50efb4335&fccid=f0b9f94cc2f932db&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR0oJjN_2YJ9x4sI2DihMen7KIhSapT3jVjEzc68gB5SQTjN100XKhpP002f7g-LxDYIvR9gH3jrozV7MjT5jZLmNyem2CY7tUiLmPbS9HXpZP98YYKffY_xkFXsIO8_dJchKyAGDvX9OapFoUs-_f_n8WYCB8r4dIb0y01XXkvdN1Udvtfbd5i-RlO3DRAveo1BQ-UOtx8PJPV_qbz50hVyh_waJThVOCXGOgMwrHgSnk8IOTe_0gVOaCYwsbeIf29dLQTjP1CbzLnXGdP9FgmBztcBphOonMlpHHWKjs74YoF00KPKygyR_t-AmM7_lDZae0tEBTaRCO11_kgPcf7NhzGXjasjhyVGUk3_oyxUApyhxeZ6RQIrYH-J3lcmui5ABo15LvCg3uVFuNuZnXDn7Awf0dtVj28R_Ir8oFuF0vQnaE95BSHwjFIl1imRuQnGLGPWga3XXEfSS5PPKFNksc2efTclmN_rSyaxMyGyf5RZQQfwI_W2p7HUpwpcC8vv2uWS3I7_s0pfzL1b_Qs-jqhkQEy8NbNejXMJpIShijWhLTRWjn4oFDgF3mCvWAoptnqU4KeSJqAEoBY3bF3Z0z0R0shMebpTcCZ0Mafj1eij2ysQIADNN3nb3aSRy2n6G53EHgQYkhutmyfQnF5Hc3ZUVmnrAfnCvkiIer_vEy6OrVYVq4JaHpvO-houOqRPzu52UV058ogIUAsLtHy-w23RInRb_MPkBUguGIliUGM0FsvT0d7-Q7v3SCM8yAmpgQ4GVAWjHjHucd1X--2msjcY3quAcMAgE4kMAJJWOQ==&vjs=3&p=5&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AXBtxsLe9m2KRj_jCBdk184ANefrLFEPSzBzUevTHxVwzdFFWiCuUFfaZuy5dwRaP_F0OiZINJ3EbyLId85kcGpV8h40Wor2dtaN9imeKneks7QKCT7ee5sjWDhRJ4SjL0m1hO-mFYvRbvvlO7nCQ6JElXDV8atEezpw0WpO013re_u34FmUW3AXGy2Nf0Pg7u5Dugt6bduyI-Fk4iw20f-MwOWZlNF573nw2lt24aTu8_DNOnITYgJZ_Tw0SEAhSf-eECkSuGBZqg_z7AAMmLHB2S2Cw2KTF7NJ1EKLshsBiuDEl6yNOPwmUW4zPacLmSksmVP2K1sA2uyvgUQrUbLVmc-k4KpGixr5tElDALHUWfVdQ-vdnvLqpMWHgEtdBlrBVYaaPq1PUI8b3PnYPt94No1La8H0cjJwz23r5U0KbVQIWsK2kHylAvsdu6-xfc973K7kciGW_nxKVCTMcnhQZ7BCexac5zV9Fn-Bao5N8-GOcZqr6Wpx1opzpM9eo=&vjs=3&p=6&sk=&fvj=1" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aqmv_5JD5v6gg1ICRL12VY6BolF0XAUkQtat1DEGOKAXfQ1dVUDIPnIZ_mCCh7xlyQW7DAuc1kdzDGEwToHb14mp3uMqX0pcouZuLjYghzjGEEZCxVwhcSYtd9FBhxZEFmSBw17mleeeHpUQJadVhpWmFggSnQvHdlfLFWAEL6-JSHiofLilC7DiEUcE4DQDiNSDP4LooEzD2qlGWYvg84TX0MRYOOBJFy1f_j7ennGYNTAuJrL7Xf9xh1TL06BjF-LKFbqXIoWWEswjDoYgoZ8YxYBQTlaNrLmHGJ61S0GWVHbsrNZiaoGUel9Acs20r7QbmkdcPE5lpCbIFlHKp29tabl7c5_oamLfa5nGUDaHYwjQJE3q56WvTJf1G5xb7pk9bJu6MSyQtrmlIMYbrib4epzXoat2aO93eMKesIG8GO_DtybI4pLSGLOz7_dOp1WApoQx_bi0XccVTkkl2ESJ8JSd0HXyslet-z6g2YnMiSX7POYSqwJEprrH9jNLazYwn1d8waPDGPtFdDKejsteOAXr3VTuktO8ec14guCBM0w5nFIIqT9yYrCRhSXUy-2vgGBIqOLWsmxrzI99PaBQUGOTekxsz1jAv_r-5zbOovUaxjrH1Y2XSuL0Br-M0onX5YbACxUKfQ7Mj2xgxwaqcA7ROHXNwlc4mDe0OdhNWZXjZ8Q0xAPcr7j3HnTjY4xL6qxVaKGlMTvtGR1igwzxY6EzRVPTdUgf09rVe3uhLhNWRkXdUDCVFWoMk9W96Km12UT4SeIi1cc90E17Bb1DsOkZlzg3rmLKwYZM6HIE4ZgU9uarDZoOajoPAFKL9s80871cqVIwsNIB3Gc5dJBMBGNGtcPI05BnO0tr3cHtbBMUbYL6pVHl5ugqEpapRCjGMYMk-wuzPMVWHd8otuJ5mDCVdXxDDqYZbukTPcABjzoJhz6GrY-wLU0aI1YHi4UQke-pZTVFpszJ2DBlSCvW9F5o24_tGfY046jps68FoQePVqEj0seevqLifptYsc6WVyLMNGR-1HwO9W9M5Cpm9mjrhGpzZLaI3yp0I9fzmFE_a-cB-7M38DeEGsiqZJhSTGqJfngkC8SqsVk6Igip9LqL95DbEfFXWOp1Z21Rd2J3Da1B7Kjvd3iZ9MkrNUFptnAKREWIC5kTRgniiJWfFIX8pp0bU=&vjs=3&p=7&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AXBtxsLe9m2KRj_jCBdk184ANefrLFEPSzBzUevTHxVwzdFFWiCuUFfaZuy5dwRaP_F0OiZINJ3EbyLId85kcGpV8h40Wor2dtaN9imeKneks7QKCT7ee5sjWDhRJ4SjL0m1hO-mFYvRbvvlO7nCQ6JElXDV8atEd71j3Bi8bq8GrgLTpLtQcAmNj0vG-qXtAhNbWRrZZY-FYY-MbcN7ATWE19d1dyKyxXOdvQD4A28dwFShtkiWfUnzPcwNabT83hzZv3aOXUhHhFs7Y3UJWINy-bzEHZA6K_-MRrg3gdEB46KOLoHAPdV11lrwMGwuvoRVZmOx2EHyzLjcYKjunNJYRg9iAzCsy9CV6c741D11N8b6MKo2Vm1M89taUC9rdKNCIwTDZBnEMf3BB7C2nfJIlJxKHVyFdevxDT-FuF6_vkh_OU7WjTlCnjNdDvHwbKKalmZZh5E-C3s28fxCEPBWLQA1OB0lGeyJZT21wSiiA4srbppXrzyAzb_RX3KIo=&vjs=3&p=1&sk=&fvj=1" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR0oJjN_2YJ9x4sI2DihMen7KIhSapT3jVjEzc68gB5SQTjN100XKhpP002f7g-LxDYIvR9gH3jro4eHaVQyGHGl7bRe2mClX_-nZg-d3o4xcDBnFhOWCXNjvP9-V5rN637qQG_NRPADjCgse1AwSN1wYVS2JAlTAzxcZAAuDeTMIEDGqeur8fmzQnSso_zSjimdxKfmS_0cSqmNTYmFrE5qp8uO3Dr94P9AUgr1M46iK3GDq__LzuQ9FL9PoxUW17ywn1bZvLIU0q9JjgAydpev6UylAO3GpDDB7tWNdADyVvgusXwByNN8SUWDY1GsvEMy3fX9Cl57y0X89DB3bwjyEU4K7VMcozci0QNwjWAOM_D0T4Q_AhkHfzJV7Y3_yHQbZ3TEs3JJDgMRjJXq3l9TEsCOKSFAPmhFOwddRDrlq-PrqrDs7VgEtlzlW9HYOfuCWgiLahgId8bgTzcg8W09wle6NN-cTNTN7bDwOvxytfErlHokzB_gRsc-a7Sfwh8NiAW5vyJbpCkri3LmMxVy_J-Ecx0G5vXExzxIr8thBTGs3gT2jVeB1xyThfpQaFx_juQAxALf8N5CrBFFiyc3OA3Wxxxnz5TskOnCReXzR268mBk3Im3lhG5eFri2beBzr9Whj-oeT6lEx4mEtOTayZYsrUD1LLfyxK7LkrtwjVVJehBTHiVTJbYt6JUQFeb2G0xttWDuuVM1hiMu-Yija3g2oUqxjSBKCuH7hDMil-2keEaFQrmLYSvo0Zxu5oVM7TkCbQ7UJ1tqzEFlRFWx8GvOqZv47ZOojlIQq20gSg==&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=278a4c0f139a4ec2&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a0cfdcb0244be644&fccid=1641428e637be4c3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a73e7b0936ee96db&fccid=d1bd4b68b7660712&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Gurulink/jobs/Data-Engineer-f820eece79e97375?fccid=4e6e590c0807dbd6&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1b643b867baee1a8&fccid=8c52bdc6019139a0&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=7fc38959b0550db2&fccid=de71a49b535e21cb&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=00071214a2c9a31e&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3477523034a78bc6&fccid=054f21d6c182fe0d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=8f016606541872cb&fccid=5c98f9ffc20e640f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=d1668aca097ac39d&fccid=de71a49b535e21cb&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=37f6a747159a37fb&fccid=a39673004f59ee1f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=b43ae92545d0d54e&fccid=1a8ef53ad2eefcfe&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=4181ed57251ed8a4&fccid=d8ca090bd1ad5f9d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=82de698aeb908e83&fccid=e9a025277c6309a9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=f622e70070c61b4a&fccid=db092f8b7448d6e5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c882d95a10bc2704&fccid=2eebfc177bcf53a7&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3b55f4475026d862&fccid=9e77ef24448a927e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=628b83e965e2baf2&fccid=3002307a9e5b4706&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c274be8e9ae9fb6b&fccid=44fd14c53aec5d7e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1f4505c89ed4023a&fccid=d5a5824be27ba831&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c5ce3fcc1ed9cbf4&fccid=50f045c36aa7a501&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=54c3965c0fe785f5&fccid=8295f0911ec08bde&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=9a1180d1a03aa518&fccid=785af18d53962443&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=2d5fb185071d1425&fccid=44fd14c53aec5d7e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=647b68981a86691c&fccid=353eb997fc901045&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a466d44e9c7e04ac&fccid=3002307a9e5b4706&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=d56bf56259ca0894&fccid=ee1e8ba43a5cac2f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=573a38647c0b24f6&fccid=18b323e5d99fcec2&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=0df68001eabcf951&fccid=4271edc9c2f82254&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Swoon-Staffing/jobs/Data-Engineer-2c3fd5c4a3d2a312?fccid=0f8f43d7c2e2e7e5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=5aa6197f6f561be6&fccid=44fd14c53aec5d7e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=b489346e8bffb073&fccid=1b217912a3042c02&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Harrington-Starr/jobs/Client-Solution-Data-Analyst-669d82f778c2fdca?fccid=5bba21dab6181064&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=7f0483005462bafc&fccid=628b72be31b2a8d9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=bdfe28f64e0a916d&fccid=9645047fb7b1d4e3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=769e588f61a9017f&fccid=5bcd1ef0a7f4fb99&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Ward-Technology-Talent-Inc./jobs/Senior-System-Data-Analyst-eeb249a9e5653ad1?fccid=f2ed9176e8633cba&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/TekStaff-IT-Solutions/jobs/Data-Analyst-c79f184a6fb94eff?fccid=35a6e34d9a964df9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=8b96e6bf9d399ee4&fccid=18b323e5d99fcec2&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=c676b54f7cf91c48&fccid=105ecfd0283f415f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=5efe92947e7afd2d&fccid=3dd6650be492f5ca&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=093128a8ca77d792&fccid=1f664b308b4fe32b&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=dec3055c487d32e2&fccid=a4e4e2eaf26690c9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Veritaaq/jobs/Bilingual-Data-Analyst-af6915818f832cfa?fccid=d711e85163f98421&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1fc98e8562662c8b&fccid=8263389b819d48ea&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=9a4cf6ef32bfff91&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=12d84ebf398b62c3&fccid=9d98e659fe07fe0e&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3a9174cab04a10f4&fccid=054f21d6c182fe0d&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a9ad550610b3d24a&fccid=de71a49b535e21cb&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=5f0a5e75674b6946&fccid=c09c1d910cb12b34&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7ntxl6CekgI_C-SvR7t5FYqnJczOpObGrbhYf00GyXwgnCPnqljEcI6-v1f6L2EMpFBZhOquJhlfCdKagBlnDZGGaWzJv_5jKmkcJpwaczp7XGTDFBEUdEIiGwfMciuluCoFPJL4YvIuSZ69tFUa5vTP9ORvautge-ENA0nfGCyaY5DDanBmqXUc5JurEEdSetpFTPmW1UzjNlryBy72unQoX3rGFZB3KuuLIuCZlDJguC5-7hzCyLN-1JHHERIb1qE6HSHJLYZ9wL2odolBfXlfNgmxDWKatDmwlnCJI1Fettt9Wgye9nqk2XrqFveHsaLzGIlzSnVdSpFHwYSnj7JogpMkfP795BDKtkR8uaGPKhY0f4z_hHFg0f5yoP1BLd_hUXrs41FXmEeGb1nKcyoyeEwrkXqLC_NXe7Cfp3_wC_rSJaL7DHVQYQ2x7CzoBa-v1iO7thDMi1QOOotORMHMpegq5x7aZ7w3hnIGGufKv5oFFTcQ28sNAnTsrGbbqONsae7MkLrS0kLwXSWU2o9Ig8O8qlvTHv9VLQkYGuTMCX3qtpQO166AUNCmmSCLRqZEGFpgsBghZMVPcnTr1AWMauOjJr-usiY&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3TZs8s_K_8c3BAkEYAHQBDEdCv28K2qWT4XD65DctvKIQ5xBFEiN6Q2BwfTEBLhvzI2M_5JhJZtskjMze0_imkiXMarqa8juRKXTsb1n84hUEuyEvbkxr2XJBaPqqY278NNRSjXBtSY9n73xRIlOUYO0DK4PDA1S35OmOnFXlDpdSUv0lWwW19z7nfX2Yb-o7WB_pjxxcWG8zU0j1nFxW9zlaODo6nstBJdXd8Ttj1-0ytxMsuef6d99AnTr6tkVJIC3XXAq4Sv8JdAd8TWXBs8ubGf7hk0qt3vdf_mCEuI_fT4pG85XtEoDyhWcYrAm_9baTKWj3_ZsXw4lrdVsKA1v84PATKQEP8FKzqY4vs_uhBQsvoZ79dZ6p1caeKsnGZrXZ5bdEyM1nkUbqG7i0MfXQIxzCxghkLniL2LscssQ8T4Optvm8pDQ_3vs24TWZicpZUk8Y6ozAG-0e8Rd3s85YF8eO-pOJYNhXRvc6ECg7w65aKgRXlNoSPzWMkVYnMKTZllQheQB64YPQD8QbTBuloxtfoKZFua4krGa-nplk4AEXthVNTxby7ACIT7UCTEeM3AcfLwApv-vtiz-MYMxPRdtFEBkBP4xt7u7MrFaw-VQO77_LFND6T6IwEpCmAblEt_NZL00BD8K56ahcuxt7a3Fp6usxk9gPF-Dz8DjOrV2j28d-HYhT_gPbNzQXzP8upEm8jTLeCsrf0juF1gRi7X_TsUSRPOmWJXsIQm8NetwtrCO_wMySZDlnwHrur6xI3YXZiyrXCGXd_Fj5PHuot19llZ2Ki_9yJLcESxw==&vjs=3&p=4&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aqmv_5JD5v6gg1ICRL12VY6BolF0XAUkQtat1DEGOKAXfQ1dVUDIPnIZ_mCCh7xlyQW7DAuc1kdzDGEwToHb14mp3uMqX0pcouZuLjYghzjGEEZCxVwhcSYtd9FBhxZEFmSBw17mleeeHpUQJadVhpKJSq7gUmaaJT9wx7qoaswg6fGp2ey0twnYXxqFMvO41FO1OUknGhacGKMSzVyuTueRbW8CwQqDk1PovxN84BtJl8yIjZlAdvtxMpkfqAnyXEPIdroxsDzjYcYDVNiWE0STUO_l47WWH9UDOk4JRe2ZUfj1FdwZnkUbLsbSytMK767gW9vYF7eEpeowsTGKgPyGa9ujoLkrJcbK2JscpQ-HmFct1fK3VO-0l26bbuQF5wYxlgfTZT79_EPwSNgXcOvMV5z9gArn4pKDDbyvRnFIdd2R8StnT__MOzTls50AD7FKDy3W_-cCkgojgDGzkRtGPXd-ctfn1gnmeAHWezRFNzy-qf3fyY2jMReP867uRUcNfaMYY8sWERuCpQUaSYdGgBaJ6A7j1n6OlPT8_295HxwThqSj-DHZvHyl741xfQ5C8GOyEeP0JDXQv_3NYl7JyTBf-og_djaERaG996K65XSEfZStCi7X4j4tFkXpxmEugm1in-R04BlgnEd5lq0DSE3YcHpAoBc83lZqmiXE9lzlRcBfVGq1vUS_Ts9Q-SDmVhGgt6zJuPKu9yYbPqt6GQzoZN43FfilXxxd8BZVJke8RizkX4cj4j96rKTLCO02hr3fBmTjAnxwHBCBwjx8kuMEv0O_EPRtTqVLquWASwNrHhNHt-L7RL6m1nVr9AMXmUabHZs8hpUMXOBW8pWj8xbzMXgT5F9pq5nn4by2OWq86x1_H1I3RoSfDgaDQ8bC9Atb8E999Kb882dqvT6lvyHVIl9Ync1jct55vkE1xhxB-6TJgBYLI0w-cixgNLnf7vIBFCyugflY1mA7MirVgmtTYJk1IKKrULk2dZLCD9E6OkeLemfMiAoI-FwPtq-ZWjT4lgMVqsry09aiKxbf2OgWsu-YW7_6MgrjaE_8U9z3N37vbWQtgktUshpTI3NvA-0pC8StV_gYgR_wYCwLVnioPJFRYG5xw9CAEvsbleXq5lbXbKnlIleX8OaXAVVyIkYF7sEP2BnuxBjEbuwlCtJ2wyjJE=&vjs=3&p=5&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7ntxl6CekgI_C-SvR7t5FYqnJczOpObGrbhYf00GyXwgnCPnqljEcI6-v1f6L2EMpFBZhOquJhlfCdKagBlnDZGGaWzJv_5jKmkYmrAYYDueq_5hn8qWUb6W2_S12G___tQGShrH8cigEMHgdAmjy9RMBVXtyoisST_gecCHXOzoxThKVbKZQ_dh5mgaiYIu41BH32YtcA3f-wC2hcDANjZPWXoTJVumUJ9cm0tK-swmPdzIMLrw0suwqvTTrZ7g2ZqqAHB1d4N4YkZynvDzjFQlDR9gkbGe3IhUcK1ORkUvRxqB2-0XWxYV__LuUlqJFuGWOuJcmIykQqLAevLoWi-dvU0OTKuCKFICvsoR-rpTX4CD1ut2Dbd2G4Zv6-qOYV6m5wk_mxH3rLt97Oo3WZHhQSiHHxFQlNvCrHYkP0Vhp8CaLOrcBJrNfM9wZWZwtaliY-SaO04sxjuLXM8yk5cdR_OoIscEKm7b3d-IAoepzqttQrz8dsa6p_7nfT1rJ4ieMBcJIKspimkYBgeokgaQVXkQrg_w8JeUnymwD9LriquqxJdexcb2bx_xcU3pBe7bLgdFGn5Q5nkaxTr-RU2-cvmMbjmftNN&vjs=3&p=1&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrIC7ba-c9WBCFccyPj-p-NVsbRmEJW59M_8u4WRwgk-ycwwrtTu2I9Dde4d5HvHJTKL6YEpVAaMLALGJ0KX8C1MET7CYPgGsIEa7VDbu_uyMJW4aFStmkeMDykIq90ecUeFjIeb0sOFLURmmAMUHjv-ZQLRvw5y-wxg68zqwhZXlS0C4gDtv0GScqG44YtWlggZkrJxUwcQETebcE4qU-582AvgPW2I_7rcJDUfvodlZ5mpj8Io_f0nVQ_EGl-5qGTLxxKTvk4Wu0nHFU35aOlOnxEdHMvzP4TD9LlcBOpwiQVobWXZZCKdJHMiQam6HDayx7UIkMSRm1HEqLaXksryoU1gmISvhIgNV_ZdxWfnjLIaN-aVqlkmECUuSMwposPjYDp9KU5rHOJ1Ks0LyLlsiHimAWSo-KyFq6BrsaZnkPOAG83iDWHh5M6bN_HhS5fwRU8NibFnRz6uhIE5nttf2Evl_fL3jBYGLQzWmNQcua0lt_thNuojlkcPxVBn78H2-6484ELT76Wp4dZd49rmqtR9YtbJ9-6ApRRWyuO86rg==&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=1b40b0f15ed194d1&fccid=2bef55e014d470c4&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=41116b083e851dd9&fccid=105ecfd0283f415f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=4a0d83e097b1a71f&fccid=628b72be31b2a8d9&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e78b268e0aa52af9&fccid=364a29b4600c505a&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=2bc9c1d0806c5428&fccid=e996c2d6855fe778&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=32d4b94da12f97f2&fccid=5522dd7fc3f67c79&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=e8ee7f44da95c0e1&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=09512aa9992a883a&fccid=9645047fb7b1d4e3&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/MAPLESOFT-CONSULTING-INC./jobs/Senior-Metadata-Solution-Engineer-de77e03f9988a1ed?fccid=053daadb2c024ea7&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=b2d11cb8ef860a3b&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=4a69c7c2b61a4333&fccid=4512634d9e7338a8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/CST-Consultants-Inc./jobs/Digital-Marketing-Specialist-0ae531b3b6271ad2?fccid=0637381a9efee7a4&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=459c1731679dcaa2&fccid=6576e7250aa78c3c&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a1ec73f8ed0b2616&fccid=0339c3487d70dff8&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=01de0075572f83fa&fccid=3a429036b3725efa&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/company/Air-Makers-Inc/jobs/Senior-Web-Developer-SEO-3b01a7a83d43289f?fccid=723a3e999c412a73&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=df5a86b20eea454f&fccid=d7114f1cac8d0711&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=8b9d4c2025ab2aa0&fccid=105ecfd0283f415f&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=5cbef4a325c4a7d5&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=4eae8d64ce5a17d1&fccid=2d88a9c34448e1e0&vjs=3" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7nt_W1_ybLH0QPRxUxEcgVV87p7Wtq5Txix_phCOo7B5cCbkOFWR-Oql65OsHJtksEKnodh5A6jq_lzHLc1njVVp3fZJmtRYUStv1vjsVw8T65WmQTYTsNl4afg2_-xW0oNbZFrZyQUXIu5dCXQdCtKci00A0HCLJIGsZfLWehwZ9vRbpCt0O7Y-TFoFuSY3mQmoIvy3lDE0pwKqlMe_v_6powPzHgshqiM1TbH5EC80WzS5Y9bTIC5sVuz6T5SuyC-dkmFETTRC1jUrrkLTWMlN-LrOmzMJCp6haame-yR3yxFoyYj1ZQyN5ViDIiwd4z9ZM0xqe3vHbT2IGRJqcbVRp7NE2lXp_tN1S6h6KQVk0YBU7fUkw2V2Q5GezSgttLGogf2zrh7jqaWiouaMh402KRTO6tf3hTQgLrhsTSN8YSDqUOxnwaUp6siWdZRSbm12-OmySM_Tfa2jIv6cD9WT6g9rSpneGEbfibX05iYPYKIjewOz3-8jdRkUSMMtIzNrTgoc1R5WK4TL59AEUj42_98zJidR_2CcI8llCxV9LX27UylSn92dh2SANuLst2AqAHTFGQV5JaZgwfNd3j3o2j0Dtc_uLRx&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0Aji6ATb26Yyb09g5imj6JxAacRjLEDyoHO-vrhJmHqVUoHrBHvjf13V9v4P7h0GX00ltatNKoidGYffZmFcM8FP9Jx4HddGxphKrZ4QN9hZciYDU3SL9OHzFxSiFzrLU7PIepoxdhC_8SMRH443VgwjrMdgyw2M3CtgsOwkS62WhmKjgAWI2cn3khbb017r3v9EjZ8ls-_tEf81GktgMrM6nIA_a_OLl3CXH5ufhFUIPR6ELOIT9g4x4vbQDQokr35JaFfBI_6_xkodAMRgH6DnJhsecc5v0iuhdUk71r7HOQ42CJfZ3NQEUSLQZZ6qaxvZg2Pqc04gnz-7Oh8dvhPao93vx0CKRqjQOx9b7_38C1xQhmRyZoffy38zgmEnJXG-7KOcUtA0oVpvMV-l7frhd6Ij_cC975KLxuUu3gtmE_8-7E6BC3WUuzfG9UZB7oF9QW6EQfEuYtcqxiJJTKmaF5GGuJTML-O77Z7hKRGNmadTIlJtMvTKjlItX_ErXc=&vjs=3&p=4&sk=&fvj=0" + }, + { + "location": "Toronto,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3TZs8s_K_8c3BAkEYAHQBDEdCv28K2qWT4XD65DctvKIQ5xBFEiN6Q2BwfTEBLhvzI2M_5JhJZtskjMze0_imkOhXT_iYvXOhJaF7tZy1ncILGxv6doDt17Uoea8wiERqO8iWVZDCYZ2Noa4wQmHAG185lsThlDCXN7VNvIdaNNdHvpVYhDmE-vNLMeRzXCtfFkm5DhO5DFaMxGUCXqSGSSrfjKT5cd-zvRvMxM3X2fzZ4WFbZDexoKlXp0XHYu1QjJj_ccZGPAYiCTfBUYt7XoRrPKzTXg3DN1dnkI9qclMfhmthMxLGf7i5x40HDHwE4jFT5n9Cjgv4uknbguMfs2cBYR2k9Cf_sjiRcN3QC4pfdkU_HFrQwCcNpBOqh5lLTo79jvFJj9I5PlOyAE2yKYxsNkAeOevcftXk5mzHtFd1kiO1LaoUpDhinezo6j4I89t2UX9ZHvhm2Taeji7DZPDoZYo-tNTYC8nFgHEkrc5YLjbiAJ9kX0yxikKehXMDw_ThNlU4ByGzIfxR56WAHCk4NW-th0LFz1bDRIVcwqPBW_ARFqO9yL7VhX_33xNHeMC3RjrNhMqlsG4UzPlachCxIbh9Yta6e2nlQX8yB-d4p774Ir1C7Kedvq_WQgTPa5EKrq9a2t8sjIIB1HIwgU7eNaaY6tnHJShHCVMfFGRaIn2aXQQSpMYKkJiLDbWvf3kWQdjJMzB6gnuGTz3dNTDMD4Emb1o3pZPF0qUrl7RKvVtsxIxdfGP5Y31oaJwrbmWuBd8NN9RjBVzTK44tOim8znZ8PL9NF2zl1fZ9toA==&vjs=3&p=5&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmXMZa8woolaJGrd-8Gzwec7xvNP0SvOLMmMCvsM5206kpwiZOLYC5MDEoMLZuOdeojoWmROO4I72ZjyLLeVtzl0E5umqRQ5WeWHMczxO5V_UixINydy8hfeBPDIMXkX7DenlE6Fooewq3YzXv96R2U1hFbn9djC8Qm6wwvcN5OEZvA8lis0Ex0t_EdYwQJdYTZeFgErLDLtp_CYo_WGkbtqqMAfZKXMUoUf4f5EOmV7a4GYEKrRoHW7CO50o0lHkZ76SGiRCqxCyuD6uYdHRZzx5UmGYCiTA4PSzlEXzSpJfv85SXEL-6JXrzeAoYmxydFwH46x687KHooT2_A7DbziFBFyDPRbQgAjGCoHVaYuxb5xykAjhzOm_WJWJP-UerpTjGcl7RFISeRY0Y4D2nLCdUFybH7tcYlnpSwjtfClak46-MpzWyhn0gsalnqmUMM=&vjs=3&p=1&sk=&fvj=1" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmW0uackYElX5z2Aw_CShhxyiX8pLfXa4qIReJ9Ox7bCuRbtP-2_CJjnZU-P5MudFSiQQFNiXcYPgH9nhPZussykRjjORplUSKyFAcdH9t3AI0bTAA0t57wybun1Zsf_RKHNR24YmlUWhYNJVKPgsRxgvTsK7jVjRKuHAKb9YZo1WVi3e-DXMZem-_8C3llx71yBbBreM5Y8TUumv6lx8-r0UlZc_GG_CXx68SryDqtWiv161Vj4z8HRmh1IV-2g6yN8Q2hLx72oyjiWDJQLt7NS7SuoGZoXeIrLoJWrL6ZTqMKVXiN62h4LTx_lfnItZHSZ-GJurSEqIuFNiXqrTUHQEGM6J-gzxtUG1IxBlN2_rMUItNWkNGc6i-Grr8afXR4QaRuCfH6JeNWKyFmognl133Giiau1r2rLgaAHOa9ydGNZbtQxylKFyD7ShzmBXQL49FoANdvaJQ==&vjs=3&p=2&sk=&fvj=1" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bAhiFfLCFCTDWTXhkrZezmMhEvrd50Rhpmn7pz2PcghQvYKfU3dMXlTcCU4rxSDJVQSNAAFdO2_zQvff-AcUFYP_h09qdqWtaG5r4cvsOc01tCCCrcVvB9a72zD35rM0fO_Z9cLBy8MUum2M5a82-a9SXgEX5emhgykfnl86HAS7OLtrjXet_HsMecEdnzJZOErhxgr8JmmeU0tEJjcOXvew_JXgPWy0YDn8OduP7ynMdoz2TYrk6M9FsW-fO7QT584zLQO8Ox3atLKVI-4mdEN9ETpExWA3sWAY0V0mD2UH-dkW9PL19njggo3HUxskJrNVkf6k5YC18TMHQcLSCIM1u2ogHhM4sfWUx8yQ7GnoxfI7joW0zx4PNjPH61s77bOeT_LLPjV-uTmvxFFVcmTZke8_TAiRc7kqWB-8i-skK7wS3gMvA05Se4Von8MjV-84_W_i4khJhGCveLjgIDgdMgB676yeJw==&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0C6nKFHSiMBxFBp_E9a0ZdPCM_qsZkYnNiPA1S70PNI9YvP2Tm5CUfOHvXmGt72fY3efShd9VmAf7mA5v5jL41oa37a_VR2m0Ca0CYEzAVeeh4SPlCHxPNlt9kIZj_Uep5Nma9DObXAQJqqVqg2YxWrYCgm-gNIzprO-qq6H6Ggkkw8KiD7hPb58rMYZijXjxEIVq74KuFsEV0zCdEQnH0spARsT3N2chYY0kZl9BUEL1dTCDBsBeOl2_nt3eFGL1XEPfHyxI92EsydGqKZ0YoUo3EzetoMnQlwOp4758wMRMZiCdt6nna0mY7U3qXE_rbQr49XTsvKaHfy8NkdLQumoy8qxmGyKUjonge9KFo0g-567mqDcpxu8AMG_RlITw_I6mIF0l8choW3x7RMAot3g3vZL5YfKMvVveYxy9HnnVtb2tBmAyc97Gns_Y1yfX8YAC4tGfUk0HMxDdYxV_GCGMLMgkriaxL9Z-Udte-hSgxmf64re0RyJHgh3plgMH-H9uJx40tBC9pxZZufsiYmZ0mIwvnGm_yYao0q6Syl_8wuIrOswKp3&vjs=3&p=4&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=891fedf6bd2314ff&fccid=1cd7c6119a13c5d4&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=9253edb582104398&fccid=479fd129e9715110&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Breathe-Life/jobs/Data-Scientist-92014f82b82ba5f4?fccid=93dbf078cab8e7fc&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=42cf62c56f8b4517&fccid=237908de095b6446&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/SPORTLOGiQ/jobs/Data-Scientist-4ca0cac253b0f9d2?fccid=904580c96717ebe0&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Camfil-Farr-Power-Systems/jobs/Data-Scientist-Intership-4ea41849c076234d?fccid=0be184394e28fa88&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=b53750daa82beca4&fccid=0ddad3766f834b33&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=454080b4e954cb3a&fccid=8d985e5f2e5b141b&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=b084edb0ace20b9b&fccid=4512634d9e7338a8&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=448d9b3872de0a03&fccid=7e0d9a513baca44d&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/TMC---People-Drive-Technology/jobs/Data-Scientist-5cab917cdc0b9157?fccid=97deb09e631bb2b4&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=c9cac75624514d04&fccid=f3d208bcc3f0b7a2&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=ff97a8b29d0bcf6d&fccid=237908de095b6446&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Feedeos-Inc./jobs/Lead-Data-Scientist-76ff8180b69c6ae1?fccid=09cfb76d88016248&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=5fb7672aeaa38cc9&fccid=cd0eb30c0c661b0d&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=d04beca59764465f&fccid=354f4c12e3c6bd5a&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=c1054d9e2510715d&fccid=943271990b714a32&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=fb4d39c32801535b&fccid=54c670cb3bbbd461&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=7062e59cba767605&fccid=b9eb458007c490ea&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=52c991039e5d4447&fccid=c651baacf627deef&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Nvizzio-Creations-Inc/jobs/Game-Data-Analyst-c3cd6592ba215d6e?fccid=436b5edb4838ca5f&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/ProspekPro/jobs/Data-Analyst-1ad0947c5b3e2cfc?fccid=e99c5c77dc4ae72a&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=54a151842ffda495&fccid=36ab93224c32e449&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=1690b0df8e8221d0&fccid=36801496409e6dc9&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Responsa/jobs/Data-Analyst-67833f8fd000721d?fccid=2351c91d93b0e45c&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=a2600fa98327ec66&fccid=98c522aa9024c59e&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=ee7b4780f68b0544&fccid=f6d6085fc6341c01&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=91ea7756e26cce7a&fccid=39ac827d92081748&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=981182cdf828e516&fccid=2fc94816d368458b&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=ea8ff644f85339a7&fccid=f8529b1ea6204edf&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=1eecf3ffd4ab9fa8&fccid=b839f9af280b111f&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=d7a069f9e9a5beb8&fccid=b839f9af280b111f&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=6cddb85adc5e8c30&fccid=8d08a26504cbffaa&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=2db1d2d59f803aaa&fccid=0ddad3766f834b33&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=d495a7e3b7c8531d&fccid=4271edc9c2f82254&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=e960c35f1f558172&fccid=eae706965df860ed&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=65864bf079c0271e&fccid=8143fb91fcd11c50&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=60804a563a6da45b&fccid=144a39be55e8440b&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Aerial.ai/jobs/Data-Engineer-2b7101696d323696?fccid=0523afab2eba546d&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Soci%C3%A9t%C3%A9-de-recherche-sur-le-cancer/jobs/Database-Analyst-da9f72a2fb8a9a94?fccid=311364dea8d55a1f&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Veritaaq/jobs/Bilingual-Data-Analyst-6b71d09d6774bf01?fccid=d711e85163f98421&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=953a4c4c066b64ea&fccid=edeb6f12480f2704&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=ad1a2fd7ef990fe4&fccid=711925311d316d82&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/G2-PLACEMENTS-TI/jobs/Principal-Data-Scientist-IT-3101d7622ffa20d7?fccid=a1a3325489f36dcf&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=0f01860a34f2825a&fccid=6b7a1dfe07e7f037&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=c2b86552f632df7f&fccid=c06cb0606092c512&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/L-B-&-Associates/jobs/Data-Engineer-Spark-Scala-191cb2989f2e5337?fccid=288f6b56aa604bd3&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=b551b38d20b8462a&fccid=6e5e960c6c880862&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=6e75f1bb1509b2b3&fccid=237908de095b6446&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=8141bc631a589325&fccid=afc24ec0a7c48ef4&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AnvNz4Za0rua_1kbpWr6zQfHkozpsvf0dmR4SuLanQW3roou42yRCgAGet45vB_UkWo1ih9E2KjaZbbNckmZMvDqDFL3G8pmv_sbYGEE-Q2urNkaOji2ehMYoGFNuByCR-LYssHgHEbCYgmK2gzsqs_mIzfhhIpPQZ3f7POSuD8tIn3Knzi3G5EMI8EtCJ4k9NUV42A_xA64rGZlA8iS_BuCdghLrRSlDteVfPOFdf2BV-S_y5Lz5hyp-IDlMZaZO9YapTno0JZn5XWIF3oWFLQZkFMymO_Bb_9TQCUahDnCE3hAxOLMVBhiD0f5JwTzDcuipjx8VZSKuPXL-oJJd0rmouI930RtCCMJG6pOFjPL8OvIjhoIqAEPcsV1r3tNgrSM_WRNwp2XhLcxZ-xBetkPsRjvnDOTefvoC_3X7hwNS9UI5bQJU16HgcTtNouvSYjB8Emx18-2kY7auMI3Gni4ZkSyZgUMHhT9toTg-CW9HU5h6QVcUyY24yq4xRdPuCYwXjTKQQJQ==&vjs=3&p=5&sk=&fvj=1" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3-VTfPeS9HXQPgQlwF_a6eF__HZGqFH3XvdS1UKUaVxZWrFbikHCG_S8uH9s9FqtMnqFqNVTLhJqDrOOPLSz_sE_C2cFNTNn74q64tDfH47IcJii3htXurqCQAFfwdIEi4tgjYK-WfXotHZxZ2-zkKvDH6uS_s91T_TcSEHoUj2ANG-DvW7r6q18QF4laep8lB3tG9fUWjXjvqK_TwKpsvh7z3PoW3fUiaYYwmLsfxfvUC9EAAzOMlwTUOF0HA-ac5E6067CYyltsC9spSYf8TYmJ6NTrVPu61EBsTOQ4lHS56pUh_qBeaJCV0omB9fefHziCodQuADr6dAFoOMGr6q-OpLyG_oStIEA6cl_tmYxp_bmaxmXqkZAhYkby2iRBwSV8_ppxlRLfr7Makn4_uNDfLAG-5gVqbsFBF1VnHeobPb3LdrgKMDzRH5vJW5qghmCGgIQU5UpQV61kVApuzDIy0bwtkbidwRy25P0-kCAhOycTKyeJhDbCSsPtxm5qetf-CIT6KtAUVi_MWRtyLvelFMxUH_WOGdIp8pii4XBkJvEJB9O8GZZtJNDobBIpjx-4UwPHP_S8VN2ldI-vVag0EiMDkjUPaD_Z3rVxjbWotIVEn-m4pNiVGWM5jz1m9iVXJWnpeybvP2KdR4n3OssASCkx2bawCyAEshcDNvxZ4sGncg6d-WdYMDlI5tNL2TFHRS6uBcSYTP4A6V1iHGrPTT6ojmjC1eFAOHS7NCZPgERYW_5Ec2lamaujFW-qOrYEpFt9yKClo6HXpvP0pN-cp0_GX82mwp8wxgZGeRA==&vjs=3&p=6&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmW0uackYElX5z2Aw_CShhxyiX8pLfXa4qIReJ9Ox7bCuRbtP-2_CJjnZU-P5MudFSiQQFNiXcYPgH9nhPZussykRjjORplUSKwpK2t8F8dxhZXBhmGD0gHMPMwKPqCfKylSxngeTNpO02lPAe1v6uNz9kdjvtKe9X4MDHRfEU-wUY7rY2utG3spKmUWAMH-1G04cKGCq9qlzDYnhfnO1AmvOihm8vxJhwF_RSi_dVgu4RkJzcHDIw1D8E6pNvS2-X7ikdLjrBSj9MM65sJeWauuQeX11gN7iGZksEeVjZhNtIJSq3OH6z-e_knwmzEbKtkq8khYMIU5TcUQMXSLNtDBcPQbSDIQFrMgxpmr7PI4xoB9QiB0FRxGXNefTaGOh1R7h1Kw3mprYl7oN3ecXZINJKISuosw726d4hmZM3VGw8rG3l2jZZtm4hVxYSdwvRIGbJK7XthGrQ==&vjs=3&p=1&sk=&fvj=1" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bDlKLDPngTr06lU2YfRyF8Zx_JQNYV-F50oihPReKCVJmsJTqZlF_ktUoZ-HFD4-GZ1Siqq4H-HTy5rdZE6_k0C6fHhFtfn09mCL_1F3nwh--NKU2LKo0l7IJefV0q1fIPF1cA6QldA_-oWRn31ij-Lj3ulDPwrbIeelz38Lr8r8xGCJs-K9qBi9tKs_ayb78YmNrdMDK8FWVGAZsgw3ntEUgILSgMJ9k5QKEcNLRYZA_oIjQdXw2D1jIdZxM65ShWi3KMnFMsgJm-XOPlfRbXOWV4smO302WQWrk2jr7EV_nZXY82n7CHCVuDmxem5uMpYnSLMVfmFArK47iZfuPsWMWpHPux3199l2GtCSwBeHZGI_PyQPRXZd-udMfu9YUdAM_Khq7_OWATW9HcwCDMYRn1T1Q8_2jfwbith7dbB58F1Rcp5MMLG7XbnL2r9GCPWEVFJKQ6n1PkHE3cmrY0McgN2OZpGCxQ==&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3-VTfPeS9HXQPgQlwF_a6eF__HZGqFH3XvdS1UKUaVxZWrFbikHCG_S8uH9s9FqtMnqFqNVTLhJqDrOOPLSz_s1c3Mk4rzOZ5CdQyyN7f0KNtWI86c6ok5nttHIg8EAXafi1oauo-jBezkstMkWSvODxPXNt2GmnB4T9vAiUxBtTRVJb8NNpyRXaXv5RVN-KYnCkX3bRgInInt1JDpK0dBfJ_n3hbqfgmW2qKT-_1S43dJiPFUolA7bklsy2VTWjwGaU2b6aJsU53excz1ddPICDHFjUO661dtlN3xpvOacQHhNbwAnojM7npx-LWDWECQ4K20vz_2RrIB7DInSjcdP5VgujDYzdEsOyA4PBafaTby_hodn3_YtujYcCdAa8Dg8rjGSQayaAZ2di6vUE1M4AEhxU4ZNR-ILZzUTxODe8mpwIDTK_eeAe1oGhXYYFe56FVdwLGcvI31KLWveHIO3w-ptht-AD6cv6RGpe-Wz0880wKgu0x6heD8_8oT9z28RD9BljPg_P3YUmJtFDq_EsF3xyoJX4uXs80UK2LGGNKsjfYz3RP01_n4hPYTN3U6aagqiekQKxPyOMWDcNUiQvEnKsyE8W_bn1PIh1w5fBGRHCg5YiQNqZ6_1cJKT-V4t7z36ZyobxqGfre4cLl_Bq3suNRQUlsYRtObrX81ERr5vsQBVK3_KhzTGFAfNY9Cqat20jxYnfFZywxZTxgKCHcdTsUzLJKjNF_pjRxoUJ-7gsA8rxb-GoSZBgj3o_UjxfYrUa56Mzmc_-Q49jdbWRCU6q28ZTSESHtRmI_QPQ==&vjs=3&p=3&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AnvNz4Za0rua_1kbpWr6zQfHkozpsvf0dmR4SuLanQW3roou42yRCgAGet45vB_UkWo1ih9E2KjaZbbNckmZMvDqDFL3G8pmv_sbYGEE-Q2urNkaOji2ehMYoGFNuByCR-LYssHgHEbCYgmK2gzsqs_mIzfhhIpPTMZZz3RnQ7n8cYh5r4cx_6XvDCWmE6tTCjbPXf3qZzrA2XB198VYhipD-mLisDRWT3vv0Tg6PgBr_BRPL-GXiE0jn0AKCSY9GMRqHK5MfysS_FMmetc_7pJh5Gym8ebuhcOxvcFmYavPFCxyxTToFeGsgJVFT3cxoOEgo_mjX595GBWgIeLSIBDOq_3tzNBUBHSJ6pWjYUXi5M_EMxGz6Cvw1KC9KPop-G7IAp3h-E3x03HTG9bbLMDWU6y7U_Vh4n2lkTr78KiNk8bsMSxXu2yxOublE5gQwTOfLKyXPOj2v-S8dHA6yYlhdprInGMkSx7dcWtdN6y-HGUCbC_BwupNf1EIwFrW-OCM-P6VNRQQ==&vjs=3&p=4&sk=&fvj=1" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=d654ad26f297b278&fccid=b839f9af280b111f&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=ba0aed0319b23ec0&fccid=c28ad2a14932bfd9&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=36547dc019ed7869&fccid=6e5e960c6c880862&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=c74f48c43d90b6e0&fccid=0b01c8a6523e5786&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=3e46c5704bd3eeb6&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=31d7b6ba1194d6a1&fccid=0d771a787e6e10bd&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=d27b078ea7b40656&fccid=7e0d9a513baca44d&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/G2-PLACEMENTS-TI/jobs/Scientifique-De-Donn%C3%A9e-Principal-3f79f7b29101ca1f?fccid=a1a3325489f36dcf&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?cmp=ELITESOFT-GROUP&ti=Consultant+Msbi+Senior+Perm+Jusqu%E2%80%99%C3%A0+CAD&jk=f35c7173acebd095&fccid=9a63d9db66747ec7&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/company/Sky-Systems-Inc/jobs/Database-Administrator-Developer-b3320d0fe906b72a?fccid=be1a1a91a56fe304&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=32f18cdc0188106c&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=c275461a61689d5a&fccid=7e0d9a513baca44d&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/rc/clk?jk=a2ec9a0ded4837f8&fccid=d711e85163f98421&vjs=3" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0C6nKFHSiMBxFBp_E9a0ZdPCM_qsZkYnNiPA1S70PNI9YvP2Tm5CUfOHvXmGt72fY3efShd9VmAf7mA5v5jL41oa37a_VR2m0Ca0CYEzAVeeh4SPlCHxPNlt9kIZj_Uep5Nma9DObXAQJqqVqg2YxWrYCgm-gNIzprjP9oKqPr4UvA2VKDO_xaq6IqVPbvP5FZBbKuClKZbnqGD0y7pY0Xxz98SFEPU56dvu-TSL7ZOvexVSUZTv8U-V4rk6C46bnxl5JihYyrnkNkmn8xABVREVP2y7tedie7FYpGzobWtoE4-g-RphxPw0RdirPcEaIR2COAgXDYphWtVAW13XHZVc8EkhqI9UF0g9SxiKAbnnrh-sxrGhuj-PvlaBOXe0NaSboJ-Qqif6sA2hJ6Q-vBPFbWSvmIE9NkWgeCwg1VaJQHNXT-gciV6UWQPfqay5J1ygszt2WGh97WKdZ3sgYTEM0Y7TEeZY83ZCMyOQev0n-WtyLiIZLCBAedslbw_9f8QL2RGO7DyByeUl2DYFEIz0sz_ddKqtFO2LEWxhDxhs-cZMsXEnXQs&vjs=3&p=5&sk=&fvj=0" + }, + { + "location": "Montr\u00e9al,QC", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AAp_mjGmWhN-vjwKGW2WFcpAvV1GQnDy6Bm2NLvvhH2zGPe1A-PUxMhSQGv6yxUmXMZa8woolaJGrd-8Gzwec7xvNP0SvOLMmMCvsM5206kpwiZOLYC5MDEoMLZuOdeojoWmROO4I72ZjyLLeVtzl0E5umqRQ5WeVDkoIcogy3p4tHfWJZgJZqml_JX6Nde-smJJniZAt_8iHCTL-NTZXGbIe8-JfJTmvmmU0OGBcBJYjPVZMliCfaFFkP7vL4VxCiYgTw4X8ahhwB9h7X5bo5LrrPp01bA1nHzsdkHrmWML05E4dcf51Pji-FbtlAs6NJTKKIH4JN_GmNDc1eUdcPyax3nSsmnGQUKE84CiHTuFWnxZzCh9mArkPJAGp1ue07x46bb3afnkFzhk6Y5mFKgeYmmZ9sLtPUd4jP0hgvcub7FkImhejy8ZCr3TQ15tnupwgjgqwqXjcLWQYPxRoTakTeoMhXzZ8L6QCbVyVqL3fqwSK7-jsZB-NCgd7_wGg=&vjs=3&p=6&sk=&fvj=1" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DekRdUkI2P0Vx7QKQSGKmgwjXZYYsACC-ks-GIUm7I3m50AGNKSrTyczxWAjEcC8Hl_1zTPmov7kczfcoNDzFlSuTIQUhC52Ay9TIV9reE1-1iWe6F7cYipK9YR_LoFKUPzfFLUfAE2Mh-kuLL_97_QcYNDemPCzanXDNVa_jXZetUr1pdnh4F2HjsiBAkgh7PBxXuOLdU64GqovqOuLo0tlZd0fxQ9QRPfqRuVQKCDH8zdDJQEh6ac2sTjbDPAhGiCPZRar9ge2pC4UVkKX5i7Dnpb-YTPc85pTtTCeYjYvrUmAZWpSh2azZ5upcOOzk2fEX3iM0hPUfMHkQ9LqfvZO-r7Jj4142CJ1V1mwVDEJ9ry5i1yCMBuQZ8fao4tihsatAaIVYsLlggqsULLkdc8t0ZYbDk7Z19MOCF4EWgrk8d73zsVw9PCCAwN2pyqI1g33e4ro0hhQ==&vjs=3&p=1&sk=&fvj=0" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BsKQI0TTiZKtRv_VHghD1HBRMRtHYRjmEe5OwbA0REBEnOTPkgo6xmW9LNwNtLFg1gG6tn4eenGeX53GtYpXBc0YDcruZlkESuxQ5xMRrfQKh1UGCToCaTLBc8ni4eBL3Jqi9Zkam2yxkw3kH1quXanMHySbKJ_Z0lguLpn9oRvH4M880NlQNLwbcmHMHdvQA9AVLW42Y19FLPLwW37Ave0Xmc-Oq-w4kyzrbcrwMoyq1jiIu7CvicZkOKMYjrR_1STAXqnz96OfQGm29hJbmibOXGjEITLMcWMmoNhE_9ftnaxGXXW2hicCa5ArXdb-k3pknyOX-BpvrIVI5V8lG9nw7ulU1Jm5ts4MEdJjbIB2KqtkZ89UfLDZpVmIaesG7eTuGWtVYlMMtZ_5WN9a6X5H3BliJmJZMBecPFMnjYHGQo5APV4wmPn9avOVZFBU-iwA4NTg0VDnIQNi2HAXrZQdK-mTzx1veYAQmyvq8CI5we76Me8MJ3X-NyA8JHBeceuE0luYs7HlNaCgm8BBgE6y6ZhcSgGyeyNpQ39XU1q5FnBbyix55V0YRhQbdvraQXHOe3KRPDGEVWAcWqv9TGMPgPZhmzv23sQY4q-NIFxHjr4rh0U1K00MMmCXQnu5QSZ3C9hCEsXq1gwxwvKl8cX79G0uvAfU1qg5EV6iHGIZcgRIIzdooWAy57BGNpx9PFCYhKhC-rp20dv7TS1Xmf&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=141ac4dc66dc73df&fccid=f85ce63d426297ea&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=f3ed7734c2992f98&fccid=cc98ca8f47b153b5&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=6db6b59503687d95&fccid=a460d67ac68cef9c&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=17c5ab017a08a345&fccid=748203bc565257ec&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=687e86e72ce3e1a4&fccid=d5a5824be27ba831&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/company/PeopleInsight-Workforce-Analytics/jobs/Business-Data-Analyst-ed2ec6c2b9efdf82?fccid=55f2342981fd943f&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=cfc5a28055f276b7&fccid=ab00d9679f8b9fbd&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=dacf926ff12d3266&fccid=49ad47b3debb43f4&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=2a2da8cb01f350a2&fccid=94052e10e1796ed3&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=20dc69c646389b03&fccid=b47ebb2dfcbc3f5b&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a5a6dec0c5a6ac2d&fccid=6d9b8e75dfffb17e&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=a7b06b29174afbea&fccid=fa38008a85240e26&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=bdf3db1ca435460d&fccid=1f664b308b4fe32b&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=3f4e69886f420d0e&fccid=171992a32a9112ca&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=46cca54dceeaeb30&fccid=6520e43a58f70f07&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=46b6f447a0b62985&fccid=7bcd2a9899d0c29f&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=20f919d0e22651e8&fccid=8263389b819d48ea&vjs=3" + }, + { + "location": "Ottawa,ON", + "job_link": "https://www.indeed.ca/rc/clk?jk=53dff2cc9e0614e3&fccid=6520e43a58f70f07&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DXUD7c2BU_iAIKiQ1FKTe1sPAQxsomjDKEzGgLousdlW5wRaHkbrGk422hJaeJR5e3Nt_uACi59Ibld4AKU45hCfxi2gxJ_zbiPx8E7_ktBinpfDL_BKFQiHkWE1Q-j5uinzfGlfwZNuNNYZIsyRMogR9WaRKQdJvqsoubM2QLwVENOgZLzo7UQ2Nu2_jwDQ65CIzX7R2Mxtd9E95-wS_yLCLlfLc8PREIiCF0JtcNafleOBCQYiGdYaFzmsqobdrBDornHRnXz02LRM1Lw4gMM0rZKrpXpA0C_d1R0Ut63tv8FOPW8FH13yYS3d6g0duyFvP289ycVnKfUR_mzcerhRyrHb3j5wdsYKU_AaM_BFTok2mdzBIcYD7e8C_wyHbiGH9Zmr5_RJoN5dgHo4USd2Dm4u40QOOIn-KiRVDgCKbaJcXS-UcPVN2fu9KiF05SKbhvKBvy7fvBe6_X-MzmutDm2Vpbe2goSO0clSGQWLeOmnGdSaZk&vjs=3&p=1&sk=&fvj=1" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0BreR47D9bMWJ28XlwS8rs2_GIFY3-vSdy_Xwl-swcV-nLMwXF3u7nt_W1_ybLH0QPeRuJeKiE8HopE_qVwRB8Z81lHnG9uUtgMfVDEQL9BJh0AdeX9392IxKqxqfwQsEk05Tf1x9ZHHUhO1m21nG3VYUE0Qo0uZoI8BCF9tU-FrQtdOnEfCTIxCwbP-NBeupn4umYQdPVsBRrL8O8jbf5Gi2j1Ba7oGOtcnNmpOGc42qrHAyDnHvbJN7LRIOLTzF-YShtqTn_y4rBLNC1WaJUkIM5I6XiXUJTo4HQsjVNNBQU9WoWWTGblh5lNsNX1BziJt-n2gkjFFcNLhj8IbUXeJwtnXc6q5G_xM7BdRpA6Qn8WSpVj87ms6kBh7g3FHySXH7jUw_1KHJD7ao1bd38ZkPyizmMsgsTF7hJc79dGIalQ_4BvDL0nL2QHee7HnS96hqa4YT-iG8ZKZTnq_OxAg9jM423Cdp4mDnMJi-JfWU9dyhXLDZoTOQgnAY8L9Yjph2gIJRW2pxyWppYipiJdczIxqfbKUdGs0gBmsg6G08A5b59smKGGHrxkPi3BBqM_P-H-FMqaOlmMYjqvfgs_17R6P_JeasudSwJ9oYuTv24D7h_6U90scEpVHVh_5LE=&vjs=3&p=2&sk=&fvj=0" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=51be855441995fec&fccid=0261b4753802fd26&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=7154c0439512c75f&fccid=89918cc9490b4093&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=0983e7d5a2a7e649&fccid=f4c6ba597fc7aa75&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=5143a47a59fa3c0a&fccid=b649d3ab17f765ea&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=27bb68bd9f01278a&fccid=b5f5a475a9aae6da&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=7260a36336162405&fccid=3a2c8b6a483f049b&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=84c457fa49ac0309&fccid=c5c99ec01e2125aa&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=636428ec81c29ce0&fccid=2f7563a9ec0a07ec&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=5595f94865e8c912&fccid=f152b1b75ac56a08&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=7b3c757fa365bef1&fccid=39d1c8076d23beb5&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/company/Vivametrica/jobs/Marketing-Manager-a2a9a005f6089a0f?fccid=2186d14e8a7d68dd&vjs=3" + }, + { + "location": "Calgary,AB", + "job_link": "https://www.indeed.ca/company/Highland-Primary-Care-Network/jobs/Panel-Manager-ebe9bf3a0bd3f206?fccid=9a7d8e8e965ce1ef&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0CkZrmoNIfNnv5K6heJNTgcHXgr0H7cYcF0-Q8gfPuoOa1trGKbafX9er2bq1HyxK6texCFGADeX6Xf7xCjR7sMIN9GCW4n2J_FxOB-1Ays93q9kKz1GVX46b2JDcmhxZMWNqzFoCKgIA3JPUIoKOR9Z396nWNPuqzKCYeIdky7ANt-69ImXUweCM5ngVchLXR6IJ8xc2bAcue62Q1X77cZLlcKamSuTH3p8sGvj0Wf5_nb6eT9XcBHqqk6Vo_uraGni73u7XXBoGlbF7Pb-qaL1YViNJd0qRgMt3gDNr-Z06deaXmnMcVdGhExQUsGUBCfrEl8lEbateMSXvdWsuPOCqMscGtCNX8Z9bziN69kJnAtveIJstDvMc9j6gCBu04BGBmCXalWMxvcxnZXu20OsURBDu7gnfW5S5L31QF5yPKaUagTvBpcC82FgHGUikKQr0u7XKHJ4j5_w0d8RCABKse77xA8Gbwz-BDT9yHi0P3cuOXIt9aKf8hBgGYS7C-G7nvWr0ZzVVyoNXX2qb2MoSbF6M8UMByVv27g6jWKdg==&vjs=3&p=1&sk=&fvj=0" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=d6c83d29c96a3cba&fccid=3f9409d417250edb&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=c36acbae1c17e08b&fccid=09ac3ce4d9d271d1&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=c06088307d8c2ce8&fccid=38c6cd539770f252&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=479921bd7512e424&fccid=b909eaba32633189&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=8d9702ebbe2d32f9&fccid=89918cc9490b4093&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=3497e9d5a8d77bb2&fccid=89918cc9490b4093&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=5f2106672a67fc56&fccid=8295f0911ec08bde&vjs=3" + }, + { + "location": "Edmonton,AB", + "job_link": "https://www.indeed.ca/rc/clk?jk=69e0021e62ddd012&fccid=38c6cd539770f252&vjs=3" + } +] \ No newline at end of file diff --git a/backend/data/recommended_jobs.csv b/backend/data/recommended_jobs.csv new file mode 100644 index 000000000..313d00cb8 --- /dev/null +++ b/backend/data/recommended_jobs.csv @@ -0,0 +1,283 @@ +link,location,title,company,salary,desc,keywords,similarity_cosine +https://www.indeed.ca/rc/clk?jk=bc21127b5efb61d9&fccid=cdd0a46c7b16957c&vjs=3,"Toronto,ON",Data Engineer,Symbility Intersect,,"We want to be Where Business Meets the Future.. +INTERSECT delivers mobile and IoT product strategy, design thinking, and engineering excellence for businesses that want to get ahead. +Our Toronto-based team works with global clients helping them deliver beautiful, usable, and +innovative products to their customers, employees, and partners. +As our Data Engineer you will work towards defining and establishing a new client offering with a focus on building and executing on Data, Machine Learning, and Artificial Intelligence (AI) solutions. Passion, enthusiasm, obsession with details and the ability to work (and play) in a team are all musts. +As Data Engineer, you will be responsible for the following: +Build, improve, and optimize Data processes and tools +Derive Data insights and convert them into real solutions to help our clients +Understand and keep up-to-date with emerging technologies, trends, and innovative solutions being implemented across the industry +Presenting and justifying strategic thinking to internal stakeholders and external clients +Implementing technical solutions using Data Science, Machine Learning, and AI techniques +Processing, cleansing, and verifying the integrity of data used for analysis +Requirements +Entrepreneurial mindset and collaborative approach +Experience building Data products that have solved internal business problems +Data Science or Machine Learning background +Academic background in the fields of math, economics, computer science, or statistics. +5+ years of practical experience in challenging and fast-paced environments. +Knowledge of Data Science tools and their application. +You believe that horses are beautiful and majestic animals. +Proven business and strategic acumen +Proficiency with Python +Knowledge of statistical techniques, machine learning algorithms, and data science problem framing +Understanding of the relational database model and knowledge of SQL +Experience in visualizing and manipulating big datasets +Familiarity with the command line +Good scripting and programming skills +Nice to have: +You are excited about the prospect of working with technologies such as TensorFlow, Keras, scikit-learn, pandas, PyTorch - and so are we. +Hadoop, Hive, distributed computing frameworks +Experience with NoSQL databases, such as MongoDB, etc +Good applied statistics skills, such as distributions, statistical testing, regression, etc +Understanding of modeling structured and unstructured data +“We want to see examples of interesting Data products/projects that you’ve built!” +If you won the lottery tomorrow you would still apply for this job. +Benefits +FLEXIBLE HOURS AND UNLIMITED VACATION POLICY +Need a break? No problem. Employees can take time off in the way that works best for them and their teams. Work remotely when you need to. +HEALTH AND WELLNESS +Comprehensive extended health care coverage, energy pod, and standing desks. Take care of yourself. +FUN +Off-site adventures, ping-pong, unique traditions, monthly birthday celebrations, Fancy Fridays, Lunch and Learns. +OFFICE MEALS +Catered lunches, healthy snacks, freshly-ground coffee, and Beer O’clock +TOWN HALL +To stay connected we have weekly town halls to celebrate milestones, share updates, welcome new hires, present apps of the week, and crown the QA Star of the Week. +WORKATION +We like to work hard and play hard, and as such we offer yearly Workations for employees to unwind and spend non-work time with coworkers. +Want to learn more? +Our Culture: https://www.symbilitysolutions.com/symbility-intersect/careers/ +Check out our 3D office tour: https://www.symbilitysolutions.com/symbility-intersect/360-office-tour/ +Symbility Intersect is a Toronto based strategic innovation company that works with forward-thinking global brands and disruptive entrepreneurs. Our team focuses on strategy, design, and development of mobile, web and data products. Our approach solves tough problems, overcomes complicated challenges and creates opportunities through innovation. Our deliverables are products and thinking that creates long-term value for our clients, not campaigns that disappear as quickly as their impact. +Symbility Intersect welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process. +If you’re interested in being on the bleeding edge of technology, tackling exciting problems from different industries, and constantly being pushed to learn - apply below!","['mongodb', 'sql', 'pandas', 'pytorch', 'keras', 'scikit', 'python', 'tensorflow', 'hive', 'hadoop', 'nosql']",0.5017452060042544 +https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bAhiFfLCFCTDWTXhkrZezmMhEvrd50Rhpmn7pz2PcghQvYKfU3dMXlTcCU4rxSDJVQSNAAFdO2_zQvff-AcUFYP_h09qdqWtaG5r4cvsOc01tCCCrcVvB9a72zD35rM0fO_Z9cLBy8MUum2M5a82-a9SXgEX5emhgykfnl86HAS7OLtrjXet_HsMecEdnzJZOErhxgr8JmmeU0tEJjcOXvew_JXgPWy0YDn8OduP7ynMdoz2TYrk6M9FsW-fO7QT584zLQO8Ox3atLKVI-4mdEN9ETpExWA3sWAY0V0mD2UH-dkW9PL19njggo3HUxskJrNVkf6k5YC18TMHQcLSCIM1u2ogHhM4sfWUx8yQ7GnoxfI7joW0zx4PNjPH61s77bOeT_LLPjV-uTmvxFFVcmTZke8_TAiRc7kqWB-8i-skK7wS3gMvA05Se4Von8MjV-84_W_i4khJhGCveLjgIDgdMgB676yeJw==&vjs=3&p=3&sk=&fvj=0,"Montréal,QC",Data Engineer,Sun Life Financial,,"At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine. + + + +Job Description: + +We are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations. + +Role Summary: + +Working within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations. + +Main Responsibilities: +Lead development of new batch/low-latency analytical solutions that leverages both traditional and emerging technologies +Design, develop and implement highly scalable data capture and transformation processes +Create effective ETLs/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption +Act as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design +Expand and grow data existing platform capabilities to solve new data problems and challenges +Ensure all automated processes preserve data integrity by managing the alignment of data availability and integration processes +Support quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources +Identify opportunities for new data acquisition and new uses for existing data resources +Research and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices +Perform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk +Define data retention policy, establish data governance best practice, and create automated anomaly detection services +Document and update business continuity and disaster recovery procedures +Engage in ongoing collaboration with data architects, modellers and other members to achieve common goals +Provide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members +Produce and maintain support documentation for ongoing operations +Act as Tier-2/3 support to troubleshoot and resolve technical issues with production data models and services + +Preferred skills: +University degree in Computer Science, Software Engineering, or equivalent +Experience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services +Solid understanding of data warehousing principles, architecture and its implementation in complex environments +Hands-on experience with development of ELT/ETL processes in traditional and distributed environments +Experience as designer of complex Dimensional data models for analytics services +Experience with development for Microsoft SQL Server Analysis Services or equivalent technologies +Experience with various testing methodologies and user acceptance testing +Solid skills in SQL, Python, C++, Java and other languages used in data manipulation +Experience with Hadoop and Big Data technology +Experience with processing large datasets from multiple sources +Ability to operate effectively and independently in a dynamic, fluid environment +Strong verbal and written communications skills with experience in relating complex concepts to non-technical users +Demonstrated ability to exchange ideas and convey complex information clearly and concisely +Proven ability to lead and drive projects and assignments to completion + +Assets: +Experience with optimization and tuning of large data extracts for Tableau +Familiarity with Agile development practices +Understanding of ITIL processes Incident/Change/Release management methodologies +Knowledge of Insurance or Financial Services industry + +Diversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds. + +Persons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com + +We thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted. + + + +Job Category: +Advanced Analytics + + +Posting End Date: +25/10/2018","['etl', 'sql', 'tableau', 'java', 'c++', 'python', 'hadoop', 'agile']",0.4902903378454601 +https://www.indeed.ca/rc/clk?jk=d495a7e3b7c8531d&fccid=4271edc9c2f82254&vjs=3,"Montréal,QC",Data Engineer,Sun Life Financial,,"At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine. + + + +Job Description: + +We are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations. + +Role Summary: + +Working within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations. + +Main Responsibilities: +Lead development of new batch/low-latency analytical solutions that leverages both traditional and emerging technologies +Design, develop and implement highly scalable data capture and transformation processes +Create effective ETLs/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption +Act as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design +Expand and grow data existing platform capabilities to solve new data problems and challenges +Ensure all automated processes preserve data integrity by managing the alignment of data availability and integration processes +Support quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources +Identify opportunities for new data acquisition and new uses for existing data resources +Research and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices +Perform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk +Define data retention policy, establish data governance best practice, and create automated anomaly detection services +Document and update business continuity and disaster recovery procedures +Engage in ongoing collaboration with data architects, modellers and other members to achieve common goals +Provide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members +Produce and maintain support documentation for ongoing operations +Act as Tier-2/3 support to troubleshoot and resolve technical issues with production data models and services + +Preferred skills: +University degree in Computer Science, Software Engineering, or equivalent +Experience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services +Solid understanding of data warehousing principles, architecture and its implementation in complex environments +Hands-on experience with development of ELT/ETL processes in traditional and distributed environments +Experience as designer of complex Dimensional data models for analytics services +Experience with development for Microsoft SQL Server Analysis Services or equivalent technologies +Experience with various testing methodologies and user acceptance testing +Solid skills in SQL, Python, C++, Java and other languages used in data manipulation +Experience with Hadoop and Big Data technology +Experience with processing large datasets from multiple sources +Ability to operate effectively and independently in a dynamic, fluid environment +Strong verbal and written communications skills with experience in relating complex concepts to non-technical users +Demonstrated ability to exchange ideas and convey complex information clearly and concisely +Proven ability to lead and drive projects and assignments to completion + +Assets: +Experience with optimization and tuning of large data extracts for Tableau +Familiarity with Agile development practices +Understanding of ITIL processes Incident/Change/Release management methodologies +Knowledge of Insurance or Financial Services industry + +Diversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds. + +Persons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com + +We thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted. + + + +Job Category: +Advanced Analytics + + +Posting End Date: +25/10/2018","['etl', 'sql', 'tableau', 'java', 'c++', 'python', 'hadoop', 'agile']",0.4902903378454601 +https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bDlKLDPngTr06lU2YfRyF8Zx_JQNYV-F50oihPReKCVJmsJTqZlF_ktUoZ-HFD4-GZ1Siqq4H-HTy5rdZE6_k0C6fHhFtfn09mCL_1F3nwh--NKU2LKo0l7IJefV0q1fIPF1cA6QldA_-oWRn31ij-Lj3ulDPwrbIeelz38Lr8r8xGCJs-K9qBi9tKs_ayb78YmNrdMDK8FWVGAZsgw3ntEUgILSgMJ9k5QKEcNLRYZA_oIjQdXw2D1jIdZxM65ShWi3KMnFMsgJm-XOPlfRbXOWV4smO302WQWrk2jr7EV_nZXY82n7CHCVuDmxem5uMpYnSLMVfmFArK47iZfuPsWMWpHPux3199l2GtCSwBeHZGI_PyQPRXZd-udMfu9YUdAM_Khq7_OWATW9HcwCDMYRn1T1Q8_2jfwbith7dbB58F1Rcp5MMLG7XbnL2r9GCPWEVFJKQ6n1PkHE3cmrY0McgN2OZpGCxQ==&vjs=3&p=2&sk=&fvj=0,"Montréal,QC",Data Engineer,Sun Life Financial,,"At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine. + + + +Job Description: + +We are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations. + +Role Summary: + +Working within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations. + +Main Responsibilities: +Lead development of new batch/low-latency analytical solutions that leverages both traditional and emerging technologies +Design, develop and implement highly scalable data capture and transformation processes +Create effective ETLs/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption +Act as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design +Expand and grow data existing platform capabilities to solve new data problems and challenges +Ensure all automated processes preserve data integrity by managing the alignment of data availability and integration processes +Support quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources +Identify opportunities for new data acquisition and new uses for existing data resources +Research and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices +Perform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk +Define data retention policy, establish data governance best practice, and create automated anomaly detection services +Document and update business continuity and disaster recovery procedures +Engage in ongoing collaboration with data architects, modellers and other members to achieve common goals +Provide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members +Produce and maintain support documentation for ongoing operations +Act as Tier-2/3 support to troubleshoot and resolve technical issues with production data models and services + +Preferred skills: +University degree in Computer Science, Software Engineering, or equivalent +Experience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services +Solid understanding of data warehousing principles, architecture and its implementation in complex environments +Hands-on experience with development of ELT/ETL processes in traditional and distributed environments +Experience as designer of complex Dimensional data models for analytics services +Experience with development for Microsoft SQL Server Analysis Services or equivalent technologies +Experience with various testing methodologies and user acceptance testing +Solid skills in SQL, Python, C++, Java and other languages used in data manipulation +Experience with Hadoop and Big Data technology +Experience with processing large datasets from multiple sources +Ability to operate effectively and independently in a dynamic, fluid environment +Strong verbal and written communications skills with experience in relating complex concepts to non-technical users +Demonstrated ability to exchange ideas and convey complex information clearly and concisely +Proven ability to lead and drive projects and assignments to completion + +Assets: +Experience with optimization and tuning of large data extracts for Tableau +Familiarity with Agile development practices +Understanding of ITIL processes Incident/Change/Release management methodologies +Knowledge of Insurance or Financial Services industry + +Diversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds. + +Persons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com + +We thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted. + + + +Job Category: +Advanced Analytics + + +Posting End Date: +25/10/2018","['etl', 'sql', 'tableau', 'java', 'c++', 'python', 'hadoop', 'agile']",0.4902903378454601 +https://www.indeed.ca/pagead/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3TZs8s_K_8c3BAkEYAHQBDEdCv28K2qWT4XD65DctvKIQ5xBFEiN6Q2BwfTEBLhvzI2M_5JhJZtskjMze0_imkiXMarqa8juRKXTsb1n84hUEuyEvbkxr2XJBaPqqY278NNRSjXBtSY9n73xRIlOUYO0DK4PDA1S35OmOnFXlDpdSUv0lWwW19z7nfX2Yb-o7WB_pjxxcWG8zU0j1nFxW9zlaODo6nstBJdXd8Ttj1-0ytxMsuef6d99AnTr6tkVJIC3XXAq4Sv8JdAd8TWXBs8ubGf7hk0qt3vdf_mCEuI_fT4pG85XtEoDyhWcYrAm_9baTKWj3_ZsXw4lrdVsKA1v84PATKQEP8FKzqY4vs_uhBQsvoZ79dZ6p1caeKsnGZrXZ5bdEyM1nkUbqG7i0MfXQIxzCxghkLniL2LscssQ8T4Optvm8pDQ_3vs24TWZicpZUk8Y6ozAG-0e8Rd3s85YF8eO-pOJYNhXRvc6ECg7w65aKgRXlNoSPzWMkVYnMKTZllQheQB64YPQD8QbTBuloxtfoKZFua4krGa-nplk4AEXthVNTxby7ACIT7UCTEeM3AcfLwApv-vtiz-MYMxPRdtFEBkBP4xt7u7MrFaw-VQO77_LFND6T6IwEpCmAblEt_NZL00BD8K56ahcuxt7a3Fp6usxk9gPF-Dz8DjOrV2j28d-HYhT_gPbNzQXzP8upEm8jTLeCsrf0juF1gRi7X_TsUSRPOmWJXsIQm8NetwtrCO_wMySZDlnwHrur6xI3YXZiyrXCGXd_Fj5PHuot19llZ2Ki_9yJLcESxw==&vjs=3&p=4&sk=&fvj=0,"Toronto,ON",Data Scientist,Logojoy,,"Logojoy is looking for a machine learning focussed Data Scientist to join our AI lab. We have an exciting long term project here that will require a dedicated individual to look at our existing research, data and algorithms and come up with a solution for a new intelligence system we’re creating. +The role: +Collaborate with engineering and product development teams. +Build generative models and machine-learning algorithms. +Keep current with the state of the art in machine learning research. +Analyze large amounts of information to discover trends and patterns. +Propose solutions and strategies to business challenges. +Undertake preprocessing of structured and unstructured data. +Propose creative solutions to hard machine learning problems. +Collaborate with designers and developers to expand Logojoy’s product offerings. +Generate original design elements using deep learning and data science. + +Requirements +Your background: +A solid knowledge of Python and ideally an understanding of Javascript. +Hands on experience working on machine learning or a relevant degree (ie. Machine learning/AI, physics, software engineering, math, computer science.) +A strong understanding of ML concepts, theories and algorithms. +Experience preparing large datasets. +Professional experience with Tensorflow or Torch. +Must have database experience. + +Benefits +We offer a whole range of benefits to make life just that little bit easier, some of our benefits below: +Stock Options. +A guaranteed end of year bonus. +Unlimited vacation. +A personal learning and development budget. +Health and dental care. +Money every month towards a fitness activity of your choice. +Flexible working.","['python', 'tensorflow', 'javascript']",0.48038446141526137 diff --git a/backend/data/recommended_jobsVancouver,BC.csv b/backend/data/recommended_jobsVancouver,BC.csv new file mode 100644 index 000000000..7ff8ec99f --- /dev/null +++ b/backend/data/recommended_jobsVancouver,BC.csv @@ -0,0 +1,169 @@ +link,location,title,company,salary,desc,keywords,similarity_cosine +https://www.indeed.ca/rc/clk?jk=2b943a97c4257feb&fccid=10b5c722d846df43&vjs=3,"Vancouver,BC",Data Scientist - NuData Security,MasterCard,,"Mastercard's Enterprise Security Solutions organization develops and delivers world-class security products and services for customers across the globe. NuData Security predicts fraudulent transactions by identifying good users from bad, based on their online behavior. By analyzing over 38 billion behaviors annually, NuData harnesses the power of behavioral and biometric analysis to empower its clients to predict fraud and verify the user behind the device. This allows clients to predict fraud before a critical decision, reduce customer insult, and investigate bad actors efficiently. + +Role +We are looking for a Data Scientist to join our team in our Vancouver office. This is a key role within the team responsible for researching and developing NuData’s security solutions and you’ll have exciting responsibilities, including: + +Designing, building and deploying machine learning models in collaboration with an agile, high-functioning Data Science team. +Identifying new opportunities in data collection, feature creation, feature selection, model tuning and evaluation workflow, then taking those ideas from first concepts to live product integrations. +Implementing effective monitoring and benchmarking for models and targeting improvements via thorough analysis of massively parallel model deployments. +Partner with NuData’s Data Science and Data Engineering teams to identify and drive opportunities, pioneering the algorithms and systems that power our commercial products. + + + + +All About You +Ideally, you’re: +Experienced in deploying machine learning models to solve real problems and generate competitive edge. You understand good deployment practices and have experience with processes like containerization. Ideally you have successfully developed, deployed, monitored and improved on production models in business contexts. +A capable coder, able to write well-abstracted, reusable, resilient code in Python, Java or Scala. You’re experienced with web services (e.g. EC2, EMR, ECR, Lambda, Sagemaker, Glue, Kinesis, Redshift), and machine learning tools (e.g. Tensorflow, Keras, MXNet, Gluon). +Experienced working with cloud environments. You understand the benefits of cloud infrastructure and know how to design an effective machine learning pipeline in AWS or Google Cloud to automate and scale out machine learning workflows. You have the vision to see what the next generation ML infrastructure looks like. +Familiar with statistical and machine learning concepts. You’re able to inform design discussions and support your teammates via collaborative design, review and recommendations. +A capable communicator in visual and verbal channels, able to explain decisions or concepts to colleagues and provide clear, actionable recommendations. + +It also helps if you are: +Collaborative. We do our best work as a team, which means sharing, being open to support and giving constructive input. +Evidence-based. We work to eliminate assumptions and test our hypotheses, and we value rigor. +Responsible. We offer the opportunity to drive major projects that protect consumers every day, internationally. We are looking for colleagues who care about that. +Motivated. We’re a team of data scientists with personal and collaborative side projects, and we’re looking for someone who shares our enthusiasm. + + +Mastercard is an inclusive Equal Employment Opportunity employer that considers applicants without regard to gender, gender identity, sexual orientation, race, ethnicity, disabled or veteran status, or any other characteristic protected by law. + +If you require accommodations or assistance to complete the online application process, please contact reasonable.accommodation@mastercard.com and identify the type of accommodation or assistance you are requesting. Do not include any medical or health information in this email. The Reasonable Accommodations team will respond to your email promptly.","['java', 'power', 'scala', 'tensorflow', 'python', 'mxnet', 'keras', 'aws', 'google', 'agile']",0.5590169943749475 +https://www.indeed.ca/rc/clk?jk=0bf5a67d2d677439&fccid=c6d2a28efe7e3280&vjs=3,"Vancouver,BC","Senior/Intermediate Big Data Developer, IoT Cloud",Samsung Vancouver R&D Lab,,"Position Summary + +Samsung's IoT team in Vancouver has taken a leadership role in our vision of connected intelligence. We are creating the next generation of IoT solutions, developing cloud software to activate and manage data from a wide range of connected IoT devices, from sensors to TVs to kitchen appliances to cars. As IoT evolves for new industries, we are also creating end-to-end vertical services, most recently in the energy space. + +The IoT Data Platform team in Vancouver handles massive amounts of data generates by Samsung's SmartThings Cloud. The team is responsible for turning this data into information that allows our stakeholders to make data-driven decisions, as well as collaborating with other ML and AI teams across Samsung to help them get the data they need from the IoT Cloud. + +Why We Want You +The IoT Data Platform Team in Vancouver is looking for a highly motivated and experienced Big Data Engineer with passion for big data, streaming, real-time analytics, and who participate in the full cycle from requirements and architecture, to deploying and owning the production system. + +You will join and collaborate with a talented team of the best and brightest IoT Engineers, Big Data Developers, DevOps, Data Scientists and Performance Engineers who work on leading edge technologies and projects that touch millions of people. +First and foremost, you are a team player and know how to work well with others. You have a strong analytical mind and you like to see the whole picture. You have passion for solving complex problems and have a high degree of aptitude when it comes to learning new technologies. You love data and numbers and understand how important your role is in helping with business decisions. +Role and Responsibilities +Be constantly challenged to learn and grow with new technologies and complex problems +Have shared ownership of the cloud-based products and services you build +Implement highly scalable big data systems in a cloud environment +Work in a multi-disciplinary scrum team +Collaborate with other groups across the organization and other projects +Skills and Qualifications +Attitude to work with others and an aptitude to learn quickly +BS or MS in Computer Science or equivalent experience +Minimum 7 years of relevant work experience +Hands-on understanding of scalability and high availability systems +Proficient in Java and/or Scala programming language +Experience with various Big Data technologies (Hadoop, Spark, Kafka, Flink, etc) +Experience with various AWS services (EC2, S3, Lambda, Kinesis, EMR, Redshift etc) +Proficient in scripting languages like bash, Python, etc +Strong knowledge of SQL and NoSQL databases (HBase, Cassandra, etc) +Bonus Skills +DevOps skills: create build & install scripts, create/manage dockers, UNIX-based systems management, release management, production monitoring, security assessments, etc +Knowledge of machine learning and deep learning +Experience with Git and Jenkins +Agile/Scrum software development methodologies +Samsung is an equal employment opportunity employer. + +Samsung has an accommodation process in place and provides accommodations for job applicants with disabilities as appropriate. Assessment and selection materials and procedures can be made available in accessible formats and methods as appropriate. If you require a specific accommodation because of disability or medical need, please let us know when selected to take part in our recruitment process so that reasonable arrangements can be made for the appropriate accommodations to be in place as you move through our process. + +We thank you for your interest in working for Samsung. Only candidates selected for an interview will be contacted.","['scrum', 'java', 'cassandra', 'scala', 'python', 'spark', 'sql', 'hadoop', 'nosql', 'hbase', 'bash', 'aws', 'agile', 'devops']",0.472455591261534 +https://www.indeed.ca/rc/clk?jk=ee3f564164d2074c&fccid=e671f6b2e57dc9e3&vjs=3,"Vancouver,BC",Lead Data Engineer,Ignite Technical Resources,,"Permanent +Lead Data Engineer - Permanent Position in Downtown Vancouver: +On behalf of our local, Downtown Vancouver client, Ignite Technical Resources is seeking a Lead Developer for their Data Analytics Team to join on a Permanent basis. +In this role, you will be managing a Data Analytics team of up to 3 Developers and will have accountability for architecture and system design. +Heavy work/life balance (5 weeks of vacation to start*), shortened workweeks in the summer (paid), a fantastic team, fully stocked kitchen, and a health benefits package is among the perks. +You will have the opportunity to learn cutting edge technologies and will be exposed to strong Agile/Scrum teams alike within the company. Entirely based on AWS, their customers are worldwide enterprises where you'll be a big part in shaping their system and building their team. +Responsibilities: +This role is very hands on and will be focused on system architecture, software design, research, testing and development (80% hands on, 20% leadership) +Plan, design and coordinate the development of new software components for their data aggregation and storage systems +Mentor, train, and on-board new hires and participate in code reviews and other technical discussions +Work together with the team to manage the operations of data processing and storage systems to ensure efficiency whilst upgrading and developing maintenance procedures as needed +Draft technical documentation of software, development environments, production environments, as well as procedures +Lead team meetings and discussions for estimation, software design, software development, and code reviews +Skills and Abilities: +Experience leading teams on projects with data pipelines in a large-scale production environment (MapReduce, Streaming, Batching or similar frameworks) +Will have experience and be comfortable in managing teams, leading, conducting code reviews, training, etc. +Will have experience with system architecture, software design, research, testing, and development +Building data pipelines (AWS EMR, AWS Data Pipeline, ECS, SQS or similar technologies) +Data pipeline language experience +Knowledge of ETL based frameworks +Experience with Scripting Languages +SQL databases experience +BDD or TDD development in an Agile-like process +Post-secondary diploma or equivalent degree in computer science, engineering, or a related discipline +Perks: +5 weeks of vacation to start* +Shortened Summer hours: Every Friday is only a 6-hour workday! +Amazing benefits program including a health and wellness spending account of $2400 in addition/on top of the benefits coverage that is already provided +Fully stocked kitchen (breakfast, snacks, etc.) +Positive, collaborative, and fun team environment with a culture that accepts all individuals +Ability to learn and be exposed to cutting edge technologies +Plenty of opportunities for further education and career growth +Terms: +This is a full-time permanent role based in Downtown, Vancouver. Work environment is casual and comfortable. +Due to the volume of resumes, only those candidates being considered will be contacted. +Ignite Technical Resources is a Vancouver-based Information Technology resourcing firm built around three principles: speed, efficiency and quality. We provide highly trained and qualified technical consultants to your organization as a flexible work force option. +Ignite. Wired for people. +Follow Ignite on Twitter @ignitetechnical and become a fan on Facebook for up-to-date information about our company including job postings!","['scrum', 'mapreduce', 'sql', 'aws', 'agile', 'etl']",0.43301270189221935 +https://www.indeed.ca/company/REBCA/jobs/Senior-Data-Engineer-3c8bffbec9bfede9?fccid=f5906d665e18e186&vjs=3,"Vancouver,BC",Senior Data Engineer,REBCA,"$100,000 - $130,000 a year","$100,000 - $130,000 a year +We are looking for senior data engineer to join our talented and amazing team in Vancouver. +REBCA is an innovative startup in the real estate industry that is determined to introduce exciting and groundbreaking changes to the industry. Our vision is to bring forth unprecedented levels of responsiveness, efficiency, convenience, and transparency in different aspects of the real estate services. +If you are an ambitious individual interested in joining a team to help shape the future of the real estate industry, we encourage you to apply! +Responsibilities: +Develop, maintain and refine advanced models to provide valuable insights for strategic decision making +Identify opportunities where data solutions can be developed to add value across the organization. +Use statistical and machine learning techniques to provide insight on all aspects of REBCA's business and identify opportunities for enhancement. +Work with department teams on a range of business problems, identifying and supporting the implementation of solutions to drive improved business results through a combination of advanced analytics, process engineering and usage of new data discovery tools. +Suggest and evaluate potential solutions derived from the output of predictive models, turning them into tangible cost benefits for the given business area. +Collaborate with key business stakeholders and executive team to enhance and/or develop new products, services and experiences. +Research and develop new ways to apply and analyze experiments to benefit the organization. +Perform database monitoring, maintenance, reorganizations, resource management, schema management, and capacity planning and performance tuning for the company's databases. +Qualifications: +3+ years experience of implementing and/or maintaining a data processing pipeline and its underlying infrastructure +4+ years working experience and education in Big Data platforms +Proficiency in object-oriented/object function scripting languages: Python, Scala, Java +Knowledge of data modeling and understanding of different data structures and their benefits and limitations under particular use cases +Knowledge of GCP technologies such as Big Query ML, Cloud Machine Learning Engine, Dialogflow...etc is a plus +Perks: +Stock Options +Health & Dental Benefits +Growth Opportunities +Social Events +Collaborative Team Environment +Flexible Hours +Convenient Vancouver Office location and easily accessible by transit +Additional Info about this Position: +REBCA is a new startup company with plans for rapid growth. We fully encourage and support our staff to grow and specialize in areas they are passionate in. +Job Type: Full-time +Salary: $100,000.00 to $130,000.00 /year","['java', 'scala', 'python']",0.4082482904638631 +https://www.indeed.ca/rc/clk?jk=236221bbffe731c5&fccid=89ea848be3fa4cf9&vjs=3,"Vancouver,BC",Data Engineer,BuildDirect,,"What You'll Do +Create and maintain optimal data pipeline architecture. +Identify, design, and implement internal process improvements: re-designing infrastructure for greater scalability, automating manual processes, optimizing data delivery, etc. +Build the infrastructure required for optimal extraction, transformation, and loading of data from a wide variety of data sources using SQL and AWS big data technologies. +Work with stakeholders including the Executive, Product, Data and Design teams to assist with data-related technical issues and support their data infrastructure needs. +Create data tools for analytics and data scientist team members that assist them in building and optimizing our product into an innovative industry leader. +What You’ll Need +Experience supporting and working with cross-functional teams in a dynamic environment. +Bachelor or Master degree in Computer Science, Statistics, Informatics, Information Systems or another quantitative field. +Experience with data pipeline and workflow management tools: Airflow, Luigi, Amazon Data Pipeline and etc. +Experience with AWS cloud services: EC2, EMR, RDS, Redshift, Lambda. +Experience with stream-processing systems: Kinesis, Storm, Spark-Streaming, etc. +Experience with one of the object-oriented/scripting languages: Python, Scala, Java, etc. +Excellent team player who lends support and guidance and shares concern, problems and opportunities. +Bonus Experience with big data tools: Hadoop, Spark, Kafka, etc. +What You Must Have +Self-directed and comfortable supporting the data needs of multiple teams, systems and products in a fast-paced and dynamic environment. +Excited by the prospect of optimizing or re-designing our company’s data architecture to support our next generation products and data initiatives. +An audacious spirit that embraces uncertainty and challenges with enthusiasm +High levels of integrity and a commitment to do what you say you are going to do +Strong entrepreneurial spirit that has grit, determination and challenges the status quo +High degree of empathy and the ability to see other’s perspective +Strong sense of curiosity and the desire to learn and get better everyday +A little more about us… + +BuildDirect is reinventing the home improvement industry with the first artificial intelligence (AI)-driven technology platform for heavyweight products. The BuildDirect platform includes two core business units: +BuildDirect Marketplace: An online marketplace that offers Homeowners and Pro Buyers the ability to purchase heavyweight home improvement products direct from Sellers and receive efficient direct-to-home (or jobsite) shipping of those products. +Gateway Supply Chain: The first anywhere-to-the-home supply chain for heavy and bulky goods that equips manufacturers, distributors and retailers with efficient and cost-effective shipping solutions to move their products from anywhere in the world, to locations across North America. +The platform is powered by proprietary AI, machine learning, and predictive analytics that drives robust efficiencies for the innovation of heavyweight product services, distribution, and sales across buyers, sellers, shippers, and everyone in between. + +BuildDirect is headquartered in Vancouver, British Columbia with warehouse locations across North America.","['java', 'bachelor', 'scala', 'python', 'master', 'spark', 'sql', 'hadoop', 'aws']",0.3535533905932738 diff --git a/backend/data/test_docs/Resume.pdf b/backend/data/test_docs/Resume.pdf new file mode 100644 index 000000000..be6f94d5f Binary files /dev/null and b/backend/data/test_docs/Resume.pdf differ diff --git a/backend/job_recommendation.py b/backend/job_recommendation.py new file mode 100644 index 000000000..081235074 --- /dev/null +++ b/backend/job_recommendation.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import sys +import config, web_scrapper +from skill_keyword_match import skill_keyword_match +import nltk +nltk.download('stopwords') + +def main(): + l = '' + jobs_info = web_scrapper.get_jobs_info(l) + skill_match = skill_keyword_match(jobs_info) + skill_match.extract_jobs_keywords() + resume_skills = skill_match.extract_resume_keywords(config.SAMPLE_RESUME_PDF) + top_job_matches = skill_match.cal_similarity(resume_skills.index, l) + print('File of recommended jobs saved') + top_job_matches.drop_duplicates(subset=['location', 'company', 'title'], inplace=True) + return top_job_matches diff --git a/backend/linkedin_scrapper.py b/backend/linkedin_scrapper.py new file mode 100644 index 000000000..f592c6df7 --- /dev/null +++ b/backend/linkedin_scrapper.py @@ -0,0 +1,70 @@ +import os +import logging +import config +from linkedin_jobs_scraper import LinkedinScraper +from linkedin_jobs_scraper.events import Events, EventData, EventMetrics +from linkedin_jobs_scraper.query import Query, QueryOptions, QueryFilters +from linkedin_jobs_scraper.filters import RelevanceFilters, TimeFilters, TypeFilters, ExperienceLevelFilters, RemoteFilters + +import pandas as pd + +chrome_driver_path = os.path.join(os.path.dirname(__file__), "chromedriver") +jobs_data = [] + +logging.basicConfig(level = logging.DEBUG) + +def on_data(data: EventData): + print('[ON_DATA]', data.title, data.company, data.company_link, data.date, data.link, data.insights, len(data.description)) + jobs_data.append({'link': data.link, 'location': data.location, 'title': data.title, 'company': data.company, 'salary':'', 'desc': data.description}) + +def on_metrics(metrics: EventMetrics): + print('[ON_METRICS]', str(metrics)) + +def on_error(error): + print('[ON_ERROR]', error) + +def on_end(): + print('[ON_END]') + +scraper = LinkedinScraper( + chrome_executable_path=chrome_driver_path, + chrome_options=None, + headless=True, + max_workers=1, + slow_mo=1.5, + page_load_timeout=20 +) + +scraper.on(Events.DATA, on_data) +scraper.on(Events.ERROR, on_error) +scraper.on(Events.END, on_end) + +queries = [ + Query( + query='Software Developer', + options=QueryOptions( + locations=['United States', 'Canada'], + apply_link = True, + limit=5, + filters=QueryFilters( + relevance=RelevanceFilters.RECENT, + time=TimeFilters.MONTH, + type=[TypeFilters.FULL_TIME, TypeFilters.INTERNSHIP], + experience=None, + ) + ) + ), +] + +def web_scrape(): + scraper.run(queries) + df = pd.DataFrame(jobs_data, columns=['link', 'location', 'title', 'company', 'salary', 'desc']) + df.to_csv("LinkedinJobs.csv", index=False) + +def get_linkedin_jobs_info(): + exists = os.path.isfile(config.LINKED_JOBS_INFO_CSV_FILE) + if exists: + df = pd.read_csv(config.LINKED_JOBS_INFO_CSV_FILE) + else: + df = web_scrape() + return df diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 000000000..bc2158115 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,29 @@ +async-generator==1.10 +attrs==22.1.0 +beautifulsoup4==4.11.1 +certifi==2022.9.24 +charset-normalizer==2.1.1 +exceptiongroup==1.0.0 +flask_cors==3.0.10 +h11==0.14.0 +idna==3.4 +linkedin-jobs-scraper==1.15.4 +nltk==3.7 +numpy==1.23.4 +outcome==1.2.0 +pandas==1.5.1 +PyPDF2==2.11.2 +PySocks==1.7.1 +python-dateutil==2.8.2 +pytz==2022.6 +requests==2.28.1 +selenium==3.141.0 +six==1.16.0 +sniffio==1.3.0 +sortedcontainers==2.4.0 +soupsieve==2.3.2.post1 +trio==0.22.0 +trio-websocket==0.9.2 +urllib3==1.26.12 +websocket-client==0.59.0 +wsproto==1.2.0 \ No newline at end of file diff --git a/backend/server.py b/backend/server.py new file mode 100644 index 000000000..d8c96704d --- /dev/null +++ b/backend/server.py @@ -0,0 +1,40 @@ +#Flask code to handle the api requests +import os +from flask import Flask, flash, request, redirect, url_for, session +from werkzeug.utils import secure_filename +from flask_cors import CORS, cross_origin +import logging +from job_recommendation import main + +logging.basicConfig(level=logging.INFO) + +logger = logging.getLogger('HELLO WORLD') + +UPLOAD_FOLDER = './data/' +ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif']) + +app = Flask(__name__) +cors = CORS(app) +app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER +app.config['CORS_HEADERS'] = 'Content-Type' + +@app.route('/upload', methods=['POST']) +@cross_origin() +def fileUpload(): + target=os.path.join(UPLOAD_FOLDER,'test_docs') + if not os.path.isdir(target): + os.mkdir(target) + logger.info("welcome to upload`") + file = request.files['file'] + filename = secure_filename("Resume.pdf") + destination="/".join([target, filename]) + file.save(destination) + session['uploadFilePath']=destination + df = main() + data = df.to_json(orient='records') + response=data + return response + +if __name__ == "__main__": + app.secret_key = os.urandom(24) + app.run(debug=True,host="0.0.0.0",port=4000, use_reloader=False) diff --git a/backend/skill_keyword_match.py b/backend/skill_keyword_match.py new file mode 100644 index 000000000..826aef855 --- /dev/null +++ b/backend/skill_keyword_match.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +import numpy as np +import re +import nltk +nltk.download('stopwords') +from nltk.corpus import stopwords +from collections import Counter +import pandas as pd +import PyPDF2 +import config +import linkedin_scrapper + +program_languages = ['bash','r','python','java','c++','ruby','perl','matlab','javascript','scala','php'] +analysis_software = ['excel','tableau','sas','spss','d3','saas','pandas','numpy','scipy','sps','spotfire','scikit','splunk','power','h2o'] +ml_framework = ['pytorch','tensorflow','caffe','caffe2','cntk','mxnet','paddle','keras','bigdl'] +bigdata_tool = ['hadoop','mapreduce','spark','pig','hive','shark','oozie','zookeeper','flume','mahout','etl'] +ml_platform = ['aws','azure','google','ibm'] +methodology = ['agile','devops','scrum'] +databases = ['sql','nosql','hbase','cassandra','mongodb','mysql','mssql','postgresql','oracle','rdbms','bigquery'] +overall_skills_dict = program_languages + analysis_software + ml_framework + bigdata_tool + databases + ml_platform + methodology +education = ['master','phd','undergraduate','bachelor','mba'] +overall_dict = overall_skills_dict + education +jobs_info_df = pd.DataFrame() + +class skill_keyword_match: + def __init__(self, jobs_list): + + self.jobs_info_df = pd.DataFrame(jobs_list) + linkedin_df = linkedin_scrapper.get_linkedin_jobs_info() + self.jobs_info_df = self.jobs_info_df.append(linkedin_df, ignore_index=True) + + def keywords_extract(self, text): + + text = re.sub("[^a-zA-Z+3]"," ", text) + text = text.lower().split() + stops = set(stopwords.words("english")) + text = [w for w in text if not w in stops] + text = list(set(text)) + keywords = [str(word) for word in text if word in overall_dict] + return keywords + + def keywords_count(self, keywords, counter): + keyword_count = pd.DataFrame(columns = ['Freq']) + print(keyword_count) + for each_word in keywords: + keyword_count.loc[each_word] = {'Freq':counter[each_word]} + return keyword_count + + def get_cosine_similarity_bit_vector(self,x,y): + l1=[] + l2=[] + if(len(x) == 0 or len(y) == 0): + cosine = 0 + return cosine + rvector = list(set().union(x,y)) + for w in rvector: + if w in x: l1.append(1) + else: l1.append(0) + if w in y: l2.append(1) + else: l2.append(0) + c = 0 + + # cosine formula + for i in range(len(rvector)): + c+= l1[i]*l2[i] + cosine = c / float((sum(l1)*sum(l2))**0.5) + return cosine + + + def cal_similarity(self, resume_keywords, location=None): + num_jobs_return = 10 + similarity_cosine = [] + j_info = self.jobs_info_df.loc[self.jobs_info_df['location']==location].copy() if len(location)>0 else self.jobs_info_df.copy() + if j_info.shape[0] < num_jobs_return: + num_jobs_return = j_info.shape[0] + for job_skills in j_info['keywords']: + similarity_cosine.append(self.get_cosine_similarity_bit_vector(resume_keywords.tolist(),job_skills)) + j_info['similarity_cosine'] = similarity_cosine + print(j_info) + top_match_based_on_cosine = j_info.sort_values(by='similarity_cosine', ascending=False).head(num_jobs_return) + print(top_match_based_on_cosine) + return top_match_based_on_cosine + + def extract_jobs_keywords(self): + self.jobs_info_df['keywords'] = [self.keywords_extract(job_desc) for job_desc in self.jobs_info_df['desc']] + + def extract_resume_keywords(self, resume_pdf): + resume_file = open(resume_pdf, 'rb') + resume_reader = PyPDF2.PdfFileReader(resume_file) + resume_content = [resume_reader.getPage(x).extractText() for x in range(resume_reader.numPages)] + resume_keywords = [self.keywords_extract(page) for page in resume_content] + resume_freq = Counter() + f = [resume_freq.update(item) for item in resume_keywords] + print("Here we have creater counts of keywords for all the lists extracted based on each page") + print(resume_freq) + resume_skills = self.keywords_count(overall_skills_dict, resume_freq) + return(resume_skills[resume_skills['Freq']>0]) diff --git a/backend/temp.json b/backend/temp.json new file mode 100644 index 000000000..ae979a6e4 --- /dev/null +++ b/backend/temp.json @@ -0,0 +1,5 @@ +{"link":"https:\/\/www.indeed.ca\/rc\/clk?jk=bc21127b5efb61d9&fccid=cdd0a46c7b16957c&vjs=3","location":"Toronto,ON","title":"Data Engineer","company":"Symbility Intersect","salary":null,"desc":"We want to be Where Business Meets the Future..\nINTERSECT delivers mobile and IoT product strategy, design thinking, and engineering excellence for businesses that want to get ahead.\nOur Toronto-based team works with global clients helping them deliver beautiful, usable, and\ninnovative products to their customers, employees, and partners.\nAs our Data Engineer you will work towards defining and establishing a new client offering with a focus on building and executing on Data, Machine Learning, and Artificial Intelligence (AI) solutions. Passion, enthusiasm, obsession with details and the ability to work (and play) in a team are all musts.\nAs Data Engineer, you will be responsible for the following:\nBuild, improve, and optimize Data processes and tools\nDerive Data insights and convert them into real solutions to help our clients\nUnderstand and keep up-to-date with emerging technologies, trends, and innovative solutions being implemented across the industry\nPresenting and justifying strategic thinking to internal stakeholders and external clients\nImplementing technical solutions using Data Science, Machine Learning, and AI techniques\nProcessing, cleansing, and verifying the integrity of data used for analysis\nRequirements\nEntrepreneurial mindset and collaborative approach\nExperience building Data products that have solved internal business problems\nData Science or Machine Learning background\nAcademic background in the fields of math, economics, computer science, or statistics.\n5+ years of practical experience in challenging and fast-paced environments.\nKnowledge of Data Science tools and their application.\nYou believe that horses are beautiful and majestic animals.\nProven business and strategic acumen\nProficiency with Python\nKnowledge of statistical techniques, machine learning algorithms, and data science problem framing\nUnderstanding of the relational database model and knowledge of SQL\nExperience in visualizing and manipulating big datasets\nFamiliarity with the command line\nGood scripting and programming skills\nNice to have:\nYou are excited about the prospect of working with technologies such as TensorFlow, Keras, scikit-learn, pandas, PyTorch - and so are we.\nHadoop, Hive, distributed computing frameworks\nExperience with NoSQL databases, such as MongoDB, etc\nGood applied statistics skills, such as distributions, statistical testing, regression, etc\nUnderstanding of modeling structured and unstructured data\n\u201cWe want to see examples of interesting Data products\/projects that you\u2019ve built!\u201d\nIf you won the lottery tomorrow you would still apply for this job.\nBenefits\nFLEXIBLE HOURS AND UNLIMITED VACATION POLICY\nNeed a break? No problem. Employees can take time off in the way that works best for them and their teams. Work remotely when you need to.\nHEALTH AND WELLNESS\nComprehensive extended health care coverage, energy pod, and standing desks. Take care of yourself.\nFUN\nOff-site adventures, ping-pong, unique traditions, monthly birthday celebrations, Fancy Fridays, Lunch and Learns.\nOFFICE MEALS\nCatered lunches, healthy snacks, freshly-ground coffee, and Beer O\u2019clock\nTOWN HALL\nTo stay connected we have weekly town halls to celebrate milestones, share updates, welcome new hires, present apps of the week, and crown the QA Star of the Week.\nWORKATION\nWe like to work hard and play hard, and as such we offer yearly Workations for employees to unwind and spend non-work time with coworkers.\nWant to learn more?\nOur Culture: https:\/\/www.symbilitysolutions.com\/symbility-intersect\/careers\/\nCheck out our 3D office tour: https:\/\/www.symbilitysolutions.com\/symbility-intersect\/360-office-tour\/\nSymbility Intersect is a Toronto based strategic innovation company that works with forward-thinking global brands and disruptive entrepreneurs. Our team focuses on strategy, design, and development of mobile, web and data products. Our approach solves tough problems, overcomes complicated challenges and creates opportunities through innovation. Our deliverables are products and thinking that creates long-term value for our clients, not campaigns that disappear as quickly as their impact.\nSymbility Intersect welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process.\nIf you\u2019re interested in being on the bleeding edge of technology, tackling exciting problems from different industries, and constantly being pushed to learn - apply below!","keywords":["hadoop","python","nosql","tensorflow","scikit","pandas","pytorch","sql","keras","mongodb","hive"],"similarity_cosine":0.501745206} +{"link":"https:\/\/www.indeed.ca\/pagead\/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bAhiFfLCFCTDWTXhkrZezmMhEvrd50Rhpmn7pz2PcghQvYKfU3dMXlTcCU4rxSDJVQSNAAFdO2_zQvff-AcUFYP_h09qdqWtaG5r4cvsOc01tCCCrcVvB9a72zD35rM0fO_Z9cLBy8MUum2M5a82-a9SXgEX5emhgykfnl86HAS7OLtrjXet_HsMecEdnzJZOErhxgr8JmmeU0tEJjcOXvew_JXgPWy0YDn8OduP7ynMdoz2TYrk6M9FsW-fO7QT584zLQO8Ox3atLKVI-4mdEN9ETpExWA3sWAY0V0mD2UH-dkW9PL19njggo3HUxskJrNVkf6k5YC18TMHQcLSCIM1u2ogHhM4sfWUx8yQ7GnoxfI7joW0zx4PNjPH61s77bOeT_LLPjV-uTmvxFFVcmTZke8_TAiRc7kqWB-8i-skK7wS3gMvA05Se4Von8MjV-84_W_i4khJhGCveLjgIDgdMgB676yeJw==&vjs=3&p=3&sk=&fvj=0","location":"Montr\u00e9al,QC","title":"Data Engineer","company":"Sun Life Financial","salary":null,"desc":"At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nWe are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations.\n\nRole Summary:\n\nWorking within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations.\n\nMain Responsibilities:\nLead development of new batch\/low-latency analytical solutions that leverages both traditional and emerging technologies\nDesign, develop and implement highly scalable data capture and transformation processes\nCreate effective ETLs\/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption\nAct as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design\nExpand and grow data existing platform capabilities to solve new data problems and challenges\nEnsure all automated processes preserve data integrity by managing the alignment of data availability and integration processes\nSupport quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources\nIdentify opportunities for new data acquisition and new uses for existing data resources\nResearch and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices\nPerform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk\nDefine data retention policy, establish data governance best practice, and create automated anomaly detection services\nDocument and update business continuity and disaster recovery procedures\nEngage in ongoing collaboration with data architects, modellers and other members to achieve common goals\nProvide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members\nProduce and maintain support documentation for ongoing operations\nAct as Tier-2\/3 support to troubleshoot and resolve technical issues with production data models and services\n\nPreferred skills:\nUniversity degree in Computer Science, Software Engineering, or equivalent\nExperience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services\nSolid understanding of data warehousing principles, architecture and its implementation in complex environments\nHands-on experience with development of ELT\/ETL processes in traditional and distributed environments\nExperience as designer of complex Dimensional data models for analytics services\nExperience with development for Microsoft SQL Server Analysis Services or equivalent technologies\nExperience with various testing methodologies and user acceptance testing\nSolid skills in SQL, Python, C++, Java and other languages used in data manipulation\nExperience with Hadoop and Big Data technology\nExperience with processing large datasets from multiple sources\nAbility to operate effectively and independently in a dynamic, fluid environment\nStrong verbal and written communications skills with experience in relating complex concepts to non-technical users\nDemonstrated ability to exchange ideas and convey complex information clearly and concisely\nProven ability to lead and drive projects and assignments to completion\n\nAssets:\nExperience with optimization and tuning of large data extracts for Tableau\nFamiliarity with Agile development practices\nUnderstanding of ITIL processes Incident\/Change\/Release management methodologies\nKnowledge of Insurance or Financial Services industry\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n25\/10\/2018","keywords":["hadoop","python","tableau","java","sql","c++","etl","agile"],"similarity_cosine":0.4902903378} +{"link":"https:\/\/www.indeed.ca\/rc\/clk?jk=d495a7e3b7c8531d&fccid=4271edc9c2f82254&vjs=3","location":"Montr\u00e9al,QC","title":"Data Engineer","company":"Sun Life Financial","salary":null,"desc":"At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nWe are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations.\n\nRole Summary:\n\nWorking within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations.\n\nMain Responsibilities:\nLead development of new batch\/low-latency analytical solutions that leverages both traditional and emerging technologies\nDesign, develop and implement highly scalable data capture and transformation processes\nCreate effective ETLs\/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption\nAct as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design\nExpand and grow data existing platform capabilities to solve new data problems and challenges\nEnsure all automated processes preserve data integrity by managing the alignment of data availability and integration processes\nSupport quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources\nIdentify opportunities for new data acquisition and new uses for existing data resources\nResearch and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices\nPerform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk\nDefine data retention policy, establish data governance best practice, and create automated anomaly detection services\nDocument and update business continuity and disaster recovery procedures\nEngage in ongoing collaboration with data architects, modellers and other members to achieve common goals\nProvide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members\nProduce and maintain support documentation for ongoing operations\nAct as Tier-2\/3 support to troubleshoot and resolve technical issues with production data models and services\n\nPreferred skills:\nUniversity degree in Computer Science, Software Engineering, or equivalent\nExperience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services\nSolid understanding of data warehousing principles, architecture and its implementation in complex environments\nHands-on experience with development of ELT\/ETL processes in traditional and distributed environments\nExperience as designer of complex Dimensional data models for analytics services\nExperience with development for Microsoft SQL Server Analysis Services or equivalent technologies\nExperience with various testing methodologies and user acceptance testing\nSolid skills in SQL, Python, C++, Java and other languages used in data manipulation\nExperience with Hadoop and Big Data technology\nExperience with processing large datasets from multiple sources\nAbility to operate effectively and independently in a dynamic, fluid environment\nStrong verbal and written communications skills with experience in relating complex concepts to non-technical users\nDemonstrated ability to exchange ideas and convey complex information clearly and concisely\nProven ability to lead and drive projects and assignments to completion\n\nAssets:\nExperience with optimization and tuning of large data extracts for Tableau\nFamiliarity with Agile development practices\nUnderstanding of ITIL processes Incident\/Change\/Release management methodologies\nKnowledge of Insurance or Financial Services industry\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n25\/10\/2018","keywords":["hadoop","python","tableau","java","sql","c++","etl","agile"],"similarity_cosine":0.4902903378} +{"link":"https:\/\/www.indeed.ca\/pagead\/clk?mo=r&ad=-6NYlbfkN0DfaJzxeKsHg3yNa09Lu8cQQduvjegwzxl5yjE4sdO8aCQ7r433WSCgz7HcYFllrICUutaiYZ3SywZPE6JNXcysT7G1p3sESm5Ew2MJJ_yjBhQH-5XCgk4BN-i8NEEjgeaCDFlZ8KG_bDlKLDPngTr06lU2YfRyF8Zx_JQNYV-F50oihPReKCVJmsJTqZlF_ktUoZ-HFD4-GZ1Siqq4H-HTy5rdZE6_k0C6fHhFtfn09mCL_1F3nwh--NKU2LKo0l7IJefV0q1fIPF1cA6QldA_-oWRn31ij-Lj3ulDPwrbIeelz38Lr8r8xGCJs-K9qBi9tKs_ayb78YmNrdMDK8FWVGAZsgw3ntEUgILSgMJ9k5QKEcNLRYZA_oIjQdXw2D1jIdZxM65ShWi3KMnFMsgJm-XOPlfRbXOWV4smO302WQWrk2jr7EV_nZXY82n7CHCVuDmxem5uMpYnSLMVfmFArK47iZfuPsWMWpHPux3199l2GtCSwBeHZGI_PyQPRXZd-udMfu9YUdAM_Khq7_OWATW9HcwCDMYRn1T1Q8_2jfwbith7dbB58F1Rcp5MMLG7XbnL2r9GCPWEVFJKQ6n1PkHE3cmrY0McgN2OZpGCxQ==&vjs=3&p=2&sk=&fvj=0","location":"Montr\u00e9al,QC","title":"Data Engineer","company":"Sun Life Financial","salary":null,"desc":"At Sun Life, we work together, share common values and encourage growth and achievement. We offer many career paths that attract a wide variety of talent and skills. Follow a path that lets your talents shine.\n\n\n\nJob Description:\n\nWe are currently looking for a Data Engineer with a passion for turning disparate streams of data into organized and actionable analytics services and insights. As a Data Engineer on the Data Engineering and Operations team, you will be joining a group of hardworking and savvy innovators who has made it their mission to find new ways to glean value out of rapidly increasing volumes of operational data in Canadian Operations.\n\nRole Summary:\n\nWorking within a diverse and motivated team of analytics professionals, the Data Engineer will lead the development of efficient data capture and transformation processes and complex data models that form the core of a new generation of analytics services and self-serve solutions for our customers in Canadian Operations.\n\nMain Responsibilities:\nLead development of new batch\/low-latency analytical solutions that leverages both traditional and emerging technologies\nDesign, develop and implement highly scalable data capture and transformation processes\nCreate effective ETLs\/ELTs to move large volumes of data from various operational systems to dimensional data models for analytics consumption\nAct as principal designer and reviewer for new data models, make data architectural decision, and provide coaching on data modeling and process design\nExpand and grow data existing platform capabilities to solve new data problems and challenges\nEnsure all automated processes preserve data integrity by managing the alignment of data availability and integration processes\nSupport quantitative analysts and data scientists with data discovery and rapid assembly of large data sets from disparate sources\nIdentify opportunities for new data acquisition and new uses for existing data resources\nResearch and make recommendations for new data management technologies and software engineering practices. Collaborate on decisions around the use of new tools and practices\nPerform quality assurance and testing according to risk assessment guidelines to minimize operational, reputation, and legal risk\nDefine data retention policy, establish data governance best practice, and create automated anomaly detection services\nDocument and update business continuity and disaster recovery procedures\nEngage in ongoing collaboration with data architects, modellers and other members to achieve common goals\nProvide guidance to development teams regarding best practices and design patterns for analytics solutions. Coach and provide guidance to junior team members\nProduce and maintain support documentation for ongoing operations\nAct as Tier-2\/3 support to troubleshoot and resolve technical issues with production data models and services\n\nPreferred skills:\nUniversity degree in Computer Science, Software Engineering, or equivalent\nExperience with hybrid data environments that leverage both distributed and relational database technologies to support analytics services\nSolid understanding of data warehousing principles, architecture and its implementation in complex environments\nHands-on experience with development of ELT\/ETL processes in traditional and distributed environments\nExperience as designer of complex Dimensional data models for analytics services\nExperience with development for Microsoft SQL Server Analysis Services or equivalent technologies\nExperience with various testing methodologies and user acceptance testing\nSolid skills in SQL, Python, C++, Java and other languages used in data manipulation\nExperience with Hadoop and Big Data technology\nExperience with processing large datasets from multiple sources\nAbility to operate effectively and independently in a dynamic, fluid environment\nStrong verbal and written communications skills with experience in relating complex concepts to non-technical users\nDemonstrated ability to exchange ideas and convey complex information clearly and concisely\nProven ability to lead and drive projects and assignments to completion\n\nAssets:\nExperience with optimization and tuning of large data extracts for Tableau\nFamiliarity with Agile development practices\nUnderstanding of ITIL processes Incident\/Change\/Release management methodologies\nKnowledge of Insurance or Financial Services industry\n\nDiversity and inclusion have always been at the core of our values at Sun Life. A diverse workforce with wide perspectives and creative ideas benefits our clients, the communities where we operate and all of us as colleagues. We welcome applications from qualified individuals from all backgrounds.\n\nPersons with disabilities who need accommodation in the application process, or those needing job postings in an alternative format, may e-mail a request to thebrightside@sunlife.com\n\nWe thank all applicants for showing an interest in this position. Only those selected for an interview will be contacted.\n\n\n\nJob Category:\nAdvanced Analytics\n\n\nPosting End Date:\n25\/10\/2018","keywords":["hadoop","python","tableau","java","sql","c++","etl","agile"],"similarity_cosine":0.4902903378} +{"link":"https:\/\/www.indeed.ca\/pagead\/clk?mo=r&ad=-6NYlbfkN0AhhmRm1Z03fWHv4fse08urdMhAe3TjCZBuLWsWWxM-074zFNNrBepKYoyUHMIzKR3TZs8s_K_8c3BAkEYAHQBDEdCv28K2qWT4XD65DctvKIQ5xBFEiN6Q2BwfTEBLhvzI2M_5JhJZtskjMze0_imkiXMarqa8juRKXTsb1n84hUEuyEvbkxr2XJBaPqqY278NNRSjXBtSY9n73xRIlOUYO0DK4PDA1S35OmOnFXlDpdSUv0lWwW19z7nfX2Yb-o7WB_pjxxcWG8zU0j1nFxW9zlaODo6nstBJdXd8Ttj1-0ytxMsuef6d99AnTr6tkVJIC3XXAq4Sv8JdAd8TWXBs8ubGf7hk0qt3vdf_mCEuI_fT4pG85XtEoDyhWcYrAm_9baTKWj3_ZsXw4lrdVsKA1v84PATKQEP8FKzqY4vs_uhBQsvoZ79dZ6p1caeKsnGZrXZ5bdEyM1nkUbqG7i0MfXQIxzCxghkLniL2LscssQ8T4Optvm8pDQ_3vs24TWZicpZUk8Y6ozAG-0e8Rd3s85YF8eO-pOJYNhXRvc6ECg7w65aKgRXlNoSPzWMkVYnMKTZllQheQB64YPQD8QbTBuloxtfoKZFua4krGa-nplk4AEXthVNTxby7ACIT7UCTEeM3AcfLwApv-vtiz-MYMxPRdtFEBkBP4xt7u7MrFaw-VQO77_LFND6T6IwEpCmAblEt_NZL00BD8K56ahcuxt7a3Fp6usxk9gPF-Dz8DjOrV2j28d-HYhT_gPbNzQXzP8upEm8jTLeCsrf0juF1gRi7X_TsUSRPOmWJXsIQm8NetwtrCO_wMySZDlnwHrur6xI3YXZiyrXCGXd_Fj5PHuot19llZ2Ki_9yJLcESxw==&vjs=3&p=4&sk=&fvj=0","location":"Toronto,ON","title":"Data Scientist","company":"Logojoy","salary":null,"desc":"Logojoy is looking for a machine learning focussed Data Scientist to join our AI lab. We have an exciting long term project here that will require a dedicated individual to look at our existing research, data and algorithms and come up with a solution for a new intelligence system we\u2019re creating.\nThe role:\nCollaborate with engineering and product development teams.\nBuild generative models and machine-learning algorithms.\nKeep current with the state of the art in machine learning research.\nAnalyze large amounts of information to discover trends and patterns.\nPropose solutions and strategies to business challenges.\nUndertake preprocessing of structured and unstructured data.\nPropose creative solutions to hard machine learning problems.\nCollaborate with designers and developers to expand Logojoy\u2019s product offerings.\nGenerate original design elements using deep learning and data science.\n\nRequirements\nYour background:\nA solid knowledge of Python and ideally an understanding of Javascript.\nHands on experience working on machine learning or a relevant degree (ie. Machine learning\/AI, physics, software engineering, math, computer science.)\nA strong understanding of ML concepts, theories and algorithms.\nExperience preparing large datasets.\nProfessional experience with Tensorflow or Torch.\nMust have database experience.\n\nBenefits\nWe offer a whole range of benefits to make life just that little bit easier, some of our benefits below:\nStock Options.\nA guaranteed end of year bonus.\nUnlimited vacation.\nA personal learning and development budget.\nHealth and dental care.\nMoney every month towards a fitness activity of your choice.\nFlexible working.","keywords":["javascript","python","tensorflow"],"similarity_cosine":0.4803844614} diff --git a/backend/web_scrapper.py b/backend/web_scrapper.py new file mode 100644 index 000000000..514f3c8ff --- /dev/null +++ b/backend/web_scrapper.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +import random, json +import numpy as np +from selenium import webdriver +from selenium.common.exceptions import NoSuchElementException +import time, os +import config + +max_results_per_city = 500 +page_record_limit = 50 +num_pages = int(max_results_per_city/page_record_limit) + +def get_jobs_info(sl): + exists = os.path.isfile(config.JOBS_INFO_JSON_FILE) + if exists: + with open(config.JOBS_INFO_JSON_FILE, 'r') as fp: + jobs_info = json.load(fp) + else: + jobs_info = web_scrape(sl) + return jobs_info + +def web_scrape(sl): + job_links = [] + start = time.time() + driver = webdriver.Chrome(config.WEBDRIVER_PATH) + job_locations = config.JOB_LOCATIONS + if (len(sl) > 0): + job_locations = [sl] + + for location in job_locations: + url = 'https://www.indeed.ca/jobs?q='+ config.JOB_SEARCH_WORDS + '&l=' \ + + location + '&limit=' + str(page_record_limit) + '&fromage='+ str(config.DAY_RANGE) + + driver.set_page_load_timeout(15) + webdriver.DesiredCapabilities.CHROME["unexpectedAlertBehaviour"] = "accept" + driver.get(url) + time.sleep(3) + for i in range(num_pages): + try: + for job_each in driver.find_elements_by_xpath('//*[@data-tn-element="jobTitle"]'): + job_link = job_each.get_attribute('href') + job_links.append({'location':location, 'job_link':job_link}) + print ('scraping {} page {}'.format(location, i+1)) + driver.find_element_by_link_text('Next »').click() + except NoSuchElementException: + print ("{} finished".format(location)) + break + time.sleep(3) + with open(config.JOBS_LINKS_JSON_FILE, 'w') as fp: + json.dump(job_links, fp) + + jobs_info = [] + for job_lk in job_links: + m = random.randint(1,5) + time.sleep(m) + link = job_lk['job_link'] + driver.get(link) + location = job_lk['location'] + title = driver.find_element_by_xpath('//*[@class="icl-u-xs-mb--xs icl-u-xs-mt--none jobsearch-JobInfoHeader-title"]').text + company = driver.find_element_by_xpath('//*[@class="icl-u-lg-mr--sm icl-u-xs-mr--xs"]').text + if (len(driver.find_elements_by_xpath('//*[@class="jobsearch-JobMetadataHeader-item "]'))==0): + salary = np.nan + else: + salary = driver.find_element_by_xpath('//*[@class="jobsearch-JobMetadataHeader-item "]').text + desc = driver.find_element_by_xpath('//*[@class="jobsearch-JobComponent-description icl-u-xs-mt--md"]').text + jobs_info.append({'link':link, 'location':location, 'title':title, 'company':company, 'salary':salary, 'desc':desc}) + with open(config.JOBS_INFO_JSON_FILE, 'w') as fp: + json.dump(jobs_info, fp) + driver.quit() + end = time.time() + scaping_time = (end-start)/60. + print('Took {0:.2f} minutes scraping {1:d} data scientist/engineer/analyst jobs'.format(scaping_time, len(jobs_info))) + return jobs_info diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 000000000..4d29575de --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/client/README.md b/client/README.md new file mode 100644 index 000000000..b87cb0044 --- /dev/null +++ b/client/README.md @@ -0,0 +1,46 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 000000000..b5b455cba --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,28782 @@ +{ + "name": "client", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "client", + "version": "0.1.0", + "dependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.4", + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9", + "axios": "^1.2.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "typescript": "^4.9.3", + "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@tsconfig/create-react-app": "^1.0.3", + "sass": "^1.56.1" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "dependencies": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz", + "integrity": "sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", + "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", + "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", + "dependencies": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", + "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <4.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", + "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/create-react-app": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/create-react-app/-/create-react-app-1.0.3.tgz", + "integrity": "sha512-sAsKAmKzWJlLWpCTyaUHUhqkQEAGAIaNs90sVbZsBhqBTNTnLkcZUr7U5HLI9EUN8QppfkxfGjvaATSgZQhiGQ==", + "dev": true + }, + "node_modules/@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" + }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "node_modules/@types/node": { + "version": "16.18.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.4.tgz", + "integrity": "sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", + "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", + "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/type-utils": "5.45.0", + "@typescript-eslint/utils": "5.45.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.45.0.tgz", + "integrity": "sha512-DnRQg5+3uHHt/gaifTjwg9OKbg9/TWehfJzYHQIDJboPEbF897BKDE/qoqMhW7nf0jWRV1mwVXTaUvtB1/9Gwg==", + "dependencies": { + "@typescript-eslint/utils": "5.45.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", + "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", + "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", + "dependencies": { + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", + "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/utils": "5.45.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", + "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", + "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", + "dependencies": { + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", + "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", + "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "dependencies": { + "@typescript-eslint/types": "5.45.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", + "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.2.tgz", + "integrity": "sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", + "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001436", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", + "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "node_modules/clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.18", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.2.0.tgz", + "integrity": "sha512-JYlIsE7eKHSi0UNuCyo96YuIDFqvhGgHw4Ck6lsN+DP0Tp8M64UTDT2trGbkMDqnCoEjks7CkS0XcjU0rkvBdg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "dependencies": { + "cssnano-preset-default": "^5.2.13", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", + "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-equal/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", + "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "dependencies": { + "@babel/runtime": "^7.18.9", + "aria-query": "^4.2.2", + "array-includes": "^3.1.5", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.4.3", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.2", + "language-tags": "^1.0.5", + "minimatch": "^3.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.31.11", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", + "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz", + "integrity": "sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==", + "dependencies": { + "@typescript-eslint/utils": "^5.13.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "devOptional": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.6.tgz", + "integrity": "sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz", + "integrity": "sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", + "dependencies": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "devOptional": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", + "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.18", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" + }, + "node_modules/workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "dependencies": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "dependencies": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "node_modules/workbox-sw": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", + "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" + }, + "@babel/core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "requires": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz", + "integrity": "sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", + "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", + "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-flow": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + } + }, + "@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + } + }, + "@babel/runtime": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/runtime-corejs3": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", + "requires": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "requires": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "requires": {} + }, + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "requires": {} + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "requires": { + "eslint-scope": "5.1.1" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", + "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", + "requires": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } + } + }, + "@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" + }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "requires": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + }, + "@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + } + }, + "@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "requires": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "requires": { + "@babel/types": "^7.12.6" + } + }, + "@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "requires": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + } + }, + "@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + } + }, + "@testing-library/dom": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", + "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "requires": { + "deep-equal": "^2.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "requires": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "requires": { + "deep-equal": "^2.0.5" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + } + }, + "@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@tsconfig/create-react-app": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/create-react-app/-/create-react-app-1.0.3.tgz", + "integrity": "sha512-sAsKAmKzWJlLWpCTyaUHUhqkQEAGAIaNs90sVbZsBhqBTNTnLkcZUr7U5HLI9EUN8QppfkxfGjvaATSgZQhiGQ==", + "dev": true + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" + }, + "@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "requires": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "@types/node": { + "version": "16.18.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.4.tgz", + "integrity": "sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", + "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "requires": { + "@types/jest": "*" + } + }, + "@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", + "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", + "requires": { + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/type-utils": "5.45.0", + "@typescript-eslint/utils": "5.45.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.45.0.tgz", + "integrity": "sha512-DnRQg5+3uHHt/gaifTjwg9OKbg9/TWehfJzYHQIDJboPEbF897BKDE/qoqMhW7nf0jWRV1mwVXTaUvtB1/9Gwg==", + "requires": { + "@typescript-eslint/utils": "5.45.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", + "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", + "requires": { + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", + "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", + "requires": { + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", + "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", + "requires": { + "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/utils": "5.45.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", + "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", + "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", + "requires": { + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", + "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", + "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "requires": { + "@typescript-eslint/types": "5.45.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", + "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==" + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "axe-core": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.2.tgz", + "integrity": "sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==" + }, + "axios": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", + "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "requires": {} + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001436", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==" + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, + "check-types": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", + "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==" + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-js": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==" + }, + "core-js-compat": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", + "requires": { + "browserslist": "^4.21.4" + } + }, + "core-js-pure": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "requires": {} + }, + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-loader": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.18", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "requires": {} + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "cssdb": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.2.0.tgz", + "integrity": "sha512-JYlIsE7eKHSi0UNuCyo96YuIDFqvhGgHw4Ck6lsN+DP0Tp8M64UTDT2trGbkMDqnCoEjks7CkS0XcjU0rkvBdg==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "requires": { + "cssnano-preset-default": "^5.2.13", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "requires": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "deep-equal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", + "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.8" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "requires": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "requires": { + "jake": "^10.8.5" + } + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", + "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + } + } + }, + "eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "requires": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "requires": { + "@typescript-eslint/experimental-utils": "^5.0.0" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "requires": { + "@babel/runtime": "^7.18.9", + "aria-query": "^4.2.2", + "array-includes": "^3.1.5", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.4.3", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.2", + "language-tags": "^1.0.5", + "minimatch": "^3.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "eslint-plugin-react": { + "version": "7.31.11", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", + "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "requires": {} + }, + "eslint-plugin-testing-library": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz", + "integrity": "sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==", + "requires": { + "@typescript-eslint/utils": "^5.13.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + }, + "eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "requires": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + } + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + } + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==" + }, + "immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" + }, + "immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "devOptional": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "requires": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "requires": {} + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "dependencies": { + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + }, + "string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "requires": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" + } + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, + "jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "requires": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" + }, + "language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "language-tags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.6.tgz", + "integrity": "sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg==", + "requires": { + "language-subtag-registry": "^0.3.20" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "requires": { + "tmpl": "1.0.5" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + "mini-css-extract-plugin": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz", + "integrity": "sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw==", + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", + "requires": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "requires": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } + } + }, + "postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "requires": {} + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "requires": {} + }, + "postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "requires": {} + }, + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "requires": {} + }, + "postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "requires": {} + }, + "postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "requires": {} + }, + "postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "requires": {} + }, + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "requires": {} + }, + "postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + } + }, + "postcss-merge-rules": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "requires": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "requires": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "requires": {} + }, + "postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "requires": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-reduce-initial": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "requires": {} + }, + "postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + } + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "requires": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + } + }, + "react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" + }, + "react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "requires": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "fsevents": "^2.3.2", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "requires": { + "minimatch": "^3.0.5" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "sass": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "devOptional": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + } + } + }, + "string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "requires": {} + }, + "stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "requires": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + } + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "tailwindcss": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", + "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", + "requires": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.18", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "dependencies": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" + }, + "tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "requires": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + } + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "requires": {} + } + } + }, + "webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "requires": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "requires": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-build": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "requires": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "dependencies": { + "@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "requires": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "requires": { + "punycode": "^2.1.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" + }, + "workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "requires": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "requires": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "requires": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-recipes": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "requires": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "requires": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "workbox-sw": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==" + }, + "workbox-webpack-plugin": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", + "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", + "requires": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "workbox-window": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "requires": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 000000000..e227c10cd --- /dev/null +++ b/client/package.json @@ -0,0 +1,49 @@ +{ + "name": "client", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.4", + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9", + "axios": "^1.2.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "typescript": "^4.9.3", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@tsconfig/create-react-app": "^1.0.3", + "sass": "^1.56.1" + }, + "proxy": "http://localhost:3001" +} diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 000000000..a11777cc4 Binary files /dev/null and b/client/public/favicon.ico differ diff --git a/client/public/index.html b/client/public/index.html new file mode 100644 index 000000000..aa069f27c --- /dev/null +++ b/client/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/client/public/logo192.png b/client/public/logo192.png new file mode 100644 index 000000000..fc44b0a37 Binary files /dev/null and b/client/public/logo192.png differ diff --git a/client/public/logo512.png b/client/public/logo512.png new file mode 100644 index 000000000..a4e47a654 Binary files /dev/null and b/client/public/logo512.png differ diff --git a/client/public/manifest.json b/client/public/manifest.json new file mode 100644 index 000000000..080d6c77a --- /dev/null +++ b/client/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/client/public/robots.txt b/client/public/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/client/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/client/src/App.css b/client/src/App.css new file mode 100644 index 000000000..1acfcd61b --- /dev/null +++ b/client/src/App.css @@ -0,0 +1,72 @@ +.container{ + display:flex; + align-items: center; + min-height: 100vh; + flex-direction: column; + margin: 1em 1em; + padding: 1em 0;; + border: 1px solid lavender; + border-radius: 5px; +} + +.navbar{ + display: flex; + width: auto; + background-color: rgb(13, 97, 143); + height: auto; + justify-content: center; + align-items: center; + padding: 0 1em; + color: aliceblue; +} + +.title{ + flex:1 +} + +a{ + text-decoration: none; + color: aliceblue; +} + +a:hover{ + color: darkorange; +} + +.resultsItem a{ + font-style: italic; + color: blue; +} + +.results{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin: 1em; + padding: 1em; +} + +.resultsItem{ + text-decoration: none; + align-items: center; + padding: 1em; + margin: 0.5em; + transition: transform .4s; + box-shadow: inset 0 -3em 3em rgba(0, 0, 0, 0.1), 0 0 0 2px rgb(255, 255, 255), + 0.3em 0.3em 1em rgba(0, 0, 0, 0.3); +} + +.resultsItem:hover{ + transform: scale(1.05); +} + +span{ + font-weight: 300; + font-style: italic; + margin: 0.1em; +} + +h3,h4{ + margin: 0.1em; +} \ No newline at end of file diff --git a/client/src/App.tsx b/client/src/App.tsx new file mode 100644 index 000000000..ccafa9776 --- /dev/null +++ b/client/src/App.tsx @@ -0,0 +1,28 @@ +import { useState } from 'react'; +import './App.css'; +import UploadFile from './components/UploadFile'; +import Results from 'components/Results'; + +const App = () => { + const [jobsData, setJobsData] = useState(false); + + return ( + <> +
+

Job Recommendation System

+ Github +
+
+ + {jobsData? +
+ +
+ : +

No results Found

} +
+ + ); +} + +export default App; diff --git a/client/src/components/JobItem.js b/client/src/components/JobItem.js new file mode 100644 index 000000000..0e5a1bb87 --- /dev/null +++ b/client/src/components/JobItem.js @@ -0,0 +1,27 @@ +import React, { useState } from 'react' + +const JobItem = ({job}) => { + const [isReadMore, setReadMore] = useState(false); + + const toggleReadMore = () =>{ + setReadMore((prevState) => !prevState); + } + + return ( +
+

{job.company}

+

{job.title}

+ {job.location} +
+ Apply Now +

+ {isReadMore?job.desc: job.desc.slice(0,150)} + + {isReadMore?"...see less.":"...read more."} + +

+
+ ) +} + +export default JobItem \ No newline at end of file diff --git a/client/src/components/Results.js b/client/src/components/Results.js new file mode 100644 index 000000000..f3b54242e --- /dev/null +++ b/client/src/components/Results.js @@ -0,0 +1,22 @@ +import React from 'react' +import JobItem from './JobItem'; + +const Results = ({jobsData}) => { + const jobs = jobsData.data; + + return ( +
+

Recommended jobs for you

+

Based on your Resume

+ { + jobs.map((job)=>( +
+ +
+ )) + } +
+ ) +} + +export default Results \ No newline at end of file diff --git a/client/src/components/UploadFile.js b/client/src/components/UploadFile.js new file mode 100644 index 000000000..880211bef --- /dev/null +++ b/client/src/components/UploadFile.js @@ -0,0 +1,38 @@ +import React, { useState } from 'react' +import axios from 'axios'; + +const UploadFile = ({setJobsData}) => { + const [chosenFile, setChosenFile] = useState(''); + const [fileRef, setFileRef] = useState(false); + + const handleSubmit = (e) => { + e.preventDefault(); + + if(fileRef.files[0]){ + const data = new FormData(); + data.append('file', fileRef.files[0]) + + axios.post('http://localhost:4000/upload', data) + .then((result) => { + console.log('Success:', result); + setJobsData(result); + }) + .catch((error) => { + console.error('Error:', error); + }); + }else{ + alert("Select a File to Upload"); + } + } + + return ( +
+
handleSubmit(e)}> + setFileRef(ref)}/> + +
+
+ ) +} + +export default UploadFile \ No newline at end of file diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 000000000..ec2585e8c --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/client/src/index.tsx b/client/src/index.tsx new file mode 100644 index 000000000..b76884425 --- /dev/null +++ b/client/src/index.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; + +const root = ReactDOM.createRoot( + document.getElementById('root') as HTMLElement +); +root.render( + + + +); + diff --git a/client/src/react-app-env.d.ts b/client/src/react-app-env.d.ts new file mode 100644 index 000000000..6431bc5fc --- /dev/null +++ b/client/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 000000000..e8eb4b7a3 --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@tsconfig/create-react-app/tsconfig.json", + "compilerOptions": { + "target": "es6", + "baseUrl": "src", + "noUnusedLocals": true, + "noUnusedParameters": true, + "incremental": true + } +} \ No newline at end of file