code: def _compile_out(self):
      def aux(offset, d_val, max_val, offset1):
          return "int {} = {} * ({} + {});".format(
              offset, d_val, max_val, offset1
          )
  
      d_vals = conv_nd_kernel.vars("d", self.ndim)[1:] + [1]
      max_vals = conv_nd_kernel.vars("max", self.ndim)
      offsets = conv_nd_kernel.vars("offset", self.ndim)
      offsets1 = ["d_0 * c0"] + offsets[:-1]
      offset_strs = conv_nd_kernel.map_(
          aux, offsets, d_vals, max_vals, offsets1
      )
      offset_strs.append("out = in[offset_{}];".format(self.ndim - 1))
      return offset_strs
  
imports: import six
  from chainer.functions.pooling import pooling_nd_kernel
  from chainer.utils import conv_nd_kernel
label_desc: Use image node_id 5 for calling the MaxPoolingNDKernelForwardWithIndexes obj's underlying member method code with example usage: obj._compile_out() and returns: offset_strs, str