Java互联网架构师系统进阶课程(三期VIP)3 V2 u; ]6 `7 [* }# G/ R1 k
├──01JVM性能调优
0 R, m8 S# X5 w) H+ e3 U6 {| ├──01 虚拟机的前世今生和Java内存区域(1) .mp4 758.12M/ H1 ~7 m6 e) ~& O7 ~* O
| ├──02 深入理解Java内存区域(1) .mp4 835.55M
( W# @% Q! c# k$ e7 A| ├──03 玩转JVM中的对象及引用(1) .mp4 848.04M
5 z/ T2 n* i% {, X| ├──04 分代回收机制及垃圾回收算法(1) .mp4 762.68M% ?, G- ~. }3 y5 ~8 w
| ├──05 JVM面试“核武器”JVM底层细节(1) .mp4 695.74M
& S' u. g6 I( ]8 r# b+ Z" y- r| ├──06 Class文件结构及深入字节码指令(1) .mp4 942.99M
& v( ?* M% i/ |- \| ├──07 类加载机制与类加载器(1) .mp4 995.21M
0 I0 X; }% w0 U: g e3 D9 X6 i9 Y| ├──08 方法调用的底层实现(1 .mp4 1.01G
0 y& ^2 y; [# C2 D6 \7 Z) G: Q| ├──09 Java语法糖及实现(1) .mp4 849.83M
* p$ t( Q3 a+ q| └──10 GC调优基础知识之工具篇(原生+Arthas)(1) .mp4 1.23G
. N3 F/ [4 {' E) Y8 X├──02 JVM性能调优 ; j2 `" p6 U) j" d# Q. W4 m% w
| ├──01 GC调优基础知识之工具篇(原生+Arthas)(2) .mp4 1.14G
# D; }! W4 Z" e, m8 K| ├──02 JVM调优实战之CPU占用过高(1) .mp4 1.58G& U( ^2 R" V! F7 w/ Y" E8 l
| ├──03 JVM性能调优之预估调优与问题排查(1) .mp4 1.02G
* D! Q3 J- }4 v* Z) Z# A| ├──04 玩转MAT,分析内存泄漏(1) .mp4 996.10M& D: U% C. x4 D4 k7 V& H
| ├──05 直接内存与JVM源码分析(1) .mp4 1.25G
, i" g! s, J7 t| └──06 JVM之大结局(1) .mp4 996.79M
' L& G2 R# M3 ]" v# n├──03 并发编程
7 d! K* p' p* J| ├──01 java线程的本质、线程模型(1) .mp4 1.04G
! W+ E( t# T: |) r- {1 ^| ├──02 java线程run方法的本质(1) .mp4 1.19G& @% S4 w6 F2 [3 {2 L, j% o: e
| ├──03 synchronized关键字得原理分析一(1) .mp4 1.19G2 u! h& P( O4 G/ P+ T' b+ L
| ├──04 synchronized关键字原理—锁的膨胀(1) .mp4 1.51G
. ` [+ i' ~5 y4 ^1 m| ├──05 synchronized关键字原理-锁的膨胀过程(1 .mp4 1.88G
& U* E/ ^" J) c% K. q5 K( b& c2 ^# ?| ├──06 synchronized关键字原理-锁的膨胀过程二(1) .mp4 1.22G; [& u/ E+ N, c+ H
| ├──07 synchronized关键字原理-锁的膨胀过程三(1) .mp4 1.29G J0 I7 U% `! o6 I/ ]3 @
| ├──08 synchronized关键字的使用和优化(1) .mp4 1.13G
) v7 R* r/ ?5 u: K- E| └──09 ReentranLock 的基本使用和设计模式(1) .mp4 1.05G
# y$ B8 I( ]; O' ]1 u├──04 并发编程 $ n5 @: @# H/ G- |
| ├──01 aqs框架的源码分析(1) .mp4 1.28G7 R! p9 _$ I) H+ M
| ├──02 ReentrantLock解锁流程和读写锁源码(1) .mp4 1.06G9 G9 O$ d F0 d. @% h$ `( v6 W) u5 X
| ├──03 aqs之读写锁原理分析(1) .mp4 1.16G4 F& v X4 b; z! e" V# @/ ?1 I
| ├──04 juc工具类的使用和原理(1) .mp4 1.23G3 i9 k9 S& ~" i& G1 C
| ├──05 模拟线程池的原理实现(1) .mp4 1.19G
" X8 R M, i: M9 E3 h| ├──06 ThreadPoolExecutor线程池(1) .mp4 1.17G
3 B0 B# Y# _. I0 || ├──07 线程池源码分析(1) .mp4 1.35G) x5 u: W; l+ {$ b( e. q
| ├──08 如何解决JAVA的有序性和可见性(1) .mp4 946.77M4 ~$ |6 Y& o: k/ \4 W2 A
| ├──09 如何理解JAVA的内存模型(1) .mp4 977.11M
" D- K! E: ^8 e8 n7 z# N| └──10 currenthashmap源码分析(1) .mp4 1.35G
2 v2 f0 B) Y- o2 f├──05 并发编程网络协议与netty " Z5 L5 u& q J2 R
| ├──01 forkjoin线程池得原理和应用(1) .mp4 898.41M
2 N" Z' M, q: y| ├──02 网络协议和常用网络工具(1) .mp4 1.03G2 w* T# X+ i& ?. ^3 i' ]( F
| ├──03 Java原生网络编程(1) .mp4 1.30G0 S5 q& `- z7 W/ X0 r9 f( E" f
| ├──04 Java原生网络编程2(1) .mp4 1.76G1 H$ j. [1 g+ f
| ├──05 Java原生网络编程3(1) .mp4 1.65G, N7 [8 W. o$ e
| └──06 Netty基础入门和应用(1) .mp4 1.78G
. S7 p1 w" ]' |% z6 A! u0 @├──06 网络协议
/ I5 @% k( k4 d7 a2 @$ O| ├──01 Netty基础入门和应用2(1) .mp4 1.77G2 ?+ x; I: t! N
| ├──02 Netty基础入门和应用3(1) .mp4 1.57G' h" Y3 H6 _" f' F5 p: f$ a
| ├──03 Netty基础入门和应用4(1) .mp4 2.27G4 y6 I. N: g. w* N4 f/ T& ^% X
| └──04 Netty进阶和实战(1) .mp4 1.29G ?4 {2 b1 Z: [0 A
├──07 网络协议与Netty 5 v6 I& \6 k5 I8 i& Y$ Y, R
| ├──01 Netty进阶和实战2(1) .mp4 1.64G, P" W6 A( j8 @/ A* d
| ├──02 Netty进阶和实战3(1) .mp4 1.89G
& h7 N( j8 K. b* C, g. A| ├──03 Linux和JDK对网络通信的实现(1) .mp4 1.13G
- A* j. n/ ]) Z- I& y| ├──04 Linux和JDK对网络通信的实现2(1) .mp4 1.67G
# |1 E) g) J0 ]- f6 b2 G" i| ├──05 Linux和JDK对网络通信的实现3(1) .mp4 1.36G) Z: U9 V+ q1 v* j
| ├──06 Linux和JDK对网络通信的实现4(1) .mp4 1.91G
. w5 W4 C- ]+ U! c6 t8 K7 X| └──07 Netty源码解析(1) .mp4 1.96G ^4 H4 ]/ f" `% B; A9 Z/ f
├──08 网络协议与NettySpring源码 4 Y4 d2 \& j1 w# Z
| ├──01 Netty源码解析2(1) .mp4 2.03G
. r6 C1 ^8 m. E| ├──02 Netty源码解析3(1) .mp4 1.82G
8 L0 D3 Q6 S! [' H| ├──03 Netty源码解析4(1) .mp4 1.73G
3 p7 s- I; c0 h! A1 u| ├──04 Netty源码解析5(1) .mp4 1.49G2 ^4 m% q+ _0 K4 \, i
| └──05 spring源码编译和xml解析(1) .mp4 2.00G2 E Q. v" G! @ F
├──09 Spring源码 ; Z1 u+ ?" t% S$ J, o
| ├──01 BeanDefinition和默认标签、自定义标签解析(1) .mp4 1.89G8 D3 y2 O6 D- T% O- F
| ├──02 component-scan标签解析和bean实例化初探(1) .mp4 1.98G
( C/ o) v9 t; S9 d6 C8 u| ├──03 BeanPostProcessor和Bean实例化初探(1) .mp4 2.07G- Y- R$ }. M* W4 b0 T
| └──04 bean的实例化和注解的收集(1) .mp4 2.11G
% B3 C) {! j7 A$ z' p├──10 Spring源码
# ]4 ^! @7 W0 G7 N% {6 U| ├──1 @Autowired@PostConstruct@PreDestroy注解(1) .mp4 1.95G6 H: n) Y( t9 f2 R) A4 |
| ├──2 spring中循环依赖详解(1) .mp4 1.90G
( ? Y6 f4 a. x f' u| └──3 spring中配置文件解析和Environment对象 .mp4 2.11G/ M, Q# ]7 Y6 U A7 d
├──11 spring源码 ( G" a) Z. }. O9 o4 }1 u# z7 t
| └──自定义scope和factoryBean接口(1) .mp4 2.08G
! S8 j0 l' ~1 S2 U: c) k! A& q├──12 Spring源码
8 W$ _: n% g+ `) W. L8 n| ├──1 ConfigurationClassPostProcessor类源码(1) .mp4 2.07G
& R# C$ d2 _0 K+ E| ├──2 ConfigurationClassPostProcessor类源码2(1) .mp4 2.05G3 `0 |2 j% C0 A4 [! E. v$ ?( ~9 `
| ├──3 spring的实战代码案例1及AOP基础 .mp4 2.17G
& o0 ^$ p' C' \$ k" H. Z7 p| ├──4 动态代理和AOP的初见 .mp4 2.05G- H5 b2 Z3 M, }3 p$ \7 B
| └──5 代理的生成和链式调用流程 .mp4 2.34G
% S0 g: e5 J( g7 q) Q3 T├──13 Spring源码
! K$ z0 U: B+ V$ G4 h5 e| ├──1 链式调用过程和AOP周边 .mp4 2.37G
0 ?0 `' S3 G3 j) V( o0 X3 W| ├──2 spring的实战代码案例2之巩固AOP .mp4 2.39G( I6 w, [( |! `2 {3 e& ?
| ├──3 spring的事务切面精讲1 .mp4 2.11G6 I |. `" m9 a0 s
| └──4 spring的事务传播属性精讲 .mp4 2.26G
& t/ S. e8 O* Q- _- \├──14 Spring源码
) a z' G6 v) I& A: H( w' ]5 p| ├──1 spring的事务传播属性精讲 .mp4 2.22G
$ s% w6 R7 F# @, \2 ^9 `, z8 w| ├──2 缓存切面和异步切面 .mp4 2.32G7 s. v0 B! l, Y% n& s) r
| ├──3 缓存框架和springmvc零配置原理 .mp4 2.35G; y, K2 y, G$ U! i: e$ ~
| ├──4-1springmvc中请求的调用流程 .mp4 735.32M9 u! `) z. J u
| ├──4-2 springmvc中请求的调用流程 .mp4 1.42G
+ p$ s: C, q) Y| └──5 JSON参数解析和视图响应 .mp4 2.08G# }/ t: }) x; o' |5 }( b
├──15 Spring源码mybatis
. J$ H9 d! V, M6 D3 e( Q| ├──2 异常处理、拦截器和跨域问题 .mp4 2.43G
7 E# Q/ t' m4 H7 j| ├──3 springmvc实战、spring总流程归档 .mp4 2.24G5 l1 O5 Z1 x# B0 }6 ^
| ├──4 spring总流程归档 .mp4 2.15G7 F( w- { U: r
| ├──5 MyBatis开发重点知识 .mp4 1.02G* |* s- ^1 q7 |; i- t$ ]
| ├──6 mybatis缓存使用和xml解析源码 .mp4 2.12G
, @4 d4 p6 K0 s' |" F' I| └──7 MyBatis开发重点知识 .mp4 856.80M
# h6 z6 [8 Y/ g; \+ L: n9 x- f6 A. V) G├──16 MyBatis - U6 m5 T2 U0 ~7 d$ i
| ├──1 全局xml解析和mapper中sql的解析 .mp4 2.15G3 R+ f; I3 Q' q
| ├──2 SQL的执行之Executor组件 .mp4 2.24G
' k: _1 E6 R; G' {| ├──3 StatementHandler和ResultSetHandler组件 .mp4 2.30G
& R C( Y( @% Q* B/ y9 u% P \5 h| ├──4 mybatis中的缓存原理和懒加载原理 .mp4 2.24G
( K0 d2 ^3 N1 V| ├──5 mybatis的plugin和跟spring的整合 .mp4 2.00G
6 p+ q, Q9 D; ^3 ?/ H0 |/ F/ v| └──6 mybatis跟spring整合自定义分页等插件原理 .mp4 2.17G$ Y% u8 W/ k- D+ w- G
├──17 MySQL & ]: @$ }( X- l( n
| ├──1 自定义分页等插件及mybatis复习 .mp4 2.20G
' N; h% G# F% b/ G| ├──2 全盘了解MySQL .mp4 2.36G
7 a# q$ n1 Q7 r, s6 u X| ├──3 MySQL中表设计和数据类型优化 .mp4 2.06G3 y9 `& [7 R5 A0 J# i
| └──4 高性能索引(一) .mp4 1.77G1 B7 B1 X2 d" j
├──17 分布式常见场景解决方案实战MongoDB进阶 2 S# o/ \7 ^+ S% K
| ├──1 session共享与单点登陆实战 .mp4 2.20G
" U( h: I- m$ x| ├──2 分布式任务调度实战 .mp4 2.36G
2 H! K) p" v, |' y7 M7 k| ├──3 MongoDb综 .mp4 2.06G
5 s6 F+ Z4 S* Z( U, s| └──4 MongoDb快速入门 .mp4 1.77G8 M& x7 s1 `% E& Y1 a7 q' S+ T
├──18 MongoDB进阶 0 p. M8 ] Z% Y4 X
| ├──1 MongoDb查询进阶- .mp4 2.26G! u) D4 d$ \( y
| └──2 MongoDb操作进阶- .mp4 2.26G
- l5 h) x0 R! d& Y4 |4 Z8 Y├──18 MySQL
7 T: c3 \- O8 I; `& I1 B; w/ y| ├──1 高性能索引(二) .mp4 651.40M
2 |. {$ K$ ^0 d2 R: k| └──2 高性能索引(三) .mp4 2.26G
# E( h1 D$ V' J4 ^; b1 H- x0 j2 h├──19 MongoDB进阶spring源码分析 . |" a. ?6 r7 D: s9 }
| └──1 MongoDb高级进阶 .mp4 1.97G$ l+ }( k2 O8 ^
├──19 MySQL ' v& a+ J0 |4 e! O' Y" Z0 G9 \
| ├──1 MySQL性能优化(一) .mp4 1.97G! p1 n9 R6 h+ T% J
| ├──2 MySQL性能优化(二) .mp4 2.15G
9 |8 z h& `) w. j( a! j/ i/ {) R| ├──3 MySQL的底层执行原理(一) .mp4 1.92G" v+ ]2 i; f" |3 J7 Z- Y) i _
| └──4 MySQL的底层执行原理(二) .mp4 1.81G5 N4 G0 w! B6 F5 P1 S: S* X! r" `
├──20 MySQL ( }% h- c. R4 n G; ^( V( H/ P
| ├──1 MySQL的底层执行原理(三) .mp4 1.67G
3 \ t( ~% |& M9 J| └──2 InnoDB引擎底层解析 .mp4 1.69G+ Q r- |" q# R
├──21 MySQL
3 O7 M6 A% F2 ^& X* ?| ├──1 InnoDB引擎底层解析 .mp4 967.41M+ \/ z4 ~; b& R
| ├──2 事务的原理和MVCC .mp4 806.35M( {8 b9 Z5 l2 T6 D. u: n
| ├──3 事务的原理和MVCC(二) .mp4 789.24M" x1 n v+ q# B/ d
| └──4 MySQL中的锁、面试题和实战那些事 .mp4 795.23M2 r6 H0 N/ ?0 m& R7 r; J3 L
├──21 spring5源码分析 / U) D9 U' ?) ]
| ├──1 循环依赖原理和Bean实例化大流程梳理- .mp4 1.75G. Y+ n, D' l& e. B$ R2 N* S9 o' R& J. K
| └──2 @Bean@Import和bean的多例作用域- .mp4 1.55G. s- Q* b# b" L! s) p
├──22 MySQLRocketMQ 9 L0 y' O; x8 p1 ^* |5 L
| ├──1 MySQL中的锁、面试题和实战那些事(二)- .mp4 2.08G6 b: E& l& u. B; p0 b* K
| ├──2 RocketMQ基础篇(上)- .mp4 1.90G
0 R; v C% Q5 R| ├──3 RocketMQ基础篇(下)- .mp4 2.39G
# n1 i% f( D: D5 U7 N. v| └──4 RocketMQ内部机制-存储设计- .mp4 2.07G; Y l2 i- g+ I# k9 O- J5 n
├──23 RocketMQ
2 r' P' q! `3 D$ T1 y/ j( A| ├──1 RocketMQ内部机制-高可用机制- .mp4 2.00G
/ i5 q; e4 g) N2 r* e* z| └──2 RocketMQ实战-异步结构与流量削峰- .mp4 2.15G+ P7 T! D E% U
├──24 RocketMQ ) w# D2 i3 ]1 B0 `
| ├──1 RocketMQ实战-限时订单与分布式事务- .mp4 2.24G
8 |- F9 \7 S0 ^( \* D3 x& V8 X$ r| ├──2 RocketMQ源码分析-整体架构与NameServer- .mp4 2.13G
+ ^% T' i! Q1 O' V| ├──3 RocketMQ源码分析-Producer与Store- .mp4 2.02G
- i) o: x2 s( I4 Z2 m e| └──4 RocketMQ源码分析-Consumer- .mp4 2.05G
$ w. G/ h* D5 D+ c! q2 n: x├──25 Dubbo 5 V1 {5 b+ \3 J0 h& R; e; J4 P8 H( m
| ├──1 Dubbo源码探析--服务的暴露与消费过程- .mp4 2.02G
8 {! H) V: y* c( g; g% n| └──2 Dubbo源码探析--服务的发布订阅过程- .mp4 2.02G1 j. H3 f) ?- d3 A1 y
├──回顾
, z! T* w! m: y0 e% P( @4 A( W* t| ├──07 网络协议与Netty ! Y1 Y4 m, {, ^3 s: _+ D( A
| ├──08 Netty高级进阶
, ^0 G" p5 {7 k8 G+ G| ├──09 Tomcat系统进阶
. M+ w) Z! [" Y/ C/ ]% L| ├──13 Spring源码 ' ], b1 ]" M# y/ D* N! j
| ├──14 Spring源码 - O: f% m4 c/ z9 m# ?; d u
| ├──15 Spring源码
! V5 e5 Z3 F8 z- Q| └──16 Redis高性能缓存数据库分布式常见场景解决方案实战8 }% Y9 D. g) h# A- {& D
├──回顾2 i7 r9 |6 m, n w7 t$ p2 Z
| ├──07 网络协议与Netty
2 F* f4 b: T0 K, s| | ├──02 深入学习Netty组件(1)- .mp4 623.23M
[* g( ^( l- i$ _7 k| | ├──03 TCP粘包,半包问题和Netty编解码器框架(1)- .mp4 1.13G
Y, m! e. {8 d- C1 k7 l' ]| | ├──04 序列化问题、实现UDP通信(1)- .mp4 1.67G
- q% |" A$ V- `2 ^& N) d| | ├──05 服务器推送技术-轮询、SSE和WebSocket(1)- .mp4 1.36G
# z" O% k* P( l8 D+ ~1 c| | ├──06 基于Netty的WebSocket通信(1)- .mp4 1.91G
$ I6 Y8 T7 l3 a+ e; L9 E, C| | └──07 基于Netty实现自己的通信框架(1)- .mp4 1.96G
7 X) a6 W8 }; Z( e# A7 g2 ~7 x| ├──08 Netty高级进阶 6 |% m& U4 P$ \* y
| | ├──01 BIO和NIO的源码解析(1)- .mp4 2.03G7 }& q, g b7 o
| | ├──02 Netty源码解析(一)(1)- .mp4 1.82G. e; i% d- Q* |; h' }. z
| | ├──03 Netty源码解析(二)(1)- .mp4 1.73G
& S2 b# z- m; N1 {| | ├──04 操作系统网络底层原理和源码(一)(1)- .mp4 1.49G
8 Z, ]( f; e) g+ f4 r& ?) F! Y| | └──05 操作系统网络底层原理和源码(二)(1)- .mp4 2.00G1 Z, }# a9 ~" s8 I7 k: H9 Q5 c
| ├──09 Tomcat系统进阶 / `" j d i) p& o
| | ├──01 Tomcat源码解读(1) .mp4 1.98G2 F2 a& i& R+ G' s! m3 H
| | └──02 Tomcat架构解析(1) .mp4 1.89G+ i: d8 J6 `5 [ v" n. w# c
| ├──13 Spring源码 ! b6 p6 F5 s' U( @
| | ├──1 数据库事务和spring如何管理事务(1)- .mp4 2.37G
& P/ p$ j! E* t& H| | ├──2 spring事务的传播属性和隔离级别源码讲解- .mp4 2.39G+ J- v b0 u+ B
| | ├──3 事务隔离级别 cacheable缓存切面和异步切面- .mp4 2.11G
- V, T1 a+ ]# W: Z o. Q| | └──4 spring的实战代码案例2- .mp4 2.26G% k; i7 W N7 ]) g' @7 y: {
| ├──14 Spring源码 $ q& z& U- f5 b8 M
| | ├──1 零xml配置整合springmvc和嵌入式tomcat- .mp4 2.22G* z2 i' V; ]' N, T* i
| | ├──2 springmvc请求响应核心调用流程和过滤器- .mp4 2.32G
# n/ D# I. U0 I$ O* Z" O| | ├──3 特殊参数解析返回值解析视图渲染- .mp4 2.35G
; p& O [: W2 j5 D| | ├──4 spring&springmvc大总结- .mp4 735.32M
. V% U' w* Y8 j| | └──5 spring&springmvc大总结- .mp4 1.42G
% X( T4 t( m4 V5 L# y' P| ├──15 Spring源码 6 N+ c* L, S7 @" s- m+ R
| | ├──1 静态视图、异常处理和拦截器- .mp4 2.23G* X/ ]4 G( ~0 c
| | ├──2 搞定RocketMQ消息存储及事务- .mp4 2.43G
7 l1 }8 c+ C3 }, J| | ├──3 主从同步机制和与Spring整合- .mp4 2.24G/ W, a8 r" ]: T! V+ B$ Y( g- K; V8 ~9 ^2 ?
| | ├──4 RocketMQ限时订单实战- .mp4 2.15G' i$ E: f$ h, S9 f2 ^2 r) V
| | ├──5 RocketMQ源码解析- .mp4 1.02G
# A1 F$ [3 [3 n| | ├──6 Redis从入门到狂澜- .mp4 2.12G
: R: z# p' `2 W) s| | └──7 RocketMQ源码解析- .mp4 856.80M
+ k" D8 v Y U7 C, M* T| ├──16 Redis高性能缓存数据库分布式常见场景解决方案实战 & N) y6 A9 Z& O! _' G, s8 g
| | └──1 BAT常见Redis场景设计实战- .mp4 2.15G
& H( ~/ O% g" j( f| ├──3 spring的实战代码案例1(1)- .mp4 2.17G; Y, X( P! @. R A! P* @7 ^- L" m
| ├──4 aop入口及aop中的各种advice和advisor(1)- .mp4 2.05G
9 E# h& d! B; Y; J0 i4 u' ~| └──5 AOP链式调用过程和cglib动态代理(1)- .mp4 2.33G. @' R1 ] [! @4 K1 o$ a
├──资料 3 D! ^ S9 K" t8 d- {- A
| ├──3.16 .zip 1.74G
( g5 R+ n! f3 Y' L+ q9 B| ├──5.11 .zip 173.87M. d* r. D; S; k5 P3 j
| └──资料(Java-vip) .zip 585.04M% i X0 q# s! @2 u/ n& @
├──Java高级进阶面试题目_享学课堂 .pdf 3.93M" N$ g( T9 V4 [6 b( ]$ a$ k; l
├──第三期课程(Java-vip) .zip 1.46G8 p3 j7 I1 T f$ ~( i
└──享学首创年薪80W+对标P7岗架构师成长路线V7.0 .png 1.81M, u8 @: }9 o9 \. Q# L! L' k
6 h5 t5 a' U7 \0 P& c: x* n% Z0 B$ x7 ~6 `1 m0 N
. y% B! w6 E. T* O. T+ ]: ]3 Y永久至尊VIP回复即可下载学习,非至尊VIP暂不支持下载此资源!
$ k9 I3 M7 @) q3 X9 c }" a7 J8 e+ g$ E7 h ?! y7 @; p
7 {# C; T* ?/ ]" h" ? |