docstr: Generate random shared tensor of given size and sharing of its wraps
docstr_tok: ["Generate","random","shared","tensor","of","given","size","and","sharing","of","its","wraps"]
code: def wrap_rng(self, size, device=None):
      """Generate random shared tensor of given size and sharing of its wraps"""
      generator = TTPClient.get().get_generator(device=device)
  
      r = generate_random_ring_element(
          size, generator=generator, device=device
      )
      if comm.get().get_rank() == 0:
          # Request theta_r from TTP
          theta_r = TTPClient.get().ttp_request("wraps", device, size)
      else:
          theta_r = generate_random_ring_element(
              size, generator=generator, device=device
          )
  
      r = ArithmeticSharedTensor.from_shares(r, precision=0)
      theta_r = ArithmeticSharedTensor.from_shares(theta_r, precision=0)
      return r, theta_r
  
imports: import logging
  import crypten
  import crypten.communicator
  import torch
  import torch.distributed
  from crypten.common.rng import generate_kbit_random_tensor, generate_random_ring_element
  from crypten.common.util import count_wraps
  from crypten.mpc.primitives import ArithmeticSharedTensor, BinarySharedTensor
  from .provider import TupleProvider
label_desc: Use image node_id 4 for calling the TrustedThirdParty obj's underlying member method code with example usage: obj.wrap_rng(size, device) and returns: r,  theta_r