static long getOffsetOfChunk(int []vsize, int[] csize, int []start)
	{
		int [] volume = new int [vsize.length];
		int []dsize = new int [vsize.length +1];
		dsize[vsize.length]=1;
		volume[0]=1;
		for(int i = 1; i < volume.length; i++)
		{
			volume[i] = volume[i-1]*vsize[i-1];
			
		}
		for(int i = vsize.length -1 ; i >= 0; i--)
		{
			dsize[i] = dsize[i+1] *( (vsize[i] - start[i]) > csize[i]? csize[i]:(vsize[i] - start[i]));
		}
		int offset = 0;
		for(int i = volume.length - 1; i >= 0 ; i--)
		{
			offset = offset + start[i] * volume[i]*dsize[i+1];
		}
		return offset;
	}