code: def is_sharable(self):
          
          return self.sharable and all(x.is_sharable() for x in self.buttons)
docs: Is sharable if marked as and if buttons are sharable (they might
          hold sensitive data).