package com.jiuqi.njt.management;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.RepairsFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.SentEmployeeBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.ServiceFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.RoleCode;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectRepairsFileKey;
import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectServiceFilesKey;
import com.jiuqi.njt.R;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.management.task.GetManagerListTask;
import com.jiuqi.njt.management.task.GetManagerListWxTask;
import com.jiuqi.njt.model.CModuleBean;
import com.jiuqi.njt.model.ModuleType;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.DateUtil;
import com.jiuqi.njt.util.UIUtil;
import com.jiuqi.njt.widget.XListView;
import com.jiuqi.njt.widget.XListView.IXListViewListener;
import com.jiuqi.njt.widget.XListView.ListFooteState;
/**
* bxgl和wxgl列表查询
*/
@SuppressLint("SimpleDateFormat")
public class RepairManagementActivity extends Activity implements
IXListViewListener, OnClickListener, OnScrollListener {
private CModuleBean cBean; // 区别模块定制标示
private OptsharepreInterface sharePre;
private AdminAreaBean xzqh;// 行政区划
private XListView xlistView;
private SelectRepairsFileKey repairsFileKey = null;// 报修key
private SelectServiceFilesKey serviceFilesKey;// 派工key
private List<RepairsFileBean> repairFileBeanList = new ArrayList<RepairsFileBean>();
private List<ServiceFileBean> serviceFileBeanList = new ArrayList<ServiceFileBean>();
private ManagerSerAdapter listAdapter;
private long startIndex = 0;// 起始索引
private int totalCount = 0;// 总记录数
private Button backLeft = null;
private Button actionRight = null;
private EditText etSearch = null;
private ImageView ivDeleteText = null;
private int tvAction = 0; // 标示 是执行搜索还是筛选标志
private boolean isFirst = true;
private Button addButton;
private String dealStatus = "-1"; // 处理状态 全部、已处理、未处理 -1、1、0
public static boolean canModify = false;
private String s1 = "1";
private String s2 = "0";
private int height = 1;
private String searchKeyWord = null;//搜索的关键字
private String actionName;
private int actionNum;
private SimpleDateFormat sdf;
private MyApp app;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
initParam();
initWidget();
initListeners();
}
private void initParam() {
sharePre = new OptsharepreInterface(this);
cBean = (CModuleBean) getIntent().getSerializableExtra(
Constants.PARAM_MODULEBEAN);
sdf = new SimpleDateFormat(" yyyy-MM-dd ");
app = (MyApp) getApplicationContext();
if (null != app.getServicePartBeansList()
&& app.getServicePartBeansList().size() != 0) {
app.setServicePartBeansList(null);
app.setOldParts(null);
}
}
private void initWidget() {
setContentView(R.layout.manageer_list);
backLeft = (Button) findViewById(R.id.backleft);
actionRight = (Button) findViewById(R.id.actionright);
etSearch = (EditText) findViewById(R.id.etSearch);
ivDeleteText = (ImageView) findViewById(R.id.ivDeleteText);
addButton = (Button) findViewById(R.id.addbtn);
xlistView = (XListView) findViewById(R.id.listView);
if (cBean.getModuleFlag().equals(ModuleType.bxgl)) {
addButton.setVisibility(View.GONE);
actionName = "增加";
actionNum = 1;
} else if (cBean.getModuleFlag().equals(ModuleType.wxgl)) {
getHeightParams();
actionName = "筛选";
actionNum = 2;
addButton.setOnTouchListener(new MyButtonTouchListener());
}
actionRight.setText(actionName);
erSearchListener();
getInitData();
xlistView.setXListViewListener(this);
xlistView.setPullLoadEnable(true);// 下拉刷新
xlistView.setOnScrollListener(this);
}
private void initListeners() {
backLeft.setOnClickListener(this);
actionRight.setOnClickListener(this);
ivDeleteText.setOnClickListener(this);
}
/**
* etSearch监听事件方法
*/
private void erSearchListener() {
etSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 0) {
ivDeleteText.setVisibility(View.INVISIBLE);
if ("wxgl".equals(cBean.getModuleFlag() + "")) {
actionName = "筛选";
actionNum = 2;
} else {
actionName = "增加";
actionNum = 1;
}
tvAction = 0;
} else {
ivDeleteText.setVisibility(View.VISIBLE);
actionName = "搜索";
actionNum = 3;
tvAction = 1;
}
actionRight.setText(actionName);
}
});
}
private void getInitData() {
if (cBean.getModuleFlag().equals(ModuleType.bxgl)) {
repairsFileKey = new SelectRepairsFileKey();
// repairsFileKey.setRoleCode(Integer.parseInt(sharePre.getPres("role")));
repairsFileKey.setAddPersonGuid(sharePre.getPres("guid"));
repairsFileKey.setSelfMobile(sharePre.getPres("mobileNumber"));
repairsFileKey.setRepairManMobile(sharePre.getPres("mobileNumber"));
repairsFileKey.setTroubleDetail(searchKeyWord);
repairsFileKey.setFileType("2");
repairsFileKey.setDealStatus("-1");
repairsFileKey.setStartIndex(startIndex);
repairsFileKey.setSize(Constants.PAGE_SIZE);
} else if (cBean.getModuleFlag().equals(ModuleType.wxgl)) {
// 报修key
repairsFileKey = new SelectRepairsFileKey();
// repairsFileKey.setRoleCode(Integer.parseInt(sharePre.getPres("role")));
repairsFileKey.setAddPersonGuid(sharePre.getPres("guid"));
repairsFileKey.setSelfMobile(sharePre.getPres("mobileNumber"));
repairsFileKey.setRepairManMobile(searchKeyWord);
repairsFileKey.setRepairGuid(sharePre.getPres("guid"));
repairsFileKey.setFileType("1");
repairsFileKey.setDealStatus(dealStatus);
repairsFileKey.setSortField(s1);
repairsFileKey.setStartIndex(startIndex);
repairsFileKey.setSize(Constants.PAGE_SIZE);
// 派工key
serviceFilesKey = new SelectServiceFilesKey();
// 维修点登陆员工登陆区分
if (sharePre.getPres("role").equals(RoleCode.Repair.getCode())|| sharePre.getPres("role").equals(RoleCode.Dealer.getCode())|| sharePre.getPres("role").equals(RoleCode.Cooper.getCode())
||sharePre.getPres("rolesString").contains(RoleCode.Repair.getWeiyima())||sharePre.getPres("rolesString").contains(RoleCode.Dealer.getWeiyima())||sharePre.getPres("rolesString").contains(RoleCode.Cooper.getWeiyima())) {
serviceFilesKey.setRepairGuid(sharePre.getPres("guid"));
} else if (sharePre.getPres("role").equals(RoleCode.ReapirEmployee.getCode())|| sharePre.getPres("role").equals(RoleCode.DealerEmployee.getCode())|| sharePre.getPres("role").equals(RoleCode.CooperEmployee.getCode())
||sharePre.getPres("rolesString").contains(RoleCode.ReapirEmployee.getWeiyima())||sharePre.getPres("rolesString").contains(RoleCode.DealerEmployee.getWeiyima())||sharePre.getPres("rolesString").contains(RoleCode.CooperEmployee.getWeiyima())){
serviceFilesKey.setSentEmployeeGuid(sharePre.getPres("guid"));
}
serviceFilesKey.setSortField(s2);
serviceFilesKey.setRepairManMobile(searchKeyWord);// 就是搜索框
serviceFilesKey.setDealStatus(Integer.parseInt(dealStatus));
}
getDataFromServer();
}
private void getDataFromServer() {
if (cBean.getModuleFlag().equals(ModuleType.bxgl)) {
// dataList.clear();
new GetManagerListTask(RepairManagementActivity.this,cBean.getModuleFlag(), repairsFileKey, isFirst, new WhenTaskFinish() {
@Override
public void taskFinished(List<RepairsFileBean> data) {
if(null!=data){
startIndex += data.size();
totalCount+= data.size();
}
repairFileBeanList.addAll(data);
isFirst = false;
setFootHintText();
if (null != repairFileBeanList) {
listAdapter = new ManagerSerAdapter(RepairManagementActivity.this, repairFileBeanList,AdapterType.RepairsAdapter);
xlistView.setAdapter(listAdapter);
}
onLoad();
}
}).execute();
} else if (cBean.getModuleFlag().equals(ModuleType.wxgl)) {
// dataSerList.clear();
new GetManagerListWxTask(RepairManagementActivity.this,
cBean.getModuleFlag(), repairsFileKey, serviceFilesKey, isFirst,
new WhenTaskFinishwx() {
@Override
public void taskFinished(List<ServiceFileBean> result) {
if(null!=result){
startIndex += result.size();
totalCount+= result.size();
}
serviceFileBeanList.addAll(result);
setFootHintText();
isFirst = false;
if (null != serviceFileBeanList) {
listAdapter = new ManagerSerAdapter(RepairManagementActivity.this, serviceFileBeanList,AdapterType.ServiceAdapter);
xlistView.setAdapter(listAdapter);
}
onLoad();
}
}).execute();
}
}
WhenTaskFinish taskFinish;
public interface WhenTaskFinish {
void taskFinished(List<RepairsFileBean> result);
}
WhenTaskFinish taskFinishwx;
public interface WhenTaskFinishwx {
void taskFinished(List<ServiceFileBean> result);
}
private void onLoad() {
xlistView.setSelection(((int) (startIndex)) - totalCount);
xlistView.stopRefresh();
xlistView.stopLoadMore();
xlistView.setRefreshTime(DateUtil.getTimeStamp(new Date(),
DateUtil.MM_DD_HH_MM_SS));
}
@Override
public void onRefresh() {
startIndex = 0;
repairFileBeanList = new ArrayList<RepairsFileBean>();
serviceFileBeanList = new ArrayList<ServiceFileBean>();
getInitData();
}
@Override
public void onLoadMore() {
if (startIndex % Constants.PAGE_SIZE == 0) {
getInitData();
} else {
UIUtil.showMsg(RepairManagementActivity.this, "没有更多");
onLoad();
}
}
public void setFootHintText() {
if (totalCount == 0 ) {
xlistView.setListFooteState(ListFooteState.noData);
} else if(totalCount % Constants.PAGE_SIZE != 0){
xlistView.setListFooteState(ListFooteState.noMoreData);
}else {
xlistView.setListFooteState(ListFooteState.nomal);
}
xlistView.showNoData();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.backleft:
RepairManagementActivity.this.finish();
break;
case R.id.actionright:
// bxgl中的右侧增加事件
if (cBean.getModuleFlag().equals(ModuleType.bxgl)) {
switch (actionNum) {
case 1:
Intent inbxRi = new Intent();
inbxRi.putExtra("moduleType", cBean.getModuleFlag());
inbxRi.putExtra("differece", 1 + "");
inbxRi.setClass(RepairManagementActivity.this,FregmentFileRepair.class);
startActivity(inbxRi);
break;
case 3:
searchKeyWord = etSearch.getText().toString().trim();
actionName = "增加";
actionNum = 1;
getInitData();
break;
default:
break;
}
} else if (cBean.getModuleFlag().equals(ModuleType.wxgl)) {
if (tvAction == 0) {
// wxgl中右侧筛选事件
UIUtil.requestQuery(RepairManagementActivity.this, xzqh,cBean.getModuleFlag());
} else {
startIndex = 0;
totalCount = 0;
repairFileBeanList = new ArrayList<RepairsFileBean>();
serviceFileBeanList = new ArrayList<ServiceFileBean>();
searchKeyWord = etSearch.getText().toString().trim();
tvAction = 0;
actionName = "筛选";
actionNum = 2;
getInitData();
}
}
actionRight.setText(actionName);
break;
case R.id.ivDeleteText:
etSearch.setText("");
searchKeyWord = "";
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Constants.REQUEST_XZQH_CODE) {
if (resultCode == RESULT_OK) {
repairsFileKey = (SelectRepairsFileKey) data
.getSerializableExtra("SelectRepairsFileKey");
dealStatus = data.getStringExtra("dealStatus");
if (repairsFileKey.getFileType().equals("1")) {
s1 = "0";
s2 = "1";
} else {
s1 = "1";
s2 = "0";
}
repairFileBeanList = new ArrayList<RepairsFileBean>();
serviceFileBeanList = new ArrayList<ServiceFileBean>();
startIndex = 0;
totalCount =0 ;
isFirst = true;
getInitData();
}
}
}
@Override
protected void onResume() {
super.onResume();
}
class ManagerAdapter extends BaseAdapter {
private List<RepairsFileBean> list;
private LayoutInflater inflater;
private ManagerAdapter(Context context, List<RepairsFileBean> list) {
if (null != list) {
this.list = list;
// if(type.equals("1")){
// this.list = list;
// }else{
// this.sList = list;
// }
}
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textTop = null;
TextView textBottomLeft = null;
TextView textBottomRight = null;
ViewHolder holder = null;
final RepairsFileBean reBean = (RepairsFileBean) list.get(position);
if (null == convertView) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.repair_list_item, null);
textTop = (TextView) convertView.findViewById(R.id.tvtop);
textBottomLeft = (TextView) convertView
.findViewById(R.id.tvleft);
textBottomRight = (TextView) convertView
.findViewById(R.id.tvright);
holder.tvTitleTop = textTop;
holder.tvTitleBottomLeft = textBottomLeft;
holder.tvTitleBottomRight = textBottomRight;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
textTop = holder.tvTitleTop;
textBottomLeft = holder.tvTitleBottomLeft;
textBottomRight = holder.tvTitleBottomRight;
}
if (null != reBean) {
textBottomLeft.setText(reBean.getRepairManMobile());
textBottomRight.setText(sdf.format(reBean.getRepairsDate()));
textTop.setText(reBean.getRepairServiceBean().getUserName());
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 详情点击事件事件
Intent in = new Intent();
in.setClass(RepairManagementActivity.this,
RepairDetailsActivity.class);
in.putExtra("DetailsShow", reBean);
in.putExtra("moduleType", cBean.getModuleFlag());
startActivity(in);
}
});
} else {
holder.tvTitleTop.setText("无数据");
}
return convertView;
}
}
enum AdapterType {
ServiceAdapter, RepairsAdapter
}
/**
* 报修管理维修管理适配器
*
* @author Administrator
*
*/
class ManagerSerAdapter extends BaseAdapter {
private List<ServiceFileBean> serviceFileBeanList;
private List<RepairsFileBean> repairsFileBeanList;
private LayoutInflater inflater;
private AdapterType adapterType;
@SuppressWarnings({ "rawtypes", "unchecked" })
private ManagerSerAdapter(Context context, List dataList,
AdapterType type) {
this.adapterType = type;
if (null != dataList) {
if (type == AdapterType.ServiceAdapter) {
this.serviceFileBeanList = dataList;
} else {
this.repairsFileBeanList = dataList;
}
}
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return adapterType == AdapterType.ServiceAdapter ? serviceFileBeanList
.size() : repairsFileBeanList.size();
}
@Override
public Object getItem(int position) {
return adapterType == AdapterType.ServiceAdapter ? serviceFileBeanList
.get(position) : repairsFileBeanList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textTop = null;
TextView textBottomLeft = null;
TextView textBottomRight = null;
ViewHolder holder = null;
ServiceFileBean serBean = null;
RepairsFileBean reBean = null;
if (adapterType == AdapterType.ServiceAdapter) {
serBean = (ServiceFileBean) serviceFileBeanList.get(position);
} else {
reBean = (RepairsFileBean) repairsFileBeanList.get(position);
}
if (null == convertView) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.repair_list_item, null);
textTop = (TextView) convertView.findViewById(R.id.tvtop);
textBottomLeft = (TextView) convertView
.findViewById(R.id.tvleft);
textBottomRight = (TextView) convertView
.findViewById(R.id.tvright);
holder.tvTitleTop = textTop;
holder.tvTitleBottomLeft = textBottomLeft;
holder.tvTitleBottomRight = textBottomRight;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
textTop = holder.tvTitleTop;
textBottomLeft = holder.tvTitleBottomLeft;
textBottomRight = holder.tvTitleBottomRight;
}
if (adapterType == AdapterType.ServiceAdapter && null != serBean) {
SentEmployeeBean sentEmployeeBean = serBean
.getSentEmployeeBean();
if (null != sentEmployeeBean) {
RepairsFileBean repairsFileBean = sentEmployeeBean
.getRepairsFileBean();
if (null != repairsFileBean) {
UserBean userBean = repairsFileBean
.getRepairServiceBean();
if (null != userBean) {
textTop.setText(null == userBean.getUserName() ? ""
: userBean.getUserName());
}
textBottomRight.setText(sdf.format(repairsFileBean
.getRepairsDate()));
textBottomLeft.setText(null == repairsFileBean
.getRepairManMobile() ? "" : repairsFileBean
.getRepairManMobile());
}
}
convertView.setOnClickListener(new SfbOnClick(serBean));
} else if (adapterType != AdapterType.ServiceAdapter
&& reBean != null) {
textBottomLeft.setText(null == reBean.getRepairManMobile() ? ""
: reBean.getRepairManMobile());
textBottomRight.setText(sdf.format(reBean.getRepairsDate()));
UserBean repairServiceBean = reBean.getRepairServiceBean();
if (null != repairServiceBean) {
textTop.setText(null == repairServiceBean.getUserName() ? ""
: repairServiceBean.getUserName());
}
convertView.setOnClickListener(new ReOnClick(reBean));
} else {
holder.tvTitleTop.setText("无数据");
}
return convertView;
}
}
class ReOnClick implements OnClickListener {
private RepairsFileBean reBean = null;
public ReOnClick(RepairsFileBean reBean) {
this.reBean = reBean;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in = new Intent();
in.setClass(RepairManagementActivity.this,
RepairDetailsActivity.class);
in.putExtra("DetailsShow", reBean);
in.putExtra("moduleType", cBean.getModuleFlag());
startActivity(in);
}
}
class SfbOnClick implements OnClickListener {
private ServiceFileBean sfb;
public SfbOnClick(ServiceFileBean sfb) {
this.sfb = sfb;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in = new Intent();
in.setClass(RepairManagementActivity.this,
RepairDetailsActivity.class);
in.putExtra("moduleType", cBean.getModuleFlag());
if (null != sfb.getSentEmployeeBean().getGuid()) {
in.putExtra("guid", sfb.getSentEmployeeBean().getGuid());
in.putExtra("type", 2 + "");
} else {
in.putExtra("guid", sfb.getSentEmployeeBean()
.getRepairsFileBean().getGuid());
in.putExtra("type", 1 + "");
}
startActivity(in);
}
}
class ViewHolder {
public TextView tvTitleTop;
public TextView tvTitleBottomLeft;
public TextView tvTitleBottomRight;
}
private class MyButtonTouchListener implements OnTouchListener {
DisplayMetrics dm = getResources().getDisplayMetrics();
final int screenWidth = dm.widthPixels;
final int screenHeight = dm.heightPixels - 50;
int x = 0, y = 0;
int lastX, lastY;
@Override
public boolean onTouch(View v, MotionEvent event) {
int ea = event.getAction();
switch (ea) {
case MotionEvent.ACTION_DOWN:
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
x = lastX;
y = lastY;
break;
case MotionEvent.ACTION_MOVE:
int dx = (int) event.getRawX() - lastX;
int dy = (int) event.getRawY() - lastY;
int left = v.getLeft() + dx;
int top = v.getTop() + dy;
int right = v.getRight() + dx;
int bottom = v.getBottom() + dy;
if (left < 0) {
left = 0;
right = left + v.getWidth();
}
if (right > screenWidth) {
right = screenWidth;
left = right - v.getWidth();
}
if (top < 0) {
top = 0;
bottom = top + v.getHeight();
}
if (bottom > screenHeight) {
bottom = screenHeight;
top = bottom - v.getHeight();
}
v.layout(left, top, right, bottom);
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_UP:
// 松开事件发生后执行代码的区域
if (Math.abs(lastX - x) < height / 16
&& Math.abs(lastY - y) < height / 16) {
Intent inwxAdd = new Intent();
inwxAdd.setClass(RepairManagementActivity.this,
FregmentFileRepair.class);
inwxAdd.putExtra("moduleType", cBean.getModuleFlag());
inwxAdd.putExtra("differece", 2 + "");
startActivity(inwxAdd);
break;
}
break;
}
return false;
}
}
// 列表滑动时控制新增按钮显示与隐藏
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_FLING:// 滚动状态
addButton.setVisibility(View.GONE);
break;
case OnScrollListener.SCROLL_STATE_IDLE:// 空闲状态
if ("wxgl".equals(cBean.getModuleFlag() + "")) {
addButton.setVisibility(View.VISIBLE);
}
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:// 触摸后滚动
addButton.setVisibility(View.GONE);
break;
default:
break;
}
}
private void getHeightParams() {
ViewTreeObserver vObserver = addButton.getViewTreeObserver();
vObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// TODO Auto-generated method stub
addButton.getViewTreeObserver().removeGlobalOnLayoutListener(
this);
height = addButton.getHeight();
}
});
}
}