#include<stdio.h>
#include<string.h>
const int MAXN=50005;
struct ty{
int l,r;
int num;
};
int num[MAXN];
ty dat[MAXN*3];
int Build(int a,int b,int i){
dat[i].l=a;
dat[i].r=b;
if(a==b) return dat[i].num=num[a];
int mid=(a+b)>>1;
return dat[i].num=Build(a,mid,i<<1)+Build(mid+1,b,i<<1|1);
}
void Add(int a,int b,int i){
dat[i].num+=b;
if(dat[i].l==a && dat[i].r==a) return;
int mid=(dat[i].l+dat[i].r)>>1;
if(a<=mid) Add(a,b,i<<1);
else Add(a,b,i<<1|1);
}
int Query(int a,int b,int i){
if(dat[i].l==a && dat[i].r==b) return dat[i].num;
int mid=(dat[i].l+dat[i].r)>>1;
if(b<=mid) return Query(a,b,i<<1);
else if(a>mid) return Query(a,b,i<<1|1);
else return Query(a,mid,i<<1)+Query(mid+1,b,i<<1|1);
}
int main(){
//freopen("in.txt","r",stdin);
int t,index,n,a,b;
char cmd[16];
scanf("%d",&t);
for(index=1;index<=t;index++){
printf("Case %d:\n",index);
scanf("%d",&n);
int i;
for(i=1;i<=n;i++){
scanf("%d",num+i);
}
Build(1,n,1);
while(scanf("%s",cmd),cmd[0]!='E'){
scanf("%d%d",&a,&b);
if(cmd[0]=='A') Add(a,b,1);
else if(cmd[0]=='S') Add(a,-b,1);
else printf("%d\n",Query(a,b,1));
}
}
return 0;
}