解法1:当然可以冒泡排序,时间复杂度O(n2n^2n2)解法2:单指针循环两次,第一次循环将所有的0交换到前面;第二次循环将所有的1交换到0的后面classSolution{publicvoidsortColorsBySinglePointer(int[]nums){intzeroCnt=0,p=0;for(inti=0;i
如何缓存聊天模型响应以提高效率
scaFHIO
缓存javaoraclepython
技术背景介绍在开发基于大型语言模型(LLM)的应用程序时,API调用的成本和响应速度是需要考虑的两个重要因素。尤其是在开发过程中,重复请求相同的文本生成可能会增加额外的成本和延迟。为了应对这一挑战,LangChain提供了一种可选的缓存机制,可以有效地减少API调用次数,从而节省费用并加速应用程序响应。核心原理解析缓存机制的基本原理是在第一次请求时,将响应存储在缓存中。如果以后再次请求相同的输入,
S32K144外设实验(二):ADC单通道单次采样(软件触发)
上层精灵的赞美诗
#S32K144的外设基础实验单片机嵌入式硬件eclipsemcu笔记
文章目录1.概述1.1理论回顾1.1.1时钟系统1.1.2采样通道1.2实验目的2.配置与代码编写1.概述1.1理论回顾S32K144的ADC应该说是特别灵活,笔者采用循序渐进的方式来学习使用这个很重要的外设。在《入门笔记系列》专栏中对用户手册进行了翻译和解读,这里在回顾一下ADC的基本功能,第一次实验我们不使用过于复杂的触发方式。只使用一个通道来理解S32K144的ADC。1.1.1时钟系统首先
安卓无线调试连接不上
王的备忘录
A1_android开发基础android
今天发现的一个问题,如果要连接的是新手机,会无法连接上。提示connectfail。原因是第一次调试,先要在手机上进行授权。解决方法就是要先通过数据线连接手机,在手机端同意连接,之后再运用adb无线调试就可以连接了。
3月19日随笔
Kamui_0us
笔记
本周的任务1.班级故事两篇八百字(这个压力)2.收集本月的团日材料3.周日去食堂收集五四述职材料4.学计算机二级(这么多天了还没行动)今天下午上完英语课之后和同学们去了海边,本来说的是为了班级风采视频拍一些素材,但是Max的无人机在海滩上被禁飞了,好像这一片都是禁飞的区域,最终决定,来都来了,吃顿好的再回去上晚自习。我们去茂业吃了好像是东北菜,然后买了DQ,这是我第一次吃这么贵的冰激凌,19.9,
qt子线程读取读取数据库
skywalker818__
数据库qt
这里写自定义目录标题主要目的是为了记录自己踩过的坑。在子线程中读取数库内容时,按照在子线程中的run函数中创造数据的链接并查询,在第一次使用子线程的时候,可以正常运行,在重复使用的时候,则可能会报错:下面为子线程的run函数:```cppvoidrun(){QSqlDatabase*db=newQSqlDatabase(QSqlDatabase::addDatabase("QSQLITE"));Q
LeetCode第92题_反转链表II
@蓝莓果粒茶
算法leetcode链表算法c++数据结构python后端
LeetCode第92题:反转链表II题目描述给你单链表的头指针head和两个整数left和right,其中left1->2->3->4->5|prev|curr找到left前一个节点prev(即节点1):dummy->1->2->3->4->5||prevcurr第一次头插:将节点3插入到prev之后:dummy->1->3->2->4->5||prevcurr第二次头插:将节点4插入到prev
[AtCoder Regular Contest 125] A-F全题解
ikrvxt
结论和构造DP构造网络流dp分块数学
文章目录A-DialUpB-SquaresC-LIStoOriginalSequenceD-UniqueSubsequenceE-SnackF-TreeDegreeSubsetSum网址链接A-DialUp签到题特判一下有没有0/1在目标串中出现而没在原串出现除了第一次0/1数字互换时,需要从a1a_1a1左右找距离最近的不同数字后面互换就是左/右转一次#include#includeusingn
JavaScript 高频面试题
好运连连女士
JavaScriptjavascript
文章目录JavaScript手写防抖和节流CommonJS和ES6模块的区别this指向问题,如何修改this指向引申1:模拟bind引申2:为什么多次绑定,只指向第一次绑定的obj对象?有没有解决办法?引申3:一般函数和箭头函数的区别数据类型有哪些引申1:如何判断数据类型new操作的原理引申1:什么是闭包?引申2:内存泄露和内存溢出引申3:作用域和作用域链?JS实现数组扁平化深拷贝与浅拷贝的区别
我的创作纪念日
Eqwaak00
微服务
一周年的技术创作之旅:从「挖钻石」到探索未知的星辰大海一年前的今天,我在键盘上敲下了第一篇技术博客——《我的世界》钻石挑战,用代码教会AI挖矿。那时的心情,像极了游戏中第一次挥动镐子的新手:既兴奋又忐忑。如今回望这365天,技术创作早已成为我生活中不可或缺的一部分,它不仅是记录,更是成长的见证。技术成长:从工具人到造物者这一年,我从一个只会调用API的“工具人”,逐渐蜕变为能设计算法、优化系统的开
yolov8的第一次实验报告
算法宇宙
YOLO人工智能计算机视觉
1.实验概述实验名称:占道经营目标检测模型实验目标:提高模型的精确率(Precision)和召回率(Recall),使其接近1。实验日期:[2025-01-16]2.数据集数据集名称:[datasets]数据集大小:[2.68Gb]数据集描述:[数据集主要分两个类别:zdjy_ld,zdjy_gd]注释:占道经营流动,占道经营固定3.模型配置3.1基础配置·模型类型:YOLOv8·预训练模型:YO
C++实现转轮密码机
Istaroth
算法函数c语言密码加密算法算法
说起来有点伤心,一个月前写的轮转密码机源码忘记保存被我删了,心痛的不行。因为第一次写密码机写了一早上,调试了一下午才搞好。虽然不难,但是那时候我刚接触链表结构,还不是很熟悉,各种野指针,内存错误。索性就重写了一份,有了写DES加密算法学到的经验,写起轮转密码机2.0轻松了太多,开头写上函数原型,各种小函数先写好,再去类中修改掉上次出错的野指针问题。这次代码量比上次少了大概一半。加上调试一共花了2个
Linux下的socket编程学习(TCP)
小苏同学的脱发日记
linux学习tcp/ip
1.什么是socket?socket的英文翻译就是接口,插座的意思,很形象,就相当于将2台电脑用一根线连起来,线的两头插在不同的电脑上,借此实现通讯的功能。两台电脑通信,实际上是这两台电脑上的某个进程在进行通信。而两个进程进行通信,实际上是往同一个文件中读取数据。2.TCP/IP(3次握手)在tcp/ip协议中,tcp通过三次握手建立起一个tcp的链接,大致如下第一次握手:客户端尝试连接服务器,向
LeetCode34. 在排序数组中查找元素的第一个和最后一个位置 - Java & Go - 二分查找改进
暴风星云裂之我裂开了
LeetCode题解leetcodejavagolang二分查找
文章目录LeetCode34.在排序数组中查找元素的第一个和最后一个位置解法11算法2Java3Go解法21算法2Java3GoLeetCode34.在排序数组中查找元素的第一个和最后一个位置LeetCode34.在排序数组中查找元素的第一个和最后一个位置解法11算法算法1.两次二分查找2.第一次二分查找计算mid=(left+right)>>1;,每次mid都偏向左边,可以保证找到的是第一个大于
CSS竟然开始支持函数了!编程语言的未来能否在此掀起波澜?
前端javascript
ReactHook深入浅出CSS技巧与案例详解vue2与vue3技巧合集VueUse源码解读当我第一次看到CSS即将支持原生函数时?没错,朋友,这是真的!如今,CSS也开始拥抱函数特性了——那些曾坚称CSS不配称作“编程语言”的人,现在或许得重新考虑一下了。好了,兴奋之余,我们还是先稳一下,深入了解它的具体内容吧!基础知识:函数的定义和调用试想一下,你正在给网页中的多个元素添加相同的虚线边框。通常
request+pytest根据yaml文件发送请求
等枝桠~成繁花
pytest
request怎么跟pytest结合起来,然后根据yaml文件去发一个基本的请求呢?下面是一个简单的示例。1、先新建一个名为“demo.yaml”的yaml文件,用来存放测试数据的。-name:G广州研发中心parentid:1#第一次用例的数据正常expect:60008#对请求结果进行断言-name:""parentid:1#第二次用例的数据name为空expect:40058#对请求结果进行
【.NET 6】RabbitMQ延迟消息指南
人生短几个秋
.netcorerabbitmq.net
背景最近遇到一个比较特殊需求,需要修改一个的RabbitMQ消费者,以实现在消费某种特定的类型消息时,延迟1小时再处理,几个需要注意的点:延迟是以小时为单位不是所有消息都延迟消费,只延迟特定类型的消息只在第一次消费时延迟1小时,容错机制产生的重新消费(也即消息消费失败,多次进入延迟队列重试),则不再延迟1小时消费者消费过程中可能会重启考虑到这几点,我们需要一个标识以及持久化,不能简单使用Threa
前端 - js - - 防抖和节流
cv高级工程师YKY
vue.js前端javascript
1、防抖短时间内重复执行相同操作时只执行最后一次常见场景:浏览器输入文字后下面会有模糊提示实现思路:延时器控制事件在几秒后执行每次触发事件时都会重置延时器constfn=()=>{//先定义timeout避免第一次触发时clearTimeout报错lettimeout;//每次触发事件重置延时器clearTimeout(timeout)//规定一秒后再执行timeout=setTimeout(()
MongoDB集合(表)自动创建机制
zpjing~.~
mongodb数据库
开发项目时,要整理上线涉及的表,MongoDB里新创建的表是不用整理发给运维的,因为代码中插入数据时,MongoDB会自动创建哦MongoDB中的集合(表)是在插入数据时自动创建的。当你第一次向一个不存在的集合插入文档时,MongoDB会自动创建该集合。你不需要像在关系型数据库中那样预先定义表结构。例如,执行以下操作时:db.myCollection.insertOne({name:"Alice"
SpringBoot自动配置原理及手动实现自动配置
m0_56222134
程序员面试java经验分享
之前我们学习了SpringBoot中的配置文件及外部化配置,了解了SpringBoot对于配置文件的功能支持与增强,本篇我们将要来学习SpringBoot的自动配置原理及手动实现自动配置。数据库依赖引起的bug我们很多人在第一次使用SpringBoot的时候,往往对其原理认知不足,或者简单的了解以后就开始入门使用,往往最常见的就是使用SpringBoot添加一个持久化框架的依赖,用来尝试操作数据库
机器学习的下一个前沿是因果推理吗?——探索机器学习的未来方向!
真智AI
人工智能机器学习
机器学习的进化:从预测到因果推理机器学习凭借强大的预测能力,已经彻底改变了多个行业。然而,要实现真正的突破,机器学习还需要克服实践和计算上的挑战,特别是在因果推理方面的应用。未来,因果推理或许将成为推动机器学习发展的新前沿。什么是因果推理,它如何与机器学习相关?如果你和我一样没有数学背景,你可能会好奇“因果推理”到底意味着什么?它与机器学习又有什么关系?当我刚开始学习机器学习时,第一次听到“因果推
程序调用Sql Server存储过程超时,但是数据库执行存储过程无异常的问题剖析
.Net 爱好者
c#.net.netcore
在前端程序调用存储过程时出现执行超时,而直接在数据库中执行存储过程没有问题,这种情况可能与以下几个因素有关:1.查询计划缓存和参数嗅探SQLServer会为存储过程生成并缓存查询计划,以便在后续执行时提高性能。然而,查询计划是基于第一次执行时的参数生成的,这被称为“参数嗅探”。如果第一次执行时的参数与后续执行时的参数差异较大,可能会导致不适合的查询计划,从而影响性能。重新编译存储过程会使SQLSe
【AI】Transformer布道:让AI学会“左顾右盼”的超级大脑!(扫盲帖)
碣石潇湘无限路
人工智能transformer深度学习
在LLM爆火的时代,如果还不了解Transformer就太落伍了,下面我第一次尝试用一种更日常、更口语化的方式,把Transformer这个模型讲个大概。你可以想象我们是从“什么是注意力”开始,一步步搭积木,直到把整个Transformer这台“机器”组装起来,然后再看看它能干什么、怎么训练、为什么厉害。主要目的就是帮助更多的非AI专业的人群入门和了解实现AGI的底层架构。1.为什么要有Trans
13、JavaEE核心技术 - Servlet与JSP
跟着汪老师学编程
javajava-eeservlet
二、JavaEE核心技术-Servlet与JSP一、ServletServlet(服务器端小程序)是JavaEE中用于处理HTTP请求的核心组件。它是一个Java类,运行在Web服务器上,负责接收和响应HTTP请求。1.Servlet的生命周期Servlet的生命周期由以下几个阶段组成:初始化阶段(Initialization):触发:当Servlet容器(如Tomcat)启动时,或者当第一次请求
输入URL到页面展示的核心逻辑链
賢843
软件测试理论基础python
浏览器输入url到页面展示过程(https请求过程)DNS解析域名得到服务器ip地址TCP三次握手TCP三次握手-CSDN博客客户端发送http请求服务器响应请求客户端渲染页面TCP四次挥手两个核心概念FIN包:FIN=1,表示请求终止连接(相当于说“我要挂电话了!”)。ACK包:ACK=1,表示确认收到数据(相当于说“我收到了!”)。四次挥手流程第一次挥手:客户端发送FIN=1的包给
React+Vite从零搭建项目及配置详解
一朵好运莲
react.js前端前端框架
相信很多React初学者第一次搭建自己的项目,搭建时会无从下手,本篇适合快速实现功能,熟悉React项目搭建流程。目录一、创建项目react-item二、调整项目目录结构三、使用scss预处理器四、组件库AntDesign五、配置基础路由六、配置别名路径一、创建项目react-itemnpmcreatevitereact-item二、调整项目目录结构-src-apis项目接口函数-assets项目
linux系统服务器下jsp传参数乱码
3213213333332132
javajsplinuxwindowsxml
在一次解决乱码问题中, 发现jsp在windows下用js原生的方法进行编码没有问题,但是到了linux下就有问题, escape,encodeURI,encodeURIComponent等都解决不了问题
但是我想了下既然原生的方法不行,我用el标签的方式对中文参数进行加密解密总该可以吧。于是用了java的java.net.URLDecoder,结果还是乱码,最后在绝望之际,用了下面的方法解决了
Spring 注解区别以及应用
BlueSkator
spring
1. @Autowired
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean,或者不存在UserDao类型的bean,会抛出 BeanCreationException异常,这时可以通过在该属性上再加一个@Qualifier注解来声明唯一的id解决问题。
2. @Qualifier
当spring中存在至少一个匹
printf和sprintf的应用
dcj3sjt126com
PHPsprintfprintf
<?php
printf('b: %b <br>c: %c <br>d: %d <bf>f: %f', 80,80, 80, 80);
echo '<br />';
printf('%0.2f <br>%+d <br>%0.2f <br>', 8, 8, 1235.456);
printf('th
config.getInitParameter
171815164
parameter
web.xml
<servlet>
<servlet-name>servlet1</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>str</param-name>
Ant标签详解--基础操作
g21121
ant
Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。 project:每个构建文
[简单]代码片段_数据合并
53873039oycg
代码
合并规则:删除家长phone为空的记录,若一个家长对应多个孩子,保留一条家长记录,家长id修改为phone,对应关系也要修改。
代码如下:
java 通信技术
云端月影
Java 远程通信技术
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来
string与StringBuilder 性能差距到底有多大
aijuans
之前也看过一些对string与StringBuilder的性能分析,总感觉这个应该对整体性能不会产生多大的影响,所以就一直没有关注这块!
由于学程序初期最先接触的string拼接,所以就一直没改变过自己的习惯!
今天碰到 java.util.ConcurrentModificationException 异常
antonyup_2006
java多线程工作IBM
今天改bug,其中有个实现是要对map进行循环,然后有删除操作,代码如下:
Iterator<ListItem> iter = ItemMap.keySet.iterator();
while(iter.hasNext()){
ListItem it = iter.next();
//...一些逻辑操作
ItemMap.remove(it);
}
结果运行报Con
PL/SQL的类型和JDBC操作数据库
百合不是茶
PL/SQL表标量类型游标PL/SQL记录
PL/SQL的标量类型:
字符,数字,时间,布尔,%type五中类型的
--标量:数据库中预定义类型的变量
--定义一个变长字符串
v_ename varchar2(10);
--定义一个小数,范围 -9999.99~9999.99
v_sal number(6,2);
--定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
Mockito:一个强大的用于 Java 开发的模拟测试框架实例
bijian1013
mockito单元测试
Mockito框架:
Mockito是一个基于MIT协议的开源java测试框架。 Mockito区别于其他模拟框架的地方主要是允许开发者在没有建立“预期”时验证被测系统的行为。对于mock对象的一个评价是测试系统的测
精通Oracle10编程SQL(10)处理例外
bijian1013
oracle数据库plsql
/*
*处理例外
*/
--例外简介
--处理例外-传递例外
declare
v_ename emp.ename%TYPE;
begin
SELECT ename INTO v_ename FROM emp
where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
exceptio
【Java】Java执行远程机器上Linux命令
bit1129
linux命令
Java使用ethz通过ssh2执行远程机器Linux上命令,
封装定义Linux机器的环境信息
package com.tom;
import java.io.File;
public class Env {
private String hostaddr; //Linux机器的IP地址
private Integer po
java通信之Socket通信基础
白糖_
javasocket网络协议
正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信。每一个连接的通信端叫做一个Socket。一个完整的Socket通信程序应该包含以下几个步骤:
①创建Socket;
②打开连接到Socket的输入输出流;
④按照一定的协议对Socket进行读写操作;
④关闭Socket。
Socket通信分两部分:服务器端和客户端。服务器端必须优先启动,然后等待soc
angular.bind
boyitech
AngularJSangular.bindAngularJS APIbind
angular.bind 描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。 使用方法: angular.bind(se
java-13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class KickOutBadGuys {
/**
* 题目:13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
* Maybe you can find out
Redis.conf配置文件及相关项说明(自查备用)
Kai_Ge
redis
Redis.conf配置文件及相关项说明
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
[强人工智能]实现大规模拓扑分析是实现强人工智能的前奏
comsci
人工智能
真不好意思,各位朋友...博客再次更新...
节点数量太少,网络的分析和处理能力肯定不足,在面对机器人控制的需求方面,显得力不从心....
但是,节点数太多,对拓扑数据处理的要求又很高,设计目标也很高,实现起来难度颇大...
记录一些常用的函数
dai_lm
java
public static String convertInputStreamToString(InputStream is) {
StringBuilder result = new StringBuilder();
if (is != null)
try {
InputStreamReader inputReader = new InputStreamRead
Hadoop中小规模集群的并行计算缺陷
datamachine
mapreducehadoop并行计算
注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的最大效用为上策。
-----------------------------------------------------------------
小学4年级英语单词背诵第二课
dcj3sjt126com
englishword
egg 蛋
twenty 二十
any 任何
well 健康的,好
twelve 十二
farm 农场
every 每一个
back 向后,回
fast 快速的
whose 谁的
much 许多
flower 花
watch 手表
very 非常,很
sport 运动
Chinese 中国的
自己实践了github的webhooks, linux上面的权限需要注意
dcj3sjt126com
githubwebhook
环境, 阿里云服务器
1. 本地创建项目, push到github服务器上面
2. 生成www用户的密钥
sudo -u www ssh-keygen -t rsa -C "
[email protected]"
3. 将密钥添加到github帐号的SSH_KEYS里面
3. 用www用户执行克隆, 源使
Java冒泡排序
蕃薯耀
冒泡排序Java冒泡排序Java排序
冒泡排序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 10:40:14 星期二
http://fanshuyao.iteye.com/
Excle读取数据转换为实体List【基于apache-poi】
hanqunfeng
apache
1.依赖apache-poi
2.支持xls和xlsx
3.支持按属性名称绑定数据值
4.支持从指定行、列开始读取
5.支持同时读取多个sheet
6.具体使用方式参见org.cpframework.utils.excelreader.CP_ExcelReaderUtilTest.java
比如:
Str
3个处于草稿阶段的Javascript API介绍
jackyrong
JavaScript
原文:
http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/?utm_source=html5weekly&utm_medium=email
本文中,介绍3个仍然处于草稿阶段,但应该值得关注的Javascript API.
1) Web Alarm API
&
6个创建Web应用程序的高效PHP框架
lampcy
Web框架PHP
以下是创建Web应用程序的PHP框架,有coder bay网站整理推荐:
1. CakePHP
CakePHP是一个PHP快速开发框架,它提供了一个用于开发、维护和部署应用程序的可扩展体系。CakePHP使用了众所周知的设计模式,如MVC和ORM,降低了开发成本,并减少了开发人员写代码的工作量。
2. CodeIgniter
CodeIgniter是一个非常小且功能强大的PHP框架,适合需
评"救市后中国股市新乱象泛起"谣言
nannan408
首先来看百度百家一位易姓作者的新闻:
三个多星期来股市持续暴跌,跌得投资者及上市公司都处于极度的恐慌和焦虑中,都要寻找自保及规避风险的方式。面对股市之危机,政府突然进入市场救市,希望以此来重建市场信心,以此来扭转股市持续暴跌的预期。而政府进入市场后,由于市场运作方式发生了巨大变化,投资者及上市公司为了自保及为了应对这种变化,中国股市新的乱象也自然产生。
首先,中国股市这两天
页面全屏遮罩的实现 方式
Rainbow702
htmlcss遮罩mask
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就
关于angularjs的点滴
tntxia
AngularJS
angular是一个新兴的JS框架,和以往的框架不同的事,Angularjs更注重于js的建模,管理,同时也提供大量的组件帮助用户组建商业化程序,是一种值得研究的JS框架。
Angularjs使我们可以使用MVC的模式来写JS。Angularjs现在由谷歌来维护。
这里我们来简单的探讨一下它的应用。
首先使用Angularjs我
Nutz--->>反复新建ioc容器的后果
xiaoxiao1992428
DAOmvcIOCnutz
问题:
public class DaoZ {
public static Dao dao() { // 每当需要使用dao的时候就取一次
Ioc ioc = new NutIoc(new JsonLoader("dao.js"));
return ioc.get(